ETH Price: $2,949.08 (-0.33%)

Contract

0xe1d72a719171DceAB9499757EB9d5AEb9e8D64A6

Overview

ETH Balance

0 ETH

ETH Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Update Price Dat...249873952026-01-25 3:07:0912 secs ago1769310429IN
0xe1d72a71...b9e8D64A6
0 ETH0.000000110.00100025
Update Price Dat...249873342026-01-25 3:05:072 mins ago1769310307IN
0xe1d72a71...b9e8D64A6
0 ETH0.000000110.00100025
Update Price Dat...249872132026-01-25 3:01:056 mins ago1769310065IN
0xe1d72a71...b9e8D64A6
0 ETH0.000000110.00100025
Update Price Dat...249871832026-01-25 3:00:057 mins ago1769310005IN
0xe1d72a71...b9e8D64A6
0 ETH0.000000110.00100025
Update Price Dat...249870982026-01-25 2:57:1510 mins ago1769309835IN
0xe1d72a71...b9e8D64A6
0 ETH0.000000110.00100025
Update Price Dat...249870612026-01-25 2:56:0111 mins ago1769309761IN
0xe1d72a71...b9e8D64A6
0 ETH0.000000110.00100025
Update Price Dat...249870352026-01-25 2:55:0912 mins ago1769309709IN
0xe1d72a71...b9e8D64A6
0 ETH0.000000110.00100025
Update Price Dat...249870042026-01-25 2:54:0713 mins ago1769309647IN
0xe1d72a71...b9e8D64A6
0 ETH0.00000010.00100025
Update Price Dat...249870032026-01-25 2:54:0513 mins ago1769309645IN
0xe1d72a71...b9e8D64A6
0 ETH0.000000110.00100025
Update Price Dat...249869712026-01-25 2:53:0114 mins ago1769309581IN
0xe1d72a71...b9e8D64A6
0 ETH0.000000110.00100025
Update Price Dat...249869412026-01-25 2:52:0115 mins ago1769309521IN
0xe1d72a71...b9e8D64A6
0 ETH0.00000010.00100025
Update Price Dat...249869412026-01-25 2:52:0115 mins ago1769309521IN
0xe1d72a71...b9e8D64A6
0 ETH0.000000110.00100025
Update Price Dat...249868812026-01-25 2:50:0117 mins ago1769309401IN
0xe1d72a71...b9e8D64A6
0 ETH0.000000110.00100025
Update Price Dat...249868212026-01-25 2:48:0119 mins ago1769309281IN
0xe1d72a71...b9e8D64A6
0 ETH0.000000110.00100025
Update Price Dat...249867962026-01-25 2:47:1120 mins ago1769309231IN
0xe1d72a71...b9e8D64A6
0 ETH0.000000110.00100025
Update Price Dat...249867612026-01-25 2:46:0121 mins ago1769309161IN
0xe1d72a71...b9e8D64A6
0 ETH0.000000110.00100025
Update Price Dat...249867032026-01-25 2:44:0523 mins ago1769309045IN
0xe1d72a71...b9e8D64A6
0 ETH0.00000010.00100025
Update Price Dat...249867032026-01-25 2:44:0523 mins ago1769309045IN
0xe1d72a71...b9e8D64A6
0 ETH0.000000110.00100025
Update Price Dat...249866712026-01-25 2:43:0124 mins ago1769308981IN
0xe1d72a71...b9e8D64A6
0 ETH0.000000110.00100025
Update Price Dat...249866412026-01-25 2:42:0125 mins ago1769308921IN
0xe1d72a71...b9e8D64A6
0 ETH0.000000110.00100025
Update Price Dat...249866132026-01-25 2:41:0526 mins ago1769308865IN
0xe1d72a71...b9e8D64A6
0 ETH0.000000110.00100025
Update Price Dat...249865832026-01-25 2:40:0527 mins ago1769308805IN
0xe1d72a71...b9e8D64A6
0 ETH0.000000110.00100025
Update Price Dat...249865532026-01-25 2:39:0528 mins ago1769308745IN
0xe1d72a71...b9e8D64A6
0 ETH0.000000110.00100025
Update Price Dat...249865212026-01-25 2:38:0129 mins ago1769308681IN
0xe1d72a71...b9e8D64A6
0 ETH0.000000110.00100025
Update Price Dat...249864912026-01-25 2:37:0130 mins ago1769308621IN
0xe1d72a71...b9e8D64A6
0 ETH0.00000010.00100025
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:

Cross-Chain Transactions
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x67808395...1Aea30f28
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
ChainlinkPriceFeed

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
Yes with 10000 runs

Other Settings:
shanghai EvmVersion

Contract Source Code (Solidity Standard Json-Input format)

// SPDX-License-Identifier: MIT
pragma solidity >=0.8.28;

import { IVerifierProxy } from "./interfaces/IVerifierProxy.sol";

/**
 * @title PriceFeedStorage
 * @dev Contract for storing and updating price feed data for a single asset pair
 */
contract ChainlinkPriceFeed {
    error InvalidParameter(string parameterName);
    error FeedIdMismatch();
    error PriceDataInvalid();
    error PriceFeedNotAvailable();
    error PriceFeedExpired();
    error OldPriceFeedUpdate(uint256 previousTimestamp, uint256 updateTimestamp);
    error InvalidPriceFeedVersion(uint16 version);
    error NotImplemented();

    struct PriceFeedData {
        int192 price;
        uint32 timestamp;
        uint32 expiresAt;
    }

    // Address of the pair token (always the first token in the pair)
    address public immutable PAIR_TOKEN_ADDRESS;

    // Address of the USDC token (always the second token in the pair)
    address public immutable USDC_TOKEN_ADDRESS;

    // Address of the VerifierProxy contract
    IVerifierProxy public immutable VERIFIER_PROXY;

    // The unique identifier for this price feed
    bytes32 public immutable FEED_ID;

    // Expected version of the report
    uint16 public immutable EXPECTED_VERSION = 3;

    // Human-readable name of the pair (e.g., "WLD/USD")
    string public PAIR_NAME;

    // Number of decimals for the price feed
    uint8 public immutable DECIMALS;

    // Price feed data for the single pair
    PriceFeedData public priceFeed;

    event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 updatedAt);

    /**
     * @dev Constructor to set the USDC address, Pair Token address, VerifierProxy address, feed ID and pair name
     * @param _pairAddress The address of the pair token token
     * @param _usdcAddress The address of the USDC token
     * @param _verifierProxyAddress The address of the VerifierProxy contract
     * @param _feedId The unique identifier for this price feed
     * @param _pairName Human-readable name of the pair (e.g., "ETH/USD")
     * @param _decimals Number of decimals for the price feed
     */
    constructor(
        address _pairAddress,
        address _usdcAddress,
        address payable _verifierProxyAddress,
        bytes32 _feedId,
        string memory _pairName,
        uint8 _decimals
    ) {
        if (_usdcAddress == address(0)) revert InvalidParameter("USDC_Address");
        if (_pairAddress == address(0)) revert InvalidParameter("Pair_Token_Address");
        if (_verifierProxyAddress == address(0)) revert InvalidParameter("Verifier_Proxy");
        if (_feedId == bytes32(0)) revert InvalidParameter("Feed_Id");
        if (bytes(_pairName).length == 0) revert InvalidParameter("Pair_Name");
        if (_decimals == 0) revert InvalidParameter("Decimals");

        USDC_TOKEN_ADDRESS = _usdcAddress;
        PAIR_TOKEN_ADDRESS = _pairAddress;
        VERIFIER_PROXY = IVerifierProxy(_verifierProxyAddress);
        FEED_ID = _feedId;
        PAIR_NAME = _pairName;
        DECIMALS = _decimals;
    }

    function updatePriceData(
        bytes memory verifySignedReportRequest,
        bytes memory parameterPayload
    )
        public
        returns (bytes memory)
    {
        // Decode the reportData from verifySignedReportRequest
        (, bytes memory reportData) = abi.decode(verifySignedReportRequest, (bytes32[3], bytes));

        // Extract report version from reportData
        uint16 reportVersion = (uint16(uint8(reportData[0])) << 8) | uint16(uint8(reportData[1]));

        if (reportVersion != EXPECTED_VERSION) revert InvalidPriceFeedVersion(reportVersion);

        // @dev - Value should be the nativeFee required to verify the reportData on-chain
        // We're passing 0 here just for testing purpose, make sure to adapt to your case.
        bytes memory returnDataCall = VERIFIER_PROXY.verify{ value: 0 }(verifySignedReportRequest, parameterPayload);

        // Decode the return data into the specified structure
        (
            bytes32 receivedFeedId,
            uint32 validFromTimestamp,
            uint32 observationsTimestamp,
            ,
            ,
            uint32 expiresAt,
            int192 price,
            ,
        ) = abi.decode(returnDataCall, (bytes32, uint32, uint32, uint192, uint192, uint32, int192, int192, int192));

        // Don't allow updating to an old price
        if (observationsTimestamp < priceFeed.timestamp) {
            revert OldPriceFeedUpdate(priceFeed.timestamp, observationsTimestamp);
        }

        // Verify that the feed ID matches the contract's feed ID
        if (receivedFeedId != FEED_ID) revert FeedIdMismatch();

        // Validate the expiration times
        if (block.timestamp < validFromTimestamp || block.timestamp > expiresAt) revert PriceDataInvalid();

        // Store the price feed data
        priceFeed = PriceFeedData({ price: price, timestamp: observationsTimestamp, expiresAt: expiresAt });

        emit AnswerUpdated(price, block.timestamp, block.timestamp);

        return returnDataCall;
    }

    /**
     * @dev Get the latest price feed data
     * @return roundId The round ID
     * @return answer The latest price
     * @return startedAt The timestamp when the round started
     * @return updatedAt The timestamp of the latest update
     * @return answeredInRound The round ID in which the answer was computed
     */
    function latestRoundData()
        external
        view
        returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound)
    {
        if (priceFeed.timestamp == 0) revert PriceFeedNotAvailable();
        if (block.timestamp > priceFeed.expiresAt) revert PriceFeedExpired();

        roundId = priceFeed.timestamp;
        answer = priceFeed.price;
        startedAt = priceFeed.timestamp;
        updatedAt = priceFeed.timestamp;
        answeredInRound = priceFeed.timestamp;

        return (roundId, answer, startedAt, updatedAt, answeredInRound);
    }

    /**
     * @dev Returns the description of the price feed
     * @return The human-readable name of the pair (e.g., "WLD/USD")
     */
    function description() external view returns (string memory) {
        return PAIR_NAME;
    }

    /**
     * @dev Returns the version of the price feed
     * @return The version number
     */
    function version() external pure returns (uint256) {
        return 1;
    }

    /**
     * @dev Returns the number of decimals for the price feed
     * @return The number of decimals
     */
    function decimals() external view returns (uint8) {
        return DECIMALS;
    }

    /**
     * @dev Get historical price feed data for a specific round
     * @param _roundId The round ID to get data for
     * @return roundId The round ID
     * @return answer The price
     * @return startedAt The timestamp when the round started
     * @return updatedAt The timestamp of the update
     * @return answeredInRound The round ID in which the answer was computed
     */
    function getRoundData(uint80 _roundId)
        external
        view
        returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound)
    {
        revert NotImplemented();
    }
}

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

interface IVerifierProxy {
    /**
     * @notice Verifies that the data encoded has been signed
     * correctly by routing to the correct verifier, and bills the user if applicable.
     * @param payload The encoded data to be verified, including the signed
     * report.
     * @param parameterPayload fee metadata for billing. For the current implementation this is just the abi-encoded fee
     * token ERC-20 address
     * @return verifierResponse The encoded report from the verifier.
     */
    function verify(
        bytes calldata payload,
        bytes calldata parameterPayload
    )
        external
        payable
        returns (bytes memory verifierResponse);

    /**
     * @notice Bulk verifies that the data encoded has been signed
     * correctly by routing to the correct verifier, and bills the user if applicable.
     * @param payloads The encoded payloads to be verified, including the signed
     * report.
     * @param parameterPayload fee metadata for billing. For the current implementation this is just the abi-encoded fee
     * token ERC-20 address
     * @return verifiedReports The encoded reports from the verifier.
     */
    function verifyBulk(
        bytes[] calldata payloads,
        bytes calldata parameterPayload
    )
        external
        payable
        returns (bytes[] memory verifiedReports);

    // The feed ID is the first 32 bytes of the report data.

    receive() external payable;
}

Settings
{
  "remappings": [
    "@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/",
    "forge-std/=lib/forge-std/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 10000
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "none",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "shanghai",
  "viaIR": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"_pairAddress","type":"address"},{"internalType":"address","name":"_usdcAddress","type":"address"},{"internalType":"address payable","name":"_verifierProxyAddress","type":"address"},{"internalType":"bytes32","name":"_feedId","type":"bytes32"},{"internalType":"string","name":"_pairName","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"FeedIdMismatch","type":"error"},{"inputs":[{"internalType":"string","name":"parameterName","type":"string"}],"name":"InvalidParameter","type":"error"},{"inputs":[{"internalType":"uint16","name":"version","type":"uint16"}],"name":"InvalidPriceFeedVersion","type":"error"},{"inputs":[],"name":"NotImplemented","type":"error"},{"inputs":[{"internalType":"uint256","name":"previousTimestamp","type":"uint256"},{"internalType":"uint256","name":"updateTimestamp","type":"uint256"}],"name":"OldPriceFeedUpdate","type":"error"},{"inputs":[],"name":"PriceDataInvalid","type":"error"},{"inputs":[],"name":"PriceFeedExpired","type":"error"},{"inputs":[],"name":"PriceFeedNotAvailable","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"int256","name":"current","type":"int256"},{"indexed":true,"internalType":"uint256","name":"roundId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"updatedAt","type":"uint256"}],"name":"AnswerUpdated","type":"event"},{"inputs":[],"name":"DECIMALS","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EXPECTED_VERSION","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"FEED_ID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAIR_NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAIR_TOKEN_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USDC_TOKEN_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VERIFIER_PROXY","outputs":[{"internalType":"contract IVerifierProxy","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"description","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint80","name":"_roundId","type":"uint80"}],"name":"getRoundData","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestRoundData","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceFeed","outputs":[{"internalType":"int192","name":"price","type":"int192"},{"internalType":"uint32","name":"timestamp","type":"uint32"},{"internalType":"uint32","name":"expiresAt","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"verifySignedReportRequest","type":"bytes"},{"internalType":"bytes","name":"parameterPayload","type":"bytes"}],"name":"updatePriceData","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"}]

0x610140604052600361010052348015610016575f5ffd5b5060405161138d38038061138d83398101604081905261003591610243565b6001600160a01b038516610080576040516305519d6f60e51b815260206004820152600c60248201526b555344435f4164647265737360a01b60448201526064015b60405180910390fd5b6001600160a01b0386166100cc576040516305519d6f60e51b8152602060048201526012602482015271506169725f546f6b656e5f4164647265737360701b6044820152606401610077565b6001600160a01b038416610114576040516305519d6f60e51b815260206004820152600e60248201526d56657269666965725f50726f787960901b6044820152606401610077565b8261014c576040516305519d6f60e51b81526020600482015260076024820152661199595917d25960ca1b6044820152606401610077565b81515f03610189576040516305519d6f60e51b8152602060048201526009602482015268506169725f4e616d6560b81b6044820152606401610077565b8060ff165f036101c7576040516305519d6f60e51b8152602060048201526008602482015267446563696d616c7360c01b6044820152606401610077565b6001600160a01b0380861660a052868116608052841660c05260e08390525f6101f083826103de565b5060ff1661012052506104989350505050565b6001600160a01b0381168114610217575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b805160ff8116811461023e575f5ffd5b919050565b5f5f5f5f5f5f60c08789031215610258575f5ffd5b865161026381610203565b602088015190965061027481610203565b604088015190955061028581610203565b6060880151608089015191955093506001600160401b038111156102a7575f5ffd5b8701601f810189136102b7575f5ffd5b80516001600160401b038111156102d0576102d061021a565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102fe576102fe61021a565b6040528181528282016020018b1015610315575f5ffd5b5f5b8281101561033357602081850181015183830182015201610317565b505f6020838301015280945050505061034e60a0880161022e565b90509295509295509295565b600181811c9082168061036e57607f821691505b60208210810361038c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156103d957805f5260205f20601f840160051c810160208510156103b75750805b601f840160051c820191505b818110156103d6575f81556001016103c3565b50505b505050565b81516001600160401b038111156103f7576103f761021a565b61040b81610405845461035a565b84610392565b6020601f82116001811461043d575f83156104265750848201515b5f19600385901b1c1916600184901b1784556103d6565b5f84815260208120601f198516915b8281101561046c578785015182556020948501946001909201910161044c565b508482101561048957868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b60805160a05160c05160e0516101005161012051610e936104fa5f395f8181610128015261015e01525f818161021f015261051401525f818160ee01526106f801525f8181610316015261057b01525f6102ef01525f6102590152610e935ff3fe608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c8063924ae32311610088578063bc1c3adf11610063578063bc1c3adf14610311578063e17c51ba14610338578063f3208a5014610340578063feaf968c14610353575f5ffd5b8063924ae323146102545780639a6fc8f5146102a0578063b3d673d8146102ea575f5ffd5b806354fd4d50116100c357806354fd4d50146101825780637284e41614610189578063741bef1a1461019e5780638a28f6b61461021a575f5ffd5b806301d61c49146100e95780632e0f262514610123578063313ce5671461015c575b5f5ffd5b6101107f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61014a7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161011a565b7f000000000000000000000000000000000000000000000000000000000000000061014a565b6001610110565b61019161035b565b60405161011a9190610a24565b6001546101f390601781900b9063ffffffff780100000000000000000000000000000000000000000000000082048116917c010000000000000000000000000000000000000000000000000000000090041683565b6040805160179490940b845263ffffffff928316602085015291169082015260600161011a565b6102417f000000000000000000000000000000000000000000000000000000000000000081565b60405161ffff909116815260200161011a565b61027b7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161011a565b6102b36102ae366004610a3d565b6103ea565b6040805169ffffffffffffffffffff968716815260208101959095528401929092526060830152909116608082015260a00161011a565b61027b7f000000000000000000000000000000000000000000000000000000000000000081565b61027b7f000000000000000000000000000000000000000000000000000000000000000081565b610191610421565b61019161034e366004610b79565b6104ac565b6102b36108b7565b60605f805461036990610bde565b80601f016020809104026020016040519081016040528092919081815260200182805461039590610bde565b80156103e05780601f106103b7576101008083540402835291602001916103e0565b820191905f5260205f20905b8154815290600101906020018083116103c357829003601f168201915b5050505050905090565b5f5f5f5f5f6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f805461042d90610bde565b80601f016020809104026020016040519081016040528092919081815260200182805461045990610bde565b80156104a45780601f1061047b576101008083540402835291602001916104a4565b820191905f5260205f20905b81548152906001019060200180831161048757829003601f168201915b505050505081565b60605f838060200190518101906104c39190610c79565b9150505f816001815181106104da576104da610d0f565b602001015160f81c60f81b60f81c60ff166008835f815181106104ff576104ff610d0f565b016020015160f81c901b17905061ffff8181167f000000000000000000000000000000000000000000000000000000000000000090911614610578576040517f431e9e0500000000000000000000000000000000000000000000000000000000815261ffff821660048201526024015b60405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f7e83aee5f88886040518463ffffffff1660e01b81526004016105d5929190610d3c565b5f6040518083038185885af11580156105f0573d5f5f3e3d5ffd5b50505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526106369190810190610d69565b90505f5f5f5f5f858060200190518101906106519190610deb565b5050600154969b50949950929750919550919350505063ffffffff7801000000000000000000000000000000000000000000000000909104811690841610156106f6576001546040517f3b799828000000000000000000000000000000000000000000000000000000008152780100000000000000000000000000000000000000000000000090910463ffffffff90811660048301528416602482015260440161056f565b7f0000000000000000000000000000000000000000000000000000000000000000851461074f576040517fc2a25c1b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8363ffffffff1642108061076857508163ffffffff1642115b1561079f576040517f9bdc885700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051606081018252601783900b80825263ffffffff86811660208085018290529187169385018490526001805477ffffffffffffffffffffffffffffffffffffffffffffffff88167fffffffff00000000000000000000000000000000000000000000000000000000909116177801000000000000000000000000000000000000000000000000909202919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c01000000000000000000000000000000000000000000000000000000009094029390931790925591514280825292917f0559884fd3a460db3073b7fc896cc77986f16e378210ded43186175bf646fc5f910160405180910390a350939998505050505050505050565b6001545f9081908190819081907801000000000000000000000000000000000000000000000000900463ffffffff16810361091e576040517f4d57188300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001547c0100000000000000000000000000000000000000000000000000000000900463ffffffff16421115610980576040517fd2bac7ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505060015463ffffffff7801000000000000000000000000000000000000000000000000820416935060170b9150829050808091929394565b5f5b838110156109d35781810151838201526020016109bb565b50505f910152565b5f81518084526109f28160208601602086016109b9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f610a3660208301846109db565b9392505050565b5f60208284031215610a4d575f5ffd5b813569ffffffffffffffffffff81168114610a36575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610ada57610ada610a66565b604052919050565b5f67ffffffffffffffff821115610afb57610afb610a66565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f82601f830112610b36575f5ffd5b8135610b49610b4482610ae2565b610a93565b818152846020838601011115610b5d575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f60408385031215610b8a575f5ffd5b823567ffffffffffffffff811115610ba0575f5ffd5b610bac85828601610b27565b925050602083013567ffffffffffffffff811115610bc8575f5ffd5b610bd485828601610b27565b9150509250929050565b600181811c90821680610bf257607f821691505b602082108103610c29577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f82601f830112610c3e575f5ffd5b8151610c4c610b4482610ae2565b818152846020838601011115610c60575f5ffd5b610c718260208301602087016109b9565b949350505050565b5f5f60808385031215610c8a575f5ffd5b83601f840112610c98575f5ffd5b6040516060810167ffffffffffffffff81118282101715610cbb57610cbb610a66565b604052806060850186811115610ccf575f5ffd5b855b81811015610ce9578051835260209283019201610cd1565b50519193505067ffffffffffffffff811115610d03575f5ffd5b610bd485828601610c2f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b604081525f610d4e60408301856109db565b8281036020840152610d6081856109db565b95945050505050565b5f60208284031215610d79575f5ffd5b815167ffffffffffffffff811115610d8f575f5ffd5b610c7184828501610c2f565b805163ffffffff81168114610dae575f5ffd5b919050565b805177ffffffffffffffffffffffffffffffffffffffffffffffff81168114610dae575f5ffd5b8051601781900b8114610dae575f5ffd5b5f5f5f5f5f5f5f5f5f6101208a8c031215610e04575f5ffd5b89519850610e1460208b01610d9b565b9750610e2260408b01610d9b565b9650610e3060608b01610db3565b9550610e3e60808b01610db3565b9450610e4c60a08b01610d9b565b9350610e5a60c08b01610dda565b9250610e6860e08b01610dda565b9150610e776101008b01610dda565b9050929598509295985092959856fea164736f6c634300081c000a000000000000000000000000420000000000000000000000000000000000000600000000000000000000000079a02482a880bce3f13e09da970dc34db4cd24d10000000000000000000000006733e9106094b0c794e8e0297c96611ff60460bf000362205e10b3a147d02792eccee483dca6c7b44ecce7012cb8c6e0b68b3ae900000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000074554482f55534400000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c8063924ae32311610088578063bc1c3adf11610063578063bc1c3adf14610311578063e17c51ba14610338578063f3208a5014610340578063feaf968c14610353575f5ffd5b8063924ae323146102545780639a6fc8f5146102a0578063b3d673d8146102ea575f5ffd5b806354fd4d50116100c357806354fd4d50146101825780637284e41614610189578063741bef1a1461019e5780638a28f6b61461021a575f5ffd5b806301d61c49146100e95780632e0f262514610123578063313ce5671461015c575b5f5ffd5b6101107f000362205e10b3a147d02792eccee483dca6c7b44ecce7012cb8c6e0b68b3ae981565b6040519081526020015b60405180910390f35b61014a7f000000000000000000000000000000000000000000000000000000000000001281565b60405160ff909116815260200161011a565b7f000000000000000000000000000000000000000000000000000000000000001261014a565b6001610110565b61019161035b565b60405161011a9190610a24565b6001546101f390601781900b9063ffffffff780100000000000000000000000000000000000000000000000082048116917c010000000000000000000000000000000000000000000000000000000090041683565b6040805160179490940b845263ffffffff928316602085015291169082015260600161011a565b6102417f000000000000000000000000000000000000000000000000000000000000000381565b60405161ffff909116815260200161011a565b61027b7f000000000000000000000000420000000000000000000000000000000000000681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161011a565b6102b36102ae366004610a3d565b6103ea565b6040805169ffffffffffffffffffff968716815260208101959095528401929092526060830152909116608082015260a00161011a565b61027b7f00000000000000000000000079a02482a880bce3f13e09da970dc34db4cd24d181565b61027b7f0000000000000000000000006733e9106094b0c794e8e0297c96611ff60460bf81565b610191610421565b61019161034e366004610b79565b6104ac565b6102b36108b7565b60605f805461036990610bde565b80601f016020809104026020016040519081016040528092919081815260200182805461039590610bde565b80156103e05780601f106103b7576101008083540402835291602001916103e0565b820191905f5260205f20905b8154815290600101906020018083116103c357829003601f168201915b5050505050905090565b5f5f5f5f5f6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f805461042d90610bde565b80601f016020809104026020016040519081016040528092919081815260200182805461045990610bde565b80156104a45780601f1061047b576101008083540402835291602001916104a4565b820191905f5260205f20905b81548152906001019060200180831161048757829003601f168201915b505050505081565b60605f838060200190518101906104c39190610c79565b9150505f816001815181106104da576104da610d0f565b602001015160f81c60f81b60f81c60ff166008835f815181106104ff576104ff610d0f565b016020015160f81c901b17905061ffff8181167f000000000000000000000000000000000000000000000000000000000000000390911614610578576040517f431e9e0500000000000000000000000000000000000000000000000000000000815261ffff821660048201526024015b60405180910390fd5b5f7f0000000000000000000000006733e9106094b0c794e8e0297c96611ff60460bf73ffffffffffffffffffffffffffffffffffffffff1663f7e83aee5f88886040518463ffffffff1660e01b81526004016105d5929190610d3c565b5f6040518083038185885af11580156105f0573d5f5f3e3d5ffd5b50505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526106369190810190610d69565b90505f5f5f5f5f858060200190518101906106519190610deb565b5050600154969b50949950929750919550919350505063ffffffff7801000000000000000000000000000000000000000000000000909104811690841610156106f6576001546040517f3b799828000000000000000000000000000000000000000000000000000000008152780100000000000000000000000000000000000000000000000090910463ffffffff90811660048301528416602482015260440161056f565b7f000362205e10b3a147d02792eccee483dca6c7b44ecce7012cb8c6e0b68b3ae9851461074f576040517fc2a25c1b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8363ffffffff1642108061076857508163ffffffff1642115b1561079f576040517f9bdc885700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051606081018252601783900b80825263ffffffff86811660208085018290529187169385018490526001805477ffffffffffffffffffffffffffffffffffffffffffffffff88167fffffffff00000000000000000000000000000000000000000000000000000000909116177801000000000000000000000000000000000000000000000000909202919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c01000000000000000000000000000000000000000000000000000000009094029390931790925591514280825292917f0559884fd3a460db3073b7fc896cc77986f16e378210ded43186175bf646fc5f910160405180910390a350939998505050505050505050565b6001545f9081908190819081907801000000000000000000000000000000000000000000000000900463ffffffff16810361091e576040517f4d57188300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001547c0100000000000000000000000000000000000000000000000000000000900463ffffffff16421115610980576040517fd2bac7ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505060015463ffffffff7801000000000000000000000000000000000000000000000000820416935060170b9150829050808091929394565b5f5b838110156109d35781810151838201526020016109bb565b50505f910152565b5f81518084526109f28160208601602086016109b9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f610a3660208301846109db565b9392505050565b5f60208284031215610a4d575f5ffd5b813569ffffffffffffffffffff81168114610a36575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610ada57610ada610a66565b604052919050565b5f67ffffffffffffffff821115610afb57610afb610a66565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f82601f830112610b36575f5ffd5b8135610b49610b4482610ae2565b610a93565b818152846020838601011115610b5d575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f60408385031215610b8a575f5ffd5b823567ffffffffffffffff811115610ba0575f5ffd5b610bac85828601610b27565b925050602083013567ffffffffffffffff811115610bc8575f5ffd5b610bd485828601610b27565b9150509250929050565b600181811c90821680610bf257607f821691505b602082108103610c29577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f82601f830112610c3e575f5ffd5b8151610c4c610b4482610ae2565b818152846020838601011115610c60575f5ffd5b610c718260208301602087016109b9565b949350505050565b5f5f60808385031215610c8a575f5ffd5b83601f840112610c98575f5ffd5b6040516060810167ffffffffffffffff81118282101715610cbb57610cbb610a66565b604052806060850186811115610ccf575f5ffd5b855b81811015610ce9578051835260209283019201610cd1565b50519193505067ffffffffffffffff811115610d03575f5ffd5b610bd485828601610c2f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b604081525f610d4e60408301856109db565b8281036020840152610d6081856109db565b95945050505050565b5f60208284031215610d79575f5ffd5b815167ffffffffffffffff811115610d8f575f5ffd5b610c7184828501610c2f565b805163ffffffff81168114610dae575f5ffd5b919050565b805177ffffffffffffffffffffffffffffffffffffffffffffffff81168114610dae575f5ffd5b8051601781900b8114610dae575f5ffd5b5f5f5f5f5f5f5f5f5f6101208a8c031215610e04575f5ffd5b89519850610e1460208b01610d9b565b9750610e2260408b01610d9b565b9650610e3060608b01610db3565b9550610e3e60808b01610db3565b9450610e4c60a08b01610d9b565b9350610e5a60c08b01610dda565b9250610e6860e08b01610dda565b9150610e776101008b01610dda565b9050929598509295985092959856fea164736f6c634300081c000a

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
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.