Source Code
Overview
SOPH Balance
99.99994426946678804 SOPH
More Info
ContractCreator
Multichain Info
N/A
Latest 18 internal transactions
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
191689 | 45 hrs ago | 0.00005573 SOPH | ||||
191689 | 45 hrs ago | 0 SOPH | ||||
191689 | 45 hrs ago | 0 SOPH | ||||
191689 | 45 hrs ago | 0 SOPH | ||||
191689 | 45 hrs ago | 0 SOPH | ||||
191689 | 45 hrs ago | 0 SOPH | ||||
191689 | 45 hrs ago | 0 SOPH | ||||
191689 | 45 hrs ago | 0 SOPH | ||||
191689 | 45 hrs ago | 0 SOPH | ||||
191688 | 45 hrs ago | 100 SOPH | ||||
191688 | 45 hrs ago | 100 SOPH | ||||
191635 | 45 hrs ago | 0 SOPH | ||||
191635 | 45 hrs ago | 0 SOPH | ||||
191635 | 45 hrs ago | 0 SOPH | ||||
191635 | 45 hrs ago | 0 SOPH | ||||
191635 | 45 hrs ago | 0 SOPH | ||||
191522 | 45 hrs ago | 0 SOPH | ||||
191522 | 45 hrs ago | Contract Creation | 0 SOPH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
LzOftHelperProxy
Compiler Version
v0.8.26+commit.8a97fa7a
ZkSolc Version
v1.5.6
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0-only pragma solidity 0.8.26; import "contracts/proxies/Proxy2Step.sol"; /** * @title LzOftHelperProxy * @notice This contract acts as a proxy for the LzOftHelper, allowing for upgradeability and initialization with optional data. * @dev Inherits from Proxy2Step to manage implementation address changes in two steps. */ contract LzOftHelperProxy is Proxy2Step { /** * @notice Constructs the LzOftHelperWrapperProxy contract and initializes the implementation. * @dev If `initData_` is provided, it delegates a call to the implementation contract with that data. * @param impl_ The address of the initial implementation contract. * @param initData_ Optional initialization data to delegatecall to the implementation. */ constructor(address impl_, bytes memory initData_) payable Proxy2Step(impl_) { require(impl_ != address(0), "Invalid impl address"); if (initData_.length != 0) { (bool success,) = impl_.delegatecall(initData_); require(success, "init failed"); } } }
// SPDX-License-Identifier: GPL-3.0-only pragma solidity 0.8.26; import "contracts/proxies/Upgradeable2Step.sol"; /** * @title Proxy2Step * @notice This contract serves as a proxy that delegates all calls to an implementation address, supporting a two-step upgradeable pattern. * @dev Inherits from `Upgradeable2Step` and allows implementation updates through a two-step process. */ contract Proxy2Step is Upgradeable2Step { /** * @notice Initializes the Proxy2Step contract with the initial implementation address. * @param impl_ The address of the initial implementation contract. */ constructor(address impl_) { require(impl_ != address(0), "impl_ is zero address"); bytes32 slot = IMPLEMENTATION_SLOT; assembly { sstore(slot, impl_) } } /** * @notice Fallback function that delegates all calls to the current implementation. * @dev Forwards all calldata to the implementation address and returns the result. * @dev Uses `delegatecall` to execute functions in the context of the implementation. */ fallback() external virtual payable { bytes32 slot = IMPLEMENTATION_SLOT; assembly { calldatacopy(0, 0, calldatasize()) let result := delegatecall(gas(), sload(slot), 0, calldatasize(), 0, 0) returndatacopy(0, 0, returndatasize()) switch result case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } /** * @notice Receives Ether sent to the contract. * @dev This function is used to handle direct ETH transfers without data. */ receive() external virtual payable { (bool result,) = implementation().delegatecall(""); assembly { returndatacopy(0, 0, returndatasize()) switch result case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } }
// SPDX-License-Identifier: GPL-3.0-only pragma solidity 0.8.26; import "contracts/access/Ownable2Step.sol"; /** * @title Upgradeable2Step * @notice This contract implements a two-step process for upgrading the implementation address. It provides security by allowing the owner to propose a new implementation and the implementation to accept itself. * @dev Inherits from `Ownable2Step`, allowing the contract owner to initiate the upgrade process, which must then be accepted by the proposed implementation. */ contract Upgradeable2Step is Ownable2Step { /// @notice The slot containing the address of the pending implementation contract. bytes32 public constant PENDING_IMPLEMENTATION_SLOT = keccak256("PENDING_IMPLEMENTATION_SLOT"); /// @notice The slot containing the address of the current implementation contract. bytes32 public constant IMPLEMENTATION_SLOT = keccak256("IMPLEMENTATION_SLOT"); /** * @dev Emitted when a new implementation is proposed. * @param previousImplementation The address of the previous implementation. * @param newImplementation The address of the new implementation proposed. */ event ReplaceImplementationStarted(address indexed previousImplementation, address indexed newImplementation); /** * @dev Emitted when a new implementation is accepted and becomes active. * @param previousImplementation The address of the previous implementation. * @param newImplementation The address of the new active implementation. */ event ReplaceImplementation(address indexed previousImplementation, address indexed newImplementation); /** * @dev Thrown when an unauthorized account attempts to execute a restricted function. */ error Unauthorized(); /** * @notice Initializes the contract and sets the deployer as the initial owner. * @dev Passes the deployer address to the `Ownable2Step` constructor. */ constructor() Ownable(msg.sender) {} /** * @notice Starts the implementation replacement process by setting a new pending implementation address. * @dev Can only be called by the owner. Emits the `ReplaceImplementationStarted` event. * @param impl_ The address of the new implementation contract to be set as pending. */ function replaceImplementation(address impl_) public onlyOwner { bytes32 slot_pending = PENDING_IMPLEMENTATION_SLOT; assembly { sstore(slot_pending, impl_) } emit ReplaceImplementationStarted(implementation(), impl_); } /** * @notice Completes the implementation replacement process by accepting the pending implementation. * @dev Can only be called by the pending implementation itself. Emits the `ReplaceImplementation` event and updates the `implementation` state. * Deletes the `pendingImplementation` address upon successful acceptance. */ function acceptImplementation() public { if (msg.sender != pendingImplementation()) { revert OwnableUnauthorizedAccount(msg.sender); } emit ReplaceImplementation(implementation(), msg.sender); bytes32 slot_pending = PENDING_IMPLEMENTATION_SLOT; bytes32 slot = IMPLEMENTATION_SLOT; assembly { sstore(slot_pending, 0) sstore(slot, caller()) } } /** * @notice Allows a new implementation to become the active implementation in a proxy contract. * @dev Can only be called by the owner of the specified proxy contract. Calls `acceptImplementation` on the proxy contract. * @param proxy The proxy contract where the new implementation should be accepted. */ function becomeImplementation(Upgradeable2Step proxy) public { if (msg.sender != proxy.owner()) { revert Unauthorized(); } proxy.acceptImplementation(); } /** * @notice Returns the pending implementation address * @return The pending implementation address */ function pendingImplementation() public view returns (address) { address pendingImplementation_; bytes32 slot_pending = PENDING_IMPLEMENTATION_SLOT; assembly { pendingImplementation_ := sload(slot_pending) } return pendingImplementation_; } /** * @notice Returns the current implementation address * @return The current implementation address */ function implementation() public view returns (address) { address implementation_; bytes32 slot = IMPLEMENTATION_SLOT; assembly { implementation_ := sload(slot) } return implementation_; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable2Step.sol) pragma solidity ^0.8.20; import {Ownable} from "contracts/access/Ownable.sol"; /** * @dev Contract module which provides access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * The initial owner is specified at deployment time in the constructor for `Ownable`. This * can later be changed with {transferOwnership} and {acceptOwnership}. * * This module is used through inheritance. It will make available all functions * from parent (Ownable). */ abstract contract Ownable2Step is Ownable { address private _pendingOwner; event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner); /** * @dev Returns the address of the pending owner. */ function pendingOwner() public view virtual returns (address) { return _pendingOwner; } /** * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual override onlyOwner { _pendingOwner = newOwner; emit OwnershipTransferStarted(owner(), newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner. * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual override { delete _pendingOwner; super._transferOwnership(newOwner); } /** * @dev The new owner accepts the ownership transfer. */ function acceptOwnership() public virtual { address sender = _msgSender(); if (pendingOwner() != sender) { revert OwnableUnauthorizedAccount(sender); } _transferOwnership(sender); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) pragma solidity ^0.8.20; import {Context} from "contracts/utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * The initial owner is set to the address provided by the deployer. This can * later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; /** * @dev The caller account is not authorized to perform an operation. */ error OwnableUnauthorizedAccount(address account); /** * @dev The owner is not a valid owner account. (eg. `address(0)`) */ error OwnableInvalidOwner(address owner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address initialOwner) { if (initialOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(initialOwner); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { if (owner() != _msgSender()) { revert OwnableUnauthorizedAccount(_msgSender()); } } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { if (newOwner == address(0)) { revert OwnableInvalidOwner(address(0)); } _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol) pragma solidity ^0.8.20; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } function _contextSuffixLength() internal view virtual returns (uint256) { return 0; } }
{ "evmVersion": "shanghai", "optimizer": { "enabled": true, "runs": 200 }, "libraries": { "LzOftHelperProxy.sol": {} }, "remappings": [ "@openzeppelin=./node_modules/@openzeppelin", "@erc721a=./node_modules/erc721a/contracts", "OpenZeppelin=C:/Users/tomcb/.brownie/packages/OpenZeppelin", "paulrberg=C:/Users/tomcb/.brownie/packages/paulrberg" ], "metadata": { "appendCBOR": false, "bytecodeHash": "none" }, "outputSelection": { "*": { "*": [ "abi" ] } } }
[{"inputs":[{"internalType":"address","name":"impl_","type":"address"},{"internalType":"bytes","name":"initData_","type":"bytes"}],"stateMutability":"payable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousImplementation","type":"address"},{"indexed":true,"internalType":"address","name":"newImplementation","type":"address"}],"name":"ReplaceImplementation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousImplementation","type":"address"},{"indexed":true,"internalType":"address","name":"newImplementation","type":"address"}],"name":"ReplaceImplementationStarted","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"IMPLEMENTATION_SLOT","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PENDING_IMPLEMENTATION_SLOT","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Upgradeable2Step","name":"proxy","type":"address"}],"name":"becomeImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"impl_","type":"address"}],"name":"replaceImplementation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
9c4d535b000000000000000000000000000000000000000000000000000000000000000001000103f40179299b12478b7087640de61c64af09d170baabee57b55bcf3a0300000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060000000000000000000000000f35b6c0c268829bdec7ae5ff93c473f7a805090900000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x00020000000000020004000000000002000000000301034f0000006001100270000000d40410019700010000004303550000000100200190000000200000c13d000000000143034f0000008002000039000000400020043f000000040040008c0000007c0000413d000000000203043b000000e002200270000000e50020009c000000880000213d000000ed0020009c000000ac0000213d000000f10020009c000001930000613d000000f20020009c0000019a0000613d000000f30020009c000001380000c13d0000000001000416000000000001004b0000026f0000c13d000000ff01000041000000800010043f000000fe010000410000034b0001042e0000001f01400039000000d5011001970000008001100039000000400010043f0000001f0240018f000000d60540019800000080015000390000002e0000613d0000008006000039000000000703034f000000007807043c0000000006860436000000000016004b0000002a0000c13d000000000002004b0000003b0000613d000000000353034f0000000302200210000000000501043300000000052501cf000000000525022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000252019f0000000000210435000000400040008c0000026f0000413d000000800700043d000000d70070009c0000026f0000213d000000a00200043d000000d80020009c0000026f0000213d0000001f01200039000000000041004b0000000003000019000000d903008041000000d901100197000000000001004b0000000005000019000000d905004041000000d90010009c000000000503c019000000000005004b0000026f0000c13d00000080012000390000000001010433000000d80010009c000003260000213d0000001f0310003900000102033001970000003f033000390000010203300197000000400900043d0000000003390019000000000093004b00000000050000390000000105004039000000d80030009c000003260000213d0000000100500190000003260000c13d0000008004400039000000400030043f0000000008190436000000a0022000390000000003210019000000000043004b0000026f0000213d000000000001004b000000710000613d000000000300001900000000043800190000000005230019000000000505043300000000005404350000002003300039000000000013004b0000006a0000413d0000000001910019000000200110003900000000000104350000000006000411000000000006004b0000020a0000c13d000000e301000041000000000010043f000000040000043f000000e4010000410000034c00010430000000000004004b000001380000c13d000000dd02000041000000000202041a0000000003000414000000040020008c000000ca0000c13d00000001020000390000000003000031000000000003004b000000d50000c13d000000fa0000013d000000e60020009c000001160000213d000000ea0020009c000001b80000613d000000eb0020009c000001d50000613d000000ec0020009c000001380000c13d000000240040008c0000026f0000413d0000000001000416000000000001004b0000026f0000c13d0000000401300370000000000601043b000000d70060009c0000026f0000213d000000000100041a000000d7021001970000000001000411000000000012004b0000023a0000c13d000000ff01000041000000000061041b000000dd01000041000000000101041a0000000002000414000000d705100197000000d40020009c000000d402008041000000c001200210000000db011001c70000800d0200003900000003030000390000010004000041000001d00000013d000000ee0020009c000001da0000613d000000ef0020009c000001df0000613d000000f00020009c000001380000c13d0000000001000416000000000001004b0000026f0000c13d000000000100041a000000d7021001970000000005000411000000000052004b000002050000c13d0000000102000039000000000302041a000000da03300197000000000032041b000000da01100197000000000010041b0000000001000414000000d40010009c000000d401008041000000c001100210000000db011001c70000800d020000390000000303000039000000dc040000410000000006000019000001d00000013d000000d40030009c000000d403008041000000c001300210034a03450000040f000000010220018f00010000000103550000006003100270000000d40030019d000000d403300197000000000003004b000000fa0000613d0000001f0530003900000102055001970000003f055000390000010206500197000000400500043d0000000006650019000000000056004b00000000070000390000000107004039000000d80060009c000003260000213d0000000100700190000003260000c13d000000400060043f000000000735043600000102053001980000001f0630018f0000000004570019000000ed0000613d000000000801034f000000008908043c0000000007970436000000000047004b000000e90000c13d000000000006004b000000fa0000613d000000000551034f0000000306600210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f000000000054043500000102043001980000001f0530018f000001030000613d000000000601034f0000000007000019000000006806043c0000000007870436000000000047004b000000ff0000c13d000000000005004b000001100000613d000000000141034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000d40030009c000000d4030080410000006001300210000000000002004b000001900000c13d0000034c00010430000000e70020009c000001e40000613d000000e80020009c000001ed0000613d000000e90020009c000001380000c13d000000240040008c0000026f0000413d0000000001000416000000000001004b0000026f0000c13d0000000401300370000000000601043b000000d70060009c0000026f0000213d000000000100041a000000d7011001970000000005000411000000000051004b000002050000c13d0000000101000039000000000201041a000000da02200197000000000262019f000000000021041b0000000001000414000000d40010009c000000d401008041000000c001100210000000db011001c70000800d020000390000000303000039000000f504000041000001d00000013d0000001f0540018f000000d602400198000001410000613d000000000603034f0000000007000019000000006806043c0000000007870436000000000027004b0000013d0000c13d000000000005004b0000014e0000613d000000000323034f0000000305500210000000000602043300000000065601cf000000000656022f000000000303043b0000010005500089000000000353022f00000000035301cf000000000363019f0000000000320435000000dd02000041000000000202041a0000000003000414000000040020008c0000016b0000c13d000000000300003100000102023001980000001f0430018f0000015d0000613d000000000501034f0000000006000019000000005705043c0000000006760436000000000026004b000001590000c13d000000000004004b0000018d0000613d000000000121034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000018d0000013d0000006001400210000000d40030009c000000d403008041000000c003300210000000000113019f034a03450000040f000100000001035500000060031002700000001f0530018f000000d40030019d000000d6043001980000017d0000613d000000000601034f0000000007000019000000006806043c0000000007870436000000000047004b000001790000c13d000000000005004b0000018a0000613d000000000141034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000d4033001970000000100200190000001910000613d000000d40030009c000000d40300804100000060013002100000034b0001042e00000060013002100000034c000104300000000001000416000000000001004b0000026f0000c13d000000dd01000041000000800010043f000000fe010000410000034b0001042e0000000001000416000000000001004b0000026f0000c13d000000ff01000041000000000101041a000000d7011001970000000006000411000000000016004b000002000000c13d000000dd01000041000000000101041a0000000002000414000000d40020009c000000d402008041000000d705100197000000c001200210000000db011001c70000800d0200003900000003030000390000010104000041034a033b0000040f00000001002001900000026f0000613d000000ff01000041000000000001041b0000000001000411000000dd02000041000000000012041b00000000010000190000034b0001042e0000000001000416000000000001004b0000026f0000c13d0000000101000039000000000201041a000000d7032001970000000006000411000000000063004b000002000000c13d000000da02200197000000000021041b000000000100041a000000da02100197000000000262019f000000000020041b0000000002000414000000d705100197000000d40020009c000000d402008041000000c001200210000000db011001c70000800d020000390000000303000039000000dc04000041034a033b0000040f00000001002001900000026f0000613d00000000010000190000034b0001042e0000000001000416000000000001004b0000026f0000c13d000000000100041a000001e90000013d0000000001000416000000000001004b0000026f0000c13d000000ff01000041000001e80000013d0000000001000416000000000001004b0000026f0000c13d000000dd01000041000001e80000013d0000000001000416000000000001004b0000026f0000c13d0000000101000039000000000101041a000000d701100197000000800010043f000000fe010000410000034b0001042e000000240040008c0000026f0000413d0000000001000416000000000001004b0000026f0000c13d0000000401300370000000000201043b000000d70020009c0000026f0000213d000000f601000041000000800010043f0000000001000414000000040020008c0000023f0000c13d0000000003000031000000200030008c00000020040000390000000004034019000002660000013d000000f401000041000000000010043f000000040060043f000000e4010000410000034c00010430000000f401000041000000000010043f000000040050043f000000e4010000410000034c000104300000000102000039000000000102041a000000da01100197000000000012041b000000000100041a000000da02100197000000000262019f000000000020041b000000400200043d000100000002001d0000000002000414000000d705100197000000d40020009c000000d402008041000000c001200210000000db011001c70000800d020000390000000303000039000000dc04000041000400000007001d000300000008001d000200000009001d034a033b0000040f000000020500002900000003030000290000000404000029000000200600008a00000001002001900000026f0000613d000000d7004001980000028f0000c13d00000001030000290000004401300039000000e2020000410000000000210435000000240130003900000015020000390000000000210435000000df010000410000000000130435000000040130003900000020020000390000000000210435000000d40030009c000000d4030080410000004001300210000000e0011001c70000034c00010430000000f402000041000000000020043f000000040010043f000000e4010000410000034c00010430000000d40010009c000000d401008041000000c001100210000000f7011001c7000400000002001d034a03400000040f000000800a0000390000006003100270000000d403300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000002540000613d000000000801034f000000008908043c000000000a9a043600000000005a004b000002500000c13d000000000006004b000002610000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000000000003001f00010000000103550000000100200190000002710000613d00000004020000290000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c0000026f0000413d000000800100043d000000d70010009c0000029a0000a13d00000000010000190000034c000104300000001f0530018f000000d606300198000000400200043d00000000046200190000027c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000002780000c13d000000000005004b000002890000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000000d40020009c000000d4020080410000004002200210000000000112019f0000034c00010430000000dd01000041000000000041041b0000000002050433000000000002004b000002f60000613d0000000001000414000000040040008c000002ce0000c13d00000000010000310000000105000039000002e10000013d0000000003000411000000000013004b000002ca0000c13d000000fa010000410000000000100443000400000002001d00000004002004430000000001000414000000d40010009c000000d401008041000000c001100210000000fb011001c70000800202000039034a03400000040f00000001002001900000032c0000613d000000000101043b000000000001004b00000004020000290000026f0000613d000000400400043d000000fc0100004100000000001404350000000001000414000000040020008c000002c50000613d000000d40040009c000000d40300004100000000030440190000004003300210000000d40010009c000000d401008041000000c001100210000000000131019f000000f9011001c7000400000004001d034a033b0000040f00000004040000290000006003100270000000d40030019d000100000001035500000001002001900000032d0000613d000000d80040009c000003260000213d000000400040043f00000000010000190000034b0001042e000000f801000041000000000010043f000000f9010000410000034c00010430000000d40020009c000000d4020080410000006002200210000000d40030009c000000d4030080410000004003300210000000000232019f000000d40010009c000000d401008041000000c001100210000000000121019f0000000002040019034a03450000040f000000200600008a000000010520018f00010000000103550000006001100270000000d40010019d000000d401100197000000000001004b000002fb0000c13d000000000005004b000002f60000c13d000000400100043d0000004402100039000000de03000041000000000032043500000024021000390000000b030000390000000000320435000000df020000410000000000210435000000040210003900000020030000390000000000320435000000d40010009c000000d4010080410000004001100210000000e0011001c70000034c00010430000000200100003900000100001004430000012000000443000000e1010000410000034b0001042e000000d80010009c000003260000213d0000001f02100039000000000262016f0000003f02200039000000000362016f000000400200043d0000000003320019000000000023004b00000000040000390000000104004039000000d80030009c000003260000213d0000000100400190000003260000c13d0000000008050019000000400030043f000000000512043600000000026101700000001f0310018f00000000012500190000000104000367000003170000613d000000000604034f000000006706043c0000000005750436000000000015004b000003130000c13d000000000003004b0000000005080019000002e30000613d000000000224034f0000000303300210000000000401043300000000043401cf000000000434022f000000000202043b0000010003300089000000000232022f00000000023201cf000000000242019f0000000000210435000002e30000013d000000fd01000041000000000010043f0000004101000039000000040010043f000000e4010000410000034c00010430000000000001042f000000d4033001970000001f0530018f000000d606300198000000400200043d00000000046200190000027c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000003350000c13d0000027c0000013d000000000001042f0000033e002104210000000102000039000000000001042d0000000002000019000000000001042d00000343002104230000000102000039000000000001042d0000000002000019000000000001042d00000348002104250000000102000039000000000001042d0000000002000019000000000001042d0000034a000004320000034b0001042e0000034c0001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0f603533e14e17222e047634a2b3457fe346d27e294cedf9d21d74e5feea4a046696e6974206661696c656400000000000000000000000000000000000000000008c379a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000200000000000000000000000000000040000001000000000000000000696d706c5f206973207a65726f206164647265737300000000000000000000001e4fbdf70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000079ba509600000000000000000000000000000000000000000000000000000000e30c397700000000000000000000000000000000000000000000000000000000e30c397800000000000000000000000000000000000000000000000000000000eaac8c3200000000000000000000000000000000000000000000000000000000f2fde38b0000000000000000000000000000000000000000000000000000000079ba5097000000000000000000000000000000000000000000000000000000008da5cb5b00000000000000000000000000000000000000000000000000000000d69efdc500000000000000000000000000000000000000000000000000000000396f7b2200000000000000000000000000000000000000000000000000000000396f7b23000000000000000000000000000000000000000000000000000000005c60da1b00000000000000000000000000000000000000000000000000000000715018a600000000000000000000000000000000000000000000000000000000086fc0c70000000000000000000000000000000000000000000000000000000015ba56e500000000000000000000000000000000000000000000000000000000348ce7be118cdaa70000000000000000000000000000000000000000000000000000000038d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227008da5cb5b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000080000000000000000082b429000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b83020000020000000000000000000000000000002400000000000000000000000015ba56e5000000000000000000000000000000000000000000000000000000004e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000800000000000000000ed121f2bd960c6029b39fec5a771d28b9d0fe6caa150c9e459a5c08adc3eb68267f679e13fe9dca16f3079221965ec41838cb8881cbc0f440bc13507c6b214c2eb7a7d62743daf8cf4055aea544d0a89e2011279ed4105567d010759e6fa4de2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000f35b6c0c268829bdec7ae5ff93c473f7a805090900000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : impl_ (address): 0xF35B6C0c268829bdEC7AE5ff93C473f7a8050909
Arg [1] : initData_ (bytes): 0x
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000f35b6c0c268829bdec7ae5ff93c473f7a8050909
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.