Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 2,359 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Submit_logic_cal... | 18080036 | 590 days ago | IN | 0 ETH | 0.01816676 | ||||
Submit_logic_cal... | 18079379 | 590 days ago | IN | 0 ETH | 0.0077788 | ||||
Submit_logic_cal... | 18079201 | 590 days ago | IN | 0 ETH | 0.0140501 | ||||
Update_valset | 18079062 | 590 days ago | IN | 0 ETH | 0.00845871 | ||||
Submit_logic_cal... | 18079012 | 590 days ago | IN | 0 ETH | 0.00710419 | ||||
Submit_logic_cal... | 18066303 | 592 days ago | IN | 0 ETH | 0.00854609 | ||||
Submit_logic_cal... | 18066297 | 592 days ago | IN | 0 ETH | 0.00427677 | ||||
Submit_logic_cal... | 18066296 | 592 days ago | IN | 0 ETH | 0.01093664 | ||||
Submit_logic_cal... | 18066274 | 592 days ago | IN | 0 ETH | 0.008763 | ||||
Submit_logic_cal... | 18047693 | 594 days ago | IN | 0 ETH | 0.00517908 | ||||
Submit_logic_cal... | 18043648 | 595 days ago | IN | 0 ETH | 0.01310886 | ||||
Submit_logic_cal... | 18037905 | 596 days ago | IN | 0 ETH | 0.00180894 | ||||
Submit_logic_cal... | 18037890 | 596 days ago | IN | 0 ETH | 0.00797643 | ||||
Submit_logic_cal... | 18037877 | 596 days ago | IN | 0 ETH | 0.01127178 | ||||
Submit_logic_cal... | 18037838 | 596 days ago | IN | 0 ETH | 0.00804144 | ||||
Submit_logic_cal... | 18037824 | 596 days ago | IN | 0 ETH | 0.00624654 | ||||
Submit_logic_cal... | 18037459 | 596 days ago | IN | 0 ETH | 0.00802219 | ||||
Submit_logic_cal... | 18037444 | 596 days ago | IN | 0 ETH | 0.00822471 | ||||
Submit_logic_cal... | 18037100 | 596 days ago | IN | 0 ETH | 0.01198759 | ||||
Submit_logic_cal... | 18037074 | 596 days ago | IN | 0 ETH | 0.01331348 | ||||
Submit_logic_cal... | 18037058 | 596 days ago | IN | 0 ETH | 0.0108626 | ||||
Submit_logic_cal... | 18037051 | 596 days ago | IN | 0 ETH | 0.01319031 | ||||
Submit_logic_cal... | 18037033 | 596 days ago | IN | 0 ETH | 0.01238874 | ||||
Submit_logic_cal... | 18037026 | 596 days ago | IN | 0 ETH | 0.0123276 | ||||
Submit_logic_cal... | 18037001 | 596 days ago | IN | 0 ETH | 0.01132775 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Compass-EVM
Compiler Version
vyper:0.3.7
Contract Source Code (Vyper language format)
# @version 0.3.7 """ @title Compass-EVM @author Volume.Finance """ MAX_VALIDATORS: constant(uint256) = 320 MAX_PAYLOAD: constant(uint256) = 20480 MAX_BATCH: constant(uint256) = 64 POWER_THRESHOLD: constant(uint256) = 2_863_311_530 # 2/3 of 2^32, Validator powers will be normalized to sum to 2 ^ 32 in every valset update. TURNSTONE_ID: immutable(bytes32) interface ERC20: def balanceOf(_owner: address) -> uint256: view struct Valset: validators: DynArray[address, MAX_VALIDATORS] # Validator addresses powers: DynArray[uint256, MAX_VALIDATORS] # Powers of given validators, in the same order as validators array valset_id: uint256 # nonce of this validator set struct Signature: v: uint256 r: uint256 s: uint256 struct Consensus: valset: Valset # Valset data signatures: DynArray[Signature, MAX_VALIDATORS] # signatures in the same order as validator array in valset struct LogicCallArgs: logic_contract_address: address # the arbitrary contract address to external call payload: Bytes[MAX_PAYLOAD] # payloads struct TokenSendArgs: receiver: DynArray[address, MAX_BATCH] amount: DynArray[uint256, MAX_BATCH] event ValsetUpdated: checkpoint: bytes32 valset_id: uint256 event LogicCallEvent: logic_contract_address: address payload: Bytes[MAX_PAYLOAD] message_id: uint256 event SendToPalomaEvent: token: address sender: address receiver: String[64] amount: uint256 event BatchSendEvent: token: address message_id: uint256 event ERC20DeployedEvent: paloma_denom: String[64] token_contract: address name: String[64] symbol: String[32] decimals: uint8 last_checkpoint: public(bytes32) last_valset_id: public(uint256) message_id_used: public(HashMap[uint256, bool]) # turnstone_id: unique identifier for turnstone instance # valset: initial validator set @external def __init__(turnstone_id: bytes32, valset: Valset): TURNSTONE_ID = turnstone_id cumulative_power: uint256 = 0 i: uint256 = 0 # check cumulative power is enough for validator in valset.validators: cumulative_power += valset.powers[i] if cumulative_power >= POWER_THRESHOLD: break i += 1 assert cumulative_power >= POWER_THRESHOLD, "Insufficient Power" new_checkpoint: bytes32 = keccak256(_abi_encode(valset.validators, valset.powers, valset.valset_id, turnstone_id, method_id=method_id("checkpoint(address[],uint256[],uint256,bytes32)"))) self.last_checkpoint = new_checkpoint self.last_valset_id = valset.valset_id log ValsetUpdated(new_checkpoint, valset.valset_id) @external @pure def turnstone_id() -> bytes32: return TURNSTONE_ID # utility function to verify EIP712 signature @internal @pure def verify_signature(signer: address, hash: bytes32, sig: Signature) -> bool: message_digest: bytes32 = keccak256(concat(convert("\x19Ethereum Signed Message:\n32", Bytes[28]), hash)) return signer == ecrecover(message_digest, sig.v, sig.r, sig.s) # consensus: validator set and signatures # hash: what we are checking they have signed @internal def check_validator_signatures(consensus: Consensus, hash: bytes32): i: uint256 = 0 cumulative_power: uint256 = 0 for sig in consensus.signatures: if sig.v != 0: assert self.verify_signature(consensus.valset.validators[i], hash, sig), "Invalid Signature" cumulative_power += consensus.valset.powers[i] if cumulative_power >= POWER_THRESHOLD: break i += 1 assert cumulative_power >= POWER_THRESHOLD, "Insufficient Power" # Make a new checkpoint from the supplied validator set # A checkpoint is a hash of all relevant information about the valset. This is stored by the contract, # instead of storing the information directly. This saves on storage and gas. # The format of the checkpoint is: # keccak256 hash of abi_encoded checkpoint(validators[], powers[], valset_id, turnstone_id) # The validator powers must be decreasing or equal. This is important for checking the signatures on the # next valset, since it allows the caller to stop verifying signatures once a quorum of signatures have been verified. @internal @view def make_checkpoint(valset: Valset) -> bytes32: return keccak256(_abi_encode(valset.validators, valset.powers, valset.valset_id, TURNSTONE_ID, method_id=method_id("checkpoint(address[],uint256[],uint256,bytes32)"))) # This updates the valset by checking that the validators in the current valset have signed off on the # new valset. The signatures supplied are the signatures of the current valset over the checkpoint hash # generated from the new valset. # Anyone can call this function, but they must supply valid signatures of constant_powerThreshold of the current valset over # the new valset. # valset: new validator set to update with # consensus: current validator set and signatures @external def update_valset(consensus: Consensus, new_valset: Valset): # check if new valset_id is greater than current valset_id assert new_valset.valset_id > consensus.valset.valset_id, "Invalid Valset ID" cumulative_power: uint256 = 0 i: uint256 = 0 # check cumulative power is enough for validator in new_valset.validators: cumulative_power += new_valset.powers[i] if cumulative_power >= POWER_THRESHOLD: break i += 1 assert cumulative_power >= POWER_THRESHOLD, "Insufficient Power" # check if the supplied current validator set matches the saved checkpoint assert self.last_checkpoint == self.make_checkpoint(consensus.valset), "Incorrect Checkpoint" # calculate the new checkpoint new_checkpoint: bytes32 = self.make_checkpoint(new_valset) # check if enough validators signed new validator set (new checkpoint) self.check_validator_signatures(consensus, new_checkpoint) self.last_checkpoint = new_checkpoint self.last_valset_id = new_valset.valset_id log ValsetUpdated(new_checkpoint, new_valset.valset_id) # This makes calls to contracts that execute arbitrary logic # message_id is to prevent replay attack and every message_id can be used only once @external def submit_logic_call(consensus: Consensus, args: LogicCallArgs, message_id: uint256, deadline: uint256): assert block.timestamp <= deadline, "Timeout" assert not self.message_id_used[message_id], "Used Message_ID" self.message_id_used[message_id] = True # check if the supplied current validator set matches the saved checkpoint assert self.last_checkpoint == self.make_checkpoint(consensus.valset), "Incorrect Checkpoint" # signing data is keccak256 hash of abi_encoded logic_call(args, message_id, turnstone_id, deadline) args_hash: bytes32 = keccak256(_abi_encode(args, message_id, TURNSTONE_ID, deadline, method_id=method_id("logic_call((address,bytes),uint256,bytes32,uint256)"))) # check if enough validators signed args_hash self.check_validator_signatures(consensus, args_hash) # make call to logic contract raw_call(args.logic_contract_address, args.payload) log LogicCallEvent(args.logic_contract_address, args.payload, message_id) @internal def _safe_transfer_from(_token: address, _from: address, _to: address, _value: uint256): _response: Bytes[32] = raw_call( _token, _abi_encode( _from, _to, _value, method_id=method_id("transferFrom(address,address,uint256)")), max_outsize=32 ) # dev: failed transferFrom if len(_response) > 0: assert convert(_response, bool), "TransferFrom failed" @external def send_token_to_paloma(token: address, receiver: String[64], amount: uint256): _balance: uint256 = ERC20(token).balanceOf(self) self._safe_transfer_from(token, msg.sender, self, amount) _balance -= ERC20(token).balanceOf(self) assert _balance > 0 log SendToPalomaEvent(token, msg.sender, receiver, amount) @internal def _safe_transfer(_token: address, _to: address, _value: uint256): _response: Bytes[32] = raw_call( _token, _abi_encode( _to, _value, method_id=method_id("transfer(address,uint256)")), max_outsize=32 ) # dev: failed transferFrom if len(_response) > 0: assert convert(_response, bool), "TransferFrom failed" @external def submit_batch(consensus: Consensus, token: address, args: TokenSendArgs, message_id: uint256, deadline: uint256): assert block.timestamp <= deadline, "Timeout" assert not self.message_id_used[message_id], "Used Message_ID" length: uint256 = len(args.receiver) assert length == len(args.amount) self.message_id_used[message_id] = True # check if the supplied current validator set matches the saved checkpoint assert self.last_checkpoint == self.make_checkpoint(consensus.valset), "Incorrect Checkpoint" # signing data is keccak256 hash of abi_encoded logic_call(args, message_id, turnstone_id, deadline) args_hash: bytes32 = keccak256(_abi_encode(token, args, message_id, TURNSTONE_ID, deadline, method_id=method_id("batch_call(address,(address[],uint256[]),uint256,bytes32,uint256)"))) # check if enough validators signed args_hash self.check_validator_signatures(consensus, args_hash) # make call to logic contract for i in range(MAX_BATCH): if i >= length: break self._safe_transfer(token, args.receiver[i], args.amount[i]) log BatchSendEvent(token, message_id) @external def deploy_erc20(_paloma_denom: String[64], _name: String[64], _symbol: String[32], _decimals: uint8, _blueprint: address): assert msg.sender == self, "Invalid" erc20: address = create_from_blueprint(_blueprint, self, _name, _symbol, _decimals, code_offset=3) log ERC20DeployedEvent(_paloma_denom, erc20, _name, _symbol, _decimals)
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"name":"ValsetUpdated","inputs":[{"name":"checkpoint","type":"bytes32","indexed":false},{"name":"valset_id","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"LogicCallEvent","inputs":[{"name":"logic_contract_address","type":"address","indexed":false},{"name":"payload","type":"bytes","indexed":false},{"name":"message_id","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"SendToPalomaEvent","inputs":[{"name":"token","type":"address","indexed":false},{"name":"sender","type":"address","indexed":false},{"name":"receiver","type":"string","indexed":false},{"name":"amount","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"BatchSendEvent","inputs":[{"name":"token","type":"address","indexed":false},{"name":"message_id","type":"uint256","indexed":false}],"anonymous":false,"type":"event"},{"name":"ERC20DeployedEvent","inputs":[{"name":"paloma_denom","type":"string","indexed":false},{"name":"token_contract","type":"address","indexed":false},{"name":"name","type":"string","indexed":false},{"name":"symbol","type":"string","indexed":false},{"name":"decimals","type":"uint8","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"nonpayable","type":"constructor","inputs":[{"name":"turnstone_id","type":"bytes32"},{"name":"valset","type":"tuple","components":[{"name":"validators","type":"address[]"},{"name":"powers","type":"uint256[]"},{"name":"valset_id","type":"uint256"}]}],"outputs":[]},{"stateMutability":"pure","type":"function","name":"turnstone_id","inputs":[],"outputs":[{"name":"","type":"bytes32"}]},{"stateMutability":"nonpayable","type":"function","name":"update_valset","inputs":[{"name":"consensus","type":"tuple","components":[{"name":"valset","type":"tuple","components":[{"name":"validators","type":"address[]"},{"name":"powers","type":"uint256[]"},{"name":"valset_id","type":"uint256"}]},{"name":"signatures","type":"tuple[]","components":[{"name":"v","type":"uint256"},{"name":"r","type":"uint256"},{"name":"s","type":"uint256"}]}]},{"name":"new_valset","type":"tuple","components":[{"name":"validators","type":"address[]"},{"name":"powers","type":"uint256[]"},{"name":"valset_id","type":"uint256"}]}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"submit_logic_call","inputs":[{"name":"consensus","type":"tuple","components":[{"name":"valset","type":"tuple","components":[{"name":"validators","type":"address[]"},{"name":"powers","type":"uint256[]"},{"name":"valset_id","type":"uint256"}]},{"name":"signatures","type":"tuple[]","components":[{"name":"v","type":"uint256"},{"name":"r","type":"uint256"},{"name":"s","type":"uint256"}]}]},{"name":"args","type":"tuple","components":[{"name":"logic_contract_address","type":"address"},{"name":"payload","type":"bytes"}]},{"name":"message_id","type":"uint256"},{"name":"deadline","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"send_token_to_paloma","inputs":[{"name":"token","type":"address"},{"name":"receiver","type":"string"},{"name":"amount","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"submit_batch","inputs":[{"name":"consensus","type":"tuple","components":[{"name":"valset","type":"tuple","components":[{"name":"validators","type":"address[]"},{"name":"powers","type":"uint256[]"},{"name":"valset_id","type":"uint256"}]},{"name":"signatures","type":"tuple[]","components":[{"name":"v","type":"uint256"},{"name":"r","type":"uint256"},{"name":"s","type":"uint256"}]}]},{"name":"token","type":"address"},{"name":"args","type":"tuple","components":[{"name":"receiver","type":"address[]"},{"name":"amount","type":"uint256[]"}]},{"name":"message_id","type":"uint256"},{"name":"deadline","type":"uint256"}],"outputs":[]},{"stateMutability":"nonpayable","type":"function","name":"deploy_erc20","inputs":[{"name":"_paloma_denom","type":"string"},{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimals","type":"uint8"},{"name":"_blueprint","type":"address"}],"outputs":[]},{"stateMutability":"view","type":"function","name":"last_checkpoint","inputs":[],"outputs":[{"name":"","type":"bytes32"}]},{"stateMutability":"view","type":"function","name":"last_valset_id","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"message_id_used","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"bool"}]}]
Contract Creation Code
6020611ce8600039600051602081611cc8016000396000518101610140602082611cc80160003960005111611cc357602081611cc801600039600051806040526000816101408111611cc357801561008357905b60208160051b6020860101611cc8016000396000518060a01c611cc3578160051b60600152600101818118610053575b50505050602060208201611cc8016000396000518101610140602082611cc80160003960005111611cc357602081611cc8016000396000518061286052602082018160051b8082611cc8016128803950505050602060408201611cc801600039600051615080525034611cc3576020611cc860003960005161a200526040366150a03760006040516101408111611cc357801561018857905b8060051b606001516150e0526150a0516150c05161286051811015611cc35760051b6128800151808201828110611cc357905090506150a05263aaaaaaaa6150a0511061016857610188565b6150c05160018101818110611cc35790506150c05260010181811861011c575b505063aaaaaaaa6150a05110156101ff5760126150e0527f496e73756666696369656e7420506f7765720000000000000000000000000000615100526150e0506150e0518061510001601f826000031636823750506308c379a06150a05260206150c052601f19601f6150e05101166044016150bcfd5b63299018c261510452600460808061512452806151240160006040518083528060051b6000826101408111611cc357801561025357905b8060051b606001518160051b602088010152600101818118610236575b50508201602001915050905081019050806151445280615124016000612860518083528060051b6000826101408111611cc35780156102ac57905b8060051b61288001518160051b60208801015260010181811861028e575b5050820160200191505090508101905061508051615164526020611cc86000396000516151845201615100526151008051602082012090506150e0526150e051600055615080516001557f09d40458cf931745f8d532ef13fa9c74bfb7fe0edcee88e0a677b0cbef88f0f96150e0516151005261508051615120526040615100a161198361033f61887d396119a361887df36003361161000c5761143f565b60003560e01c346119715763f0f40504811861003e576004361061197157602061198360003960005160405260206040f35b63eadf4af78118610518576101e436106119715760043560040180358101803581016101408135116119715780358061cb405260008161014081116119715780156100ab57905b8060051b6020850101358060a01c611971578160051b61cb600152600101818118610085575b50505050602081013581016101408135116119715780358061f36052602082018160051b808261f3803750505050604081013562011b805250602081013581016101408135116119715780358062011ba0526020820160608202808262011bc03750505050506024356004018035810161014081351161197157803580620193c052600081610140811161197157801561016857905b8060051b6020850101358060a01c611971578160051b620193e00152600101818118610141575b5050505060208101358101610140813511611971578035806201bbe052602082018160051b80826201bc00375050505060408101356201e400525062011b80516201e40051116102215760116201e420527f496e76616c69642056616c7365742049440000000000000000000000000000006201e440526201e420506201e42051806201e44001601f826000031636823750506308c379a06201e3e05260206201e40052601f19601f6201e4205101166044016201e3fcfd5b6040366201e420376000620193c05161014081116119715780156102b857905b8060051b620193e001516201e460526201e420516201e440516201bbe0518110156119715760051b6201bc00015180820182811061197157905090506201e4205263aaaaaaaa6201e4205110610296576102b8565b6201e44051600181018181106119715790506201e44052600101818118610241575b505063aaaaaaaa6201e4205110156103395760126201e460527f496e73756666696369656e7420506f77657200000000000000000000000000006201e480526201e460506201e46051806201e48001601f826000031636823750506308c379a06201e4205260206201e44052601f19601f6201e4605101166044016201e43cfd5b61cb4051806040528060051b8060608261cb6060045afa50505061f3605180612860528060051b806128808261f38060045afa50505062011b8051615080526103846201e4606116b8565b6201e4605160005418156104015760146201e480527f496e636f727265637420436865636b706f696e740000000000000000000000006201e4a0526201e480506201e48051806201e4a001601f826000031636823750506308c379a06201e4405260206201e46052601f19601f6201e4805101166044016201e45cfd5b620193c051806040528060051b80606082620193e060045afa5050506201bbe05180612860528060051b80612880826201bc0060045afa5050506201e40051615080526104506201e4806116b8565b6201e480516201e4605261cb4051806101a0528060051b806101c08261cb6060045afa50505061f36051806129c0528060051b806129e08261f38060045afa50505062011b80516151e05262011ba051806152005260608102806152208262011bc060045afa5050506201e4605161ca20526104ca6114e8565b6201e460516000556201e400516001557f09d40458cf931745f8d532ef13fa9c74bfb7fe0edcee88e0a677b0cbef88f0f96201e460516201e480526201e400516201e4a05260406201e480a1005b631029ae6f81186109cb576101e436106119715760043560040180358101803581016101408135116119715780358061cb4052600081610140811161197157801561058557905b8060051b6020850101358060a01c611971578160051b61cb60015260010181811861055f575b50505050602081013581016101408135116119715780358061f36052602082018160051b808261f3803750505050604081013562011b805250602081013581016101408135116119715780358062011ba0526020820160608202808262011bc037505050505060243560040180358060a01c61197157620193c0526020810135810161500081351161197157803580620193e0526020820181816201940037505050506064354211156106a15760076201e400527f54696d656f7574000000000000000000000000000000000000000000000000006201e420526201e400506201e40051806201e42001601f826000031636823750506308c379a06201e3c05260206201e3e052601f19601f6201e4005101166044016201e3dcfd5b60026044356020526000526040600020541561072657600f6201e400527f55736564204d6573736167655f494400000000000000000000000000000000006201e420526201e400506201e40051806201e42001601f826000031636823750506308c379a06201e3c05260206201e3e052601f19601f6201e4005101166044016201e3dcfd5b6001600260443560205260005260406000205561cb4051806040528060051b8060608261cb6060045afa50505061f3605180612860528060051b806128808261f38060045afa50505062011b8051615080526107846201e4006116b8565b6201e4005160005418156108015760146201e420527f496e636f727265637420436865636b706f696e740000000000000000000000006201e440526201e420506201e42051806201e44001601f826000031636823750506308c379a06201e3e05260206201e40052601f19601f6201e4205101166044016201e3fcfd5b63980721b26201e4245260046080806201e44452806201e444016040620193c0518252806020830152808201620193e051808252602082018181836201940060045afa5050508051806020830101601f82600003163682375050601f19601f825160200101169050810190509050810190506044356201e4645260206119836000396000516201e484526064356201e4a452016201e420526201e4208051602082012090506201e4005261cb4051806101a0528060051b806101c08261cb6060045afa50505061f36051806129c0528060051b806129e08261f38060045afa50505062011b80516151e05262011ba051806152005260608102806152208262011bc060045afa5050506201e4005161ca205261091b6114e8565b620193e0600060008251602084016000620193c0515af19050610943573d600060003e3d6000fd5b7f0d2bd340033bb64fd086788e6685b480a9bf10b98d63e9b8073eb5d0bd6c6ee96060620193c0516201e42052806201e44052806201e42001620193e051808252602082018181836201940060045afa5050508051806020830101601f82600003163682375050601f19601f825160200101169050810190506044356201e460526201e420a1005b63b39dcd5e8118610b4d5760843610611971576004358060a01c611971576101e05260243560040160408135116119715780358061020052602082018181610220375050506101e0516370a0823161028052306102a0526020610280602461029c845afa610a3e573d600060003e3d6000fd5b60203d1061197157610280905051610260526101e051604052336060523060805260443560a052610a6d6117a2565b610260516101e0516370a0823161028052306102a0526020610280602461029c845afa610a9f573d600060003e3d6000fd5b60203d10611971576102809050518082038281116119715790509050610260526102605115611971577f75a16dbdc936366f3b5b1a7aaabc5d7b28dcf94ce2eb5b3efbe0bce0da7ee66960806101e05161028052336102a052806102c0528061028001610200518082526020820181818361022060045afa5050508051806020830101601f82600003163682375050601f19601f825160200101169050810190506044356102e052610280a1005b630ffc0bdb81186110dd5761022436106119715760043560040180358101803581016101408135116119715780358061cb40526000816101408111611971578015610bba57905b8060051b6020850101358060a01c611971578160051b61cb600152600101818118610b94575b50505050602081013581016101408135116119715780358061f36052602082018160051b808261f3803750505050604081013562011b805250602081013581016101408135116119715780358062011ba0526020820160608202808262011bc03750505050506024358060a01c61197157620193c05260443560040180358101604081351161197157803580620193e05260008160408111611971578015610c8557905b8060051b6020850101358060a01c611971578160051b620194000152600101818118610c5e575b505050506020810135810160408135116119715780358062019c0052602082018160051b808262019c20375050505050608435421115610d2e5760076201a420527f54696d656f7574000000000000000000000000000000000000000000000000006201a440526201a420506201a42051806201a44001601f826000031636823750506308c379a06201a3e05260206201a40052601f19601f6201a4205101166044016201a3fcfd5b600260643560205260005260406000205415610db357600f6201a420527f55736564204d6573736167655f494400000000000000000000000000000000006201a440526201a420506201a42051806201a44001601f826000031636823750506308c379a06201a3e05260206201a40052601f19601f6201a4205101166044016201a3fcfd5b620193e0516201a4205262019c00516201a4205118611971576001600260643560205260005260406000205561cb4051806040528060051b8060608261cb6060045afa50505061f3605180612860528060051b806128808261f38060045afa50505062011b805161508052610e2a6201a4406116b8565b6201a440516000541815610ea75760146201a460527f496e636f727265637420436865636b706f696e740000000000000000000000006201a480526201a460506201a46051806201a48001601f826000031636823750506308c379a06201a4205260206201a44052601f19601f6201a4605101166044016201a43cfd5b63ecaa10b96201a46452600460a0620193c0516201a48452806201a4a452806201a4840160408082528082016000620193e0518083528060051b60008260408111611971578015610f1357905b8060051b6201940001518160051b602088010152600101818118610ef4575b50508201602001915050905081019050806020830152808201600062019c00518083528060051b60008260408111611971578015610f6c57905b8060051b62019c2001518160051b602088010152600101818118610f4d575b505082016020019150509050810190509050810190506064356201a4c45260206119836000396000516201a4e4526084356201a50452016201a460526201a4608051602082012090506201a4405261cb4051806101a0528060051b806101c08261cb6060045afa50505061f36051806129c0528060051b806129e08261f38060045afa50505062011b80516151e05262011ba051806152005260608102806152208262011bc060045afa5050506201a4405161ca205261102a6114e8565b60006040905b806201a460526201a420516201a460511061104a5761109f565b620193c0516040526201a46051620193e0518110156119715760051b6201940001516060526201a4605162019c00518110156119715760051b62019c200151608052611094611891565b600101818118611030575b50507fba199fb06e908b6eca45bc6e460f07d1888e4a0606361da80e679eac61d11103620193c0516201a460526064356201a4805260406201a460a1005b6308a92ad781186113d25761010436106119715760043560040160408135116119715780358060405260208201818160603750505060243560040160408135116119715780358060a05260208201818160c03750505060443560040160208135116119715780358061010052602082018035610120525050506064358060081c61197157610140526084358060a01c6119715761016052303318156111e2576007610180527f496e76616c6964000000000000000000000000000000000000000000000000006101a0526101805061018051806101a001601f826000031636823750506308c379a061014052602061016052601f19601f61018051011660440161015cfd5b610160516080306101a0526101a0516101e0528061020052806101e00160a0518082526020820181818360c060045afa5050508051806020830101601f82600003163682375050601f19601f825160200101169050810190508061022052806101e001610100518082526020820161012051815250508051806020830101601f82600003163682375050601f19601f82516020010116905081019050610140516101c0526101c051610240526003823b0359600182126119715781600382863c8181018381856101e060045afa5050828201816000f08015611971579050905090509050610180527f7144f66490771d357f3d6d385605288e1579754e5555f2e01114a2945f394e5b60a0806101a052806101a00160405180825260208201818183606060045afa5050508051806020830101601f82600003163682375050601f19601f82516020010116905081019050610180516101c052806101e052806101a00160a0518082526020820181818360c060045afa5050508051806020830101601f82600003163682375050601f19601f825160200101169050810190508061020052806101a001610100518082526020820161012051815250508051806020830101601f82600003163682375050601f19601f8251602001011690508101905061014051610220526101a0a1005b63a9a4a98381186113f157600436106119715760005460405260206040f35b634da6ecc9811861141057600436106119715760015460405260206040f35b6338d6172d811861143d576024361061197157600260043560205260005260406000205460405260206040f35b505b60006000fd5b6000601c610100527f19457468657265756d205369676e6564204d6573736167653a0a333200000000610120526101008051602082018361016001815181525050808301925050506060518161016001526020810190508061014052610140905080516020820120905060e05260e051610100526080516101205260a0516101405260c0516101605260206000608061010060015afa5060005160405114815250565b60403661ca4037600061520051610140811161197157801561163f57905b6060810261522001805161ca8052602081015161caa052604081015161cac0525061ca80511561161f5761ca40516101a0518110156119715760051b6101c0015160405261ca205160605261ca805160805261caa05160a05261cac05160c05261157161cae0611445565b61cae0516115df57601161cb00527f496e76616c6964205369676e617475726500000000000000000000000000000061cb205261cb005061cb00518061cb2001601f826000031636823750506308c379a061cac052602061cae052601f19601f61cb0051011660440161cadcfd5b61ca605161ca40516129c0518110156119715760051b6129e00151808201828110611971579050905061ca605263aaaaaaaa61ca60511061161f5761163f565b61ca40516001810181811061197157905061ca4052600101818118611506575b505063aaaaaaaa61ca605110156116b657601261ca80527f496e73756666696369656e7420506f776572000000000000000000000000000061caa05261ca805061ca80518061caa001601f826000031636823750506308c379a061ca4052602061ca6052601f19601f61ca8051011660440161ca5cfd5b565b63299018c26150a45260046080806150c452806150c40160006040518083528060051b600082610140811161197157801561170c57905b8060051b606001518160051b6020880101526001018181186116ef575b50508201602001915050905081019050806150e452806150c4016000612860518083528060051b600082610140811161197157801561176557905b8060051b61288001518160051b602088010152600101818118611747575b505082016020019150509050810190506150805161510452602061198360003960005161512452016150a0526150a0805160208201209050815250565b6323b872dd610104526004606051610124526080516101445260a05161016452606001610100526101005060206101c06101005161012060006040515af16117ef573d600060003e3d6000fd5b3d602081183d60201002186101a0526101a080518060c05260208201805160e05250505060c0511561188f5760e05160c05160200360031b1c61188f576013610100527f5472616e7366657246726f6d206661696c6564000000000000000000000000006101205261010050610100518061012001601f826000031636823750506308c379a060c052602060e052601f19601f61010051011660440160dcfd5b565b63a9059cbb60e4526004606051610104526080516101245260400160e05260e050602061018060e05161010060006040515af16118d3573d600060003e3d6000fd5b3d602081183d60201002186101605261016080518060a05260208201805160c05250505060a0511561196f5760c05160a05160200360031b1c61196f57601360e0527f5472616e7366657246726f6d206661696c6564000000000000000000000000006101005260e05060e0518061010001601f826000031636823750506308c379a060a052602060c052601f19601f60e051011660440160bcfd5b565b600080fda165767970657283000307000b005b600080fd313636343038340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000058000000000000000000000000000000000000000000000000000000000000018240000000000000000000000000000000000000000000000000000000000000028000000000000000000000000092604a080524eff1c875ff13a1b88cbdd41df370000000000000000000000006dc59ee4bdfa2c791229004f29b08f783491a934000000000000000000000000deea5b069208e0ee37b630a3e7672fc50e8fe24a000000000000000000000000c47b85c7577260d995be7ab65728ae33b4cd26cd000000000000000000000000ade5f5efeae72102d998f6c496ea59731a70eeb0000000000000000000000000279fc7c0ebef3328d3899fe73464347a764c5f2c000000000000000000000000aac74d38c82c367b3da7482e3aecf6dd7a512ef200000000000000000000000043e218f96a567dc26c6e65fcabf1fde26af694440000000000000000000000005a7c9fc846b18944fd2b8f8ae7255db5af7b9c040000000000000000000000001ad90db98da083e117d5f62a1673fc0f3a5930ca00000000000000000000000063f55bc560e981d53e1f5bb3643e3a96d26fc6350000000000000000000000001dd71ee9e7b1cff10ccb7e12520999c2d4fb45e50000000000000000000000004a89f96fdff3c161937cfbc3e22d2e325612aaec0000000000000000000000001f6ef2784cbb2a5011d8cf12356fb5ee3eaef372000000000000000000000000443266026738061972012e62d5ecd9d98da8b6f4000000000000000000000000443520951d766456f2ac5578f3e7e4b56a7bcf63000000000000000000000000eb13a069d119558b6653cbc8c069dafb3d6758e70000000000000000000000007c3de83d90e8d2001a7e3f38e6a7058334cb291e0000000000000000000000007b5f4b6490ebc2dd03b717d7d26edc78451a88b4000000000000000000000000377d23948d41579f2c3ca40308e3bdd53f6da7b20000000000000000000000000daabb4ff60423eb1f14cc6731394e098ad51bcb000000000000000000000000cfbbf6341cf13a39ffcaf24b86de09489116783b000000000000000000000000179206cd9080a8ee77c2256a27050112da13b2f60000000000000000000000003a188de3d16ddee783990dded1b629e95c8242d900000000000000000000000031cbc8e1bc86d1ba0f5e77afc324d785c54ae3200000000000000000000000006bf4893a5a54191cf16e6337956aa4c99c793903000000000000000000000000827d61ccf62a78a9ac192cb4b47c51df7db4b1660000000000000000000000008b6cd0884e227e7ef90fc4c8b642d723109271c3000000000000000000000000837f0c0d5b50f5463e4dafcd7bae63207e2f63800000000000000000000000009314f0e1d09e1c541c1db02b622af9ca5f1ac9fe000000000000000000000000722e2b4107d3dc5e99cbb4919a1580ae70baab74000000000000000000000000fc0f1e32e0db02cd81de8f662a51e2c285d5228d000000000000000000000000eb784b37365c302c97c9ec8cb0933ce344e6de42000000000000000000000000ee21301af1d9562b5cbedf520077ea0a9bc9d535000000000000000000000000bbefe691d2c3bbb835ce2958b453ccd05bdb27a50000000000000000000000001829a4a33cc162d3d55ed79d77574005a084142b0000000000000000000000005cb3114baf54395da6c3665616bdf59e8dcb3b8a000000000000000000000000b5117420bd1726b6bfeced63602b287ab3dba219000000000000000000000000a49f65cf05dcce7c92621ed41cba9e4e09a5d618000000000000000000000000ecaf11bb88082f06a64d5fa3076a74df792e6afe0000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000001adfb7810000000000000000000000000000000000000000000000000000000011b5e025000000000000000000000000000000000000000000000000000000000f13ec7a000000000000000000000000000000000000000000000000000000000ed4979d000000000000000000000000000000000000000000000000000000000e7e486d000000000000000000000000000000000000000000000000000000000e320cc0000000000000000000000000000000000000000000000000000000000d54f7e2000000000000000000000000000000000000000000000000000000000d24f812000000000000000000000000000000000000000000000000000000000cf34102000000000000000000000000000000000000000000000000000000000cb4b767000000000000000000000000000000000000000000000000000000000b1b97e3000000000000000000000000000000000000000000000000000000000a7b900f000000000000000000000000000000000000000000000000000000000a2280350000000000000000000000000000000000000000000000000000000008c013aa000000000000000000000000000000000000000000000000000000000857d50a0000000000000000000000000000000000000000000000000000000006dbcaf00000000000000000000000000000000000000000000000000000000006b7220200000000000000000000000000000000000000000000000000000000069bed3a00000000000000000000000000000000000000000000000000000000068a49320000000000000000000000000000000000000000000000000000000004a5860000000000000000000000000000000000000000000000000000000000004b2034000000000000000000000000000000000000000000000000000000000041ba2200000000000000000000000000000000000000000000000000000000002a740d0000000000000000000000000000000000000000000000000000000000297c6b00000000000000000000000000000000000000000000000000000000002973ee000000000000000000000000000000000000000000000000000000000029734c00000000000000000000000000000000000000000000000000000000002952f30000000000000000000000000000000000000000000000000000000000293dac000000000000000000000000000000000000000000000000000000000028ccf0000000000000000000000000000000000000000000000000000000000028bf5c0000000000000000000000000000000000000000000000000000000000288aac0000000000000000000000000000000000000000000000000000000000272473000000000000000000000000000000000000000000000000000000000026e154000000000000000000000000000000000000000000000000000000000026d089000000000000000000000000000000000000000000000000000000000026180b0000000000000000000000000000000000000000000000000000000000133c3d000000000000000000000000000000000000000000000000000000000011cc81000000000000000000000000000000000000000000000000000000000011cc81000000000000000000000000000000000000000000000000000000000011cc730000000000000000000000000000000000000000000000000000000000119ef1
Deployed Bytecode
0x6003361161000c5761143f565b60003560e01c346119715763f0f40504811861003e576004361061197157602061198360003960005160405260206040f35b63eadf4af78118610518576101e436106119715760043560040180358101803581016101408135116119715780358061cb405260008161014081116119715780156100ab57905b8060051b6020850101358060a01c611971578160051b61cb600152600101818118610085575b50505050602081013581016101408135116119715780358061f36052602082018160051b808261f3803750505050604081013562011b805250602081013581016101408135116119715780358062011ba0526020820160608202808262011bc03750505050506024356004018035810161014081351161197157803580620193c052600081610140811161197157801561016857905b8060051b6020850101358060a01c611971578160051b620193e00152600101818118610141575b5050505060208101358101610140813511611971578035806201bbe052602082018160051b80826201bc00375050505060408101356201e400525062011b80516201e40051116102215760116201e420527f496e76616c69642056616c7365742049440000000000000000000000000000006201e440526201e420506201e42051806201e44001601f826000031636823750506308c379a06201e3e05260206201e40052601f19601f6201e4205101166044016201e3fcfd5b6040366201e420376000620193c05161014081116119715780156102b857905b8060051b620193e001516201e460526201e420516201e440516201bbe0518110156119715760051b6201bc00015180820182811061197157905090506201e4205263aaaaaaaa6201e4205110610296576102b8565b6201e44051600181018181106119715790506201e44052600101818118610241575b505063aaaaaaaa6201e4205110156103395760126201e460527f496e73756666696369656e7420506f77657200000000000000000000000000006201e480526201e460506201e46051806201e48001601f826000031636823750506308c379a06201e4205260206201e44052601f19601f6201e4605101166044016201e43cfd5b61cb4051806040528060051b8060608261cb6060045afa50505061f3605180612860528060051b806128808261f38060045afa50505062011b8051615080526103846201e4606116b8565b6201e4605160005418156104015760146201e480527f496e636f727265637420436865636b706f696e740000000000000000000000006201e4a0526201e480506201e48051806201e4a001601f826000031636823750506308c379a06201e4405260206201e46052601f19601f6201e4805101166044016201e45cfd5b620193c051806040528060051b80606082620193e060045afa5050506201bbe05180612860528060051b80612880826201bc0060045afa5050506201e40051615080526104506201e4806116b8565b6201e480516201e4605261cb4051806101a0528060051b806101c08261cb6060045afa50505061f36051806129c0528060051b806129e08261f38060045afa50505062011b80516151e05262011ba051806152005260608102806152208262011bc060045afa5050506201e4605161ca20526104ca6114e8565b6201e460516000556201e400516001557f09d40458cf931745f8d532ef13fa9c74bfb7fe0edcee88e0a677b0cbef88f0f96201e460516201e480526201e400516201e4a05260406201e480a1005b631029ae6f81186109cb576101e436106119715760043560040180358101803581016101408135116119715780358061cb4052600081610140811161197157801561058557905b8060051b6020850101358060a01c611971578160051b61cb60015260010181811861055f575b50505050602081013581016101408135116119715780358061f36052602082018160051b808261f3803750505050604081013562011b805250602081013581016101408135116119715780358062011ba0526020820160608202808262011bc037505050505060243560040180358060a01c61197157620193c0526020810135810161500081351161197157803580620193e0526020820181816201940037505050506064354211156106a15760076201e400527f54696d656f7574000000000000000000000000000000000000000000000000006201e420526201e400506201e40051806201e42001601f826000031636823750506308c379a06201e3c05260206201e3e052601f19601f6201e4005101166044016201e3dcfd5b60026044356020526000526040600020541561072657600f6201e400527f55736564204d6573736167655f494400000000000000000000000000000000006201e420526201e400506201e40051806201e42001601f826000031636823750506308c379a06201e3c05260206201e3e052601f19601f6201e4005101166044016201e3dcfd5b6001600260443560205260005260406000205561cb4051806040528060051b8060608261cb6060045afa50505061f3605180612860528060051b806128808261f38060045afa50505062011b8051615080526107846201e4006116b8565b6201e4005160005418156108015760146201e420527f496e636f727265637420436865636b706f696e740000000000000000000000006201e440526201e420506201e42051806201e44001601f826000031636823750506308c379a06201e3e05260206201e40052601f19601f6201e4205101166044016201e3fcfd5b63980721b26201e4245260046080806201e44452806201e444016040620193c0518252806020830152808201620193e051808252602082018181836201940060045afa5050508051806020830101601f82600003163682375050601f19601f825160200101169050810190509050810190506044356201e4645260206119836000396000516201e484526064356201e4a452016201e420526201e4208051602082012090506201e4005261cb4051806101a0528060051b806101c08261cb6060045afa50505061f36051806129c0528060051b806129e08261f38060045afa50505062011b80516151e05262011ba051806152005260608102806152208262011bc060045afa5050506201e4005161ca205261091b6114e8565b620193e0600060008251602084016000620193c0515af19050610943573d600060003e3d6000fd5b7f0d2bd340033bb64fd086788e6685b480a9bf10b98d63e9b8073eb5d0bd6c6ee96060620193c0516201e42052806201e44052806201e42001620193e051808252602082018181836201940060045afa5050508051806020830101601f82600003163682375050601f19601f825160200101169050810190506044356201e460526201e420a1005b63b39dcd5e8118610b4d5760843610611971576004358060a01c611971576101e05260243560040160408135116119715780358061020052602082018181610220375050506101e0516370a0823161028052306102a0526020610280602461029c845afa610a3e573d600060003e3d6000fd5b60203d1061197157610280905051610260526101e051604052336060523060805260443560a052610a6d6117a2565b610260516101e0516370a0823161028052306102a0526020610280602461029c845afa610a9f573d600060003e3d6000fd5b60203d10611971576102809050518082038281116119715790509050610260526102605115611971577f75a16dbdc936366f3b5b1a7aaabc5d7b28dcf94ce2eb5b3efbe0bce0da7ee66960806101e05161028052336102a052806102c0528061028001610200518082526020820181818361022060045afa5050508051806020830101601f82600003163682375050601f19601f825160200101169050810190506044356102e052610280a1005b630ffc0bdb81186110dd5761022436106119715760043560040180358101803581016101408135116119715780358061cb40526000816101408111611971578015610bba57905b8060051b6020850101358060a01c611971578160051b61cb600152600101818118610b94575b50505050602081013581016101408135116119715780358061f36052602082018160051b808261f3803750505050604081013562011b805250602081013581016101408135116119715780358062011ba0526020820160608202808262011bc03750505050506024358060a01c61197157620193c05260443560040180358101604081351161197157803580620193e05260008160408111611971578015610c8557905b8060051b6020850101358060a01c611971578160051b620194000152600101818118610c5e575b505050506020810135810160408135116119715780358062019c0052602082018160051b808262019c20375050505050608435421115610d2e5760076201a420527f54696d656f7574000000000000000000000000000000000000000000000000006201a440526201a420506201a42051806201a44001601f826000031636823750506308c379a06201a3e05260206201a40052601f19601f6201a4205101166044016201a3fcfd5b600260643560205260005260406000205415610db357600f6201a420527f55736564204d6573736167655f494400000000000000000000000000000000006201a440526201a420506201a42051806201a44001601f826000031636823750506308c379a06201a3e05260206201a40052601f19601f6201a4205101166044016201a3fcfd5b620193e0516201a4205262019c00516201a4205118611971576001600260643560205260005260406000205561cb4051806040528060051b8060608261cb6060045afa50505061f3605180612860528060051b806128808261f38060045afa50505062011b805161508052610e2a6201a4406116b8565b6201a440516000541815610ea75760146201a460527f496e636f727265637420436865636b706f696e740000000000000000000000006201a480526201a460506201a46051806201a48001601f826000031636823750506308c379a06201a4205260206201a44052601f19601f6201a4605101166044016201a43cfd5b63ecaa10b96201a46452600460a0620193c0516201a48452806201a4a452806201a4840160408082528082016000620193e0518083528060051b60008260408111611971578015610f1357905b8060051b6201940001518160051b602088010152600101818118610ef4575b50508201602001915050905081019050806020830152808201600062019c00518083528060051b60008260408111611971578015610f6c57905b8060051b62019c2001518160051b602088010152600101818118610f4d575b505082016020019150509050810190509050810190506064356201a4c45260206119836000396000516201a4e4526084356201a50452016201a460526201a4608051602082012090506201a4405261cb4051806101a0528060051b806101c08261cb6060045afa50505061f36051806129c0528060051b806129e08261f38060045afa50505062011b80516151e05262011ba051806152005260608102806152208262011bc060045afa5050506201a4405161ca205261102a6114e8565b60006040905b806201a460526201a420516201a460511061104a5761109f565b620193c0516040526201a46051620193e0518110156119715760051b6201940001516060526201a4605162019c00518110156119715760051b62019c200151608052611094611891565b600101818118611030575b50507fba199fb06e908b6eca45bc6e460f07d1888e4a0606361da80e679eac61d11103620193c0516201a460526064356201a4805260406201a460a1005b6308a92ad781186113d25761010436106119715760043560040160408135116119715780358060405260208201818160603750505060243560040160408135116119715780358060a05260208201818160c03750505060443560040160208135116119715780358061010052602082018035610120525050506064358060081c61197157610140526084358060a01c6119715761016052303318156111e2576007610180527f496e76616c6964000000000000000000000000000000000000000000000000006101a0526101805061018051806101a001601f826000031636823750506308c379a061014052602061016052601f19601f61018051011660440161015cfd5b610160516080306101a0526101a0516101e0528061020052806101e00160a0518082526020820181818360c060045afa5050508051806020830101601f82600003163682375050601f19601f825160200101169050810190508061022052806101e001610100518082526020820161012051815250508051806020830101601f82600003163682375050601f19601f82516020010116905081019050610140516101c0526101c051610240526003823b0359600182126119715781600382863c8181018381856101e060045afa5050828201816000f08015611971579050905090509050610180527f7144f66490771d357f3d6d385605288e1579754e5555f2e01114a2945f394e5b60a0806101a052806101a00160405180825260208201818183606060045afa5050508051806020830101601f82600003163682375050601f19601f82516020010116905081019050610180516101c052806101e052806101a00160a0518082526020820181818360c060045afa5050508051806020830101601f82600003163682375050601f19601f825160200101169050810190508061020052806101a001610100518082526020820161012051815250508051806020830101601f82600003163682375050601f19601f8251602001011690508101905061014051610220526101a0a1005b63a9a4a98381186113f157600436106119715760005460405260206040f35b634da6ecc9811861141057600436106119715760015460405260206040f35b6338d6172d811861143d576024361061197157600260043560205260005260406000205460405260206040f35b505b60006000fd5b6000601c610100527f19457468657265756d205369676e6564204d6573736167653a0a333200000000610120526101008051602082018361016001815181525050808301925050506060518161016001526020810190508061014052610140905080516020820120905060e05260e051610100526080516101205260a0516101405260c0516101605260206000608061010060015afa5060005160405114815250565b60403661ca4037600061520051610140811161197157801561163f57905b6060810261522001805161ca8052602081015161caa052604081015161cac0525061ca80511561161f5761ca40516101a0518110156119715760051b6101c0015160405261ca205160605261ca805160805261caa05160a05261cac05160c05261157161cae0611445565b61cae0516115df57601161cb00527f496e76616c6964205369676e617475726500000000000000000000000000000061cb205261cb005061cb00518061cb2001601f826000031636823750506308c379a061cac052602061cae052601f19601f61cb0051011660440161cadcfd5b61ca605161ca40516129c0518110156119715760051b6129e00151808201828110611971579050905061ca605263aaaaaaaa61ca60511061161f5761163f565b61ca40516001810181811061197157905061ca4052600101818118611506575b505063aaaaaaaa61ca605110156116b657601261ca80527f496e73756666696369656e7420506f776572000000000000000000000000000061caa05261ca805061ca80518061caa001601f826000031636823750506308c379a061ca4052602061ca6052601f19601f61ca8051011660440161ca5cfd5b565b63299018c26150a45260046080806150c452806150c40160006040518083528060051b600082610140811161197157801561170c57905b8060051b606001518160051b6020880101526001018181186116ef575b50508201602001915050905081019050806150e452806150c4016000612860518083528060051b600082610140811161197157801561176557905b8060051b61288001518160051b602088010152600101818118611747575b505082016020019150509050810190506150805161510452602061198360003960005161512452016150a0526150a0805160208201209050815250565b6323b872dd610104526004606051610124526080516101445260a05161016452606001610100526101005060206101c06101005161012060006040515af16117ef573d600060003e3d6000fd5b3d602081183d60201002186101a0526101a080518060c05260208201805160e05250505060c0511561188f5760e05160c05160200360031b1c61188f576013610100527f5472616e7366657246726f6d206661696c6564000000000000000000000000006101205261010050610100518061012001601f826000031636823750506308c379a060c052602060e052601f19601f61010051011660440160dcfd5b565b63a9059cbb60e4526004606051610104526080516101245260400160e05260e050602061018060e05161010060006040515af16118d3573d600060003e3d6000fd5b3d602081183d60201002186101605261016080518060a05260208201805160c05250505060a0511561196f5760c05160a05160200360031b1c61196f57601360e0527f5472616e7366657246726f6d206661696c6564000000000000000000000000006101005260e05060e0518061010001601f826000031636823750506308c379a060a052602060c052601f19601f60e051011660440160bcfd5b565b600080fda165767970657283000307000b3136363430383400000000000000000000000000000000000000000000000000
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
313636343038340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000058000000000000000000000000000000000000000000000000000000000000018240000000000000000000000000000000000000000000000000000000000000028000000000000000000000000092604a080524eff1c875ff13a1b88cbdd41df370000000000000000000000006dc59ee4bdfa2c791229004f29b08f783491a934000000000000000000000000deea5b069208e0ee37b630a3e7672fc50e8fe24a000000000000000000000000c47b85c7577260d995be7ab65728ae33b4cd26cd000000000000000000000000ade5f5efeae72102d998f6c496ea59731a70eeb0000000000000000000000000279fc7c0ebef3328d3899fe73464347a764c5f2c000000000000000000000000aac74d38c82c367b3da7482e3aecf6dd7a512ef200000000000000000000000043e218f96a567dc26c6e65fcabf1fde26af694440000000000000000000000005a7c9fc846b18944fd2b8f8ae7255db5af7b9c040000000000000000000000001ad90db98da083e117d5f62a1673fc0f3a5930ca00000000000000000000000063f55bc560e981d53e1f5bb3643e3a96d26fc6350000000000000000000000001dd71ee9e7b1cff10ccb7e12520999c2d4fb45e50000000000000000000000004a89f96fdff3c161937cfbc3e22d2e325612aaec0000000000000000000000001f6ef2784cbb2a5011d8cf12356fb5ee3eaef372000000000000000000000000443266026738061972012e62d5ecd9d98da8b6f4000000000000000000000000443520951d766456f2ac5578f3e7e4b56a7bcf63000000000000000000000000eb13a069d119558b6653cbc8c069dafb3d6758e70000000000000000000000007c3de83d90e8d2001a7e3f38e6a7058334cb291e0000000000000000000000007b5f4b6490ebc2dd03b717d7d26edc78451a88b4000000000000000000000000377d23948d41579f2c3ca40308e3bdd53f6da7b20000000000000000000000000daabb4ff60423eb1f14cc6731394e098ad51bcb000000000000000000000000cfbbf6341cf13a39ffcaf24b86de09489116783b000000000000000000000000179206cd9080a8ee77c2256a27050112da13b2f60000000000000000000000003a188de3d16ddee783990dded1b629e95c8242d900000000000000000000000031cbc8e1bc86d1ba0f5e77afc324d785c54ae3200000000000000000000000006bf4893a5a54191cf16e6337956aa4c99c793903000000000000000000000000827d61ccf62a78a9ac192cb4b47c51df7db4b1660000000000000000000000008b6cd0884e227e7ef90fc4c8b642d723109271c3000000000000000000000000837f0c0d5b50f5463e4dafcd7bae63207e2f63800000000000000000000000009314f0e1d09e1c541c1db02b622af9ca5f1ac9fe000000000000000000000000722e2b4107d3dc5e99cbb4919a1580ae70baab74000000000000000000000000fc0f1e32e0db02cd81de8f662a51e2c285d5228d000000000000000000000000eb784b37365c302c97c9ec8cb0933ce344e6de42000000000000000000000000ee21301af1d9562b5cbedf520077ea0a9bc9d535000000000000000000000000bbefe691d2c3bbb835ce2958b453ccd05bdb27a50000000000000000000000001829a4a33cc162d3d55ed79d77574005a084142b0000000000000000000000005cb3114baf54395da6c3665616bdf59e8dcb3b8a000000000000000000000000b5117420bd1726b6bfeced63602b287ab3dba219000000000000000000000000a49f65cf05dcce7c92621ed41cba9e4e09a5d618000000000000000000000000ecaf11bb88082f06a64d5fa3076a74df792e6afe0000000000000000000000000000000000000000000000000000000000000028000000000000000000000000000000000000000000000000000000001adfb7810000000000000000000000000000000000000000000000000000000011b5e025000000000000000000000000000000000000000000000000000000000f13ec7a000000000000000000000000000000000000000000000000000000000ed4979d000000000000000000000000000000000000000000000000000000000e7e486d000000000000000000000000000000000000000000000000000000000e320cc0000000000000000000000000000000000000000000000000000000000d54f7e2000000000000000000000000000000000000000000000000000000000d24f812000000000000000000000000000000000000000000000000000000000cf34102000000000000000000000000000000000000000000000000000000000cb4b767000000000000000000000000000000000000000000000000000000000b1b97e3000000000000000000000000000000000000000000000000000000000a7b900f000000000000000000000000000000000000000000000000000000000a2280350000000000000000000000000000000000000000000000000000000008c013aa000000000000000000000000000000000000000000000000000000000857d50a0000000000000000000000000000000000000000000000000000000006dbcaf00000000000000000000000000000000000000000000000000000000006b7220200000000000000000000000000000000000000000000000000000000069bed3a00000000000000000000000000000000000000000000000000000000068a49320000000000000000000000000000000000000000000000000000000004a5860000000000000000000000000000000000000000000000000000000000004b2034000000000000000000000000000000000000000000000000000000000041ba2200000000000000000000000000000000000000000000000000000000002a740d0000000000000000000000000000000000000000000000000000000000297c6b00000000000000000000000000000000000000000000000000000000002973ee000000000000000000000000000000000000000000000000000000000029734c00000000000000000000000000000000000000000000000000000000002952f30000000000000000000000000000000000000000000000000000000000293dac000000000000000000000000000000000000000000000000000000000028ccf0000000000000000000000000000000000000000000000000000000000028bf5c0000000000000000000000000000000000000000000000000000000000288aac0000000000000000000000000000000000000000000000000000000000272473000000000000000000000000000000000000000000000000000000000026e154000000000000000000000000000000000000000000000000000000000026d089000000000000000000000000000000000000000000000000000000000026180b0000000000000000000000000000000000000000000000000000000000133c3d000000000000000000000000000000000000000000000000000000000011cc81000000000000000000000000000000000000000000000000000000000011cc81000000000000000000000000000000000000000000000000000000000011cc730000000000000000000000000000000000000000000000000000000000119ef1
-----Decoded View---------------
Arg [0] : turnstone_id (bytes32): 0x3136363430383400000000000000000000000000000000000000000000000000
Arg [1] : valset (tuple): System.Collections.Generic.List`1[Nethereum.ABI.FunctionEncoding.ParameterOutput]
-----Encoded View---------------
87 Constructor Arguments found :
Arg [0] : 3136363430383400000000000000000000000000000000000000000000000000
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000580
Arg [4] : 0000000000000000000000000000000000000000000000000000000000001824
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000028
Arg [6] : 000000000000000000000000092604a080524eff1c875ff13a1b88cbdd41df37
Arg [7] : 0000000000000000000000006dc59ee4bdfa2c791229004f29b08f783491a934
Arg [8] : 000000000000000000000000deea5b069208e0ee37b630a3e7672fc50e8fe24a
Arg [9] : 000000000000000000000000c47b85c7577260d995be7ab65728ae33b4cd26cd
Arg [10] : 000000000000000000000000ade5f5efeae72102d998f6c496ea59731a70eeb0
Arg [11] : 000000000000000000000000279fc7c0ebef3328d3899fe73464347a764c5f2c
Arg [12] : 000000000000000000000000aac74d38c82c367b3da7482e3aecf6dd7a512ef2
Arg [13] : 00000000000000000000000043e218f96a567dc26c6e65fcabf1fde26af69444
Arg [14] : 0000000000000000000000005a7c9fc846b18944fd2b8f8ae7255db5af7b9c04
Arg [15] : 0000000000000000000000001ad90db98da083e117d5f62a1673fc0f3a5930ca
Arg [16] : 00000000000000000000000063f55bc560e981d53e1f5bb3643e3a96d26fc635
Arg [17] : 0000000000000000000000001dd71ee9e7b1cff10ccb7e12520999c2d4fb45e5
Arg [18] : 0000000000000000000000004a89f96fdff3c161937cfbc3e22d2e325612aaec
Arg [19] : 0000000000000000000000001f6ef2784cbb2a5011d8cf12356fb5ee3eaef372
Arg [20] : 000000000000000000000000443266026738061972012e62d5ecd9d98da8b6f4
Arg [21] : 000000000000000000000000443520951d766456f2ac5578f3e7e4b56a7bcf63
Arg [22] : 000000000000000000000000eb13a069d119558b6653cbc8c069dafb3d6758e7
Arg [23] : 0000000000000000000000007c3de83d90e8d2001a7e3f38e6a7058334cb291e
Arg [24] : 0000000000000000000000007b5f4b6490ebc2dd03b717d7d26edc78451a88b4
Arg [25] : 000000000000000000000000377d23948d41579f2c3ca40308e3bdd53f6da7b2
Arg [26] : 0000000000000000000000000daabb4ff60423eb1f14cc6731394e098ad51bcb
Arg [27] : 000000000000000000000000cfbbf6341cf13a39ffcaf24b86de09489116783b
Arg [28] : 000000000000000000000000179206cd9080a8ee77c2256a27050112da13b2f6
Arg [29] : 0000000000000000000000003a188de3d16ddee783990dded1b629e95c8242d9
Arg [30] : 00000000000000000000000031cbc8e1bc86d1ba0f5e77afc324d785c54ae320
Arg [31] : 0000000000000000000000006bf4893a5a54191cf16e6337956aa4c99c793903
Arg [32] : 000000000000000000000000827d61ccf62a78a9ac192cb4b47c51df7db4b166
Arg [33] : 0000000000000000000000008b6cd0884e227e7ef90fc4c8b642d723109271c3
Arg [34] : 000000000000000000000000837f0c0d5b50f5463e4dafcd7bae63207e2f6380
Arg [35] : 0000000000000000000000009314f0e1d09e1c541c1db02b622af9ca5f1ac9fe
Arg [36] : 000000000000000000000000722e2b4107d3dc5e99cbb4919a1580ae70baab74
Arg [37] : 000000000000000000000000fc0f1e32e0db02cd81de8f662a51e2c285d5228d
Arg [38] : 000000000000000000000000eb784b37365c302c97c9ec8cb0933ce344e6de42
Arg [39] : 000000000000000000000000ee21301af1d9562b5cbedf520077ea0a9bc9d535
Arg [40] : 000000000000000000000000bbefe691d2c3bbb835ce2958b453ccd05bdb27a5
Arg [41] : 0000000000000000000000001829a4a33cc162d3d55ed79d77574005a084142b
Arg [42] : 0000000000000000000000005cb3114baf54395da6c3665616bdf59e8dcb3b8a
Arg [43] : 000000000000000000000000b5117420bd1726b6bfeced63602b287ab3dba219
Arg [44] : 000000000000000000000000a49f65cf05dcce7c92621ed41cba9e4e09a5d618
Arg [45] : 000000000000000000000000ecaf11bb88082f06a64d5fa3076a74df792e6afe
Arg [46] : 0000000000000000000000000000000000000000000000000000000000000028
Arg [47] : 000000000000000000000000000000000000000000000000000000001adfb781
Arg [48] : 0000000000000000000000000000000000000000000000000000000011b5e025
Arg [49] : 000000000000000000000000000000000000000000000000000000000f13ec7a
Arg [50] : 000000000000000000000000000000000000000000000000000000000ed4979d
Arg [51] : 000000000000000000000000000000000000000000000000000000000e7e486d
Arg [52] : 000000000000000000000000000000000000000000000000000000000e320cc0
Arg [53] : 000000000000000000000000000000000000000000000000000000000d54f7e2
Arg [54] : 000000000000000000000000000000000000000000000000000000000d24f812
Arg [55] : 000000000000000000000000000000000000000000000000000000000cf34102
Arg [56] : 000000000000000000000000000000000000000000000000000000000cb4b767
Arg [57] : 000000000000000000000000000000000000000000000000000000000b1b97e3
Arg [58] : 000000000000000000000000000000000000000000000000000000000a7b900f
Arg [59] : 000000000000000000000000000000000000000000000000000000000a228035
Arg [60] : 0000000000000000000000000000000000000000000000000000000008c013aa
Arg [61] : 000000000000000000000000000000000000000000000000000000000857d50a
Arg [62] : 0000000000000000000000000000000000000000000000000000000006dbcaf0
Arg [63] : 0000000000000000000000000000000000000000000000000000000006b72202
Arg [64] : 00000000000000000000000000000000000000000000000000000000069bed3a
Arg [65] : 00000000000000000000000000000000000000000000000000000000068a4932
Arg [66] : 0000000000000000000000000000000000000000000000000000000004a58600
Arg [67] : 00000000000000000000000000000000000000000000000000000000004b2034
Arg [68] : 000000000000000000000000000000000000000000000000000000000041ba22
Arg [69] : 00000000000000000000000000000000000000000000000000000000002a740d
Arg [70] : 0000000000000000000000000000000000000000000000000000000000297c6b
Arg [71] : 00000000000000000000000000000000000000000000000000000000002973ee
Arg [72] : 000000000000000000000000000000000000000000000000000000000029734c
Arg [73] : 00000000000000000000000000000000000000000000000000000000002952f3
Arg [74] : 0000000000000000000000000000000000000000000000000000000000293dac
Arg [75] : 000000000000000000000000000000000000000000000000000000000028ccf0
Arg [76] : 000000000000000000000000000000000000000000000000000000000028bf5c
Arg [77] : 0000000000000000000000000000000000000000000000000000000000288aac
Arg [78] : 0000000000000000000000000000000000000000000000000000000000272473
Arg [79] : 000000000000000000000000000000000000000000000000000000000026e154
Arg [80] : 000000000000000000000000000000000000000000000000000000000026d089
Arg [81] : 000000000000000000000000000000000000000000000000000000000026180b
Arg [82] : 0000000000000000000000000000000000000000000000000000000000133c3d
Arg [83] : 000000000000000000000000000000000000000000000000000000000011cc81
Arg [84] : 000000000000000000000000000000000000000000000000000000000011cc81
Arg [85] : 000000000000000000000000000000000000000000000000000000000011cc73
Arg [86] : 0000000000000000000000000000000000000000000000000000000000119ef1
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
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.