Feature Tip: Add private address tag to any address under My Name Tag !
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 8 from a total of 8 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set_governor | 19904539 | 103 days ago | IN | 0 ETH | 0.00012486 | ||||
Set_management | 19904518 | 103 days ago | IN | 0 ETH | 0.0002322 | ||||
Set_governor | 19583706 | 148 days ago | IN | 0 ETH | 0.0028761 | ||||
Execute_single | 19583705 | 148 days ago | IN | 0 ETH | 0.00308067 | ||||
Execute_single | 19583703 | 148 days ago | IN | 0 ETH | 0.00418286 | ||||
Execute | 19368014 | 178 days ago | IN | 0 ETH | 0.00416424 | ||||
Set_governor | 19226776 | 198 days ago | IN | 0 ETH | 0.00301567 | ||||
0x610db451 | 19226340 | 198 days ago | IN | 0 ETH | 0.0205408 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Executor
Compiler Version
vyper:0.3.10
Contract Source Code (Vyper language format)
# @version 0.3.10 """ @title Executor @author 0xkorin, Yearn Finance @license GNU AGPLv3 @notice Responsible for executing governance decisions through a proxy. Only appointed governors are allowed to execute calls, subject to access control based on the governor, the calling contract and the selector. Management has the power to enable and set/unset whitelists and blacklists. The management role is intended to be transferred to the proxy, making the system self-governing. """ interface Proxy: def execute(_to: address, _data: Bytes[2048]): nonpayable enum Access: WHITELIST BLACKLIST proxy: public(immutable(Proxy)) management: public(address) pending_management: public(address) governors: public(HashMap[address, bool]) access: public(HashMap[uint256, Access]) # target => access control setting whitelisted: HashMap[uint256, HashMap[address, bool]] # target => governor => whitelisted blacklisted: HashMap[uint256, HashMap[address, bool]] # target => governor => blacklisted event Execute: by: indexed(address) contract: indexed(address) data: Bytes[2048] event SetGovernor: by: indexed(address) governor: indexed(address) flag: bool event SetAccess: by: indexed(address) contract: indexed(address) identifier: indexed(bytes4) access: Access event Whitelist: contract: indexed(address) identifier: indexed(bytes4) by: indexed(address) whitelisted: bool event Blacklist: contract: indexed(address) identifier: indexed(bytes4) by: indexed(address) blacklisted: bool event PendingManagement: management: indexed(address) event SetManagement: management: indexed(address) TARGET_MASK: public(constant(uint256)) = shift(1, 192) - 1 IDENTIFIER_MASK: constant(uint256) = shift(1, 32) - 1 @external def __init__(_proxy: address): """ @notice Constructor @param _proxy The ownership proxy """ proxy = Proxy(_proxy) self.management = msg.sender self.governors[msg.sender] = True @external def execute_single(_to: address, _data: Bytes[2048]): """ @notice Execute a single call @param _to The contract to call @param _data Calldata """ assert self.governors[msg.sender] assert len(_data) >= 4 identifier: bytes4 = convert(slice(_data, 0, 4), bytes4) target: uint256 = self._pack_target(_to, identifier) # check access control access: Access = self.access[target] if access == Access.BLACKLIST: assert not self.blacklisted[target][msg.sender] elif access == Access.WHITELIST: assert self.whitelisted[target][msg.sender] proxy.execute(_to, _data) log Execute(msg.sender, _to, _data) @external def execute(_script: Bytes[2048]): """ @notice Execute a single script consisting of one or more calls @param _script Script to execute """ assert self.governors[msg.sender] i: uint256 = 0 for x in range(32): if i == len(_script): break assert i + 32 <= len(_script) # extract target and calldata size target: uint256 = extract32(_script, i, output_type=uint256) # calldata size (64) | address (160) | identifier (32) size: uint256 = shift(target, -192) target &= TARGET_MASK i += 28 # calldata size (8 bytes) + address (20 bytes) assert i + size <= len(_script) assert size >= 4 and size <= 2048 # check access control access: Access = self.access[target] if access == Access.BLACKLIST: assert not self.blacklisted[target][msg.sender] elif access == Access.WHITELIST: assert self.whitelisted[target][msg.sender] contract: address = empty(address) identifier: bytes4 = empty(bytes4) contract, identifier = self._unpack_target(target) calldata: Bytes[2048] = slice(_script, i, size) i += size assert i <= len(_script) proxy.execute(contract, calldata) log Execute(msg.sender, contract, calldata) assert i == len(_script) @external @pure def script(_to: address, _data: Bytes[2048]) -> Bytes[2080]: """ @notice Generate script for a single call. Calls can be chained by concatenating their scripts @param _to The contract to call @param _data Calldata """ assert len(_data) >= 4 prefix: uint256 = shift(len(_data), 160) | convert(_to, uint256) return concat(convert(convert(prefix, uint224), bytes28), _data) @external def set_governor(_governor: address, _flag: bool): """ @notice Set the governor role @param _governor The account to set the role for @param _flag True: set governor, False: unset governor """ assert msg.sender == self.management assert _governor != empty(address) self.governors[_governor] = _flag log SetGovernor(msg.sender, _governor, _flag) @external def set_access(_contract: address, _identifier: bytes4, _access: Access): """ @notice Set access control for a contract+identifier combination @param _contract Contract address @param _identifier Function identifier @param _access Whether to enable whitelist or blacklist. Zero to disable access control """ assert msg.sender == self.management assert _contract != empty(address) assert convert(_access, uint256) < 3 target: uint256 = self._pack_target(_contract, _identifier) self.access[target] = _access log SetAccess(msg.sender, _contract, _identifier, _access) @external def whitelist(_contract: address, _identifier: bytes4, _caller: address, _whitelisted: bool): """ @notice Whitelist a governor for a contract+identifier combination @param _contract Contract address @param _identifier Function identifier @param _caller Governor to apply the whitelist to @param _whitelisted True: add to whitelist, False: remove from whitelist """ assert msg.sender == self.management assert _contract != empty(address) target: uint256 = self._pack_target(_contract, _identifier) self.whitelisted[target][_caller] = _whitelisted log Whitelist(_contract, _identifier, _caller, _whitelisted) @external @view def is_whitelisted(_contract: address, _identifier: bytes4, _caller: address) -> bool: """ @notice Query if a governor is whitelisted to call a contract+identifier combination @param _contract Contract address @param _identifier Function identifier @param _caller Governor @return True: on whitelist, False: not on whitelist """ target: uint256 = self._pack_target(_contract, _identifier) return self.whitelisted[target][_caller] @external @view def has_whitelist(_contract: address, _identifier: bytes4) -> bool: """ @notice Query if a contract+identifier combination has whitelist enabled @param _contract Contract address @param _identifier Function identifier @return True: whitelist enabled, False: whitelist disabled """ target: uint256 = self._pack_target(_contract, _identifier) return self.access[target] == Access.WHITELIST @external def blacklist(_contract: address, _identifier: bytes4, _caller: address, _blacklisted: bool): """ @notice Blacklist a governor for a contract+identifier combination @param _contract Contract address @param _identifier Function identifier @param _caller Governor to apply the blacklist to @param _blacklisted True: add to blacklist, False: remove from blacklist """ assert msg.sender == self.management assert _contract != empty(address) target: uint256 = self._pack_target(_contract, _identifier) self.blacklisted[target][_caller] = _blacklisted log Blacklist(_contract, _identifier, _caller, _blacklisted) @external @view def is_blacklisted(_contract: address, _identifier: bytes4, _caller: address) -> bool: """ @notice Query if a governor is blacklisted to call a contract+identifier combination @param _contract Contract address @param _identifier Function identifier @param _caller Governor @return True: on blacklist, False: not on blacklist """ target: uint256 = self._pack_target(_contract, _identifier) return self.blacklisted[target][_caller] @external @view def has_blacklist(_contract: address, _identifier: bytes4) -> bool: """ @notice Query if a contract+identifier combination has blacklist enabled @param _contract Contract address @param _identifier Function identifier @return True: blacklist enabled, False: blacklist disabled """ target: uint256 = self._pack_target(_contract, _identifier) return self.access[target] == Access.BLACKLIST @external def set_management(_management: address): """ @notice Set the pending management address. Needs to be accepted by that account separately to transfer management over @param _management New pending management address """ assert msg.sender == self.management self.pending_management = _management log PendingManagement(_management) @external def accept_management(): """ @notice Accept management role. Can only be called by account previously marked as pending management by current management """ assert msg.sender == self.pending_management self.pending_management = empty(address) self.management = msg.sender log SetManagement(msg.sender) @internal @pure def _pack_target(_contract: address, _identifier: bytes4) -> uint256: """ @notice Pack a contract+identifier into a single word """ return shift(convert(_contract, uint256), 32) | convert(_identifier, uint256) @internal @pure def _unpack_target(_target: uint256) -> (address, bytes4): """ @notice Unpack a contract+identifier from a single word """ return convert(shift(_target, -32), address), convert(convert(_target & IDENTIFIER_MASK, uint32), bytes4)
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"name":"Execute","inputs":[{"name":"by","type":"address","indexed":true},{"name":"contract","type":"address","indexed":true},{"name":"data","type":"bytes","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetGovernor","inputs":[{"name":"by","type":"address","indexed":true},{"name":"governor","type":"address","indexed":true},{"name":"flag","type":"bool","indexed":false}],"anonymous":false,"type":"event"},{"name":"SetAccess","inputs":[{"name":"by","type":"address","indexed":true},{"name":"contract","type":"address","indexed":true},{"name":"identifier","type":"bytes4","indexed":true},{"name":"access","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"Whitelist","inputs":[{"name":"contract","type":"address","indexed":true},{"name":"identifier","type":"bytes4","indexed":true},{"name":"by","type":"address","indexed":true},{"name":"whitelisted","type":"bool","indexed":false}],"anonymous":false,"type":"event"},{"name":"Blacklist","inputs":[{"name":"contract","type":"address","indexed":true},{"name":"identifier","type":"bytes4","indexed":true},{"name":"by","type":"address","indexed":true},{"name":"blacklisted","type":"bool","indexed":false}],"anonymous":false,"type":"event"},{"name":"PendingManagement","inputs":[{"name":"management","type":"address","indexed":true}],"anonymous":false,"type":"event"},{"name":"SetManagement","inputs":[{"name":"management","type":"address","indexed":true}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"_proxy","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"execute_single","inputs":[{"name":"_to","type":"address"},{"name":"_data","type":"bytes"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"execute","inputs":[{"name":"_script","type":"bytes"}],"outputs":[]},{"stateMutability":"pure","type":"function","name":"script","inputs":[{"name":"_to","type":"address"},{"name":"_data","type":"bytes"}],"outputs":[{"name":"","type":"bytes"}]},{"stateMutability":"nonpayable","type":"function","name":"set_governor","inputs":[{"name":"_governor","type":"address"},{"name":"_flag","type":"bool"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"set_access","inputs":[{"name":"_contract","type":"address"},{"name":"_identifier","type":"bytes4"},{"name":"_access","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"whitelist","inputs":[{"name":"_contract","type":"address"},{"name":"_identifier","type":"bytes4"},{"name":"_caller","type":"address"},{"name":"_whitelisted","type":"bool"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"is_whitelisted","inputs":[{"name":"_contract","type":"address"},{"name":"_identifier","type":"bytes4"},{"name":"_caller","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"has_whitelist","inputs":[{"name":"_contract","type":"address"},{"name":"_identifier","type":"bytes4"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"blacklist","inputs":[{"name":"_contract","type":"address"},{"name":"_identifier","type":"bytes4"},{"name":"_caller","type":"address"},{"name":"_blacklisted","type":"bool"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"is_blacklisted","inputs":[{"name":"_contract","type":"address"},{"name":"_identifier","type":"bytes4"},{"name":"_caller","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"has_blacklist","inputs":[{"name":"_contract","type":"address"},{"name":"_identifier","type":"bytes4"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"nonpayable","type":"function","name":"set_management","inputs":[{"name":"_management","type":"address"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"accept_management","inputs":[],"outputs":[]},{"stateMutability":"view","type":"function","name":"proxy","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"management","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"pending_management","inputs":[],"outputs":[{"name":"","type":"address"}]},{"stateMutability":"view","type":"function","name":"governors","inputs":[{"name":"arg0","type":"address"}],"outputs":[{"name":"","type":"bool"}]},{"stateMutability":"view","type":"function","name":"access","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"TARGET_MASK","inputs":[],"outputs":[{"name":"","type":"uint256"}]}]
Contract Creation Code
610db4515034610048576020610e165f395f518060a01c61004857604052604051610db452335f5560016002336020525f5260405f2055610db461004c61000039610dd4610000f35b5f80fd5f3560e01c60026015820660011b610d8a01601e395f51565b63ec55688981186100365734610d86576020610db460403960206040f35b6388a8d6028118610d385734610d86575f5460405260206040f3610d38565b63770817ec8118610d385734610d865760015460405260206040f3610d38565b63e3eece268118610d3857602436103417610d86576004358060a01c610d865760405260026040516020525f5260405f205460605260206060f3610d38565b63803ad4de8118610d3857602436103417610d865760036004356020525f5260405f205460405260206040f3610d38565b63e4021f108118610d385734610d865777ffffffffffffffffffffffffffffffffffffffffffffffff60405260206040f3610d38565b63d7f79ead8118610d3857606436103417610d86576004358060a01c610d8657608052602435600401610800813511610d86576020813501808260a03750506002336020525f5260405f205415610d8657600460a05110610d865760a051600411610d865760c0516109005260046108e0526108e0805160200360031b6020820151811c811b905090506108c0526080516040526108c0516060526101c1610900610d3c565b610900516108e05260036108e0516020525f5260405f2054610900526002610900511861020e5760056108e0516020525f5260405f2080336020525f5260405f20905054610d865761023c565b6001610900511861023c5760046108e0516020525f5260405f2080336020525f5260405f2090505415610d86575b6020610db45f395f51631cff79cd6109205260406080516109405280610960528061094001602060a0510180828260a060045afa50508051806020830101601f825f03163682375050601f19601f82516020010116905081015050803b15610d86575f61092061086461093c5f855af16102b8573d5f5f3e3d5ffd5b50608051337f426783e85afe763f71351e2490de9212fd7bdc36450445719f66d1b1d3fefa66602080610920528061092001602060a0510180828260a060045afa50508051806020830101601f825f03163682375050601f19601f82516020010116905081019050610920a300610d38565b6309c5eabe81186106c357604436103417610d8657600435600401610800813511610d86576020813501808260603750506002336020525f5260405f205415610d86575f610880525f6020905b806108a052606051610880511861038d576106b3565b6060516108805160208101818110610d8657905011610d86576060805161088051602082038113157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82131615610d8657601f81168160051c816103fa578060051b602001850151610422565b816020036101000a6001820160051b60200186015104826101000a8260051b60200187015102015b905090509050905090506108c0526108c0518060c01c90506108e05277ffffffffffffffffffffffffffffffffffffffffffffffff6108c051166108c05261088051601c8101818110610d8657905061088052606051610880516108e051808201828110610d86579050905011610d865760046108e05110156104a5575f6104af565b6108006108e05111155b15610d865760036108c0516020525f5260405f205461090052600261090051186104f95760056108c0516020525f5260405f2080336020525f5260405f20905054610d8657610527565b600161090051186105275760046108c0516020525f5260405f2080336020525f5260405f2090505415610d86575b604036610920376108c051604052610540610960610d54565b61096080516109205260208101516109405250610880516108e05160605181830111610d865781608001816111a0838360045afa5050806111805261118090509050602081510180610960828460045afa505050610880516108e051808201828110610d865790509050610880526060516108805111610d86576020610db45f395f51631cff79cd611180526040610920516111a052806111c052806111a0016020610960510180828261096060045afa50508051806020830101601f825f03163682375050601f19601f82516020010116905081015050803b15610d86575f61118061086461119c5f855af1610639573d5f5f3e3d5ffd5b5061092051337f426783e85afe763f71351e2490de9212fd7bdc36450445719f66d1b1d3fefa666020806111805280611180016020610960510180828261096060045afa50508051806020830101601f825f03163682375050601f19601f82516020010116905081019050611180a3600101818118610377575b50506060516108805118610d8657005b63ba989b3e8118610d3857604436103417610d86576004358060a01c610d86576080526024358060201b610d865760a05260805160405260a05160605261070a60e0610d3c565b60e05160c0526001600360c0516020525f5260405f20541460e052602060e0f3610d38565b638e4553a48118610d3857606436103417610d86576004358060a01c610d8657604052602435600401610800813511610d8657602081350180826060375050600460605110610d86576040516060518060a01b905017610880526020806110e0525f610880518060e01c610d86578060201b9050816108c00152601c81019050606051816108c001818183608060045afa5050808201915050806108a0526108a09050816110e00160208251018082828560045afa50508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506110e0f3610d38565b63ef3f27168118610d3857604436103417610d86576004358060a01c610d86576040526024358060011c610d86576060525f543318610d865760405115610d865760605160026040516020525f5260405f2055604051337f718a596dad53b04764791b590c66210545510e24d2d7e61b95facdedf3cac1e760605160805260206080a300610d38565b63f7cd16da811861095f57606436103417610d86576004358060a01c610d86576080526024358060201b610d865760a0526044358060021c610d865760c0525f543318610d865760805115610d8657600260c05111610d865760805160405260a05160605261090f610100610d3c565b6101005160e05260c051600360e0516020525f5260405f205560a051608051337f630db20a1b7788bf2b4789616772519434d81e71ffcbdef93658f6b6db2887eb60c051610100526020610100a4005b636e0ceac98118610d3857608436103417610d86576004358060a01c610d86576080526024358060201b610d865760a0526044358060a01c610d865760c0526064358060011c610d865760e0525f543318610d865760805115610d865760805160405260a0516060526109d3610120610d3c565b610120516101005260e0516004610100516020525f5260405f208060c0516020525f5260405f2090505560c05160a0516080517f32152d80d7adc464d693d6baca16c68f7b208f9544fd17633b905f0cc4e8a63160e051610120526020610120a400610d38565b63894a52478118610d3857606436103417610d86576004358060a01c610d86576080526024358060201b610d865760a0526044358060a01c610d865760c05260805160405260a051606052610a90610100610d3c565b6101005160e052600460e0516020525f5260405f208060c0516020525f5260405f20905054610100526020610100f3610d38565b631a5352b78118610d3857608436103417610d86576004358060a01c610d86576080526024358060201b610d865760a0526044358060a01c610d865760c0526064358060011c610d865760e0525f543318610d865760805115610d865760805160405260a051606052610b38610120610d3c565b610120516101005260e0516005610100516020525f5260405f208060c0516020525f5260405f2090505560c05160a0516080517f554026cb815dfff3f369068ca060f6ea8f10460bc89d9875513d5af794c9a0d660e051610120526020610120a400610d38565b63fc332e738118610c2557606436103417610d86576004358060a01c610d86576080526024358060201b610d865760a0526044358060a01c610d865760c05260805160405260a051606052610bf5610100610d3c565b6101005160e052600560e0516020525f5260405f208060c0516020525f5260405f20905054610100526020610100f35b63759be10c8118610d385734610d86576001543318610d86575f600155335f55337fafe23f9e1f603b288748a507d5a993957e9f14313a5889d5a070851299939d595f6040a200610d38565b63a37b386f8118610d3857604436103417610d86576004358060a01c610d86576080526024358060201b610d865760a05260805160405260a051606052610cb860e0610d3c565b60e05160c0526002600360c0516020525f5260405f20541460e052602060e0f3610d38565b63fd066ecc8118610d3857602436103417610d86576004358060a01c610d86576040525f543318610d86576040516001556040517fe7b5cc087e6e47e33e86bdfe4720b7e849891938b18ff6e0c3f92299de79e60c5f6060a2005b5f5ffd5b6060518060e01c90506040518060201b905017815250565b6040518060201c90508060a01c610d8657815263ffffffff604051168060201c610d86578060e01b9050602082015250565b5f80fd0d3800e50b9f032a007500b40cdd001800550c710d38089f0d380d380d380d38011b0ac408160a3a072f84190db481182a1820a16576797065728300030a001600000000000000000000000056af9c2780e0323810acfdaeab3f58ef6e76fafd
Deployed Bytecode
0x5f3560e01c60026015820660011b610d8a01601e395f51565b63ec55688981186100365734610d86576020610db460403960206040f35b6388a8d6028118610d385734610d86575f5460405260206040f3610d38565b63770817ec8118610d385734610d865760015460405260206040f3610d38565b63e3eece268118610d3857602436103417610d86576004358060a01c610d865760405260026040516020525f5260405f205460605260206060f3610d38565b63803ad4de8118610d3857602436103417610d865760036004356020525f5260405f205460405260206040f3610d38565b63e4021f108118610d385734610d865777ffffffffffffffffffffffffffffffffffffffffffffffff60405260206040f3610d38565b63d7f79ead8118610d3857606436103417610d86576004358060a01c610d8657608052602435600401610800813511610d86576020813501808260a03750506002336020525f5260405f205415610d8657600460a05110610d865760a051600411610d865760c0516109005260046108e0526108e0805160200360031b6020820151811c811b905090506108c0526080516040526108c0516060526101c1610900610d3c565b610900516108e05260036108e0516020525f5260405f2054610900526002610900511861020e5760056108e0516020525f5260405f2080336020525f5260405f20905054610d865761023c565b6001610900511861023c5760046108e0516020525f5260405f2080336020525f5260405f2090505415610d86575b6020610db45f395f51631cff79cd6109205260406080516109405280610960528061094001602060a0510180828260a060045afa50508051806020830101601f825f03163682375050601f19601f82516020010116905081015050803b15610d86575f61092061086461093c5f855af16102b8573d5f5f3e3d5ffd5b50608051337f426783e85afe763f71351e2490de9212fd7bdc36450445719f66d1b1d3fefa66602080610920528061092001602060a0510180828260a060045afa50508051806020830101601f825f03163682375050601f19601f82516020010116905081019050610920a300610d38565b6309c5eabe81186106c357604436103417610d8657600435600401610800813511610d86576020813501808260603750506002336020525f5260405f205415610d86575f610880525f6020905b806108a052606051610880511861038d576106b3565b6060516108805160208101818110610d8657905011610d86576060805161088051602082038113157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82131615610d8657601f81168160051c816103fa578060051b602001850151610422565b816020036101000a6001820160051b60200186015104826101000a8260051b60200187015102015b905090509050905090506108c0526108c0518060c01c90506108e05277ffffffffffffffffffffffffffffffffffffffffffffffff6108c051166108c05261088051601c8101818110610d8657905061088052606051610880516108e051808201828110610d86579050905011610d865760046108e05110156104a5575f6104af565b6108006108e05111155b15610d865760036108c0516020525f5260405f205461090052600261090051186104f95760056108c0516020525f5260405f2080336020525f5260405f20905054610d8657610527565b600161090051186105275760046108c0516020525f5260405f2080336020525f5260405f2090505415610d86575b604036610920376108c051604052610540610960610d54565b61096080516109205260208101516109405250610880516108e05160605181830111610d865781608001816111a0838360045afa5050806111805261118090509050602081510180610960828460045afa505050610880516108e051808201828110610d865790509050610880526060516108805111610d86576020610db45f395f51631cff79cd611180526040610920516111a052806111c052806111a0016020610960510180828261096060045afa50508051806020830101601f825f03163682375050601f19601f82516020010116905081015050803b15610d86575f61118061086461119c5f855af1610639573d5f5f3e3d5ffd5b5061092051337f426783e85afe763f71351e2490de9212fd7bdc36450445719f66d1b1d3fefa666020806111805280611180016020610960510180828261096060045afa50508051806020830101601f825f03163682375050601f19601f82516020010116905081019050611180a3600101818118610377575b50506060516108805118610d8657005b63ba989b3e8118610d3857604436103417610d86576004358060a01c610d86576080526024358060201b610d865760a05260805160405260a05160605261070a60e0610d3c565b60e05160c0526001600360c0516020525f5260405f20541460e052602060e0f3610d38565b638e4553a48118610d3857606436103417610d86576004358060a01c610d8657604052602435600401610800813511610d8657602081350180826060375050600460605110610d86576040516060518060a01b905017610880526020806110e0525f610880518060e01c610d86578060201b9050816108c00152601c81019050606051816108c001818183608060045afa5050808201915050806108a0526108a09050816110e00160208251018082828560045afa50508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506110e0f3610d38565b63ef3f27168118610d3857604436103417610d86576004358060a01c610d86576040526024358060011c610d86576060525f543318610d865760405115610d865760605160026040516020525f5260405f2055604051337f718a596dad53b04764791b590c66210545510e24d2d7e61b95facdedf3cac1e760605160805260206080a300610d38565b63f7cd16da811861095f57606436103417610d86576004358060a01c610d86576080526024358060201b610d865760a0526044358060021c610d865760c0525f543318610d865760805115610d8657600260c05111610d865760805160405260a05160605261090f610100610d3c565b6101005160e05260c051600360e0516020525f5260405f205560a051608051337f630db20a1b7788bf2b4789616772519434d81e71ffcbdef93658f6b6db2887eb60c051610100526020610100a4005b636e0ceac98118610d3857608436103417610d86576004358060a01c610d86576080526024358060201b610d865760a0526044358060a01c610d865760c0526064358060011c610d865760e0525f543318610d865760805115610d865760805160405260a0516060526109d3610120610d3c565b610120516101005260e0516004610100516020525f5260405f208060c0516020525f5260405f2090505560c05160a0516080517f32152d80d7adc464d693d6baca16c68f7b208f9544fd17633b905f0cc4e8a63160e051610120526020610120a400610d38565b63894a52478118610d3857606436103417610d86576004358060a01c610d86576080526024358060201b610d865760a0526044358060a01c610d865760c05260805160405260a051606052610a90610100610d3c565b6101005160e052600460e0516020525f5260405f208060c0516020525f5260405f20905054610100526020610100f3610d38565b631a5352b78118610d3857608436103417610d86576004358060a01c610d86576080526024358060201b610d865760a0526044358060a01c610d865760c0526064358060011c610d865760e0525f543318610d865760805115610d865760805160405260a051606052610b38610120610d3c565b610120516101005260e0516005610100516020525f5260405f208060c0516020525f5260405f2090505560c05160a0516080517f554026cb815dfff3f369068ca060f6ea8f10460bc89d9875513d5af794c9a0d660e051610120526020610120a400610d38565b63fc332e738118610c2557606436103417610d86576004358060a01c610d86576080526024358060201b610d865760a0526044358060a01c610d865760c05260805160405260a051606052610bf5610100610d3c565b6101005160e052600560e0516020525f5260405f208060c0516020525f5260405f20905054610100526020610100f35b63759be10c8118610d385734610d86576001543318610d86575f600155335f55337fafe23f9e1f603b288748a507d5a993957e9f14313a5889d5a070851299939d595f6040a200610d38565b63a37b386f8118610d3857604436103417610d86576004358060a01c610d86576080526024358060201b610d865760a05260805160405260a051606052610cb860e0610d3c565b60e05160c0526002600360c0516020525f5260405f20541460e052602060e0f3610d38565b63fd066ecc8118610d3857602436103417610d86576004358060a01c610d86576040525f543318610d86576040516001556040517fe7b5cc087e6e47e33e86bdfe4720b7e849891938b18ff6e0c3f92299de79e60c5f6060a2005b5f5ffd5b6060518060e01c90506040518060201b905017815250565b6040518060201c90508060a01c610d8657815263ffffffff604051168060201c610d86578060e01b9050602082015250565b5f80fd0d3800e50b9f032a007500b40cdd001800550c710d38089f0d380d380d380d38011b0ac408160a3a072f00000000000000000000000056af9c2780e0323810acfdaeab3f58ef6e76fafd
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000056af9c2780e0323810acfdaeab3f58ef6e76fafd
-----Decoded View---------------
Arg [0] : _proxy (address): 0x56aF9C2780E0323810aCFdAeaB3F58ef6e76FaFd
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000056af9c2780e0323810acfdaeab3f58ef6e76fafd
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.