Source Code
Latest 25 from a total of 369 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Apply | 17709767 | 321 days ago | IN | 0 FRAX | 0.0000001 | ||||
| Apply | 17666523 | 322 days ago | IN | 0 FRAX | 0.0000001 | ||||
| Apply | 17623340 | 323 days ago | IN | 0 FRAX | 0.0000001 | ||||
| Apply | 17580103 | 324 days ago | IN | 0 FRAX | 0.00000012 | ||||
| Apply | 17536867 | 325 days ago | IN | 0 FRAX | 0.00000014 | ||||
| Apply | 17493630 | 326 days ago | IN | 0 FRAX | 0.00000016 | ||||
| Apply | 17450390 | 327 days ago | IN | 0 FRAX | 0.00000018 | ||||
| Apply | 17407210 | 328 days ago | IN | 0 FRAX | 0.00000019 | ||||
| Apply | 17363968 | 329 days ago | IN | 0 FRAX | 0.00000018 | ||||
| Apply | 17320788 | 330 days ago | IN | 0 FRAX | 0.0000001 | ||||
| Apply | 17277529 | 331 days ago | IN | 0 FRAX | 0.00000015 | ||||
| Apply | 17234274 | 332 days ago | IN | 0 FRAX | 0.00000021 | ||||
| Apply | 17191028 | 333 days ago | IN | 0 FRAX | 0.00000013 | ||||
| Apply | 17147852 | 334 days ago | IN | 0 FRAX | 0.00000052 | ||||
| Apply | 17104670 | 335 days ago | IN | 0 FRAX | 0.00000021 | ||||
| Apply | 17061495 | 336 days ago | IN | 0 FRAX | 0.00000161 | ||||
| Apply | 17018319 | 337 days ago | IN | 0 FRAX | 0.00000022 | ||||
| Apply | 16975144 | 338 days ago | IN | 0 FRAX | 0.00000017 | ||||
| Apply | 16931907 | 339 days ago | IN | 0 FRAX | 0.00000013 | ||||
| Apply | 16888658 | 340 days ago | IN | 0 FRAX | 0.0000002 | ||||
| Apply | 16845481 | 341 days ago | IN | 0 FRAX | 0.00000039 | ||||
| Apply | 16802298 | 342 days ago | IN | 0 FRAX | 0.00000015 | ||||
| Apply | 16759123 | 343 days ago | IN | 0 FRAX | 0.00000012 | ||||
| Apply | 16715947 | 344 days ago | IN | 0 FRAX | 0.00000011 | ||||
| Apply | 16676398 | 345 days ago | IN | 0 FRAX | 0.00000023 |
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers.
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | ||||
|---|---|---|---|---|---|---|---|
| 17709767 | 321 days ago | 0 FRAX | |||||
| 17709767 | 321 days ago | 0 FRAX | |||||
| 17666523 | 322 days ago | 0 FRAX | |||||
| 17666523 | 322 days ago | 0 FRAX | |||||
| 17623340 | 323 days ago | 0 FRAX | |||||
| 17623340 | 323 days ago | 0 FRAX | |||||
| 17580103 | 324 days ago | 0 FRAX | |||||
| 17580103 | 324 days ago | 0 FRAX | |||||
| 17536867 | 325 days ago | 0 FRAX | |||||
| 17536867 | 325 days ago | 0 FRAX | |||||
| 17493630 | 326 days ago | 0 FRAX | |||||
| 17493630 | 326 days ago | 0 FRAX | |||||
| 17450390 | 327 days ago | 0 FRAX | |||||
| 17450390 | 327 days ago | 0 FRAX | |||||
| 17407210 | 328 days ago | 0 FRAX | |||||
| 17407210 | 328 days ago | 0 FRAX | |||||
| 17363968 | 329 days ago | 0 FRAX | |||||
| 17363968 | 329 days ago | 0 FRAX | |||||
| 17320788 | 330 days ago | 0 FRAX | |||||
| 17320788 | 330 days ago | 0 FRAX | |||||
| 17277529 | 331 days ago | 0 FRAX | |||||
| 17277529 | 331 days ago | 0 FRAX | |||||
| 17234274 | 332 days ago | 0 FRAX | |||||
| 17234274 | 332 days ago | 0 FRAX | |||||
| 17191028 | 333 days ago | 0 FRAX |
Cross-Chain Transactions
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
Optimism Block Hash oracle
Compiler Version
vyper:0.4.0
Contract Source Code (Vyper language format)
# pragma version 0.4.0 """ @title Optimism Block Hash oracle @notice A contract that saves L1 block hashes. @license MIT @author curve.fi @custom:version 0.0.1 @custom:security [email protected] """ version: public(constant(String[8])) = "0.0.1" interface IL1Block: def number() -> uint64: view def hash() -> bytes32: view event CommitBlockHash: committer: indexed(address) number: indexed(uint256) hash: bytes32 event ApplyBlockHash: number: indexed(uint256) hash: bytes32 L1_BLOCK: constant(IL1Block) = IL1Block(0x4200000000000000000000000000000000000015) block_hash: public(HashMap[uint256, bytes32]) commitments: public(HashMap[address, HashMap[uint256, bytes32]]) @view @external def get_block_hash(_number: uint256) -> bytes32: """ @notice Query the block hash of a block. @dev Reverts for block numbers which have yet to be set. """ block_hash: bytes32 = self.block_hash[_number] assert block_hash != empty(bytes32) return block_hash @internal def _update_block_hash() -> (uint256, bytes32): number: uint256 = convert(staticcall L1_BLOCK.number(), uint256) hash: bytes32 = staticcall L1_BLOCK.hash() self.block_hash[number] = hash return number, hash @external def commit() -> uint256: """ @notice Commit (and apply) a block hash. @dev Same as `apply()` but saves committer """ number: uint256 = 0 hash: bytes32 = empty(bytes32) number, hash = self._update_block_hash() self.commitments[msg.sender][number] = hash log CommitBlockHash(msg.sender, number, hash) log ApplyBlockHash(number, hash) return number @external def apply() -> uint256: """ @notice Apply a block hash. """ number: uint256 = 0 hash: bytes32 = empty(bytes32) number, hash = self._update_block_hash() log ApplyBlockHash(number, hash) return number
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"name":"CommitBlockHash","inputs":[{"name":"committer","type":"address","indexed":true},{"name":"number","type":"uint256","indexed":true},{"name":"hash","type":"bytes32","indexed":false}],"anonymous":false,"type":"event"},{"name":"ApplyBlockHash","inputs":[{"name":"number","type":"uint256","indexed":true},{"name":"hash","type":"bytes32","indexed":false}],"anonymous":false,"type":"event"},{"stateMutability":"view","type":"function","name":"get_block_hash","inputs":[{"name":"_number","type":"uint256"}],"outputs":[{"name":"","type":"bytes32"}]},{"stateMutability":"nonpayable","type":"function","name":"commit","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"nonpayable","type":"function","name":"apply","inputs":[],"outputs":[{"name":"","type":"uint256"}]},{"stateMutability":"view","type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string"}]},{"stateMutability":"view","type":"function","name":"block_hash","inputs":[{"name":"arg0","type":"uint256"}],"outputs":[{"name":"","type":"bytes32"}]},{"stateMutability":"view","type":"function","name":"commitments","inputs":[{"name":"arg0","type":"address"},{"name":"arg1","type":"uint256"}],"outputs":[{"name":"","type":"bytes32"}]}]Contract Creation Code
61033561001161000039610335610000f35f3560e01c60026005820660011b61032b01601e395f51565b639724283f811861004c57602436103417610327575f6004356020525f5260405f2054604052604051156103275760206040f35b633c7a3aff811861026357346103275760403660c03761006d610100610267565b6101006040816101405e50604061014060c05e60e0516001336020525f5260405f208060c0516020525f5260405f2090505560c051337f8039f84f0eb77eb0be5293b76b4581ab181b17950e0da213eaf8847d6cf8fc0260e051610100526020610100a360c0517f52e6e649c6b58521edb4571424aef2925807e91f5b7b6896a41920b034a4077560e051610100526020610100a2602060c0f35b63db595b3b811861017357346103275760403660c037610129610100610267565b6101006040816101405e50604061014060c05e60c0517f52e6e649c6b58521edb4571424aef2925807e91f5b7b6896a41920b034a4077560e051610100526020610100a2602060c0f35b63b509f4ef811861026357602436103417610327575f6004356020525f5260405f205460405260206040f35b6354fd4d50811861026357346103275760208060805260056040527f302e302e3100000000000000000000000000000000000000000000000000000060605260408160800160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f35b6399ca856c811861026357604436103417610327576004358060a01c6103275760405260016040516020525f5260405f20806024356020525f5260405f2090505460605260206060f35b5f5ffd5b638381f58a606052602060606004607c7342000000000000000000000000000000000000155afa61029a573d5f5f3e3d5ffd5b3d602081183d602010021880606001608011610327576060518060401c6103275760a0525060a0516040526309bd5a60608052602060806004609c7342000000000000000000000000000000000000155afa6102f8573d5f5f3e3d5ffd5b60203d10610327576080516060526060515f6040516020525f5260405f20556040518152606051602082015250565b5f80fd0018021902630108019f84190335810a00a1657679706572830004000014
Deployed Bytecode
0x5f3560e01c60026005820660011b61032b01601e395f51565b639724283f811861004c57602436103417610327575f6004356020525f5260405f2054604052604051156103275760206040f35b633c7a3aff811861026357346103275760403660c03761006d610100610267565b6101006040816101405e50604061014060c05e60e0516001336020525f5260405f208060c0516020525f5260405f2090505560c051337f8039f84f0eb77eb0be5293b76b4581ab181b17950e0da213eaf8847d6cf8fc0260e051610100526020610100a360c0517f52e6e649c6b58521edb4571424aef2925807e91f5b7b6896a41920b034a4077560e051610100526020610100a2602060c0f35b63db595b3b811861017357346103275760403660c037610129610100610267565b6101006040816101405e50604061014060c05e60c0517f52e6e649c6b58521edb4571424aef2925807e91f5b7b6896a41920b034a4077560e051610100526020610100a2602060c0f35b63b509f4ef811861026357602436103417610327575f6004356020525f5260405f205460405260206040f35b6354fd4d50811861026357346103275760208060805260056040527f302e302e3100000000000000000000000000000000000000000000000000000060605260408160800160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506080f35b6399ca856c811861026357604436103417610327576004358060a01c6103275760405260016040516020525f5260405f20806024356020525f5260405f2090505460605260206060f35b5f5ffd5b638381f58a606052602060606004607c7342000000000000000000000000000000000000155afa61029a573d5f5f3e3d5ffd5b3d602081183d602010021880606001608011610327576060518060401c6103275760a0525060a0516040526309bd5a60608052602060806004609c7342000000000000000000000000000000000000155afa6102f8573d5f5f3e3d5ffd5b60203d10610327576080516060526060515f6040516020525f5260405f20556040518152606051602082015250565b5f80fd0018021902630108019f
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in FRAX
0
Multichain Portfolio | 35 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.