Source Code
Overview
ETH Balance
0 ETH
More Info
ContractCreator
Multichain Info
N/A
Latest 25 from a total of 2,036 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Update | 6557082 | 297 days ago | IN | 0 ETH | 0.00030213 | ||||
Update | 6557065 | 297 days ago | IN | 0 ETH | 0.0003276 | ||||
Update | 6557040 | 297 days ago | IN | 0 ETH | 0.00054845 | ||||
Update | 6557016 | 297 days ago | IN | 0 ETH | 0.00083 | ||||
Update | 6556995 | 297 days ago | IN | 0 ETH | 0.00093771 | ||||
Update | 6556973 | 297 days ago | IN | 0 ETH | 0.00082461 | ||||
Update | 6556949 | 297 days ago | IN | 0 ETH | 0.00116539 | ||||
Update | 6556925 | 297 days ago | IN | 0 ETH | 0.0018496 | ||||
Update | 6556899 | 297 days ago | IN | 0 ETH | 0.00271513 | ||||
Update | 6556876 | 297 days ago | IN | 0 ETH | 0.00293055 | ||||
Update | 6556851 | 297 days ago | IN | 0 ETH | 0.00282089 | ||||
Update | 6556826 | 297 days ago | IN | 0 ETH | 0.00370937 | ||||
Update | 6556801 | 297 days ago | IN | 0 ETH | 0.00375574 | ||||
Update | 6556776 | 297 days ago | IN | 0 ETH | 0.00430797 | ||||
Update | 6556752 | 297 days ago | IN | 0 ETH | 0.00448755 | ||||
Update | 6556728 | 297 days ago | IN | 0 ETH | 0.00478231 | ||||
Update | 6556705 | 297 days ago | IN | 0 ETH | 0.00451817 | ||||
Update | 6556682 | 297 days ago | IN | 0 ETH | 0.00513974 | ||||
Update | 6556657 | 297 days ago | IN | 0 ETH | 0.00592873 | ||||
Update | 6556635 | 297 days ago | IN | 0 ETH | 0.00468317 | ||||
Update | 6556611 | 297 days ago | IN | 0 ETH | 0.00471484 | ||||
Update | 6556514 | 297 days ago | IN | 0 ETH | 0.00312803 | ||||
Update | 6556488 | 297 days ago | IN | 0 ETH | 0.00323306 | ||||
Update | 6556463 | 297 days ago | IN | 0 ETH | 0.0026983 | ||||
Update | 6556437 | 297 days ago | IN | 0 ETH | 0.00256957 |
Latest 1 internal transaction
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
0x61014034 | 6493607 | 307 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
SP1LightClient
Compiler Version
v0.8.26+commit.8a97fa7a
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.16; import {ISP1Verifier} from "@sp1-contracts/ISP1Verifier.sol"; /// @title SP1LightClient /// @notice An ethereum light client, built with SP1. contract SP1LightClient { bytes32 public immutable GENESIS_VALIDATORS_ROOT; uint256 public immutable GENESIS_TIME; uint256 public immutable SECONDS_PER_SLOT; uint256 public immutable SLOTS_PER_PERIOD; uint256 public immutable SLOTS_PER_EPOCH; uint256 public immutable SOURCE_CHAIN_ID; modifier onlyGuardian() { require(msg.sender == guardian, "Caller is not the guardian"); _; } /// @notice The latest slot the light client has a finalized header for. uint256 public head = 0; /// @notice Maps from a slot to a beacon block header root. mapping(uint256 => bytes32) public headers; /// @notice Maps from a slot to the current finalized ethereum1 execution state root. mapping(uint256 => bytes32) public executionStateRoots; /// @notice Maps from a period to the hash for the sync committee. mapping(uint256 => bytes32) public syncCommittees; /// @notice The verification key for the SP1Telepathy program. bytes32 public telepathyProgramVkey; /// @notice The deployed SP1 verifier contract. ISP1Verifier public verifier; /// @notice The address of the guardian address public guardian; struct ProofOutputs { bytes32 prevHeader; bytes32 newHeader; bytes32 syncCommitteeHash; bytes32 nextSyncCommitteeHash; uint256 prevHead; uint256 newHead; bytes32 executionStateRoot; } event HeadUpdate(uint256 indexed slot, bytes32 indexed root); event SyncCommitteeUpdate(uint256 indexed period, bytes32 indexed root); error HeaderRootNotConnected(bytes32 header); error SlotBehindHead(uint256 slot); error SlotNotConnected(uint256 slot); error SyncCommitteeAlreadySet(uint256 period); error HeaderRootAlreadySet(uint256 slot); error StateRootAlreadySet(uint256 slot); constructor( bytes32 _genesisValidatorsRoot, uint256 _genesisTime, uint256 _secondsPerSlot, uint256 _slotsPerPeriod, uint256 _slotsPerEpoch, uint256 _sourceChainId, bytes32 _syncCommitteeHash, bytes32 _header, bytes32 _executionStateRoot, uint256 _head, bytes32 _telepathyProgramVkey, address _verifier, address _guardian ) { GENESIS_VALIDATORS_ROOT = _genesisValidatorsRoot; GENESIS_TIME = _genesisTime; SECONDS_PER_SLOT = _secondsPerSlot; SLOTS_PER_PERIOD = _slotsPerPeriod; SLOTS_PER_EPOCH = _slotsPerEpoch; SOURCE_CHAIN_ID = _sourceChainId; syncCommittees[getSyncCommitteePeriod(_head)] = _syncCommitteeHash; telepathyProgramVkey = _telepathyProgramVkey; headers[_head] = _header; executionStateRoots[_head] = _executionStateRoot; head = _head; verifier = ISP1Verifier(_verifier); guardian = _guardian; } /// @notice Updates the light client with a new header, execution state root, and sync committee (if changed) /// @param proof The proof bytes for the SP1 proof. /// @param publicValues The public commitments from the SP1 proof. function update(bytes calldata proof, bytes calldata publicValues) external { // Parse the outputs from the committed public values associated with the proof. ProofOutputs memory po = abi.decode(publicValues, (ProofOutputs)); if (po.newHead <= head) { revert SlotBehindHead(po.newHead); } if (po.prevHead != head) { revert SlotNotConnected(po.prevHead); } if (po.prevHeader != headers[po.prevHead]) { revert HeaderRootNotConnected(po.prevHeader); } // Verify the proof with the associated public values. This will revert if proof invalid. verifier.verifyProof(telepathyProgramVkey, publicValues, proof); head = po.newHead; if (headers[po.newHead] != bytes32(0)) { revert HeaderRootAlreadySet(po.newHead); } headers[po.newHead] = po.newHeader; if (executionStateRoots[po.newHead] != bytes32(0)) { revert StateRootAlreadySet(po.newHead); } executionStateRoots[po.newHead] = po.executionStateRoot; emit HeadUpdate(po.newHead, po.newHeader); uint256 period = getSyncCommitteePeriod(head); // If the sync committee for the new peroid is not set, set it. // This can happen if the light client was very behind and had a lot of updates // Note: Only the latest sync committee is stored, not the intermediate ones from every update. // This may leave gaps in the sync committee history if (syncCommittees[period] == bytes32(0)) { syncCommittees[period] = po.syncCommitteeHash; emit SyncCommitteeUpdate(period, po.syncCommitteeHash); } // Set next peroid's sync committee hash if value exists. if (po.nextSyncCommitteeHash != bytes32(0)) { uint256 nextPeriod = period + 1; // If the next sync committee is already correct, we don't need to update it. if (syncCommittees[nextPeriod] != po.nextSyncCommitteeHash) { if (syncCommittees[nextPeriod] != bytes32(0)) { revert SyncCommitteeAlreadySet(nextPeriod); } syncCommittees[nextPeriod] = po.nextSyncCommitteeHash; emit SyncCommitteeUpdate(nextPeriod, po.nextSyncCommitteeHash); } } } /// @notice Gets the sync committee period from a slot. function getSyncCommitteePeriod( uint256 slot ) public view returns (uint256) { return slot / SLOTS_PER_PERIOD; } /// @notice Gets the current epoch function getCurrentEpoch() public view returns (uint256) { return head / SLOTS_PER_EPOCH; } /// @notice Updates the telepathy program vKey. Call when changing the telepathy program (e.g. adding a new constraint or updating a dependency) function updateTelepathyProgramVkey(bytes32 newVkey) external onlyGuardian { telepathyProgramVkey = newVkey; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; /// @title SP1 Verifier Interface /// @author Succinct Labs /// @notice This contract is the interface for the SP1 Verifier. interface ISP1Verifier { /// @notice Verifies a proof with given public values and vkey. /// @dev It is expected that the first 4 bytes of proofBytes must match the first 4 bytes of /// target verifier's VERIFIER_HASH. /// @param programVKey The verification key for the RISC-V program. /// @param publicValues The public values encoded as bytes. /// @param proofBytes The proof of the program execution the SP1 zkVM encoded as bytes. function verifyProof( bytes32 programVKey, bytes calldata publicValues, bytes calldata proofBytes ) external view; } interface ISP1VerifierWithHash is ISP1Verifier { /// @notice Returns the hash of the verifier. function VERIFIER_HASH() external pure returns (bytes32); }
{ "remappings": [ "ds-test/=lib/forge-std/lib/ds-test/src/", "erc4626-tests/=lib/succinctx/contracts/lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/", "forge-std/=lib/forge-std/src/", "openzeppelin-contracts-upgradeable/=lib/succinctx/contracts/lib/openzeppelin-contracts-upgradeable/", "openzeppelin-contracts/=lib/succinctx/contracts/lib/openzeppelin-contracts/", "safe-contracts/=lib/succinctx/contracts/lib/safe-contracts/", "succinctx/=lib/succinctx/contracts/src/", "@sp1-contracts/=lib/sp1-contracts/contracts/src/", "sp1-contracts/=lib/sp1-contracts/contracts/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "useLiteralContent": false, "bytecodeHash": "ipfs", "appendCBOR": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "paris", "viaIR": true, "libraries": {} }
Contract ABI
API[{"inputs":[{"internalType":"bytes32","name":"_genesisValidatorsRoot","type":"bytes32"},{"internalType":"uint256","name":"_genesisTime","type":"uint256"},{"internalType":"uint256","name":"_secondsPerSlot","type":"uint256"},{"internalType":"uint256","name":"_slotsPerPeriod","type":"uint256"},{"internalType":"uint256","name":"_slotsPerEpoch","type":"uint256"},{"internalType":"uint256","name":"_sourceChainId","type":"uint256"},{"internalType":"bytes32","name":"_syncCommitteeHash","type":"bytes32"},{"internalType":"bytes32","name":"_header","type":"bytes32"},{"internalType":"bytes32","name":"_executionStateRoot","type":"bytes32"},{"internalType":"uint256","name":"_head","type":"uint256"},{"internalType":"bytes32","name":"_telepathyProgramVkey","type":"bytes32"},{"internalType":"address","name":"_verifier","type":"address"},{"internalType":"address","name":"_guardian","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"uint256","name":"slot","type":"uint256"}],"name":"HeaderRootAlreadySet","type":"error"},{"inputs":[{"internalType":"bytes32","name":"header","type":"bytes32"}],"name":"HeaderRootNotConnected","type":"error"},{"inputs":[{"internalType":"uint256","name":"slot","type":"uint256"}],"name":"SlotBehindHead","type":"error"},{"inputs":[{"internalType":"uint256","name":"slot","type":"uint256"}],"name":"SlotNotConnected","type":"error"},{"inputs":[{"internalType":"uint256","name":"slot","type":"uint256"}],"name":"StateRootAlreadySet","type":"error"},{"inputs":[{"internalType":"uint256","name":"period","type":"uint256"}],"name":"SyncCommitteeAlreadySet","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"slot","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"root","type":"bytes32"}],"name":"HeadUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"period","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"root","type":"bytes32"}],"name":"SyncCommitteeUpdate","type":"event"},{"inputs":[],"name":"GENESIS_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GENESIS_VALIDATORS_ROOT","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SECONDS_PER_SLOT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SLOTS_PER_EPOCH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SLOTS_PER_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SOURCE_CHAIN_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"executionStateRoots","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"slot","type":"uint256"}],"name":"getSyncCommitteePeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"guardian","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"head","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"headers","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"syncCommittees","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"telepathyProgramVkey","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"proof","type":"bytes"},{"internalType":"bytes","name":"publicValues","type":"bytes"}],"name":"update","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"newVkey","type":"bytes32"}],"name":"updateTelepathyProgramVkey","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"verifier","outputs":[{"internalType":"contract ISP1Verifier","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
6101403461018e57601f610a5c38819003918201601f19168301916001600160401b03831184841017610193578084926101a09460405283398101031261018e578051906020810151604082015160608301518360808101519160a08201519060c08301519160e08401519461010085015196610120860151986100996101806100926101606101408b01519a016101a9565b9c016101a9565b9b6000805560805260a05260c0528260e05261010052610120528015610178578504600052600360205260406000205560045582600052600160205260406000205581600052600260205260406000205560005560018060a01b031660018060a01b0319600554161760055560018060a01b031660018060a01b0319600654161760065560405161089e90816101be8239608051816101b3015260a0518160f3015260c0518161076e015260e0518181816102b90152818161051001526107d1015261010051818181610131015261016e0152610120518161027d0152f35b634e487b7160e01b600052601260045260246000fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361018e5756fe608080604052600436101561001357600080fd5b600090813560e01c9081632073ee70146107ba575080632b7ac3f314610791578063304b9071146107565780633ab7dd98146106e45780633f37dce214610333578063452a93201461030a57806356f90d79146102e05780635dc86c6d146102a057806374be2150146102655780637623ee291461023b5780637640d76b146102115780637f32e397146101f35780638f7dcfa3146101d6578063a8769acb1461019b578063b97dd9e214610154578063da30e279146101195763f2882461146100dc57600080fd5b3461011657806003193601126101165760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b80fd5b503461011657806003193601126101165760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b5034610116578060031936011261011657610193602091547f000000000000000000000000000000000000000000000000000000000000000090610848565b604051908152f35b503461011657806003193601126101165760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b503461011657806003193601126101165760209054604051908152f35b50346101165780600319360112610116576020600454604051908152f35b50346101165760203660031901126101165760406020916004358152600383522054604051908152f35b50346101165760203660031901126101165760406020916004358152600283522054604051908152f35b503461011657806003193601126101165760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b50346101165760203660031901126101165760206101937f0000000000000000000000000000000000000000000000000000000000000000600435610848565b50346101165760203660031901126101165760406020916004358152600183522054604051908152f35b50346101165780600319360112610116576006546040516001600160a01b039091168152602090f35b50346101165760403660031901126101165760043567ffffffffffffffff81116106e0576103659036906004016107f4565b60243567ffffffffffffffff81116106dc576103859036906004016107f4565b60e082828196940103126106d85760405160e0810181811067ffffffffffffffff8211176106c4576040528435815260208101926020860135845260408201956040810135875260608301956060820135875260808401946080830135865260a08301359460a081019686885260c082019660c086013588528c5490818111156106b2575081519081036106a05750815190518c52600160205260408c20540361068d57506005546004548b94936001600160a01b039092169291833b15610689576104799661048b916040519889978896879663020a49e360e51b88526004880152606060248801526064870191610827565b84810360031901604486015291610827565b03915afa801561067e5761064e575b50815180875586526001602052604086205461063a5782518251875260016020526040872055815186526002602052604086205461062657518151865260026020526040862055519051907ffefccbcf6acd2cac524c1cb2d70450cabbec5bc95873e927c121d2d9b7924a028580a361053583547f000000000000000000000000000000000000000000000000000000000000000090610848565b9182845260036020526040842054156105eb575b508051610554578280f35b600182018092116105d75781835260036020526040832054815103610577578280f35b818352600360205260408320546105c35780518284526003602052604084205551907f783ee45e8820a8249b1456ff4a715f3bd483b1a59bdc7a49bbc316bbd67a4e2f8380a338808280f35b630dbcb16560e41b83526004829052602483fd5b634e487b7160e01b83526011600452602483fd5b80518385526003602052604085205551827f783ee45e8820a8249b1456ff4a715f3bd483b1a59bdc7a49bbc316bbd67a4e2f8580a338610549565b815163128fe76160e01b8752600452602486fd5b8151631b25d51d60e31b8752600452602486fd5b67ffffffffffffffff819792971161066a57604052943861049a565b634e487b7160e01b82526041600452602482fd5b6040513d89823e3d90fd5b8580fd5b5163507f96ed60e01b8b5260045260248afd5b63111bc4e760e11b8d5260045260248cfd5b635b45c99560e11b8e5260045260248dfd5b634e487b7160e01b87526041600452602487fd5b8480fd5b8380fd5b5080fd5b5034610116576020366003190112610116576006546001600160a01b031633036107115760043560045580f35b60405162461bcd60e51b815260206004820152601a60248201527f43616c6c6572206973206e6f742074686520677561726469616e0000000000006044820152606490fd5b503461011657806003193601126101165760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b50346101165780600319360112610116576005546040516001600160a01b039091168152602090f35b9050346106e057816003193601126106e0576020907f00000000000000000000000000000000000000000000000000000000000000008152f35b9181601f840112156108225782359167ffffffffffffffff8311610822576020838186019501011161082257565b600080fd5b908060209392818452848401376000828201840152601f01601f1916010190565b8115610852570490565b634e487b7160e01b600052601260045260246000fdfea2646970667358221220bd0e0a60c88f22819339810171a99454832f8c28496d826b37fae1023090b5cb64736f6c634300081a00339143aa7c615a7f7115e2b6aac319c03529df8242ae705fba9df39b79c59fa8b10000000000000000000000000000000000000000000000000000000065156ac0000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000042683ac41660da3ec7b9172c7c43d6fc84418f4ebbfb0fb6f28363cada162851e3f7bcdae0b7a2fef74e3eac1c8b619b9c0bb663705f5570e54e3e8efc254a2353773ef7dfb7e5a241fcaa46e3e01b9784272f1bf6ab0cdd1d4867413bd1d9e660400000000000000000000000000000000000000000000000000000000000232e4000d6e3e00bbe9dbc766bf4125607a981b615821e75ca1e4d453314980408ba49000000000000000000000000a8e3727fec1ac58eb6be613332a8768d9d6165e90000000000000000000000002aa4e49991774a8ca9cc6d1e2686cd1b42e43fd5
Deployed Bytecode
0x608080604052600436101561001357600080fd5b600090813560e01c9081632073ee70146107ba575080632b7ac3f314610791578063304b9071146107565780633ab7dd98146106e45780633f37dce214610333578063452a93201461030a57806356f90d79146102e05780635dc86c6d146102a057806374be2150146102655780637623ee291461023b5780637640d76b146102115780637f32e397146101f35780638f7dcfa3146101d6578063a8769acb1461019b578063b97dd9e214610154578063da30e279146101195763f2882461146100dc57600080fd5b3461011657806003193601126101165760206040517f0000000000000000000000000000000000000000000000000000000065156ac08152f35b80fd5b503461011657806003193601126101165760206040517f00000000000000000000000000000000000000000000000000000000000000208152f35b5034610116578060031936011261011657610193602091547f000000000000000000000000000000000000000000000000000000000000002090610848565b604051908152f35b503461011657806003193601126101165760206040517f9143aa7c615a7f7115e2b6aac319c03529df8242ae705fba9df39b79c59fa8b18152f35b503461011657806003193601126101165760209054604051908152f35b50346101165780600319360112610116576020600454604051908152f35b50346101165760203660031901126101165760406020916004358152600383522054604051908152f35b50346101165760203660031901126101165760406020916004358152600283522054604051908152f35b503461011657806003193601126101165760206040517f00000000000000000000000000000000000000000000000000000000000042688152f35b50346101165760203660031901126101165760206101937f0000000000000000000000000000000000000000000000000000000000002000600435610848565b50346101165760203660031901126101165760406020916004358152600183522054604051908152f35b50346101165780600319360112610116576006546040516001600160a01b039091168152602090f35b50346101165760403660031901126101165760043567ffffffffffffffff81116106e0576103659036906004016107f4565b60243567ffffffffffffffff81116106dc576103859036906004016107f4565b60e082828196940103126106d85760405160e0810181811067ffffffffffffffff8211176106c4576040528435815260208101926020860135845260408201956040810135875260608301956060820135875260808401946080830135865260a08301359460a081019686885260c082019660c086013588528c5490818111156106b2575081519081036106a05750815190518c52600160205260408c20540361068d57506005546004548b94936001600160a01b039092169291833b15610689576104799661048b916040519889978896879663020a49e360e51b88526004880152606060248801526064870191610827565b84810360031901604486015291610827565b03915afa801561067e5761064e575b50815180875586526001602052604086205461063a5782518251875260016020526040872055815186526002602052604086205461062657518151865260026020526040862055519051907ffefccbcf6acd2cac524c1cb2d70450cabbec5bc95873e927c121d2d9b7924a028580a361053583547f000000000000000000000000000000000000000000000000000000000000200090610848565b9182845260036020526040842054156105eb575b508051610554578280f35b600182018092116105d75781835260036020526040832054815103610577578280f35b818352600360205260408320546105c35780518284526003602052604084205551907f783ee45e8820a8249b1456ff4a715f3bd483b1a59bdc7a49bbc316bbd67a4e2f8380a338808280f35b630dbcb16560e41b83526004829052602483fd5b634e487b7160e01b83526011600452602483fd5b80518385526003602052604085205551827f783ee45e8820a8249b1456ff4a715f3bd483b1a59bdc7a49bbc316bbd67a4e2f8580a338610549565b815163128fe76160e01b8752600452602486fd5b8151631b25d51d60e31b8752600452602486fd5b67ffffffffffffffff819792971161066a57604052943861049a565b634e487b7160e01b82526041600452602482fd5b6040513d89823e3d90fd5b8580fd5b5163507f96ed60e01b8b5260045260248afd5b63111bc4e760e11b8d5260045260248cfd5b635b45c99560e11b8e5260045260248dfd5b634e487b7160e01b87526041600452602487fd5b8480fd5b8380fd5b5080fd5b5034610116576020366003190112610116576006546001600160a01b031633036107115760043560045580f35b60405162461bcd60e51b815260206004820152601a60248201527f43616c6c6572206973206e6f742074686520677561726469616e0000000000006044820152606490fd5b503461011657806003193601126101165760206040517f000000000000000000000000000000000000000000000000000000000000000c8152f35b50346101165780600319360112610116576005546040516001600160a01b039091168152602090f35b9050346106e057816003193601126106e0576020907f00000000000000000000000000000000000000000000000000000000000020008152f35b9181601f840112156108225782359167ffffffffffffffff8311610822576020838186019501011161082257565b600080fd5b908060209392818452848401376000828201840152601f01601f1916010190565b8115610852570490565b634e487b7160e01b600052601260045260246000fdfea2646970667358221220bd0e0a60c88f22819339810171a99454832f8c28496d826b37fae1023090b5cb64736f6c634300081a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
9143aa7c615a7f7115e2b6aac319c03529df8242ae705fba9df39b79c59fa8b10000000000000000000000000000000000000000000000000000000065156ac0000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000042683ac41660da3ec7b9172c7c43d6fc84418f4ebbfb0fb6f28363cada162851e3f7bcdae0b7a2fef74e3eac1c8b619b9c0bb663705f5570e54e3e8efc254a2353773ef7dfb7e5a241fcaa46e3e01b9784272f1bf6ab0cdd1d4867413bd1d9e660400000000000000000000000000000000000000000000000000000000000232e4000d6e3e00bbe9dbc766bf4125607a981b615821e75ca1e4d453314980408ba49000000000000000000000000a8e3727fec1ac58eb6be613332a8768d9d6165e90000000000000000000000002aa4e49991774a8ca9cc6d1e2686cd1b42e43fd5
-----Decoded View---------------
Arg [0] : _genesisValidatorsRoot (bytes32): 0x9143aa7c615a7f7115e2b6aac319c03529df8242ae705fba9df39b79c59fa8b1
Arg [1] : _genesisTime (uint256): 1695902400
Arg [2] : _secondsPerSlot (uint256): 12
Arg [3] : _slotsPerPeriod (uint256): 8192
Arg [4] : _slotsPerEpoch (uint256): 32
Arg [5] : _sourceChainId (uint256): 17000
Arg [6] : _syncCommitteeHash (bytes32): 0x3ac41660da3ec7b9172c7c43d6fc84418f4ebbfb0fb6f28363cada162851e3f7
Arg [7] : _header (bytes32): 0xbcdae0b7a2fef74e3eac1c8b619b9c0bb663705f5570e54e3e8efc254a235377
Arg [8] : _executionStateRoot (bytes32): 0x3ef7dfb7e5a241fcaa46e3e01b9784272f1bf6ab0cdd1d4867413bd1d9e66040
Arg [9] : _head (uint256): 2305600
Arg [10] : _telepathyProgramVkey (bytes32): 0x00d6e3e00bbe9dbc766bf4125607a981b615821e75ca1e4d453314980408ba49
Arg [11] : _verifier (address): 0xa8E3727FeC1ac58Eb6BE613332a8768D9D6165e9
Arg [12] : _guardian (address): 0x2AA4e49991774a8cA9cc6D1E2686cd1b42E43FD5
-----Encoded View---------------
13 Constructor Arguments found :
Arg [0] : 9143aa7c615a7f7115e2b6aac319c03529df8242ae705fba9df39b79c59fa8b1
Arg [1] : 0000000000000000000000000000000000000000000000000000000065156ac0
Arg [2] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [3] : 0000000000000000000000000000000000000000000000000000000000002000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [5] : 0000000000000000000000000000000000000000000000000000000000004268
Arg [6] : 3ac41660da3ec7b9172c7c43d6fc84418f4ebbfb0fb6f28363cada162851e3f7
Arg [7] : bcdae0b7a2fef74e3eac1c8b619b9c0bb663705f5570e54e3e8efc254a235377
Arg [8] : 3ef7dfb7e5a241fcaa46e3e01b9784272f1bf6ab0cdd1d4867413bd1d9e66040
Arg [9] : 0000000000000000000000000000000000000000000000000000000000232e40
Arg [10] : 00d6e3e00bbe9dbc766bf4125607a981b615821e75ca1e4d453314980408ba49
Arg [11] : 000000000000000000000000a8e3727fec1ac58eb6be613332a8768d9d6165e9
Arg [12] : 0000000000000000000000002aa4e49991774a8ca9cc6d1e2686cd1b42e43fd5
Loading...
Loading
Loading...
Loading
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.