Overview
S Balance
S Value
$0.00Latest 11 from a total of 11 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Apply | 18754080 | 298 days ago | IN | 0 S | 0.0028729 | ||||
| Apply | 16877382 | 307 days ago | IN | 0 S | 0.00174135 | ||||
| Apply | 16877193 | 307 days ago | IN | 0 S | 0.0028729 | ||||
| Apply | 16103028 | 310 days ago | IN | 0 S | 0.0028729 | ||||
| Apply | 15597438 | 313 days ago | IN | 0 S | 0.00201821 | ||||
| Apply | 15597431 | 313 days ago | IN | 0 S | 0.00187183 | ||||
| Apply | 15597424 | 313 days ago | IN | 0 S | 0.0028729 | ||||
| Apply | 15596624 | 313 days ago | IN | 0 S | 0.00174135 | ||||
| Apply | 15596319 | 313 days ago | IN | 0 S | 0.0028729 | ||||
| Apply | 13850784 | 321 days ago | IN | 0 S | 0.0028729 | ||||
| Apply | 1546330 | 402 days ago | IN | 0 S | 0.00007455 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Cross-Chain Transactions
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Sonic Block Hash oracle
Compiler Version
vyper:0.4.0
Contract Source Code (Vyper Json-Input format)
# pragma version 0.4.0 """ @title Sonic Block Hash oracle @notice A contract that saves L1 state roots. @license MIT @author curve.fi @custom:version 0.1.0 @custom:security [email protected] """ import IBlockHashOracle import IBlockHashRetain implements: IBlockHashOracle implements: IBlockHashRetain version: public(constant(String[8])) = "0.1.0" interface IStateOracle: def lastBlockNum() -> uint256: view def lastState() -> bytes32: view def lastUpdateTime() -> uint256: view def chainId() -> uint256: view STATE_ORACLE: public(immutable(IStateOracle)) MAX_LOOKUP: constant(uint256) = 7 * 86400 # A week state_root: public(HashMap[uint256, bytes32]) commitments: public(HashMap[address, HashMap[uint256, bytes32]]) last_applied: uint256 @deploy def __init__(_state_oracle: IStateOracle): STATE_ORACLE = _state_oracle assert staticcall STATE_ORACLE.chainId() == 1 @view @external def get_block_hash(_number: uint256) -> bytes32: """ @notice Query the block hash of a block. @dev Reverts for unknown block numbers or if not supported. @param _number Number of the block to look for. """ raise "NotImplemented" @view @external def get_state_root(_number: uint256) -> bytes32: """ @notice Query the state root hash of a block. @dev Reverts for unknown block numbers or if not supported. @param _number Number of the block to look for. """ state_root: bytes32 = self.state_root[_number] if state_root == empty(bytes32) and _number == staticcall STATE_ORACLE.lastBlockNum(): # try fetching current data state_root = staticcall STATE_ORACLE.lastState() assert state_root != empty(bytes32) return state_root @view @external def find_known_block_number(_before: uint256=0) -> uint256: """ @notice Find known block number, not optimized for on-chain use. No guarantee to be the last available block. @dev Reverts if not supported or couldn't find. @param _before Max block number to look for (can be used as init search point). """ last_applied: uint256 = self.last_applied if _before == 0 or last_applied < _before: return last_applied for i: uint256 in range(MAX_LOOKUP): if self.state_root[_before - i] != empty(bytes32): return _before - i raise "NotFound" @internal def _update_state_root() -> (uint256, bytes32): number: uint256 = staticcall STATE_ORACLE.lastBlockNum() hash: bytes32 = staticcall STATE_ORACLE.lastState() self.state_root[number] = hash self.last_applied = max(self.last_applied, number) return number, hash @external def commit() -> uint256: """ @notice Commit (and apply) a state root. @dev Same as `apply()` but saves committer """ number: uint256 = 0 hash: bytes32 = empty(bytes32) number, hash = self._update_state_root() self.commitments[msg.sender][number] = hash log IBlockHashRetain.CommitBlockHash(msg.sender, number, hash) log IBlockHashRetain.ApplyBlockHash(number, hash) return number @external def apply() -> uint256: """ @notice Apply a state root. """ number: uint256 = 0 hash: bytes32 = empty(bytes32) number, hash = self._update_state_root() log IBlockHashRetain.ApplyBlockHash(number, hash) return number
# pragma version ^0.4.0 """ @title BlockHashOracle Interface Definition @custom:contract-name IBlockHashOracle @custom:version 0.1.0 @custom:security [email protected] @license MIT @author curve.fi @notice Interface for Ethereum block hash and/or state root hash feed on other networks. """ @view @external def get_block_hash(_number: uint256) -> bytes32: """ @notice Query the block hash of a block. @dev Reverts for unknown block numbers or if not supported. @param _number Number of the block to look for. """ ... @view @external def get_state_root(_number: uint256) -> bytes32: """ @notice Query the state root hash of a block. @dev Reverts for unknown block numbers or if not supported. @param _number Number of the block to look for. """ ... @view @external def find_known_block_number(_before: uint256=0) -> uint256: """ @notice Find known block number, not optimized for on-chain use. No guarantee to be the last available block. @dev Reverts if not supported or couldn't find. @param _before Max block number to look for (can be used as init search point). """ ...
# pragma version ^0.4.0 """ @title BlockHashRetain Interface Definition @custom:contract-name IBlockHashRetain @custom:version 0.1.0 @custom:security [email protected] @license MIT @author curve.fi @notice Interface for retaining values in contract's storage for future use. Needed when native oracle provides only last value. """ # @dev Emitted when someone commits block hash. # Note that not all oracles use commit-apply scheme and this might be ignored. event CommitBlockHash: committer: indexed(address) number: indexed(uint256) hash: bytes32 # @dev Emitted when commits threshold reached and blockhash is applied. # Note that not all oracles use commit-apply scheme and this might be ignored. event ApplyBlockHash: number: indexed(uint256) hash: bytes32 @external @view def commitments(_commiter: address, _block_number: uint256) -> bytes32: """ @notice Get commitments of block hashes/state roots @param _commiter address that called `commit()` @param _block_number Block number that was retained @return Block hash/state root depending on what is being saved """ ... @external def commit() -> uint256: """ @notice Commit (and apply) a block hash/state root. @dev Same as `apply()` but saves committer """ ... @external def apply() -> uint256: """ @notice Apply a block hash/state root. """ ...
{
"outputSelection": {
"contracts/blockhash/SonicBlockHashOracle.vy": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
},
"search_paths": [
"."
]
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":true,"name":"committer","type":"address"},{"indexed":true,"name":"number","type":"uint256"},{"indexed":false,"name":"hash","type":"bytes32"}],"name":"CommitBlockHash","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"number","type":"uint256"},{"indexed":false,"name":"hash","type":"bytes32"}],"name":"ApplyBlockHash","type":"event"},{"inputs":[{"name":"_number","type":"uint256"}],"name":"get_block_hash","outputs":[{"name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"_number","type":"uint256"}],"name":"get_state_root","outputs":[{"name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"find_known_block_number","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"_before","type":"uint256"}],"name":"find_known_block_number","outputs":[{"name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"commit","outputs":[{"name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"apply","outputs":[{"name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"STATE_ORACLE","outputs":[{"name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"arg0","type":"uint256"}],"name":"state_root","outputs":[{"name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"uint256"}],"name":"commitments","outputs":[{"name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"_state_oracle","type":"address"}],"outputs":[],"stateMutability":"nonpayable","type":"constructor"}]Contract Creation Code
61058751503461006d57602061060d5f395f518060a01c61006d5760405260405161058752600161058751639a8a0592606052602060606004607c845afa610049573d5f5f3e3d5ffd5b60203d1061006d5760609050511861006d57610587610071610000396105a7610000f35b5f80fd5f3560e01c60026009820660011b61057501601e395f51565b639724283f81186100a3576024361034176105715760208060a052600e6040527f4e6f74496d706c656d656e74656400000000000000000000000000000000000060605260408160a00160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a060805280600401609cfd5b63db595b3b81186104c657346105715760403660c0376100c46101006104ca565b6101006040816101405e50604061014060c05e60c0517f52e6e649c6b58521edb4571424aef2925807e91f5b7b6896a41920b034a4077560e051610100526020610100a2602060c0f35b630dfe681081186104c657602436103417610571575f6004356020525f5260405f205460405260405161017a5760206105875f395f516336899042606052602060606004607c845afa610163573d5f5f3e3d5ffd5b60203d10610571576060905051600435181561017c565b5f5b156101ba5760206105875f395f51632df8028060a052602060a0600460bc845afa6101a9573d5f5f3e3d5ffd5b60203d106105715760a09050516040525b604051156105715760206040f35b63346be52381186101e15734610571575f6040526102b9565b633c7a3aff81186104c657346105715760403660c0376102026101006104ca565b6101006040816101405e50604061014060c05e60e0516001336020525f5260405f208060c0516020525f5260405f2090505560c051337f8039f84f0eb77eb0be5293b76b4581ab181b17950e0da213eaf8847d6cf8fc0260e051610100526020610100a360c0517f52e6e649c6b58521edb4571424aef2925807e91f5b7b6896a41920b034a4077560e051610100526020610100a2602060c0f35b637df0b84481186103b857602436103417610571576004356040525b6002546060526040516102cd5760016102d5565b604051606051105b156102e357602060606103b6565b5f62093a80905b806080525f60405160805180820382811161057157905090506020525f5260405f205415610334575050604051608051808203828111610571579050905060a052602060a06103b6565b6001018181186102ea57505060208060e05260086080527f4e6f74466f756e6400000000000000000000000000000000000000000000000060a05260808160e00160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a060c0528060040160dcfd5bf35b630aaf880b81186104c657602436103417610571575f6004356020525f5260405f205460405260206040f35b6354fd4d50811861045e57346105715760208060805260056040527f302e312e3000000000000000000000000000000000000000000000000000000060605260408160800160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f35b6399ca856c81186104c657604436103417610571576004358060a01c6105715760405260016040516020525f5260405f20806024356020525f5260405f2090505460605260206060f35b636212bca281186104c6573461057157602061058760403960206040f35b5f5ffd5b60206105875f395f516336899042606052602060606004607c845afa6104f2573d5f5f3e3d5ffd5b60203d1061057157606090505160405260206105875f395f51632df80280608052602060806004609c845afa61052a573d5f5f3e3d5ffd5b60203d106105715760809050516060526060515f6040516020525f5260405f2055600254604051808281188284110218905090506002556040518152606051602082015250565b5f80fd010e04c603e404c604a8001801c804c6029d8419058781121820a1657679706572830004000015000000000000000000000000836664b0c0cb29b7877bccf94159cc996528f2c3
Deployed Bytecode
0x5f3560e01c60026009820660011b61057501601e395f51565b639724283f81186100a3576024361034176105715760208060a052600e6040527f4e6f74496d706c656d656e74656400000000000000000000000000000000000060605260408160a00160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a060805280600401609cfd5b63db595b3b81186104c657346105715760403660c0376100c46101006104ca565b6101006040816101405e50604061014060c05e60c0517f52e6e649c6b58521edb4571424aef2925807e91f5b7b6896a41920b034a4077560e051610100526020610100a2602060c0f35b630dfe681081186104c657602436103417610571575f6004356020525f5260405f205460405260405161017a5760206105875f395f516336899042606052602060606004607c845afa610163573d5f5f3e3d5ffd5b60203d10610571576060905051600435181561017c565b5f5b156101ba5760206105875f395f51632df8028060a052602060a0600460bc845afa6101a9573d5f5f3e3d5ffd5b60203d106105715760a09050516040525b604051156105715760206040f35b63346be52381186101e15734610571575f6040526102b9565b633c7a3aff81186104c657346105715760403660c0376102026101006104ca565b6101006040816101405e50604061014060c05e60e0516001336020525f5260405f208060c0516020525f5260405f2090505560c051337f8039f84f0eb77eb0be5293b76b4581ab181b17950e0da213eaf8847d6cf8fc0260e051610100526020610100a360c0517f52e6e649c6b58521edb4571424aef2925807e91f5b7b6896a41920b034a4077560e051610100526020610100a2602060c0f35b637df0b84481186103b857602436103417610571576004356040525b6002546060526040516102cd5760016102d5565b604051606051105b156102e357602060606103b6565b5f62093a80905b806080525f60405160805180820382811161057157905090506020525f5260405f205415610334575050604051608051808203828111610571579050905060a052602060a06103b6565b6001018181186102ea57505060208060e05260086080527f4e6f74466f756e6400000000000000000000000000000000000000000000000060a05260808160e00160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a060c0528060040160dcfd5bf35b630aaf880b81186104c657602436103417610571575f6004356020525f5260405f205460405260206040f35b6354fd4d50811861045e57346105715760208060805260056040527f302e312e3000000000000000000000000000000000000000000000000000000060605260408160800160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f35b6399ca856c81186104c657604436103417610571576004358060a01c6105715760405260016040516020525f5260405f20806024356020525f5260405f2090505460605260206060f35b636212bca281186104c6573461057157602061058760403960206040f35b5f5ffd5b60206105875f395f516336899042606052602060606004607c845afa6104f2573d5f5f3e3d5ffd5b60203d1061057157606090505160405260206105875f395f51632df80280608052602060806004609c845afa61052a573d5f5f3e3d5ffd5b60203d106105715760809050516060526060515f6040516020525f5260405f2055600254604051808281188284110218905090506002556040518152606051602082015250565b5f80fd010e04c603e404c604a8001801c804c6029d000000000000000000000000836664b0c0cb29b7877bccf94159cc996528f2c3
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000836664b0c0cb29b7877bccf94159cc996528f2c3
-----Decoded View---------------
Arg [0] : _state_oracle (address): 0x836664B0c0CB29B7877bCcF94159CC996528F2C3
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000836664b0c0cb29b7877bccf94159cc996528f2c3
Deployed Bytecode Sourcemap
0:3335:0:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1156:16:0;-1:-1:-1;1156:16:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1156:16:0;1156:16:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1150:22:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;3163:19:0;-1:-1:-1;3163:19:0;3163:19:0;-1:-1:-1;3163:19:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;3237:25:0;-1:-1:-1;-1:-1:-1;3237:25:0;-1:-1:-1;-1:-1:-1;3237:25:0:i;3237:25:0:-;3237:25:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3222:40:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3222:40:0;3304:6:0;-1:-1:-1;3268:49:0;3268:49:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3312:4:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3268:49:0;-1:-1:-1;-1:-1:-1;3268:49:0;3087:248:0;-1:-1:-1;3329:6:0;-1:-1:-1;3087:248:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;1448:15:0;1513:7:0;-1:-1:-1;1448:24:0;1448:24:0;-1:-1:-1;1448:24:0;1448:24:0;1448:24:0;1448:24:0;-1:-1:-1;1448:24:0;1448:24:0;1426:46:0;1426:46:0;-1:-1:-1;1426:46:0;1480:10:0;-1:-1:-1;1480:28:0;1480:82:0;-1:-1:-1;-1:-1:-1;1480:82:0:-;1524:38:0;1524:38:0;1524:38:0;-1:-1:-1;-1:-1:-1;1524:38:0;1524:38:0;1524:38:0;1524:38:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1524:38:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;1524:38:0;1524:38:0;1513:49:0;1513:7:0;-1:-1:-1;1513:49:0;1513:49:0;1513:49:0;1480:82:0;-1:-1:-1;-1:-1:-1;1480:82:0:-;1480:82:0:-;1480:82:0;1480:82:0:-;1477:179:0;1477:179:0;-1:-1:-1;-1:-1:-1;1477:179:0:-;1621:35:0;1621:35:0;1621:35:0;-1:-1:-1;-1:-1:-1;1621:35:0;1621:35:0;1621:35:0;1621:35:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1621:35:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;1621:35:0;1621:35:0;-1:-1:-1;1608:10:0;-1:-1:-1;-1:-1:-1;1477:179:0:-;1668:10:0;-1:-1:-1;1668:28:0;1668:28:0;1661:35:0;-1:-1:-1;-1:-1:-1;1661:35:0:-;1191:528:0;-1:-1:-1;1709:10:0;-1:-1:-1;1191:528:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;1783:1:0;1766:16:0;-1:-1:-1;1766:16:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;2787:19:0;-1:-1:-1;2787:19:0;2787:19:0;-1:-1:-1;2787:19:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;2861:25:0;-1:-1:-1;-1:-1:-1;2861:25:0;-1:-1:-1;-1:-1:-1;2861:25:0:i;2861:25:0:-;2861:25:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2846:40:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2846:40:0;2931:4:0;-1:-1:-1;-1:-1:-1;2892:16:0;-1:-1:-1;2909:10:0;2892:28:0;-1:-1:-1;2892:28:0;2892:28:0;2892:28:0;2892:28:0;-1:-1:-1;2892:28:0;2892:28:0;-1:-1:-1;2921:6:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2892:36:0;2892:36:0;-1:-1:-1;2989:6:0;-1:-1:-1;2940:62:0;2977:10:0;2940:62:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2997:4:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2940:62:0;-1:-1:-1;-1:-1:-1;2940:62:0;3043:6:0;-1:-1:-1;3007:49:0;3007:49:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3051:4:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3007:49:0;-1:-1:-1;-1:-1:-1;3007:49:0;2650:424:0;-1:-1:-1;3068:6:0;-1:-1:-1;2650:424:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;1766:16:0;1766:16:0;-1:-1:-1;1766:16:0;1738:607:0:-;2100:17:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2076:41:0;2125:7:0;-1:-1:-1;2125:12:0;2125:38:0;-1:-1:-1;-1:-1:-1;2125:38:0:-;2125:38:0;-1:-1:-1;2125:38:0;-1:-1:-1;-1:-1:-1;2125:38:0:-;2125:38:0:-;2156:7:0;-1:-1:-1;-1:-1:-1;2141:12:0;-1:-1:-1;-1:-1:-1;2141:22:0;2125:38:0:-;2122:70:0;2122:70:0;-1:-1:-1;-1:-1:-1;2122:70:0:-;-1:-1:-1;-1:-1:-1;2180:12:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;2122:70:0:-;2198:126:0;2198:126:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;2198:126:0;2198:126:0:-;2198:126:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;2246:15:0;2262:7:0;-1:-1:-1;-1:-1:-1;2272:1:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;2262:11:0;2262:11:0;2246:28:0;-1:-1:-1;2246:28:0;2246:28:0;2246:28:0;2246:28:0;-1:-1:-1;2246:28:0;2246:28:0;2246:46:0;2246:46:0;2198:126:0;-1:-1:-1;-1:-1:-1;2243:81:0:-;2306:18:0;2306:18:0;2313:7:0;-1:-1:-1;-1:-1:-1;2323:1:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;2313:11:0;2313:11:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2306:18:0;-1:-1:-1;2306:18:0;-1:-1:-1;-1:-1:-1;2306:18:0:-;2198:126:0:-;2198:126:0;-1:-1:-1;2198:126:0;2198:126:0;2198:126:0;2198:126:0;2198:126:0;-1:-1:-1;-1:-1:-1;2198:126:0:-;2198:126:0;2198:126:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2335:10:0;-1:-1:-1;2335:10:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2335:10:0;2335:10:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2329:16:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1738:607:0:-;1738:607:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;632:45:0;-1:-1:-1;632:45:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;343:7:0;-1:-1:-1;343:7:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;343:7:0;343:7:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;304:46:0;-1:-1:-1;304:46:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;678:64:0;-1:-1:-1;678:64:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;532:45:0;-1:-1:-1;532:45:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;2428:38:0;2428:38:0;2428:38:0;-1:-1:-1;-1:-1:-1;2428:38:0;2428:38:0;2428:38:0;2428:38:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2428:38:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;2428:38:0;2428:38:0;2410:56:0;2410:56:0;-1:-1:-1;2410:56:0;2487:35:0;2487:35:0;2487:35:0;-1:-1:-1;-1:-1:-1;2487:35:0;2487:35:0;2487:35:0;2487:35:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2487:35:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;2487:35:0;2487:35:0;2471:51:0;2471:51:0;-1:-1:-1;2471:51:0;2553:4:0;-1:-1:-1;-1:-1:-1;2527:15:0;2543:6:0;-1:-1:-1;-1:-1:-1;2527:23:0;-1:-1:-1;2527:23:0;2527:23:0;2527:23:0;2527:23:0;-1:-1:-1;2527:23:0;2527:23:0;-1:-1:-1;2587:17:0;-1:-1:-1;-1:-1:-1;2606:6:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2583:30:0;2583:30:0;2563:17:0;-1:-1:-1;-1:-1:-1;2625:6:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2633:4:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2618:19:0;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1
Loading...
Loading
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.