Source Code
Overview
ETH Balance
0 ETH
More Info
ContractCreator
Multi Chain
Multichain Addresses
N/ALatest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
Value | ||||
---|---|---|---|---|---|---|---|---|---|
0x60806040 | 9176832 | 178 days 22 hrs ago | IN | Create: HeaderStorage | 0 ETH | 0.00533472 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Txn Hash | Block | From | To | Value | ||
---|---|---|---|---|---|---|
10115054 | 13 days 16 mins ago | 0 ETH | ||||
10114819 | 13 days 1 hr ago | 0 ETH | ||||
10114762 | 13 days 1 hr ago | 0 ETH | ||||
10114644 | 13 days 2 hrs ago | 0 ETH | ||||
10114588 | 13 days 2 hrs ago | 0 ETH | ||||
10114138 | 13 days 4 hrs ago | 0 ETH | ||||
10114024 | 13 days 4 hrs ago | 0 ETH | ||||
10113964 | 13 days 5 hrs ago | 0 ETH | ||||
10113907 | 13 days 5 hrs ago | 0 ETH | ||||
10113798 | 13 days 5 hrs ago | 0 ETH | ||||
10113570 | 13 days 6 hrs ago | 0 ETH | ||||
10113455 | 13 days 7 hrs ago | 0 ETH | ||||
10113044 | 13 days 9 hrs ago | 0 ETH | ||||
10112926 | 13 days 9 hrs ago | 0 ETH | ||||
10112320 | 13 days 12 hrs ago | 0 ETH | ||||
10112082 | 13 days 13 hrs ago | 0 ETH | ||||
10111620 | 13 days 15 hrs ago | 0 ETH | ||||
10111556 | 13 days 15 hrs ago | 0 ETH | ||||
10111497 | 13 days 15 hrs ago | 0 ETH | ||||
10111157 | 13 days 17 hrs ago | 0 ETH | ||||
10111099 | 13 days 17 hrs ago | 0 ETH | ||||
10110923 | 13 days 18 hrs ago | 0 ETH | ||||
10110810 | 13 days 18 hrs ago | 0 ETH | ||||
10110642 | 13 days 19 hrs ago | 0 ETH | ||||
10110409 | 13 days 20 hrs ago | 0 ETH |
Loading...
Loading
Contract Name:
HeaderStorage
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: LGPL-3.0-only pragma solidity ^0.8.17; contract HeaderStorage { mapping(uint256 => bytes32) public headers; event HeaderStored(uint256 indexed blockNumber, bytes32 indexed blockHeader); error HeaderOutOfRange(address emitter, uint256 blockNumber); /// @dev Stores and returns the header for the given block. /// @param blockNumber Block number. /// @return blockHeader Block header stored. /// @notice Reverts if the given block header was not previously stored and is now out of range. function storeBlockHeader(uint256 blockNumber) public returns (bytes32 blockHeader) { blockHeader = headers[blockNumber]; if (blockHeader == 0) { blockHeader = blockhash(blockNumber); if (blockHeader == 0) revert HeaderOutOfRange(address(this), blockNumber); headers[blockNumber] = blockHeader; emit HeaderStored(blockNumber, blockHeader); } } /// @dev Stores and returns the header for an array of given blocks. /// @param blockNumbers Array of block numbers. /// @return Array of block headers. /// @notice Reverts if the given block header was not previously stored and is now out of range. function storeBlockHeaders(uint256[] memory blockNumbers) public returns (bytes32[] memory) { bytes32[] memory blockHeaders = new bytes32[](blockNumbers.length); for (uint256 i = 0; i < blockNumbers.length; i++) { blockHeaders[i] = storeBlockHeader(blockNumbers[i]); } return blockHeaders; } }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
[{"inputs":[{"internalType":"address","name":"emitter","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"HeaderOutOfRange","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"blockNumber","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"blockHeader","type":"bytes32"}],"name":"HeaderStored","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"headers","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"storeBlockHeader","outputs":[{"internalType":"bytes32","name":"blockHeader","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"blockNumbers","type":"uint256[]"}],"name":"storeBlockHeaders","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b506106e4806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806356f90d79146100465780636c1e8a9514610076578063ceee6e55146100a6575b600080fd5b610060600480360381019061005b91906102ac565b6100d6565b60405161006d91906102f2565b60405180910390f35b610090600480360381019061008b91906102ac565b6100ee565b60405161009d91906102f2565b60405180910390f35b6100c060048036038101906100bb9190610466565b6101a7565b6040516100cd919061056d565b60405180910390f35b60006020528060005260406000206000915090505481565b60008060008381526020019081526020016000205490506000801b81036101a257814090506000801b810361015c5730826040517fb4992a6b0000000000000000000000000000000000000000000000000000000081526004016101539291906105df565b60405180910390fd5b806000808481526020019081526020016000208190555080827ff7df17dce0093aedfcbae24b4f04e823f9e863c97986ab1ba6c5267ace49ddea60405160405180910390a35b919050565b60606000825167ffffffffffffffff8111156101c6576101c5610323565b5b6040519080825280602002602001820160405280156101f45781602001602082028036833780820191505090505b50905060005b83518110156102585761022684828151811061021957610218610608565b5b60200260200101516100ee565b82828151811061023957610238610608565b5b602002602001018181525050808061025090610666565b9150506101fa565b5080915050919050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61028981610276565b811461029457600080fd5b50565b6000813590506102a681610280565b92915050565b6000602082840312156102c2576102c161026c565b5b60006102d084828501610297565b91505092915050565b6000819050919050565b6102ec816102d9565b82525050565b600060208201905061030760008301846102e3565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61035b82610312565b810181811067ffffffffffffffff8211171561037a57610379610323565b5b80604052505050565b600061038d610262565b90506103998282610352565b919050565b600067ffffffffffffffff8211156103b9576103b8610323565b5b602082029050602081019050919050565b600080fd5b60006103e26103dd8461039e565b610383565b90508083825260208201905060208402830185811115610405576104046103ca565b5b835b8181101561042e578061041a8882610297565b845260208401935050602081019050610407565b5050509392505050565b600082601f83011261044d5761044c61030d565b5b813561045d8482602086016103cf565b91505092915050565b60006020828403121561047c5761047b61026c565b5b600082013567ffffffffffffffff81111561049a57610499610271565b5b6104a684828501610438565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6104e4816102d9565b82525050565b60006104f683836104db565b60208301905092915050565b6000602082019050919050565b600061051a826104af565b61052481856104ba565b935061052f836104cb565b8060005b8381101561056057815161054788826104ea565b975061055283610502565b925050600181019050610533565b5085935050505092915050565b60006020820190508181036000830152610587818461050f565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105ba8261058f565b9050919050565b6105ca816105af565b82525050565b6105d981610276565b82525050565b60006040820190506105f460008301856105c1565b61060160208301846105d0565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061067182610276565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036106a3576106a2610637565b5b60018201905091905056fea2646970667358221220808d450665d4e4b2a0db8608f8c1de00a472e3f607b92801f555a99d8696977664736f6c63430008110033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106100415760003560e01c806356f90d79146100465780636c1e8a9514610076578063ceee6e55146100a6575b600080fd5b610060600480360381019061005b91906102ac565b6100d6565b60405161006d91906102f2565b60405180910390f35b610090600480360381019061008b91906102ac565b6100ee565b60405161009d91906102f2565b60405180910390f35b6100c060048036038101906100bb9190610466565b6101a7565b6040516100cd919061056d565b60405180910390f35b60006020528060005260406000206000915090505481565b60008060008381526020019081526020016000205490506000801b81036101a257814090506000801b810361015c5730826040517fb4992a6b0000000000000000000000000000000000000000000000000000000081526004016101539291906105df565b60405180910390fd5b806000808481526020019081526020016000208190555080827ff7df17dce0093aedfcbae24b4f04e823f9e863c97986ab1ba6c5267ace49ddea60405160405180910390a35b919050565b60606000825167ffffffffffffffff8111156101c6576101c5610323565b5b6040519080825280602002602001820160405280156101f45781602001602082028036833780820191505090505b50905060005b83518110156102585761022684828151811061021957610218610608565b5b60200260200101516100ee565b82828151811061023957610238610608565b5b602002602001018181525050808061025090610666565b9150506101fa565b5080915050919050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b61028981610276565b811461029457600080fd5b50565b6000813590506102a681610280565b92915050565b6000602082840312156102c2576102c161026c565b5b60006102d084828501610297565b91505092915050565b6000819050919050565b6102ec816102d9565b82525050565b600060208201905061030760008301846102e3565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61035b82610312565b810181811067ffffffffffffffff8211171561037a57610379610323565b5b80604052505050565b600061038d610262565b90506103998282610352565b919050565b600067ffffffffffffffff8211156103b9576103b8610323565b5b602082029050602081019050919050565b600080fd5b60006103e26103dd8461039e565b610383565b90508083825260208201905060208402830185811115610405576104046103ca565b5b835b8181101561042e578061041a8882610297565b845260208401935050602081019050610407565b5050509392505050565b600082601f83011261044d5761044c61030d565b5b813561045d8482602086016103cf565b91505092915050565b60006020828403121561047c5761047b61026c565b5b600082013567ffffffffffffffff81111561049a57610499610271565b5b6104a684828501610438565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6104e4816102d9565b82525050565b60006104f683836104db565b60208301905092915050565b6000602082019050919050565b600061051a826104af565b61052481856104ba565b935061052f836104cb565b8060005b8381101561056057815161054788826104ea565b975061055283610502565b925050600181019050610533565b5085935050505092915050565b60006020820190508181036000830152610587818461050f565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006105ba8261058f565b9050919050565b6105ca816105af565b82525050565b6105d981610276565b82525050565b60006040820190506105f460008301856105c1565b61060160208301846105d0565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061067182610276565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036106a3576106a2610637565b5b60018201905091905056fea2646970667358221220808d450665d4e4b2a0db8608f8c1de00a472e3f607b92801f555a99d8696977664736f6c63430008110033
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.