Overview
ETH Balance
ETH Value
$0.00Latest 25 from a total of 366,874 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Update Price Dat... | 24987573 | 32 secs ago | IN | 0 ETH | 0.00000011 | ||||
| Update Price Dat... | 24987543 | 1 min ago | IN | 0 ETH | 0.00000011 | ||||
| Update Price Dat... | 24987516 | 2 mins ago | IN | 0 ETH | 0.0000001 | ||||
| Update Price Dat... | 24987516 | 2 mins ago | IN | 0 ETH | 0.0000001 | ||||
| Update Price Dat... | 24987515 | 2 mins ago | IN | 0 ETH | 0.00000011 | ||||
| Update Price Dat... | 24987454 | 4 mins ago | IN | 0 ETH | 0.00000011 | ||||
| Update Price Dat... | 24987421 | 5 mins ago | IN | 0 ETH | 0.00000011 | ||||
| Update Price Dat... | 24987393 | 6 mins ago | IN | 0 ETH | 0.00000011 | ||||
| Update Price Dat... | 24987364 | 7 mins ago | IN | 0 ETH | 0.0000001 | ||||
| Update Price Dat... | 24987363 | 7 mins ago | IN | 0 ETH | 0.00000011 | ||||
| Update Price Dat... | 24987333 | 8 mins ago | IN | 0 ETH | 0.0000001 | ||||
| Update Price Dat... | 24987333 | 8 mins ago | IN | 0 ETH | 0.00000011 | ||||
| Update Price Dat... | 24987274 | 10 mins ago | IN | 0 ETH | 0.0000001 | ||||
| Update Price Dat... | 24987273 | 10 mins ago | IN | 0 ETH | 0.0000001 | ||||
| Update Price Dat... | 24987273 | 10 mins ago | IN | 0 ETH | 0.0000001 | ||||
| Update Price Dat... | 24987273 | 10 mins ago | IN | 0 ETH | 0.00000011 | ||||
| Update Price Dat... | 24987241 | 11 mins ago | IN | 0 ETH | 0.00000011 | ||||
| Update Price Dat... | 24987213 | 12 mins ago | IN | 0 ETH | 0.00000011 | ||||
| Update Price Dat... | 24987181 | 13 mins ago | IN | 0 ETH | 0.00000011 | ||||
| Update Price Dat... | 24987121 | 15 mins ago | IN | 0 ETH | 0.00000011 | ||||
| Update Price Dat... | 24987093 | 16 mins ago | IN | 0 ETH | 0.00000011 | ||||
| Update Price Dat... | 24987063 | 17 mins ago | IN | 0 ETH | 0.0000001 | ||||
| Update Price Dat... | 24987063 | 17 mins ago | IN | 0 ETH | 0.00000011 | ||||
| Update Price Dat... | 24987031 | 18 mins ago | IN | 0 ETH | 0.00000011 | ||||
| Update Price Dat... | 24987003 | 19 mins ago | IN | 0 ETH | 0.00000011 |
View more zero value Internal Transactions in Advanced View mode
Cross-Chain Transactions
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;
}{
"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
- No Contract Security Audit Submitted- Submit Audit Here
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"}]Contract Creation Code
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
Net Worth in USD
Net Worth in ETH
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.