ETH Price: $3,116.35 (-1.23%)

Contract

0x422b4c98034c3837D12F557933B46da229671103

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Add Config157103552025-11-06 18:19:2667 days ago1762453166IN
0x422b4c98...229671103
0 ETH0.000002930.00100026
Add Config121696492025-09-26 18:47:40108 days ago1758912460IN
0x422b4c98...229671103
0 ETH0.000002930.00100026
Add Config113846032025-09-17 16:43:34117 days ago1758127414IN
0x422b4c98...229671103
0 ETH0.000002950.00100026
Add Config89635582025-08-20 16:12:49145 days ago1755706369IN
0x422b4c98...229671103
0 ETH0.000002960.00100026
Add Config87953762025-08-18 17:29:47147 days ago1755538187IN
0x422b4c98...229671103
0 ETH0.000002920.00100054
Add Config72362122025-07-31 16:23:43165 days ago1753979023IN
0x422b4c98...229671103
0 ETH0.000002980.00100026
Add Config47302852025-07-02 16:18:16194 days ago1751473096IN
0x422b4c98...229671103
0 ETH0.000001490.00085087
Add Config43112372025-06-27 19:54:08199 days ago1751054048IN
0x422b4c98...229671103
0 ETH0.000001570.00100025
Add Config41521152025-06-25 23:42:06201 days ago1750894926IN
0x422b4c98...229671103
0 ETH0.000001570.00100025
Add Config41517532025-06-25 23:36:04201 days ago1750894564IN
0x422b4c98...229671103
0 ETH0.000001570.00100025
Add Config41514362025-06-25 23:30:47201 days ago1750894247IN
0x422b4c98...229671103
0 ETH0.000001570.00100025
Add Config41477132025-06-25 22:28:44201 days ago1750890524IN
0x422b4c98...229671103
0 ETH0.00000160.00100025
Add Config41473892025-06-25 22:23:20201 days ago1750890200IN
0x422b4c98...229671103
0 ETH0.000001590.00100025
Add Config41470592025-06-25 22:17:50201 days ago1750889870IN
0x422b4c98...229671103
0 ETH0.00000160.00100025
Add Config41467292025-06-25 22:12:20201 days ago1750889540IN
0x422b4c98...229671103
0 ETH0.00000160.00100025
Add Config41463742025-06-25 22:06:25201 days ago1750889185IN
0x422b4c98...229671103
0 ETH0.00000160.00100025
Add Config41459902025-06-25 22:00:01201 days ago1750888801IN
0x422b4c98...229671103
0 ETH0.000001590.00100025
Add Config40737662025-06-25 1:56:17202 days ago1750816577IN
0x422b4c98...229671103
0 ETH0.000001730.00100025
Add Config40734142025-06-25 1:50:25202 days ago1750816225IN
0x422b4c98...229671103
0 ETH0.000001750.00100025
Add Config40729852025-06-25 1:43:16202 days ago1750815796IN
0x422b4c98...229671103
0 ETH0.000001740.00100025
Add Config40726482025-06-25 1:37:39202 days ago1750815459IN
0x422b4c98...229671103
0 ETH0.000001740.00100025
Add Config40720632025-06-25 1:27:54202 days ago1750814874IN
0x422b4c98...229671103
0 ETH0.000001750.00100025
Add Config36113672025-06-19 17:29:38207 days ago1750354178IN
0x422b4c98...229671103
0 ETH0.00000160.00100025
Add Config36107672025-06-19 17:19:38207 days ago1750353578IN
0x422b4c98...229671103
0 ETH0.00000160.00100025
Add Config36103182025-06-19 17:12:09207 days ago1750353129IN
0x422b4c98...229671103
0 ETH0.00000160.00100025
View all transactions

Advanced mode:
Parent Transaction Hash Block From To
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
OCRConfigurationStoreEVMSimple

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "./interfaces/TypeAndVersionInterface.sol";
import "./lib/ConfigDigestUtilEVMSimple.sol";
import "./OwnerIsCreator.sol";
import "./OCR2Abstract.sol";

/// @title OCRConfigurationStoreEVMSimple
/// @notice This contract stores configurations for protocol versions OCR2 and
/// above in contract storage. It uses the "EVMSimple" config digester.
contract OCRConfigurationStoreEVMSimple is TypeAndVersionInterface {

    struct ConfigurationEVMSimple {
        address[] signers;
        address[] transmitters;
        bytes onchainConfig;
        bytes offchainConfig;
        address contractAddress;
        uint64 offchainConfigVersion;
        uint32 configCount;
        uint8 f;
    }

    /// @notice a list of configurations keyed by their digest
    mapping(bytes32 => ConfigurationEVMSimple) internal s_configurations;

    /// @notice emitted when a new configuration is added
    event NewConfiguration(bytes32 indexed configDigest);

    /// @notice adds a new configuration to the store
    function addConfig(ConfigurationEVMSimple calldata configuration) external returns (bytes32) {

        bytes32 configDigest = ConfigDigestUtilEVMSimple.configDigestFromConfigData(
            block.chainid,
            configuration.contractAddress,
            configuration.configCount,
            configuration.signers,
            configuration.transmitters,
            configuration.f,
            configuration.onchainConfig,
            configuration.offchainConfigVersion,
            configuration.offchainConfig
        );

        s_configurations[configDigest] = configuration;

        emit NewConfiguration(configDigest);

        return configDigest;
    }

    /// @notice reads a configuration from the store
    function readConfig(bytes32 configDigest) external view returns (ConfigurationEVMSimple memory) {
        return s_configurations[configDigest];
    }

    /// @inheritdoc TypeAndVersionInterface
    function typeAndVersion() external override pure virtual returns (string memory)
    {
        return "OCRConfigurationStoreEVMSimple 1.0.0";
    }
}

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

import "./ConfirmedOwnerWithProposal.sol";

/**
 * @title The ConfirmedOwner contract
 * @notice A contract with helpers for basic contract ownership.
 */
contract ConfirmedOwner is ConfirmedOwnerWithProposal {

  constructor(
    address newOwner
  )
    ConfirmedOwnerWithProposal(
      newOwner,
      address(0)
    )
  {
  }

}

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "./interfaces/OwnableInterface.sol";

/**
 * @title The ConfirmedOwner contract
 * @notice A contract with helpers for basic contract ownership.
 */
contract ConfirmedOwnerWithProposal is OwnableInterface {

  address private s_owner;
  address private s_pendingOwner;

  event OwnershipTransferRequested(
    address indexed from,
    address indexed to
  );
  event OwnershipTransferred(
    address indexed from,
    address indexed to
  );

  constructor(
    address newOwner,
    address pendingOwner
  ) {
    require(newOwner != address(0), "Cannot set owner to zero");

    s_owner = newOwner;
    if (pendingOwner != address(0)) {
      _transferOwnership(pendingOwner);
    }
  }

  /**
   * @notice Allows an owner to begin transferring ownership to a new address,
   * pending.
   */
  function transferOwnership(
    address to
  )
    public
    override
    onlyOwner()
  {
    _transferOwnership(to);
  }

  /**
   * @notice Allows an ownership transfer to be completed by the recipient.
   */
  function acceptOwnership()
    external
    override
  {
    require(msg.sender == s_pendingOwner, "Must be proposed owner");

    address oldOwner = s_owner;
    s_owner = msg.sender;
    s_pendingOwner = address(0);

    emit OwnershipTransferred(oldOwner, msg.sender);
  }

  /**
   * @notice Get the current owner
   */
  function owner()
    public
    view
    override
    returns (
      address
    )
  {
    return s_owner;
  }

  /**
   * @notice validate, transfer ownership, and emit relevant events
   */
  function _transferOwnership(
    address to
  )
    private
  {
    require(to != msg.sender, "Cannot transfer to self");

    s_pendingOwner = to;

    emit OwnershipTransferRequested(s_owner, to);
  }

  /**
   * @notice validate access
   */
  function _validateOwnership()
    internal
    view
  {
    require(msg.sender == s_owner, "Only callable by owner");
  }

  /**
   * @notice Reverts if called by anyone other than the contract owner.
   */
  modifier onlyOwner() {
    _validateOwnership();
    _;
  }

}

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "./interfaces/TypeAndVersionInterface.sol";


abstract contract OCR2Abstract is TypeAndVersionInterface {
  // Maximum number of oracles the offchain reporting protocol is designed for
  uint256 constant internal maxNumOracles = 31;

  /**
   * @notice triggers a new run of the offchain reporting protocol
   * @param previousConfigBlockNumber block in which the previous config was set, to simplify historic analysis
   * @param configDigest configDigest of this configuration
   * @param configCount ordinal number of this config setting among all config settings over the life of this contract
   * @param signers ith element is address ith oracle uses to sign a report
   * @param transmitters ith element is address ith oracle uses to transmit a report via the transmit method
   * @param f maximum number of faulty/dishonest oracles the protocol can tolerate while still working correctly
   * @param onchainConfig serialized configuration used by the contract (and possibly oracles)
   * @param offchainConfigVersion version of the serialization format used for "offchainConfig" parameter
   * @param offchainConfig serialized configuration used by the oracles exclusively and only passed through the contract
   */
  event ConfigSet(
    uint32 previousConfigBlockNumber,
    bytes32 configDigest,
    uint64 configCount,
    address[] signers,
    address[] transmitters,
    uint8 f,
    bytes onchainConfig,
    uint64 offchainConfigVersion,
    bytes offchainConfig
  );

  /**
   * @notice sets offchain reporting protocol configuration incl. participating oracles
   * @param signers addresses with which oracles sign the reports
   * @param transmitters addresses oracles use to transmit the reports
   * @param f number of faulty oracles the system can tolerate
   * @param onchainConfig serialized configuration used by the contract (and possibly oracles)
   * @param offchainConfigVersion version number for offchainEncoding schema
   * @param offchainConfig serialized configuration used by the oracles exclusively and only passed through the contract
   */
  function setConfig(
    address[] memory signers,
    address[] memory transmitters,
    uint8 f,
    bytes memory onchainConfig,
    uint64 offchainConfigVersion,
    bytes memory offchainConfig
  )
    external
    virtual;

  /**
   * @notice information about current offchain reporting protocol configuration
   * @return configCount ordinal number of current config, out of all configs applied to this contract so far
   * @return blockNumber block at which this config was set
   * @return configDigest domain-separation tag for current config (see _configDigestFromConfigData)
   */
  function latestConfigDetails()
    external
    view
    virtual
    returns (
      uint32 configCount,
      uint32 blockNumber,
      bytes32 configDigest
    );

  function _configDigestFromConfigData(
    uint256 chainId,
    address contractAddress,
    uint64 configCount,
    address[] memory signers,
    address[] memory transmitters,
    uint8 f,
    bytes memory onchainConfig,
    uint64 offchainConfigVersion,
    bytes memory offchainConfig
  )
    internal
    pure
    returns (bytes32)
  {
    uint256 h = uint256(keccak256(abi.encode(chainId, contractAddress, configCount,
      signers, transmitters, f, onchainConfig, offchainConfigVersion, offchainConfig
    )));
    uint256 prefixMask = type(uint256).max << (256-16); // 0xFFFF00..00
    uint256 prefix = 0x0001 << (256-16); // 0x000100..00
    return bytes32((prefix & prefixMask) | (h & ~prefixMask));
  }

  /**
  * @notice optionally emitted to indicate the latest configDigest and epoch for
     which a report was successfully transmitted. Alternatively, the contract may
     use latestConfigDigestAndEpoch with scanLogs set to false.
  */
  event Transmitted(
    bytes32 configDigest,
    uint32 epoch
  );

  /**
   * @notice optionally returns the latest configDigest and epoch for which a
     report was successfully transmitted. Alternatively, the contract may return
     scanLogs set to true and use Transmitted events to provide this information
     to offchain watchers.
   * @return scanLogs indicates whether to rely on the configDigest and epoch
     returned or whether to scan logs for the Transmitted event instead.
   * @return configDigest
   * @return epoch
   */
  function latestConfigDigestAndEpoch()
    external
    view
    virtual
    returns(
      bool scanLogs,
      bytes32 configDigest,
      uint32 epoch
    );

  /**
   * @notice transmit is called to post a new report to the contract
   * @param reportContext serialized report context containing configDigest, epoch, round, extraHash
   * @param report serialized report, which the signatures are signing
   * @param rs ith element is the R components of the ith signature on report. Must have at most maxNumOracles entries
   * @param ss ith element is the S components of the ith signature on report. Must have at most maxNumOracles entries
   * @param rawVs ith element is the the V component of the ith signature
   */
  function transmit(
    // NOTE: If these parameters are changed, expectedMsgDataLength and/or
    // TRANSMIT_MSGDATA_CONSTANT_LENGTH_COMPONENT need to be changed accordingly
    bytes32[3] calldata reportContext,
    bytes calldata report,
    bytes32[] calldata rs, bytes32[] calldata ss, bytes32 rawVs // signatures
  )
    external
    virtual;
}

File 5 of 8 : OwnerIsCreator.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "./ConfirmedOwner.sol";

/**
 * @title The OwnerIsCreator contract
 * @notice A contract with helpers for basic contract ownership.
 */
contract OwnerIsCreator is ConfirmedOwner {

  constructor(
  )
    ConfirmedOwner(
      msg.sender
    )
  {
  }

}

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface OwnableInterface {
  function owner()
    external
    returns (
      address
    );

  function transferOwnership(
    address recipient
  )
    external;

  function acceptOwnership()
    external;
}

File 7 of 8 : TypeAndVersionInterface.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

interface TypeAndVersionInterface{
  function typeAndVersion()
    external
    pure
    returns (string memory);
}

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;


/// @title ConfigDigestUtilEVMSimple
/// @notice ConfigDigest related utility functions for "EVMSimple" config
/// digester
library ConfigDigestUtilEVMSimple {

    function configDigestFromConfigData(
        uint256 chainId,
        address contractAddress,
        uint64 configCount,
        address[] memory signers,
        address[] memory transmitters,
        uint8 f,
        bytes memory onchainConfig,
        uint64 offchainConfigVersion,
        bytes memory offchainConfig
    ) internal pure returns (bytes32)
    {
        uint256 hash = uint256(
            keccak256(
                abi.encode(
                    chainId,
                    contractAddress,
                    configCount,
                    signers,
                    transmitters,
                    f,
                    onchainConfig,
                    offchainConfigVersion,
                    offchainConfig
        )));

        uint256 prefixMask = type(uint256).max << (256-16); // 0xFFFF00..00
        uint256 prefix = 0x0001 << (256-16); // 0x000100..00

        return bytes32((prefix & prefixMask) | (hash & ~prefixMask));
    }

}

Settings
{
  "evmVersion": "paris",
  "libraries": {},
  "metadata": {
    "appendCBOR": true,
    "bytecodeHash": "ipfs",
    "useLiteralContent": false
  },
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "remappings": [
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/"
  ]
}

Contract Security Audit

Contract ABI

API
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"configDigest","type":"bytes32"}],"name":"NewConfiguration","type":"event"},{"inputs":[{"components":[{"internalType":"address[]","name":"signers","type":"address[]"},{"internalType":"address[]","name":"transmitters","type":"address[]"},{"internalType":"bytes","name":"onchainConfig","type":"bytes"},{"internalType":"bytes","name":"offchainConfig","type":"bytes"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint64","name":"offchainConfigVersion","type":"uint64"},{"internalType":"uint32","name":"configCount","type":"uint32"},{"internalType":"uint8","name":"f","type":"uint8"}],"internalType":"struct OCRConfigurationStoreEVMSimple.ConfigurationEVMSimple","name":"configuration","type":"tuple"}],"name":"addConfig","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"configDigest","type":"bytes32"}],"name":"readConfig","outputs":[{"components":[{"internalType":"address[]","name":"signers","type":"address[]"},{"internalType":"address[]","name":"transmitters","type":"address[]"},{"internalType":"bytes","name":"onchainConfig","type":"bytes"},{"internalType":"bytes","name":"offchainConfig","type":"bytes"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"uint64","name":"offchainConfigVersion","type":"uint64"},{"internalType":"uint32","name":"configCount","type":"uint32"},{"internalType":"uint8","name":"f","type":"uint8"}],"internalType":"struct OCRConfigurationStoreEVMSimple.ConfigurationEVMSimple","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"typeAndVersion","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"}]

608060405234801561001057600080fd5b50610d46806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063181f5a7714610046578063a6d3ad9e14610064578063bc4215dc14610085575b600080fd5b61004e6100a5565b60405161005b9190610591565b60405180910390f35b6100776100723660046105ab565b6100c5565b60405190815260200161005b565b6100986100933660046105e7565b610267565b60405161005b9190610644565b6060604051806060016040528060248152602001610ced60249139905090565b600080610217466100dc60a0860160808701610731565b6100ec60e0870160c08801610760565b63ffffffff166100fc878061077d565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061013b92505050602089018961077d565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061017e925050506101008a0160e08b016107dd565b61018b60408b018b6107fa565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506101d09250505060c08c0160a08d01610857565b6101dd60608d018d6107fa565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104f092505050565b600081815260208190526040902090915083906102348282610aa5565b505060405181907fb07c231f5a1f53b6761761661dcafa59d063ff6e9929e00ad1fb9cb9c5b02e4490600090a292915050565b60408051610100810182526060808252602082018190529181018290528181019190915260006080820181905260a0820181905260c0820181905260e08201526000828152602081815260409182902082518154610120938102820184019094526101008101848152909391928492849184018282801561031157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102f3575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561037357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610355575b5050505050815260200160028201805461038c90610943565b80601f01602080910402602001604051908101604052809291908181526020018280546103b890610943565b80156104055780601f106103da57610100808354040283529160200191610405565b820191906000526020600020905b8154815290600101906020018083116103e857829003601f168201915b5050505050815260200160038201805461041e90610943565b80601f016020809104026020016040519081016040528092919081815260200182805461044a90610943565b80156104975780601f1061046c57610100808354040283529160200191610497565b820191906000526020600020905b81548152906001019060200180831161047a57829003601f168201915b505050918352505060048201546001600160a01b0381166020830152600160a01b810467ffffffffffffffff166040830152600160e01b900463ffffffff16606082015260059091015460ff1660809091015292915050565b6000808a8a8a8a8a8a8a8a8a60405160200161051499989796959493929190610c52565b60408051601f1981840301815291905280516020909101206001600160f01b0316600160f01b179150509998505050505050505050565b6000815180845260005b8181101561057157602081850181015186830182015201610555565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006105a4602083018461054b565b9392505050565b6000602082840312156105bd57600080fd5b813567ffffffffffffffff8111156105d457600080fd5b820161010081850312156105a457600080fd5b6000602082840312156105f957600080fd5b5035919050565b600081518084526020808501945080840160005b838110156106395781516001600160a01b031687529582019590820190600101610614565b509495945050505050565b6020815260008251610100806020850152610663610120850183610600565b91506020850151601f19808685030160408701526106818483610600565b9350604087015191508086850301606087015261069e848361054b565b93506060870151915080868503016080870152506106bc838261054b565b92505060808501516106d960a08601826001600160a01b03169052565b5060a085015167ffffffffffffffff811660c08601525060c085015163ffffffff811660e08601525060e085015160ff8116858301525090949350505050565b6001600160a01b038116811461072e57600080fd5b50565b60006020828403121561074357600080fd5b81356105a481610719565b63ffffffff8116811461072e57600080fd5b60006020828403121561077257600080fd5b81356105a48161074e565b6000808335601e1984360301811261079457600080fd5b83018035915067ffffffffffffffff8211156107af57600080fd5b6020019150600581901b36038213156107c757600080fd5b9250929050565b60ff8116811461072e57600080fd5b6000602082840312156107ef57600080fd5b81356105a4816107ce565b6000808335601e1984360301811261081157600080fd5b83018035915067ffffffffffffffff82111561082c57600080fd5b6020019150368190038213156107c757600080fd5b67ffffffffffffffff8116811461072e57600080fd5b60006020828403121561086957600080fd5b81356105a481610841565b634e487b7160e01b600052604160045260246000fd5b5b8181101561089f576000815560010161088b565b5050565b600081356108b081610719565b92915050565b67ffffffffffffffff8311156108ce576108ce610874565b600160401b8311156108e2576108e2610874565b8054838255808410156109085781600052602060002061090682820186830161088a565b505b50818160005260208060002060005b8681101561093a57833561092a81610719565b8282015592820192600101610917565b50505050505050565b600181811c9082168061095757607f821691505b60208210810361097757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156109b957806000526020600020601f840160051c810160208510156109a45750805b6109b6601f850160051c83018261088a565b50505b505050565b67ffffffffffffffff8311156109d6576109d6610874565b6109ea836109e48354610943565b8361097d565b6000601f841160018114610a1e5760008515610a065750838201355b600019600387901b1c1916600186901b1783556109b6565b600083815260209020601f19861690835b82811015610a4f5786850135825560209485019460019092019101610a2f565b5086821015610a6c5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b600081356108b081610841565b600081356108b08161074e565b600081356108b0816107ce565b610aaf828361077d565b67ffffffffffffffff811115610ac757610ac7610874565b600160401b811115610adb57610adb610874565b825481845580821015610b0157836000526020600020610aff82820184830161088a565b505b508260005260208060002060005b83811015610b32578435610b2281610719565b8282015593820193600101610b0f565b5050610b408186018661077d565b9350915050610b538282600186016108b6565b5050610b6260408301836107fa565b610b708183600286016109be565b5050610b7f60608301836107fa565b610b8d8183600386016109be565b505060048101610bbf610ba2608085016108a3565b82546001600160a01b0319166001600160a01b0391909116178255565b610bfa610bce60a08501610a7e565b82805467ffffffffffffffff60a01b191660a09290921b67ffffffffffffffff60a01b16919091179055565b610c2d610c0960c08501610a8b565b8280546001600160e01b031660e09290921b6001600160e01b031916919091179055565b5061089f610c3d60e08401610a98565b6005830160ff821660ff198254161781555050565b8981526001600160a01b038916602082015267ffffffffffffffff888116604083015261012060608301819052600091610c8e8483018b610600565b91508382036080850152610ca2828a610600565b915060ff881660a085015283820360c0850152610cbf828861054b565b90861660e08501528381036101008501529050610cdc818561054b565b9c9b50505050505050505050505056fe4f4352436f6e66696775726174696f6e53746f726545564d53696d706c6520312e302e30a2646970667358221220f63ccb0444dc36741e04ca466f32145c6d83432ddfaf0f2b831d74b31436736964736f6c63430008130033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063181f5a7714610046578063a6d3ad9e14610064578063bc4215dc14610085575b600080fd5b61004e6100a5565b60405161005b9190610591565b60405180910390f35b6100776100723660046105ab565b6100c5565b60405190815260200161005b565b6100986100933660046105e7565b610267565b60405161005b9190610644565b6060604051806060016040528060248152602001610ced60249139905090565b600080610217466100dc60a0860160808701610731565b6100ec60e0870160c08801610760565b63ffffffff166100fc878061077d565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061013b92505050602089018961077d565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525061017e925050506101008a0160e08b016107dd565b61018b60408b018b6107fa565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506101d09250505060c08c0160a08d01610857565b6101dd60608d018d6107fa565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506104f092505050565b600081815260208190526040902090915083906102348282610aa5565b505060405181907fb07c231f5a1f53b6761761661dcafa59d063ff6e9929e00ad1fb9cb9c5b02e4490600090a292915050565b60408051610100810182526060808252602082018190529181018290528181019190915260006080820181905260a0820181905260c0820181905260e08201526000828152602081815260409182902082518154610120938102820184019094526101008101848152909391928492849184018282801561031157602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102f3575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561037357602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610355575b5050505050815260200160028201805461038c90610943565b80601f01602080910402602001604051908101604052809291908181526020018280546103b890610943565b80156104055780601f106103da57610100808354040283529160200191610405565b820191906000526020600020905b8154815290600101906020018083116103e857829003601f168201915b5050505050815260200160038201805461041e90610943565b80601f016020809104026020016040519081016040528092919081815260200182805461044a90610943565b80156104975780601f1061046c57610100808354040283529160200191610497565b820191906000526020600020905b81548152906001019060200180831161047a57829003601f168201915b505050918352505060048201546001600160a01b0381166020830152600160a01b810467ffffffffffffffff166040830152600160e01b900463ffffffff16606082015260059091015460ff1660809091015292915050565b6000808a8a8a8a8a8a8a8a8a60405160200161051499989796959493929190610c52565b60408051601f1981840301815291905280516020909101206001600160f01b0316600160f01b179150509998505050505050505050565b6000815180845260005b8181101561057157602081850181015186830182015201610555565b506000602082860101526020601f19601f83011685010191505092915050565b6020815260006105a4602083018461054b565b9392505050565b6000602082840312156105bd57600080fd5b813567ffffffffffffffff8111156105d457600080fd5b820161010081850312156105a457600080fd5b6000602082840312156105f957600080fd5b5035919050565b600081518084526020808501945080840160005b838110156106395781516001600160a01b031687529582019590820190600101610614565b509495945050505050565b6020815260008251610100806020850152610663610120850183610600565b91506020850151601f19808685030160408701526106818483610600565b9350604087015191508086850301606087015261069e848361054b565b93506060870151915080868503016080870152506106bc838261054b565b92505060808501516106d960a08601826001600160a01b03169052565b5060a085015167ffffffffffffffff811660c08601525060c085015163ffffffff811660e08601525060e085015160ff8116858301525090949350505050565b6001600160a01b038116811461072e57600080fd5b50565b60006020828403121561074357600080fd5b81356105a481610719565b63ffffffff8116811461072e57600080fd5b60006020828403121561077257600080fd5b81356105a48161074e565b6000808335601e1984360301811261079457600080fd5b83018035915067ffffffffffffffff8211156107af57600080fd5b6020019150600581901b36038213156107c757600080fd5b9250929050565b60ff8116811461072e57600080fd5b6000602082840312156107ef57600080fd5b81356105a4816107ce565b6000808335601e1984360301811261081157600080fd5b83018035915067ffffffffffffffff82111561082c57600080fd5b6020019150368190038213156107c757600080fd5b67ffffffffffffffff8116811461072e57600080fd5b60006020828403121561086957600080fd5b81356105a481610841565b634e487b7160e01b600052604160045260246000fd5b5b8181101561089f576000815560010161088b565b5050565b600081356108b081610719565b92915050565b67ffffffffffffffff8311156108ce576108ce610874565b600160401b8311156108e2576108e2610874565b8054838255808410156109085781600052602060002061090682820186830161088a565b505b50818160005260208060002060005b8681101561093a57833561092a81610719565b8282015592820192600101610917565b50505050505050565b600181811c9082168061095757607f821691505b60208210810361097757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156109b957806000526020600020601f840160051c810160208510156109a45750805b6109b6601f850160051c83018261088a565b50505b505050565b67ffffffffffffffff8311156109d6576109d6610874565b6109ea836109e48354610943565b8361097d565b6000601f841160018114610a1e5760008515610a065750838201355b600019600387901b1c1916600186901b1783556109b6565b600083815260209020601f19861690835b82811015610a4f5786850135825560209485019460019092019101610a2f565b5086821015610a6c5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b600081356108b081610841565b600081356108b08161074e565b600081356108b0816107ce565b610aaf828361077d565b67ffffffffffffffff811115610ac757610ac7610874565b600160401b811115610adb57610adb610874565b825481845580821015610b0157836000526020600020610aff82820184830161088a565b505b508260005260208060002060005b83811015610b32578435610b2281610719565b8282015593820193600101610b0f565b5050610b408186018661077d565b9350915050610b538282600186016108b6565b5050610b6260408301836107fa565b610b708183600286016109be565b5050610b7f60608301836107fa565b610b8d8183600386016109be565b505060048101610bbf610ba2608085016108a3565b82546001600160a01b0319166001600160a01b0391909116178255565b610bfa610bce60a08501610a7e565b82805467ffffffffffffffff60a01b191660a09290921b67ffffffffffffffff60a01b16919091179055565b610c2d610c0960c08501610a8b565b8280546001600160e01b031660e09290921b6001600160e01b031916919091179055565b5061089f610c3d60e08401610a98565b6005830160ff821660ff198254161781555050565b8981526001600160a01b038916602082015267ffffffffffffffff888116604083015261012060608301819052600091610c8e8483018b610600565b91508382036080850152610ca2828a610600565b915060ff881660a085015283820360c0850152610cbf828861054b565b90861660e08501528381036101008501529050610cdc818561054b565b9c9b50505050505050505050505056fe4f4352436f6e66696775726174696f6e53746f726545564d53696d706c6520312e302e30a2646970667358221220f63ccb0444dc36741e04ca466f32145c6d83432ddfaf0f2b831d74b31436736964736f6c63430008130033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.