frxETH Price: $3,995.94 (-0.11%)

Contract

0xc0d3C0D3C0D3c0D3C0D3C0d3C0D3c0D3c0d30015

Overview

frxETH Balance | FXTL Balance

0 frxETH | 0 FXTL

frxETH Value

$0.00

More Info

Private Name Tags

ContractCreator

GENESIS at txn GENESIS_c0d3c0d3c0d3c0d3c0d3c0d3c0d3c0d3c0d30015

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

Parent Transaction Hash Block From To
View All Internal Transactions

Loading...
Loading

Contract Source Code Verified (Genesis Bytecode Match Only)

Contract Name:
FraxchainL1Block

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
london EvmVersion, MIT license
File 1 of 2 : FraxchainL1Block.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.15;

import { ISemver } from "@eth-optimism/contracts-bedrock/src/universal/ISemver.sol";

/// @custom:proxied
/// @custom:predeploy 0x4200000000000000000000000000000000000015
/// @title L1Block
/// @notice The L1Block predeploy gives users access to information about the last known L1 block.
///         Values within this contract are updated once per epoch (every L1 block) and can only be
///         set by the "depositor" account, a special system address. Depositor account transactions
///         are created by the protocol whenever we move to a new epoch.
contract FraxchainL1Block is ISemver {
    /// @notice Address of the special depositor account.
    address public constant DEPOSITOR_ACCOUNT = 0xDeaDDEaDDeAdDeAdDEAdDEaddeAddEAdDEAd0001;

    /// @notice The latest L1 block number known by the L2 system.
    uint64 public number;

    /// @notice The latest L1 timestamp known by the L2 system.
    uint64 public timestamp;

    /// @notice The latest L1 base fee.
    uint256 public basefee;

    /// @notice The latest L1 blockhash.
    bytes32 public hash;

    /// @notice The number of L2 blocks in the same epoch.
    uint64 public sequenceNumber;

    /// @notice The scalar value applied to the L1 blob base fee portion of the blob-capable L1 cost func.
    uint32 public blobBaseFeeScalar;

    /// @notice The scalar value applied to the L1 base fee portion of the blob-capable L1 cost func.
    uint32 public baseFeeScalar;

    /// @notice The versioned hash to authenticate the batcher by.
    bytes32 public batcherHash;

    /// @notice The overhead value applied to the L1 portion of the transaction fee.
    /// @custom:legacy
    uint256 public l1FeeOverhead;

    /// @notice The scalar value applied to the L1 portion of the transaction fee.
    /// @custom:legacy
    uint256 public l1FeeScalar;

    /// @notice The latest L1 blob base fee.
    uint256 public blobBaseFee;

    /// @custom:semver 1.2.0
    string public constant version = "1.2.0";

    /// @notice Reserve extra slots (to a total of 50) in the storage layout for future upgrades of the L1Block contract.
    /// @dev Added by Frax Finance
    uint256[42] private __gap;

    /// @notice Mapping from blockHash to bool that it written after a block hash is received from L1
    /// @dev Added by Frax Finance
    mapping(bytes32 => bool) public storedBlockHashes;

    /// @notice The ```BlockHashReceived``` event is emitted when a block hash is received
    /// @dev Added by Frax Finance
    /// @param blockHash A block hash of a L1 block
    event BlockHashReceived(bytes32 blockHash);

    /// @notice Updates the L1 block values.
    /// @param _number         L1 blocknumber.
    /// @param _timestamp      L1 timestamp.
    /// @param _basefee        L1 basefee.
    /// @param _hash           L1 blockhash.
    /// @param _sequenceNumber Number of L2 blocks since epoch start.
    /// @param _batcherHash    Versioned hash to authenticate batcher by.
    /// @param _l1FeeOverhead  L1 fee overhead.
    /// @param _l1FeeScalar    L1 fee scalar.
    function setL1BlockValues(
        uint64 _number,
        uint64 _timestamp,
        uint256 _basefee,
        bytes32 _hash,
        uint64 _sequenceNumber,
        bytes32 _batcherHash,
        uint256 _l1FeeOverhead,
        uint256 _l1FeeScalar
    ) external {
        require(msg.sender == DEPOSITOR_ACCOUNT, "L1Block: only the depositor account can set L1 block values");

        number = _number;
        timestamp = _timestamp;
        basefee = _basefee;
        hash = _hash;
        sequenceNumber = _sequenceNumber;
        batcherHash = _batcherHash;
        l1FeeOverhead = _l1FeeOverhead;
        l1FeeScalar = _l1FeeScalar;

        // Don't write state or emit event again if we already stored this hash
        /// @dev Added by Frax Finance
        if (!storedBlockHashes[_hash]) {
            storedBlockHashes[_hash] = true;
            emit BlockHashReceived(_hash);
        }
    }

    /// @notice The ```blockHashStored``` function returns if the _blockHash is stored or not
    /// @param _blockHash The block hash
    /// @return _result A bool representing if the _blockHash is stored or not
    function blockHashStored(bytes32 _blockHash) external view returns (bool _result) {
        _result = storedBlockHashes[_blockHash];
    }

    /// @notice Updates the L1 block values for an Ecotone upgraded chain.
    /// Params are packed and passed in as raw msg.data instead of ABI to reduce calldata size.
    /// Params are expected to be in the following order:
    ///   1. _baseFeeScalar      L1 base fee scalar
    ///   2. _blobBaseFeeScalar  L1 blob base fee scalar
    ///   3. _sequenceNumber     Number of L2 blocks since epoch start.
    ///   4. _timestamp          L1 timestamp.
    ///   5. _number             L1 blocknumber.
    ///   6. _basefee            L1 base fee.
    ///   7. _blobBaseFee        L1 blob base fee.
    ///   8. _hash               L1 blockhash.
    ///   9. _batcherHash        Versioned hash to authenticate batcher by.
    function setL1BlockValuesEcotone() external {
        bytes32 eventHash = bytes32(keccak256("BlockHashReceived(bytes32)"));

        assembly {
            // Revert if the caller is not the depositor account.
            if xor(caller(), DEPOSITOR_ACCOUNT) {
                mstore(0x00, 0x3cc50b45) // 0x3cc50b45 is the 4-byte selector of "NotDepositor()"
                revert(0x1C, 0x04) // returns the stored 4-byte selector from above
            }
            let data := calldataload(4)
            // sequencenum (uint64), blobBaseFeeScalar (uint32), baseFeeScalar (uint32)
            sstore(sequenceNumber.slot, shr(128, calldataload(4)))
            // number (uint64) and timestamp (uint64)
            sstore(number.slot, shr(128, calldataload(20)))
            sstore(basefee.slot, calldataload(36)) // uint256
            sstore(blobBaseFee.slot, calldataload(68)) // uint256
            sstore(hash.slot, calldataload(100)) // bytes32
            sstore(batcherHash.slot, calldataload(132)) // bytes32

            // Added by Frax Finance
            // load the L1 blockhash to memory
            mstore(0, calldataload(100)) // bytes32
            // load the storage slot of storedBlockHashes to memory
            mstore(32, 50) // for clarity - same as storedBlackHashes.slot
            // Get the hash of the memory for the mapping key
            let key := keccak256(0, 64)
            // Update mapping only if the mapping has not yet been updated
            if eq(sload(key), false) {
                // Set the mapping to true
                sstore(key, true)
                // Emit the event of the blockhash from memory
                log1(0, 32, eventHash)
            }
        }
    }
}

File 2 of 2 : ISemver.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

/// @title ISemver
/// @notice ISemver is a simple contract for ensuring that contracts are
///         versioned using semantic versioning.
interface ISemver {
    /// @notice Getter for the semantic version of the contract. This is not
    ///         meant to be used onchain but instead meant to be used by offchain
    ///         tooling.
    /// @return Semver contract version as a string.
    function version() external view returns (string memory);
}

Settings
{
  "remappings": [
    "frax-std/=lib/frax-standard-solidity/src/",
    "@eth-optimism/=lib/optimism/packages/",
    "lib/optimism/packages/contracts-bedrock:src/=lib/optimism/packages/contracts-bedrock/src/",
    "@openzeppelin-4/=node_modules/@openzeppelin-4/",
    "@openzeppelin-5/=node_modules/@openzeppelin-5/",
    "@openzeppelin/=node_modules/@openzeppelin/",
    "@rari-capital/=node_modules/@rari-capital/",
    "clones-with-immutable-args/=lib/optimism/packages/contracts-bedrock/lib/clones-with-immutable-args/src/",
    "ds-test/=lib/frax-standard-solidity/lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/frax-standard-solidity/lib/forge-std/src/",
    "frax-standard-solidity/=lib/frax-standard-solidity/src/",
    "kontrol-cheatcodes/=lib/optimism/packages/contracts-bedrock/lib/kontrol-cheatcodes/src/",
    "lib-keccak/=lib/optimism/packages/contracts-bedrock/lib/lib-keccak/contracts/",
    "openzeppelin-contracts-upgradeable/=lib/optimism/packages/contracts-bedrock/lib/openzeppelin-contracts-upgradeable/",
    "openzeppelin-contracts/=lib/optimism/packages/contracts-bedrock/lib/openzeppelin-contracts/",
    "optimism/=lib/optimism/",
    "safe-contracts/=lib/optimism/packages/contracts-bedrock/lib/safe-contracts/contracts/",
    "solady/=lib/optimism/packages/contracts-bedrock/lib/solady/",
    "solidity-bytes-utils/=lib/frax-standard-solidity/lib/solidity-bytes-utils/",
    "solmate/=lib/optimism/packages/contracts-bedrock/lib/solmate/src/"
  ],
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "none"
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "evmVersion": "london",
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"blockHash","type":"bytes32"}],"name":"BlockHashReceived","type":"event"},{"inputs":[],"name":"DEPOSITOR_ACCOUNT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseFeeScalar","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"basefee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"batcherHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blobBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blobBaseFeeScalar","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_blockHash","type":"bytes32"}],"name":"blockHashStored","outputs":[{"internalType":"bool","name":"_result","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"l1FeeOverhead","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"l1FeeScalar","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"number","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sequenceNumber","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"_number","type":"uint64"},{"internalType":"uint64","name":"_timestamp","type":"uint64"},{"internalType":"uint256","name":"_basefee","type":"uint256"},{"internalType":"bytes32","name":"_hash","type":"bytes32"},{"internalType":"uint64","name":"_sequenceNumber","type":"uint64"},{"internalType":"bytes32","name":"_batcherHash","type":"bytes32"},{"internalType":"uint256","name":"_l1FeeOverhead","type":"uint256"},{"internalType":"uint256","name":"_l1FeeScalar","type":"uint256"}],"name":"setL1BlockValues","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setL1BlockValuesEcotone","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"storedBlockHashes","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"timestamp","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]

608060405234801561001057600080fd5b506004361061010b5760003560e01c80638381f58a116100a2578063c598591811610071578063c598591814610274578063e591b28214610292578063e81b2c6d146102b0578063ebe86a55146102ce578063f8206140146102fe5761010b565b80638381f58a146101fc5780638b239f731461021a5780639e8c496614610238578063b80777ea146102565761010b565b80635cf24969116100de5780635cf249691461017257806364ca23ef1461019057806368d5dca6146101ae5780638178856b146101cc5761010b565b8063015d8eb91461011057806309bd5a601461012c578063440a5e201461014a57806354fd4d5014610154575b600080fd5b61012a6004803603810190610125919061075b565b61031c565b005b6101346104ce565b6040516101419190610820565b60405180910390f35b6101526104d4565b005b61015c610579565b60405161016991906108d4565b60405180910390f35b61017a6105b2565b6040516101879190610905565b60405180910390f35b6101986105b8565b6040516101a5919061092f565b60405180910390f35b6101b66105d2565b6040516101c39190610969565b60405180910390f35b6101e660048036038101906101e19190610984565b6105e8565b6040516101f391906109cc565b60405180910390f35b610204610608565b604051610211919061092f565b60405180910390f35b610222610620565b60405161022f9190610905565b60405180910390f35b610240610626565b60405161024d9190610905565b60405180910390f35b61025e61062c565b60405161026b919061092f565b60405180910390f35b61027c610646565b6040516102899190610969565b60405180910390f35b61029a61065c565b6040516102a79190610a28565b60405180910390f35b6102b8610674565b6040516102c59190610820565b60405180910390f35b6102e860048036038101906102e39190610984565b61067a565b6040516102f591906109cc565b60405180910390f35b6103066106a4565b6040516103139190610905565b60405180910390f35b73deaddeaddeaddeaddeaddeaddeaddeaddead000173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461039e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039590610ab5565b60405180910390fd5b876000806101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555086600060086101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550856001819055508460028190555083600360006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508260048190555081600581905550806006819055506032600086815260200190815260200160002060009054906101000a900460ff166104c45760016032600087815260200190815260200160002060006101000a81548160ff0219169083151502179055507f12cb9a47c977b6cbe82b9e495407e99a32a54bca6b26f1e4d497a3a42dccb914856040516104bb9190610820565b60405180910390a15b5050505050505050565b60025481565b60007f12cb9a47c977b6cbe82b9e495407e99a32a54bca6b26f1e4d497a3a42dccb914905073deaddeaddeaddeaddeaddeaddeaddeaddead000133181561052357633cc50b456000526004601cfd5b60043560043560801c60035560143560801c60005560243560015560443560075560643560025560843560045560643560005260326020526040600020600081540361057457600181558260206000a15b505050565b6040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60015481565b600360009054906101000a900467ffffffffffffffff1681565b600360089054906101000a900463ffffffff1681565b60326020528060005260406000206000915054906101000a900460ff1681565b60008054906101000a900467ffffffffffffffff1681565b60055481565b60065481565b600060089054906101000a900467ffffffffffffffff1681565b6003600c9054906101000a900463ffffffff1681565b73deaddeaddeaddeaddeaddeaddeaddeaddead000181565b60045481565b60006032600083815260200190815260200160002060009054906101000a900460ff169050919050565b60075481565b600080fd5b600067ffffffffffffffff82169050919050565b6106cc816106af565b81146106d757600080fd5b50565b6000813590506106e9816106c3565b92915050565b6000819050919050565b610702816106ef565b811461070d57600080fd5b50565b60008135905061071f816106f9565b92915050565b6000819050919050565b61073881610725565b811461074357600080fd5b50565b6000813590506107558161072f565b92915050565b600080600080600080600080610100898b03121561077c5761077b6106aa565b5b600061078a8b828c016106da565b985050602061079b8b828c016106da565b97505060406107ac8b828c01610710565b96505060606107bd8b828c01610746565b95505060806107ce8b828c016106da565b94505060a06107df8b828c01610746565b93505060c06107f08b828c01610710565b92505060e06108018b828c01610710565b9150509295985092959890939650565b61081a81610725565b82525050565b60006020820190506108356000830184610811565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561087557808201518184015260208101905061085a565b83811115610884576000848401525b50505050565b6000601f19601f8301169050919050565b60006108a68261083b565b6108b08185610846565b93506108c0818560208601610857565b6108c98161088a565b840191505092915050565b600060208201905081810360008301526108ee818461089b565b905092915050565b6108ff816106ef565b82525050565b600060208201905061091a60008301846108f6565b92915050565b610929816106af565b82525050565b60006020820190506109446000830184610920565b92915050565b600063ffffffff82169050919050565b6109638161094a565b82525050565b600060208201905061097e600083018461095a565b92915050565b60006020828403121561099a576109996106aa565b5b60006109a884828501610746565b91505092915050565b60008115159050919050565b6109c6816109b1565b82525050565b60006020820190506109e160008301846109bd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610a12826109e7565b9050919050565b610a2281610a07565b82525050565b6000602082019050610a3d6000830184610a19565b92915050565b7f4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f60008201527f756e742063616e20736574204c3120626c6f636b2076616c7565730000000000602082015250565b6000610a9f603b83610846565b9150610aaa82610a43565b604082019050919050565b60006020820190508181036000830152610ace81610a92565b905091905056fea164736f6c634300080f000a

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80638381f58a116100a2578063c598591811610071578063c598591814610274578063e591b28214610292578063e81b2c6d146102b0578063ebe86a55146102ce578063f8206140146102fe5761010b565b80638381f58a146101fc5780638b239f731461021a5780639e8c496614610238578063b80777ea146102565761010b565b80635cf24969116100de5780635cf249691461017257806364ca23ef1461019057806368d5dca6146101ae5780638178856b146101cc5761010b565b8063015d8eb91461011057806309bd5a601461012c578063440a5e201461014a57806354fd4d5014610154575b600080fd5b61012a6004803603810190610125919061075b565b61031c565b005b6101346104ce565b6040516101419190610820565b60405180910390f35b6101526104d4565b005b61015c610579565b60405161016991906108d4565b60405180910390f35b61017a6105b2565b6040516101879190610905565b60405180910390f35b6101986105b8565b6040516101a5919061092f565b60405180910390f35b6101b66105d2565b6040516101c39190610969565b60405180910390f35b6101e660048036038101906101e19190610984565b6105e8565b6040516101f391906109cc565b60405180910390f35b610204610608565b604051610211919061092f565b60405180910390f35b610222610620565b60405161022f9190610905565b60405180910390f35b610240610626565b60405161024d9190610905565b60405180910390f35b61025e61062c565b60405161026b919061092f565b60405180910390f35b61027c610646565b6040516102899190610969565b60405180910390f35b61029a61065c565b6040516102a79190610a28565b60405180910390f35b6102b8610674565b6040516102c59190610820565b60405180910390f35b6102e860048036038101906102e39190610984565b61067a565b6040516102f591906109cc565b60405180910390f35b6103066106a4565b6040516103139190610905565b60405180910390f35b73deaddeaddeaddeaddeaddeaddeaddeaddead000173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461039e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161039590610ab5565b60405180910390fd5b876000806101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555086600060086101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550856001819055508460028190555083600360006101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508260048190555081600581905550806006819055506032600086815260200190815260200160002060009054906101000a900460ff166104c45760016032600087815260200190815260200160002060006101000a81548160ff0219169083151502179055507f12cb9a47c977b6cbe82b9e495407e99a32a54bca6b26f1e4d497a3a42dccb914856040516104bb9190610820565b60405180910390a15b5050505050505050565b60025481565b60007f12cb9a47c977b6cbe82b9e495407e99a32a54bca6b26f1e4d497a3a42dccb914905073deaddeaddeaddeaddeaddeaddeaddeaddead000133181561052357633cc50b456000526004601cfd5b60043560043560801c60035560143560801c60005560243560015560443560075560643560025560843560045560643560005260326020526040600020600081540361057457600181558260206000a15b505050565b6040518060400160405280600581526020017f312e322e3000000000000000000000000000000000000000000000000000000081525081565b60015481565b600360009054906101000a900467ffffffffffffffff1681565b600360089054906101000a900463ffffffff1681565b60326020528060005260406000206000915054906101000a900460ff1681565b60008054906101000a900467ffffffffffffffff1681565b60055481565b60065481565b600060089054906101000a900467ffffffffffffffff1681565b6003600c9054906101000a900463ffffffff1681565b73deaddeaddeaddeaddeaddeaddeaddeaddead000181565b60045481565b60006032600083815260200190815260200160002060009054906101000a900460ff169050919050565b60075481565b600080fd5b600067ffffffffffffffff82169050919050565b6106cc816106af565b81146106d757600080fd5b50565b6000813590506106e9816106c3565b92915050565b6000819050919050565b610702816106ef565b811461070d57600080fd5b50565b60008135905061071f816106f9565b92915050565b6000819050919050565b61073881610725565b811461074357600080fd5b50565b6000813590506107558161072f565b92915050565b600080600080600080600080610100898b03121561077c5761077b6106aa565b5b600061078a8b828c016106da565b985050602061079b8b828c016106da565b97505060406107ac8b828c01610710565b96505060606107bd8b828c01610746565b95505060806107ce8b828c016106da565b94505060a06107df8b828c01610746565b93505060c06107f08b828c01610710565b92505060e06108018b828c01610710565b9150509295985092959890939650565b61081a81610725565b82525050565b60006020820190506108356000830184610811565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561087557808201518184015260208101905061085a565b83811115610884576000848401525b50505050565b6000601f19601f8301169050919050565b60006108a68261083b565b6108b08185610846565b93506108c0818560208601610857565b6108c98161088a565b840191505092915050565b600060208201905081810360008301526108ee818461089b565b905092915050565b6108ff816106ef565b82525050565b600060208201905061091a60008301846108f6565b92915050565b610929816106af565b82525050565b60006020820190506109446000830184610920565b92915050565b600063ffffffff82169050919050565b6109638161094a565b82525050565b600060208201905061097e600083018461095a565b92915050565b60006020828403121561099a576109996106aa565b5b60006109a884828501610746565b91505092915050565b60008115159050919050565b6109c6816109b1565b82525050565b60006020820190506109e160008301846109bd565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610a12826109e7565b9050919050565b610a2281610a07565b82525050565b6000602082019050610a3d6000830184610a19565b92915050565b7f4c31426c6f636b3a206f6e6c7920746865206465706f7369746f72206163636f60008201527f756e742063616e20736574204c3120626c6f636b2076616c7565730000000000602082015250565b6000610a9f603b83610846565b9150610aaa82610a43565b604082019050919050565b60006020820190508181036000830152610ace81610a92565b905091905056fea164736f6c634300080f000a

Deployed Bytecode Sourcemap

620:6224:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3121:907;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1112:19;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5118:1724;;;:::i;:::-;;2002:40;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1042:22;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1197:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1339:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2375:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;881:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1721:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1862:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;972:23;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1479:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;721:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1580:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4248:138;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1940:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3121:907;765:42;3404:31;;:10;:31;;;3396:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;3519:7;3510:6;;:16;;;;;;;;;;;;;;;;;;3548:10;3536:9;;:22;;;;;;;;;;;;;;;;;;3578:8;3568:7;:18;;;;3603:5;3596:4;:12;;;;3635:15;3618:14;;:32;;;;;;;;;;;;;;;;;;3674:12;3660:11;:26;;;;3712:14;3696:13;:30;;;;3750:12;3736:11;:26;;;;3897:17;:24;3915:5;3897:24;;;;;;;;;;;;;;;;;;;;;3892:130;;3964:4;3937:17;:24;3955:5;3937:24;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;3987:24;4005:5;3987:24;;;;;;:::i;:::-;;;;;;;;3892:130;3121:907;;;;;;;;:::o;1112:19::-;;;;:::o;5118:1724::-;5172:17;5200:39;5172:68;;5357:17;5347:8;5343:32;5340:233;;;5407:10;5401:4;5394:24;5505:4;5499;5492:18;5340:233;5611:1;5598:15;5764:1;5751:15;5746:3;5742:25;5721:19;5714:54;5877:2;5864:16;5859:3;5855:26;5842:11;5835:47;5929:2;5916:16;5902:12;5895:38;5995:2;5982:16;5964;5957:42;6054:3;6041:17;6030:9;6023:36;6121:3;6108:17;6090:16;6083:43;6258:3;6245:17;6242:1;6235:28;6366:2;6362;6355:14;6516:2;6513:1;6503:16;6625:5;6619:3;6613:10;6610:21;6607:219;;6705:4;6700:3;6693:17;6802:9;6798:2;6795:1;6790:22;6607:219;5260:1576;;;5118:1724::o;2002:40::-;;;;;;;;;;;;;;;;;;;:::o;1042:22::-;;;;:::o;1197:28::-;;;;;;;;;;;;;:::o;1339:31::-;;;;;;;;;;;;;:::o;2375:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;881:20::-;;;;;;;;;;;;:::o;1721:28::-;;;;:::o;1862:26::-;;;;:::o;972:23::-;;;;;;;;;;;;;:::o;1479:27::-;;;;;;;;;;;;;:::o;721:86::-;765:42;721:86;:::o;1580:26::-;;;;:::o;4248:138::-;4316:12;4350:17;:29;4368:10;4350:29;;;;;;;;;;;;;;;;;;;;;4340:39;;4248:138;;;:::o;1940:26::-;;;;:::o;88:117:2:-;197:1;194;187:12;334:101;370:7;410:18;403:5;399:30;388:41;;334:101;;;:::o;441:120::-;513:23;530:5;513:23;:::i;:::-;506:5;503:34;493:62;;551:1;548;541:12;493:62;441:120;:::o;567:137::-;612:5;650:6;637:20;628:29;;666:32;692:5;666:32;:::i;:::-;567:137;;;;:::o;710:77::-;747:7;776:5;765:16;;710:77;;;:::o;793:122::-;866:24;884:5;866:24;:::i;:::-;859:5;856:35;846:63;;905:1;902;895:12;846:63;793:122;:::o;921:139::-;967:5;1005:6;992:20;983:29;;1021:33;1048:5;1021:33;:::i;:::-;921:139;;;;:::o;1066:77::-;1103:7;1132:5;1121:16;;1066:77;;;:::o;1149:122::-;1222:24;1240:5;1222:24;:::i;:::-;1215:5;1212:35;1202:63;;1261:1;1258;1251:12;1202:63;1149:122;:::o;1277:139::-;1323:5;1361:6;1348:20;1339:29;;1377:33;1404:5;1377:33;:::i;:::-;1277:139;;;;:::o;1422:1343::-;1541:6;1549;1557;1565;1573;1581;1589;1597;1646:3;1634:9;1625:7;1621:23;1617:33;1614:120;;;1653:79;;:::i;:::-;1614:120;1773:1;1798:52;1842:7;1833:6;1822:9;1818:22;1798:52;:::i;:::-;1788:62;;1744:116;1899:2;1925:52;1969:7;1960:6;1949:9;1945:22;1925:52;:::i;:::-;1915:62;;1870:117;2026:2;2052:53;2097:7;2088:6;2077:9;2073:22;2052:53;:::i;:::-;2042:63;;1997:118;2154:2;2180:53;2225:7;2216:6;2205:9;2201:22;2180:53;:::i;:::-;2170:63;;2125:118;2282:3;2309:52;2353:7;2344:6;2333:9;2329:22;2309:52;:::i;:::-;2299:62;;2253:118;2410:3;2437:53;2482:7;2473:6;2462:9;2458:22;2437:53;:::i;:::-;2427:63;;2381:119;2539:3;2566:53;2611:7;2602:6;2591:9;2587:22;2566:53;:::i;:::-;2556:63;;2510:119;2668:3;2695:53;2740:7;2731:6;2720:9;2716:22;2695:53;:::i;:::-;2685:63;;2639:119;1422:1343;;;;;;;;;;;:::o;2771:118::-;2858:24;2876:5;2858:24;:::i;:::-;2853:3;2846:37;2771:118;;:::o;2895:222::-;2988:4;3026:2;3015:9;3011:18;3003:26;;3039:71;3107:1;3096:9;3092:17;3083:6;3039:71;:::i;:::-;2895:222;;;;:::o;3123:99::-;3175:6;3209:5;3203:12;3193:22;;3123:99;;;:::o;3228:169::-;3312:11;3346:6;3341:3;3334:19;3386:4;3381:3;3377:14;3362:29;;3228:169;;;;:::o;3403:307::-;3471:1;3481:113;3495:6;3492:1;3489:13;3481:113;;;3580:1;3575:3;3571:11;3565:18;3561:1;3556:3;3552:11;3545:39;3517:2;3514:1;3510:10;3505:15;;3481:113;;;3612:6;3609:1;3606:13;3603:101;;;3692:1;3683:6;3678:3;3674:16;3667:27;3603:101;3452:258;3403:307;;;:::o;3716:102::-;3757:6;3808:2;3804:7;3799:2;3792:5;3788:14;3784:28;3774:38;;3716:102;;;:::o;3824:364::-;3912:3;3940:39;3973:5;3940:39;:::i;:::-;3995:71;4059:6;4054:3;3995:71;:::i;:::-;3988:78;;4075:52;4120:6;4115:3;4108:4;4101:5;4097:16;4075:52;:::i;:::-;4152:29;4174:6;4152:29;:::i;:::-;4147:3;4143:39;4136:46;;3916:272;3824:364;;;;:::o;4194:313::-;4307:4;4345:2;4334:9;4330:18;4322:26;;4394:9;4388:4;4384:20;4380:1;4369:9;4365:17;4358:47;4422:78;4495:4;4486:6;4422:78;:::i;:::-;4414:86;;4194:313;;;;:::o;4513:118::-;4600:24;4618:5;4600:24;:::i;:::-;4595:3;4588:37;4513:118;;:::o;4637:222::-;4730:4;4768:2;4757:9;4753:18;4745:26;;4781:71;4849:1;4838:9;4834:17;4825:6;4781:71;:::i;:::-;4637:222;;;;:::o;4865:115::-;4950:23;4967:5;4950:23;:::i;:::-;4945:3;4938:36;4865:115;;:::o;4986:218::-;5077:4;5115:2;5104:9;5100:18;5092:26;;5128:69;5194:1;5183:9;5179:17;5170:6;5128:69;:::i;:::-;4986:218;;;;:::o;5210:93::-;5246:7;5286:10;5279:5;5275:22;5264:33;;5210:93;;;:::o;5309:115::-;5394:23;5411:5;5394:23;:::i;:::-;5389:3;5382:36;5309:115;;:::o;5430:218::-;5521:4;5559:2;5548:9;5544:18;5536:26;;5572:69;5638:1;5627:9;5623:17;5614:6;5572:69;:::i;:::-;5430:218;;;;:::o;5654:329::-;5713:6;5762:2;5750:9;5741:7;5737:23;5733:32;5730:119;;;5768:79;;:::i;:::-;5730:119;5888:1;5913:53;5958:7;5949:6;5938:9;5934:22;5913:53;:::i;:::-;5903:63;;5859:117;5654:329;;;;:::o;5989:90::-;6023:7;6066:5;6059:13;6052:21;6041:32;;5989:90;;;:::o;6085:109::-;6166:21;6181:5;6166:21;:::i;:::-;6161:3;6154:34;6085:109;;:::o;6200:210::-;6287:4;6325:2;6314:9;6310:18;6302:26;;6338:65;6400:1;6389:9;6385:17;6376:6;6338:65;:::i;:::-;6200:210;;;;:::o;6416:126::-;6453:7;6493:42;6486:5;6482:54;6471:65;;6416:126;;;:::o;6548:96::-;6585:7;6614:24;6632:5;6614:24;:::i;:::-;6603:35;;6548:96;;;:::o;6650:118::-;6737:24;6755:5;6737:24;:::i;:::-;6732:3;6725:37;6650:118;;:::o;6774:222::-;6867:4;6905:2;6894:9;6890:18;6882:26;;6918:71;6986:1;6975:9;6971:17;6962:6;6918:71;:::i;:::-;6774:222;;;;:::o;7002:246::-;7142:34;7138:1;7130:6;7126:14;7119:58;7211:29;7206:2;7198:6;7194:15;7187:54;7002:246;:::o;7254:366::-;7396:3;7417:67;7481:2;7476:3;7417:67;:::i;:::-;7410:74;;7493:93;7582:3;7493:93;:::i;:::-;7611:2;7606:3;7602:12;7595:19;;7254:366;;;:::o;7626:419::-;7792:4;7830:2;7819:9;7815:18;7807:26;;7879:9;7873:4;7869:20;7865:1;7854:9;7850:17;7843:47;7907:131;8033:4;7907:131;:::i;:::-;7899:139;;7626:419;;;:::o

Swarm Source

none

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits

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.