ETH Price: $2,947.41 (-0.39%)

Contract

0x6780839584abCa356C26835754c65011Aea30f28

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...249875732026-01-25 3:13:0532 secs ago1769310785IN
0x67808395...1Aea30f28
0 ETH0.000000110.00100025
Update Price Dat...249875432026-01-25 3:12:051 min ago1769310725IN
0x67808395...1Aea30f28
0 ETH0.000000110.00100025
Update Price Dat...249875162026-01-25 3:11:112 mins ago1769310671IN
0x67808395...1Aea30f28
0 ETH0.00000010.00100025
Update Price Dat...249875162026-01-25 3:11:112 mins ago1769310671IN
0x67808395...1Aea30f28
0 ETH0.00000010.00100025
Update Price Dat...249875152026-01-25 3:11:092 mins ago1769310669IN
0x67808395...1Aea30f28
0 ETH0.000000110.00100025
Update Price Dat...249874542026-01-25 3:09:074 mins ago1769310547IN
0x67808395...1Aea30f28
0 ETH0.000000110.00100025
Update Price Dat...249874212026-01-25 3:08:015 mins ago1769310481IN
0x67808395...1Aea30f28
0 ETH0.000000110.00100025
Update Price Dat...249873932026-01-25 3:07:056 mins ago1769310425IN
0x67808395...1Aea30f28
0 ETH0.000000110.00100025
Update Price Dat...249873642026-01-25 3:06:077 mins ago1769310367IN
0x67808395...1Aea30f28
0 ETH0.00000010.00100025
Update Price Dat...249873632026-01-25 3:06:057 mins ago1769310365IN
0x67808395...1Aea30f28
0 ETH0.000000110.00100025
Update Price Dat...249873332026-01-25 3:05:058 mins ago1769310305IN
0x67808395...1Aea30f28
0 ETH0.00000010.00100025
Update Price Dat...249873332026-01-25 3:05:058 mins ago1769310305IN
0x67808395...1Aea30f28
0 ETH0.000000110.00100025
Update Price Dat...249872742026-01-25 3:03:0710 mins ago1769310187IN
0x67808395...1Aea30f28
0 ETH0.00000010.00100025
Update Price Dat...249872732026-01-25 3:03:0510 mins ago1769310185IN
0x67808395...1Aea30f28
0 ETH0.00000010.00100025
Update Price Dat...249872732026-01-25 3:03:0510 mins ago1769310185IN
0x67808395...1Aea30f28
0 ETH0.00000010.00100025
Update Price Dat...249872732026-01-25 3:03:0510 mins ago1769310185IN
0x67808395...1Aea30f28
0 ETH0.000000110.00100025
Update Price Dat...249872412026-01-25 3:02:0111 mins ago1769310121IN
0x67808395...1Aea30f28
0 ETH0.000000110.00100025
Update Price Dat...249872132026-01-25 3:01:0512 mins ago1769310065IN
0x67808395...1Aea30f28
0 ETH0.000000110.00100025
Update Price Dat...249871812026-01-25 3:00:0113 mins ago1769310001IN
0x67808395...1Aea30f28
0 ETH0.000000110.00100025
Update Price Dat...249871212026-01-25 2:58:0115 mins ago1769309881IN
0x67808395...1Aea30f28
0 ETH0.000000110.00100025
Update Price Dat...249870932026-01-25 2:57:0516 mins ago1769309825IN
0x67808395...1Aea30f28
0 ETH0.000000110.00100025
Update Price Dat...249870632026-01-25 2:56:0517 mins ago1769309765IN
0x67808395...1Aea30f28
0 ETH0.00000010.00100025
Update Price Dat...249870632026-01-25 2:56:0517 mins ago1769309765IN
0x67808395...1Aea30f28
0 ETH0.000000110.00100025
Update Price Dat...249870312026-01-25 2:55:0118 mins ago1769309701IN
0x67808395...1Aea30f28
0 ETH0.000000110.00100025
Update Price Dat...249870032026-01-25 2:54:0519 mins ago1769309645IN
0x67808395...1Aea30f28
0 ETH0.000000110.00100025
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:

Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ChainlinkPriceFeed

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
Yes with 10000 runs

Other Settings:
shanghai EvmVersion
// 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"}]

610140604052600361010052348015610016575f5ffd5b5060405161138d38038061138d83398101604081905261003591610243565b6001600160a01b038516610080576040516305519d6f60e51b815260206004820152600c60248201526b555344435f4164647265737360a01b60448201526064015b60405180910390fd5b6001600160a01b0386166100cc576040516305519d6f60e51b8152602060048201526012602482015271506169725f546f6b656e5f4164647265737360701b6044820152606401610077565b6001600160a01b038416610114576040516305519d6f60e51b815260206004820152600e60248201526d56657269666965725f50726f787960901b6044820152606401610077565b8261014c576040516305519d6f60e51b81526020600482015260076024820152661199595917d25960ca1b6044820152606401610077565b81515f03610189576040516305519d6f60e51b8152602060048201526009602482015268506169725f4e616d6560b81b6044820152606401610077565b8060ff165f036101c7576040516305519d6f60e51b8152602060048201526008602482015267446563696d616c7360c01b6044820152606401610077565b6001600160a01b0380861660a052868116608052841660c05260e08390525f6101f083826103de565b5060ff1661012052506104989350505050565b6001600160a01b0381168114610217575f5ffd5b50565b634e487b7160e01b5f52604160045260245ffd5b805160ff8116811461023e575f5ffd5b919050565b5f5f5f5f5f5f60c08789031215610258575f5ffd5b865161026381610203565b602088015190965061027481610203565b604088015190955061028581610203565b6060880151608089015191955093506001600160401b038111156102a7575f5ffd5b8701601f810189136102b7575f5ffd5b80516001600160401b038111156102d0576102d061021a565b604051601f8201601f19908116603f011681016001600160401b03811182821017156102fe576102fe61021a565b6040528181528282016020018b1015610315575f5ffd5b5f5b8281101561033357602081850181015183830182015201610317565b505f6020838301015280945050505061034e60a0880161022e565b90509295509295509295565b600181811c9082168061036e57607f821691505b60208210810361038c57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156103d957805f5260205f20601f840160051c810160208510156103b75750805b601f840160051c820191505b818110156103d6575f81556001016103c3565b50505b505050565b81516001600160401b038111156103f7576103f761021a565b61040b81610405845461035a565b84610392565b6020601f82116001811461043d575f83156104265750848201515b5f19600385901b1c1916600184901b1784556103d6565b5f84815260208120601f198516915b8281101561046c578785015182556020948501946001909201910161044c565b508482101561048957868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b60805160a05160c05160e0516101005161012051610e936104fa5f395f8181610128015261015e01525f818161021f015261051401525f818160ee01526106f801525f8181610316015261057b01525f6102ef01525f6102590152610e935ff3fe608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c8063924ae32311610088578063bc1c3adf11610063578063bc1c3adf14610311578063e17c51ba14610338578063f3208a5014610340578063feaf968c14610353575f5ffd5b8063924ae323146102545780639a6fc8f5146102a0578063b3d673d8146102ea575f5ffd5b806354fd4d50116100c357806354fd4d50146101825780637284e41614610189578063741bef1a1461019e5780638a28f6b61461021a575f5ffd5b806301d61c49146100e95780632e0f262514610123578063313ce5671461015c575b5f5ffd5b6101107f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b61014a7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161011a565b7f000000000000000000000000000000000000000000000000000000000000000061014a565b6001610110565b61019161035b565b60405161011a9190610a24565b6001546101f390601781900b9063ffffffff780100000000000000000000000000000000000000000000000082048116917c010000000000000000000000000000000000000000000000000000000090041683565b6040805160179490940b845263ffffffff928316602085015291169082015260600161011a565b6102417f000000000000000000000000000000000000000000000000000000000000000081565b60405161ffff909116815260200161011a565b61027b7f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161011a565b6102b36102ae366004610a3d565b6103ea565b6040805169ffffffffffffffffffff968716815260208101959095528401929092526060830152909116608082015260a00161011a565b61027b7f000000000000000000000000000000000000000000000000000000000000000081565b61027b7f000000000000000000000000000000000000000000000000000000000000000081565b610191610421565b61019161034e366004610b79565b6104ac565b6102b36108b7565b60605f805461036990610bde565b80601f016020809104026020016040519081016040528092919081815260200182805461039590610bde565b80156103e05780601f106103b7576101008083540402835291602001916103e0565b820191905f5260205f20905b8154815290600101906020018083116103c357829003601f168201915b5050505050905090565b5f5f5f5f5f6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f805461042d90610bde565b80601f016020809104026020016040519081016040528092919081815260200182805461045990610bde565b80156104a45780601f1061047b576101008083540402835291602001916104a4565b820191905f5260205f20905b81548152906001019060200180831161048757829003601f168201915b505050505081565b60605f838060200190518101906104c39190610c79565b9150505f816001815181106104da576104da610d0f565b602001015160f81c60f81b60f81c60ff166008835f815181106104ff576104ff610d0f565b016020015160f81c901b17905061ffff8181167f000000000000000000000000000000000000000000000000000000000000000090911614610578576040517f431e9e0500000000000000000000000000000000000000000000000000000000815261ffff821660048201526024015b60405180910390fd5b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f7e83aee5f88886040518463ffffffff1660e01b81526004016105d5929190610d3c565b5f6040518083038185885af11580156105f0573d5f5f3e3d5ffd5b50505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526106369190810190610d69565b90505f5f5f5f5f858060200190518101906106519190610deb565b5050600154969b50949950929750919550919350505063ffffffff7801000000000000000000000000000000000000000000000000909104811690841610156106f6576001546040517f3b799828000000000000000000000000000000000000000000000000000000008152780100000000000000000000000000000000000000000000000090910463ffffffff90811660048301528416602482015260440161056f565b7f0000000000000000000000000000000000000000000000000000000000000000851461074f576040517fc2a25c1b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8363ffffffff1642108061076857508163ffffffff1642115b1561079f576040517f9bdc885700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051606081018252601783900b80825263ffffffff86811660208085018290529187169385018490526001805477ffffffffffffffffffffffffffffffffffffffffffffffff88167fffffffff00000000000000000000000000000000000000000000000000000000909116177801000000000000000000000000000000000000000000000000909202919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c01000000000000000000000000000000000000000000000000000000009094029390931790925591514280825292917f0559884fd3a460db3073b7fc896cc77986f16e378210ded43186175bf646fc5f910160405180910390a350939998505050505050505050565b6001545f9081908190819081907801000000000000000000000000000000000000000000000000900463ffffffff16810361091e576040517f4d57188300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001547c0100000000000000000000000000000000000000000000000000000000900463ffffffff16421115610980576040517fd2bac7ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505060015463ffffffff7801000000000000000000000000000000000000000000000000820416935060170b9150829050808091929394565b5f5b838110156109d35781810151838201526020016109bb565b50505f910152565b5f81518084526109f28160208601602086016109b9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f610a3660208301846109db565b9392505050565b5f60208284031215610a4d575f5ffd5b813569ffffffffffffffffffff81168114610a36575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610ada57610ada610a66565b604052919050565b5f67ffffffffffffffff821115610afb57610afb610a66565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f82601f830112610b36575f5ffd5b8135610b49610b4482610ae2565b610a93565b818152846020838601011115610b5d575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f60408385031215610b8a575f5ffd5b823567ffffffffffffffff811115610ba0575f5ffd5b610bac85828601610b27565b925050602083013567ffffffffffffffff811115610bc8575f5ffd5b610bd485828601610b27565b9150509250929050565b600181811c90821680610bf257607f821691505b602082108103610c29577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f82601f830112610c3e575f5ffd5b8151610c4c610b4482610ae2565b818152846020838601011115610c60575f5ffd5b610c718260208301602087016109b9565b949350505050565b5f5f60808385031215610c8a575f5ffd5b83601f840112610c98575f5ffd5b6040516060810167ffffffffffffffff81118282101715610cbb57610cbb610a66565b604052806060850186811115610ccf575f5ffd5b855b81811015610ce9578051835260209283019201610cd1565b50519193505067ffffffffffffffff811115610d03575f5ffd5b610bd485828601610c2f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b604081525f610d4e60408301856109db565b8281036020840152610d6081856109db565b95945050505050565b5f60208284031215610d79575f5ffd5b815167ffffffffffffffff811115610d8f575f5ffd5b610c7184828501610c2f565b805163ffffffff81168114610dae575f5ffd5b919050565b805177ffffffffffffffffffffffffffffffffffffffffffffffff81168114610dae575f5ffd5b8051601781900b8114610dae575f5ffd5b5f5f5f5f5f5f5f5f5f6101208a8c031215610e04575f5ffd5b89519850610e1460208b01610d9b565b9750610e2260408b01610d9b565b9650610e3060608b01610db3565b9550610e3e60808b01610db3565b9450610e4c60a08b01610d9b565b9350610e5a60c08b01610dda565b9250610e6860e08b01610dda565b9150610e776101008b01610dda565b9050929598509295985092959856fea164736f6c634300081c000a0000000000000000000000009b8df6e244526ab5f6e6400d331db28c8fdddb5500000000000000000000000079a02482a880bce3f13e09da970dc34db4cd24d10000000000000000000000006733e9106094b0c794e8e0297c96611ff60460bf0003b778d3f6b2ac4991302b89cb313f99a42467d6c9c5f96f57c29c0d2bc24f00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000ee2809c75534f4c2f555344e2809d000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c8063924ae32311610088578063bc1c3adf11610063578063bc1c3adf14610311578063e17c51ba14610338578063f3208a5014610340578063feaf968c14610353575f5ffd5b8063924ae323146102545780639a6fc8f5146102a0578063b3d673d8146102ea575f5ffd5b806354fd4d50116100c357806354fd4d50146101825780637284e41614610189578063741bef1a1461019e5780638a28f6b61461021a575f5ffd5b806301d61c49146100e95780632e0f262514610123578063313ce5671461015c575b5f5ffd5b6101107f0003b778d3f6b2ac4991302b89cb313f99a42467d6c9c5f96f57c29c0d2bc24f81565b6040519081526020015b60405180910390f35b61014a7f000000000000000000000000000000000000000000000000000000000000001281565b60405160ff909116815260200161011a565b7f000000000000000000000000000000000000000000000000000000000000001261014a565b6001610110565b61019161035b565b60405161011a9190610a24565b6001546101f390601781900b9063ffffffff780100000000000000000000000000000000000000000000000082048116917c010000000000000000000000000000000000000000000000000000000090041683565b6040805160179490940b845263ffffffff928316602085015291169082015260600161011a565b6102417f000000000000000000000000000000000000000000000000000000000000000381565b60405161ffff909116815260200161011a565b61027b7f0000000000000000000000009b8df6e244526ab5f6e6400d331db28c8fdddb5581565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161011a565b6102b36102ae366004610a3d565b6103ea565b6040805169ffffffffffffffffffff968716815260208101959095528401929092526060830152909116608082015260a00161011a565b61027b7f00000000000000000000000079a02482a880bce3f13e09da970dc34db4cd24d181565b61027b7f0000000000000000000000006733e9106094b0c794e8e0297c96611ff60460bf81565b610191610421565b61019161034e366004610b79565b6104ac565b6102b36108b7565b60605f805461036990610bde565b80601f016020809104026020016040519081016040528092919081815260200182805461039590610bde565b80156103e05780601f106103b7576101008083540402835291602001916103e0565b820191905f5260205f20905b8154815290600101906020018083116103c357829003601f168201915b5050505050905090565b5f5f5f5f5f6040517fd623472500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f805461042d90610bde565b80601f016020809104026020016040519081016040528092919081815260200182805461045990610bde565b80156104a45780601f1061047b576101008083540402835291602001916104a4565b820191905f5260205f20905b81548152906001019060200180831161048757829003601f168201915b505050505081565b60605f838060200190518101906104c39190610c79565b9150505f816001815181106104da576104da610d0f565b602001015160f81c60f81b60f81c60ff166008835f815181106104ff576104ff610d0f565b016020015160f81c901b17905061ffff8181167f000000000000000000000000000000000000000000000000000000000000000390911614610578576040517f431e9e0500000000000000000000000000000000000000000000000000000000815261ffff821660048201526024015b60405180910390fd5b5f7f0000000000000000000000006733e9106094b0c794e8e0297c96611ff60460bf73ffffffffffffffffffffffffffffffffffffffff1663f7e83aee5f88886040518463ffffffff1660e01b81526004016105d5929190610d3c565b5f6040518083038185885af11580156105f0573d5f5f3e3d5ffd5b50505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526106369190810190610d69565b90505f5f5f5f5f858060200190518101906106519190610deb565b5050600154969b50949950929750919550919350505063ffffffff7801000000000000000000000000000000000000000000000000909104811690841610156106f6576001546040517f3b799828000000000000000000000000000000000000000000000000000000008152780100000000000000000000000000000000000000000000000090910463ffffffff90811660048301528416602482015260440161056f565b7f0003b778d3f6b2ac4991302b89cb313f99a42467d6c9c5f96f57c29c0d2bc24f851461074f576040517fc2a25c1b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8363ffffffff1642108061076857508163ffffffff1642115b1561079f576040517f9bdc885700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60408051606081018252601783900b80825263ffffffff86811660208085018290529187169385018490526001805477ffffffffffffffffffffffffffffffffffffffffffffffff88167fffffffff00000000000000000000000000000000000000000000000000000000909116177801000000000000000000000000000000000000000000000000909202919091177bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c01000000000000000000000000000000000000000000000000000000009094029390931790925591514280825292917f0559884fd3a460db3073b7fc896cc77986f16e378210ded43186175bf646fc5f910160405180910390a350939998505050505050505050565b6001545f9081908190819081907801000000000000000000000000000000000000000000000000900463ffffffff16810361091e576040517f4d57188300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001547c0100000000000000000000000000000000000000000000000000000000900463ffffffff16421115610980576040517fd2bac7ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505060015463ffffffff7801000000000000000000000000000000000000000000000000820416935060170b9150829050808091929394565b5f5b838110156109d35781810151838201526020016109bb565b50505f910152565b5f81518084526109f28160208601602086016109b9565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081525f610a3660208301846109db565b9392505050565b5f60208284031215610a4d575f5ffd5b813569ffffffffffffffffffff81168114610a36575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715610ada57610ada610a66565b604052919050565b5f67ffffffffffffffff821115610afb57610afb610a66565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f82601f830112610b36575f5ffd5b8135610b49610b4482610ae2565b610a93565b818152846020838601011115610b5d575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f60408385031215610b8a575f5ffd5b823567ffffffffffffffff811115610ba0575f5ffd5b610bac85828601610b27565b925050602083013567ffffffffffffffff811115610bc8575f5ffd5b610bd485828601610b27565b9150509250929050565b600181811c90821680610bf257607f821691505b602082108103610c29577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f82601f830112610c3e575f5ffd5b8151610c4c610b4482610ae2565b818152846020838601011115610c60575f5ffd5b610c718260208301602087016109b9565b949350505050565b5f5f60808385031215610c8a575f5ffd5b83601f840112610c98575f5ffd5b6040516060810167ffffffffffffffff81118282101715610cbb57610cbb610a66565b604052806060850186811115610ccf575f5ffd5b855b81811015610ce9578051835260209283019201610cd1565b50519193505067ffffffffffffffff811115610d03575f5ffd5b610bd485828601610c2f565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b604081525f610d4e60408301856109db565b8281036020840152610d6081856109db565b95945050505050565b5f60208284031215610d79575f5ffd5b815167ffffffffffffffff811115610d8f575f5ffd5b610c7184828501610c2f565b805163ffffffff81168114610dae575f5ffd5b919050565b805177ffffffffffffffffffffffffffffffffffffffffffffffff81168114610dae575f5ffd5b8051601781900b8114610dae575f5ffd5b5f5f5f5f5f5f5f5f5f6101208a8c031215610e04575f5ffd5b89519850610e1460208b01610d9b565b9750610e2260408b01610d9b565b9650610e3060608b01610db3565b9550610e3e60808b01610db3565b9450610e4c60a08b01610d9b565b9350610e5a60c08b01610dda565b9250610e6860e08b01610dda565b9150610e776101008b01610dda565b9050929598509295985092959856fea164736f6c634300081c000a

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000009b8df6e244526ab5f6e6400d331db28c8fdddb5500000000000000000000000079a02482a880bce3f13e09da970dc34db4cd24d10000000000000000000000006733e9106094b0c794e8e0297c96611ff60460bf0003b778d3f6b2ac4991302b89cb313f99a42467d6c9c5f96f57c29c0d2bc24f00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000ee2809c75534f4c2f555344e2809d000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _pairAddress (address): 0x9B8Df6E244526ab5F6e6400d331DB28C8fdDdb55
Arg [1] : _usdcAddress (address): 0x79A02482A880bCE3F13e09Da970dC34db4CD24d1
Arg [2] : _verifierProxyAddress (address): 0x6733e9106094b0C794e8E0297c96611fF60460Bf
Arg [3] : _feedId (bytes32): 0x0003b778d3f6b2ac4991302b89cb313f99a42467d6c9c5f96f57c29c0d2bc24f
Arg [4] : _pairName (string): “uSOL/USD”
Arg [5] : _decimals (uint8): 18

-----Encoded View---------------
8 Constructor Arguments found :
Arg [0] : 0000000000000000000000009b8df6e244526ab5f6e6400d331db28c8fdddb55
Arg [1] : 00000000000000000000000079a02482a880bce3f13e09da970dc34db4cd24d1
Arg [2] : 0000000000000000000000006733e9106094b0c794e8e0297c96611ff60460bf
Arg [3] : 0003b778d3f6b2ac4991302b89cb313f99a42467d6c9c5f96f57c29c0d2bc24f
Arg [4] : 00000000000000000000000000000000000000000000000000000000000000c0
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [6] : 000000000000000000000000000000000000000000000000000000000000000e
Arg [7] : e2809c75534f4c2f555344e2809d000000000000000000000000000000000000


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.