Sepolia Testnet

Contract

0x67952E466B2C61FE7B323262b289C8A90B264e27

Overview

ETH Balance

0 ETH

More Info

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Update65570822024-08-23 16:58:24297 days ago1724432304IN
0x67952E46...90B264e27
0 ETH0.0003021310.14848829
Update65570652024-08-23 16:54:48297 days ago1724432088IN
0x67952E46...90B264e27
0 ETH0.000327611.00405781
Update65570402024-08-23 16:49:24297 days ago1724431764IN
0x67952E46...90B264e27
0 ETH0.0005484518.42252088
Update65570162024-08-23 16:44:00297 days ago1724431440IN
0x67952E46...90B264e27
0 ETH0.0008327.87965785
Update65569952024-08-23 16:38:36297 days ago1724431116IN
0x67952E46...90B264e27
0 ETH0.0009377131.49763121
Update65569732024-08-23 16:33:12297 days ago1724430792IN
0x67952E46...90B264e27
0 ETH0.0008246127.69860825
Update65569492024-08-23 16:27:48297 days ago1724430468IN
0x67952E46...90B264e27
0 ETH0.0011653939.16115671
Update65569252024-08-23 16:22:24297 days ago1724430144IN
0x67952E46...90B264e27
0 ETH0.001849662.15278217
Update65568992024-08-23 16:17:00297 days ago1724429820IN
0x67952E46...90B264e27
0 ETH0.0027151391.2373622
Update65568762024-08-23 16:11:36297 days ago1724429496IN
0x67952E46...90B264e27
0 ETH0.0029305598.43643756
Update65568512024-08-23 16:06:12297 days ago1724429172IN
0x67952E46...90B264e27
0 ETH0.0028208994.7532176
Update65568262024-08-23 16:00:48297 days ago1724428848IN
0x67952E46...90B264e27
0 ETH0.00370937124.64709355
Update65568012024-08-23 15:55:24297 days ago1724428524IN
0x67952E46...90B264e27
0 ETH0.00375574126.15433603
Update65567762024-08-23 15:50:00297 days ago1724428200IN
0x67952E46...90B264e27
0 ETH0.00430797144.70358663
Update65567522024-08-23 15:44:48297 days ago1724427888IN
0x67952E46...90B264e27
0 ETH0.00448755150.7358939
Update65567282024-08-23 15:39:24297 days ago1724427564IN
0x67952E46...90B264e27
0 ETH0.00478231160.6366547
Update65567052024-08-23 15:34:00297 days ago1724427240IN
0x67952E46...90B264e27
0 ETH0.00451817151.76426091
Update65566822024-08-23 15:28:36297 days ago1724426916IN
0x67952E46...90B264e27
0 ETH0.00513974172.71224881
Update65566572024-08-23 15:23:12297 days ago1724426592IN
0x67952E46...90B264e27
0 ETH0.00592873199.14458478
Update65566352024-08-23 15:17:48297 days ago1724426268IN
0x67952E46...90B264e27
0 ETH0.00468317157.37001566
Update65566112024-08-23 15:12:24297 days ago1724425944IN
0x67952E46...90B264e27
0 ETH0.00471484158.37041973
Update65565142024-08-23 14:50:24297 days ago1724424624IN
0x67952E46...90B264e27
0 ETH0.00312803105.06983778
Update65564882024-08-23 14:45:00297 days ago1724424300IN
0x67952E46...90B264e27
0 ETH0.00323306108.59769474
Update65564632024-08-23 14:39:24297 days ago1724423964IN
0x67952E46...90B264e27
0 ETH0.002698390.67200981
Update65564372024-08-23 14:34:00297 days ago1724423640IN
0x67952E46...90B264e27
0 ETH0.0025695786.34613952
View all transactions

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Method Block
From
To
0x6101403464936072024-08-13 17:53:48307 days ago1723571628  Contract Creation0 ETH

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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);
}

Settings
{
  "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"}]

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


Block Uncle Number Difficulty Gas Used Reward
View All Uncles
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.