Source Code
Overview
ETH Balance
0 ETH
More Info
ContractCreator
Multichain Info
N/A
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
4488939 | 28 hrs ago | Contract Creation | 0 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Source Code Verified (Exact Match)
Contract Name:
PythAggregatorV3
Compiler Version
v0.8.24+commit.e11b9ed9
ZkSolc Version
v1.5.7
Optimization Enabled:
Yes with Mode 3
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: Unlicense pragma solidity ^0.8.0; import {PythStructs} from "@pythnetwork/pyth-sdk-solidity/PythStructs.sol"; import {IPyth} from "@pythnetwork/pyth-sdk-solidity/IPyth.sol"; /** * @title A port of a chainlink aggregator powered by pyth network feeds * @author Deadshot Ryker * @notice This does not store any roundId information on-chain. Please review the code before using this implementation. */ contract PythAggregatorV3 { bytes32 public priceId; IPyth public pyth; uint64 public maxStalePeriod; constructor(address _pyth, bytes32 _priceId, uint64 _maxStalePeriod) { priceId = _priceId; pyth = IPyth(_pyth); maxStalePeriod = _maxStalePeriod; } function updateFeeds(bytes[] calldata priceUpdateData) public payable { // Update the prices to the latest available values and pay the required fee for it. The `priceUpdateData` data // should be retrieved from our off-chain Price Service API using the `pyth-evm-js` package. // See section "How Pyth Works on EVM Chains" below for more information. uint fee = pyth.getUpdateFee(priceUpdateData); pyth.updatePriceFeeds{value: fee}(priceUpdateData); // refund remaining eth payable(msg.sender).call{value: address(this).balance}(""); } function decimals() public view virtual returns (uint8) { PythStructs.Price memory price = pyth.getPriceUnsafe(priceId); return uint8(-1 * int8(price.expo)); } function description() public pure returns (string memory) { return "USDC/USD price feed powered by pyth network feeds"; } function version() public pure returns (uint256) { return 1; } function latestAnswer() public view virtual returns (int256) { PythStructs.Price memory price = pyth.getPriceUnsafe(priceId); return int256(price.price); } function latestTimestamp() public view returns (uint256) { PythStructs.Price memory price = pyth.getPriceUnsafe(priceId); return price.publishTime; } function latestRound() public view returns (uint256) { // use timestamp as the round id return latestTimestamp(); } function getAnswer(uint256) public view returns (int256) { return latestAnswer(); } function getTimestamp(uint256) external view returns (uint256) { return latestTimestamp(); } function getRoundData( uint80 _roundId ) external view returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ) { PythStructs.Price memory price = pyth.getPriceNoOlderThan( priceId, maxStalePeriod ); return ( _roundId, int256(price.price), price.publishTime, price.publishTime, _roundId ); } function latestRoundData() external view returns ( uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound ) { PythStructs.Price memory price = pyth.getPriceNoOlderThan( priceId, maxStalePeriod ); roundId = uint80(price.publishTime); return ( roundId, int256(price.price), price.publishTime, price.publishTime, roundId ); } }
// SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.0; contract PythStructs { // A price with a degree of uncertainty, represented as a price +- a confidence interval. // // The confidence interval roughly corresponds to the standard error of a normal distribution. // Both the price and confidence are stored in a fixed-point numeric representation, // `x * (10^expo)`, where `expo` is the exponent. // // Please refer to the documentation at https://docs.pyth.network/documentation/pythnet-price-feeds/best-practices for how // to how this price safely. struct Price { // Price int64 price; // Confidence interval around the price uint64 conf; // Price exponent int32 expo; // Unix timestamp describing when the price was published uint publishTime; } // PriceFeed represents a current aggregate price from pyth publisher feeds. struct PriceFeed { // The price ID. bytes32 id; // Latest available price Price price; // Latest available exponentially-weighted moving average price Price emaPrice; } }
// SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.0; import "./PythStructs.sol"; import "./IPythEvents.sol"; /// @title Consume prices from the Pyth Network (https://pyth.network/). /// @dev Please refer to the guidance at https://docs.pyth.network/documentation/pythnet-price-feeds/best-practices for how to consume prices safely. /// @author Pyth Data Association interface IPyth is IPythEvents { /// @notice Returns the price of a price feed without any sanity checks. /// @dev This function returns the most recent price update in this contract without any recency checks. /// This function is unsafe as the returned price update may be arbitrarily far in the past. /// /// Users of this function should check the `publishTime` in the price to ensure that the returned price is /// sufficiently recent for their application. If you are considering using this function, it may be /// safer / easier to use `getPriceNoOlderThan`. /// @return price - please read the documentation of PythStructs.Price to understand how to use this safely. function getPriceUnsafe( bytes32 id ) external view returns (PythStructs.Price memory price); /// @notice Returns the price that is no older than `age` seconds of the current time. /// @dev This function is a sanity-checked version of `getPriceUnsafe` which is useful in /// applications that require a sufficiently-recent price. Reverts if the price wasn't updated sufficiently /// recently. /// @return price - please read the documentation of PythStructs.Price to understand how to use this safely. function getPriceNoOlderThan( bytes32 id, uint age ) external view returns (PythStructs.Price memory price); /// @notice Returns the exponentially-weighted moving average price of a price feed without any sanity checks. /// @dev This function returns the same price as `getEmaPrice` in the case where the price is available. /// However, if the price is not recent this function returns the latest available price. /// /// The returned price can be from arbitrarily far in the past; this function makes no guarantees that /// the returned price is recent or useful for any particular application. /// /// Users of this function should check the `publishTime` in the price to ensure that the returned price is /// sufficiently recent for their application. If you are considering using this function, it may be /// safer / easier to use either `getEmaPrice` or `getEmaPriceNoOlderThan`. /// @return price - please read the documentation of PythStructs.Price to understand how to use this safely. function getEmaPriceUnsafe( bytes32 id ) external view returns (PythStructs.Price memory price); /// @notice Returns the exponentially-weighted moving average price that is no older than `age` seconds /// of the current time. /// @dev This function is a sanity-checked version of `getEmaPriceUnsafe` which is useful in /// applications that require a sufficiently-recent price. Reverts if the price wasn't updated sufficiently /// recently. /// @return price - please read the documentation of PythStructs.Price to understand how to use this safely. function getEmaPriceNoOlderThan( bytes32 id, uint age ) external view returns (PythStructs.Price memory price); /// @notice Update price feeds with given update messages. /// This method requires the caller to pay a fee in wei; the required fee can be computed by calling /// `getUpdateFee` with the length of the `updateData` array. /// Prices will be updated if they are more recent than the current stored prices. /// The call will succeed even if the update is not the most recent. /// @dev Reverts if the transferred fee is not sufficient or the updateData is invalid. /// @param updateData Array of price update data. function updatePriceFeeds(bytes[] calldata updateData) external payable; /// @notice Wrapper around updatePriceFeeds that rejects fast if a price update is not necessary. A price update is /// necessary if the current on-chain publishTime is older than the given publishTime. It relies solely on the /// given `publishTimes` for the price feeds and does not read the actual price update publish time within `updateData`. /// /// This method requires the caller to pay a fee in wei; the required fee can be computed by calling /// `getUpdateFee` with the length of the `updateData` array. /// /// `priceIds` and `publishTimes` are two arrays with the same size that correspond to senders known publishTime /// of each priceId when calling this method. If all of price feeds within `priceIds` have updated and have /// a newer or equal publish time than the given publish time, it will reject the transaction to save gas. /// Otherwise, it calls updatePriceFeeds method to update the prices. /// /// @dev Reverts if update is not needed or the transferred fee is not sufficient or the updateData is invalid. /// @param updateData Array of price update data. /// @param priceIds Array of price ids. /// @param publishTimes Array of publishTimes. `publishTimes[i]` corresponds to known `publishTime` of `priceIds[i]` function updatePriceFeedsIfNecessary( bytes[] calldata updateData, bytes32[] calldata priceIds, uint64[] calldata publishTimes ) external payable; /// @notice Returns the required fee to update an array of price updates. /// @param updateData Array of price update data. /// @return feeAmount The required fee in Wei. function getUpdateFee( bytes[] calldata updateData ) external view returns (uint feeAmount); /// @notice Parse `updateData` and return price feeds of the given `priceIds` if they are all published /// within `minPublishTime` and `maxPublishTime`. /// /// You can use this method if you want to use a Pyth price at a fixed time and not the most recent price; /// otherwise, please consider using `updatePriceFeeds`. This method may store the price updates on-chain, if they /// are more recent than the current stored prices. /// /// This method requires the caller to pay a fee in wei; the required fee can be computed by calling /// `getUpdateFee` with the length of the `updateData` array. /// /// /// @dev Reverts if the transferred fee is not sufficient or the updateData is invalid or there is /// no update for any of the given `priceIds` within the given time range. /// @param updateData Array of price update data. /// @param priceIds Array of price ids. /// @param minPublishTime minimum acceptable publishTime for the given `priceIds`. /// @param maxPublishTime maximum acceptable publishTime for the given `priceIds`. /// @return priceFeeds Array of the price feeds corresponding to the given `priceIds` (with the same order). function parsePriceFeedUpdates( bytes[] calldata updateData, bytes32[] calldata priceIds, uint64 minPublishTime, uint64 maxPublishTime ) external payable returns (PythStructs.PriceFeed[] memory priceFeeds); /// @notice Similar to `parsePriceFeedUpdates` but ensures the updates returned are /// the first updates published in minPublishTime. That is, if there are multiple updates for a given timestamp, /// this method will return the first update. This method may store the price updates on-chain, if they /// are more recent than the current stored prices. /// /// /// @dev Reverts if the transferred fee is not sufficient or the updateData is invalid or there is /// no update for any of the given `priceIds` within the given time range and uniqueness condition. /// @param updateData Array of price update data. /// @param priceIds Array of price ids. /// @param minPublishTime minimum acceptable publishTime for the given `priceIds`. /// @param maxPublishTime maximum acceptable publishTime for the given `priceIds`. /// @return priceFeeds Array of the price feeds corresponding to the given `priceIds` (with the same order). function parsePriceFeedUpdatesUnique( bytes[] calldata updateData, bytes32[] calldata priceIds, uint64 minPublishTime, uint64 maxPublishTime ) external payable returns (PythStructs.PriceFeed[] memory priceFeeds); }
// SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.0; /// @title IPythEvents contains the events that Pyth contract emits. /// @dev This interface can be used for listening to the updates for off-chain and testing purposes. interface IPythEvents { /// @dev Emitted when the price feed with `id` has received a fresh update. /// @param id The Pyth Price Feed ID. /// @param publishTime Publish time of the given price update. /// @param price Price of the given price update. /// @param conf Confidence interval of the given price update. event PriceFeedUpdate( bytes32 indexed id, uint64 publishTime, int64 price, uint64 conf ); }
{ "evmVersion": "paris", "optimizer": { "enabled": true, "mode": "3" }, "outputSelection": { "*": { "*": [ "abi", "metadata" ], "": [ "ast" ] } }, "detectMissingLibraries": false, "forceEVMLA": false, "enableEraVMExtensions": false, "libraries": {} }
[{"inputs":[{"internalType":"address","name":"_pyth","type":"address"},{"internalType":"bytes32","name":"_priceId","type":"bytes32"},{"internalType":"uint64","name":"_maxStalePeriod","type":"uint64"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"description","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getAnswer","outputs":[{"internalType":"int256","name":"","type":"int256"}],"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":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestAnswer","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestRound","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"latestTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxStalePeriod","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"priceId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pyth","outputs":[{"internalType":"contract IPyth","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"priceUpdateData","type":"bytes[]"}],"name":"updateFeeds","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"}]
Contract Creation Code
9c4d535b000000000000000000000000000000000000000000000000000000000000000001000185b2cfc6b2ef45b28515b8831171f5c89252739dea89862559747a38bb0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000006000000000000000000000000047f2a9bdad52d65b66287253cf5ca0d2b763b486eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a000000000000000000000000000000000000000000000000000000000000a8c0
Deployed Bytecode
0x0004000000000002000700000000000200000060041002700000014b03400197000300000031035500020000000103550000014b0040019d00000001002001900000001a0000c13d0000008002000039000000400020043f000000040030008c000002ec0000413d000000000201043b000000e002200270000001530020009c0000004f0000213d0000015d0020009c0000008c0000a13d0000015e0020009c000000a00000213d000001610020009c000000c70000613d000001620020009c000000d00000613d000002ec0000013d0000000002000416000000000002004b000002ec0000c13d0000001f023000390000014c022001970000008002200039000000400020043f0000001f0430018f0000014d0530019800000080025000390000002b0000613d0000008006000039000000000701034f000000007807043c0000000006860436000000000026004b000000270000c13d000000000004004b000000380000613d000000000151034f0000000304400210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f0000000000120435000000600030008c000002ec0000413d000000800100043d0000014e0010009c000002ec0000213d000000c00200043d0000014f0020009c000002ec0000213d000000a00300043d000000000030041b000000a00220021000000150022001970000000103000039000000000403041a0000015104400197000000000242019f000000000112019f000000000013041b0000002001000039000001000010044300000120000004430000015201000041000005290001042e000001540020009c000000930000a13d000001550020009c000000ae0000213d000001580020009c000000ce0000613d000001590020009c000002ec0000c13d000000240030008c000002ec0000413d0000000402100370000000000202043b000300000002001d0000014f0020009c000002ec0000213d00000003020000290000002302200039000000000032004b000002ec0000813d00000003020000290000000402200039000000000221034f000000000202043b000700000002001d0000014f0020009c000002ec0000213d0000000702000029000500000003001d000000050320021000000003020000290000002402200039000600000002001d000400000003001d00000000022300190000000503000029000000000032004b000002ec0000213d0000000102000039000000000202041a000200000002001d0000017002000041000000800020043f0000002002000039000000840020043f0000000402000029000000c40a2000390000000702000029000000a40020043f000000000002004b0000025c0000c13d00000002010000290000014e021001970000000001000414000000040020008c000200000002001d000002aa0000c13d0000000103000031000000200030008c00000020040000390000000004034019000002d40000013d000001630020009c000000db0000613d000001640020009c000000e20000613d000001650020009c0000009b0000613d000002ec0000013d0000015a0020009c000000d00000613d0000015b0020009c000000f40000613d0000015c0020009c000002ec0000c13d000000240030008c000002ec0000413d0000000001000416000000000001004b000002ec0000c13d052803f50000040f000000d40000013d0000015f0020009c0000010f0000613d000001600020009c000002ec0000c13d0000000001000416000000000001004b000002ec0000c13d0000000101000039000000000101041a000000a0011002700000014f01100197000000800010043f0000016f01000041000005290001042e000001560020009c000001220000613d000001570020009c000002ec0000c13d0000000001000416000000000001004b000002ec0000c13d0000000101000039000000000201041a000000000100041a0000016603000041000000800030043f000000840010043f000000a0012002700000014f01100197000000a40010043f00000000010004140000014e02200197000000040020008c0000012b0000c13d0000000103000031000000800030008c00000080040000390000000004034019000001500000013d0000000001000416000000000001004b000002ec0000c13d0000000101000039000000800010043f0000016f01000041000005290001042e000000240030008c000002ec0000413d0000000001000416000000000001004b000002ec0000c13d052804890000040f000000400200043d00000000001204350000014b0020009c0000014b0200804100000040012002100000017e011001c7000005290001042e0000000001000416000000000001004b000002ec0000c13d000000000100041a000000800010043f0000016f01000041000005290001042e0000000001000416000000000001004b000002ec0000c13d0000000101000039000000000201041a000000000100041a0000017f03000041000000800030043f000000840010043f00000000010004140000014e02200197000000040020008c000001790000c13d0000000103000031000000800030008c000000800400003900000000040340190000019e0000013d000000240030008c000002ec0000413d0000000002000416000000000002004b000002ec0000c13d0000000401100370000000000601043b0000016e0060009c000002ec0000213d0000000101000039000000000201041a000000000100041a0000016603000041000000800030043f000000840010043f000000a0012002700000014f01100197000000a40010043f00000000010004140000014e02200197000000040020008c000001cd0000c13d0000000103000031000000800030008c00000080040000390000000004034019000001f40000013d0000000001000416000000000001004b000002ec0000c13d000000e001000039000000400010043f0000003101000039000000800010043f0000017b02000041000000a00020043f0000017c03000041000000c00030043f0000002004000039000000e00040043f000001000010043f000001200020043f000001400030043f000001510000043f0000017d01000041000005290001042e0000000001000416000000000001004b000002ec0000c13d0000000101000039000000000101041a0000014e01100197000000800010043f0000016f01000041000005290001042e0000014b0010009c0000014b01008041000000c00110021000000167011001c7052805230000040f000000800a00003900000060031002700000014b03300197000000800030008c000000800400003900000000040340190000001f0640018f000000e00740019000000080057000390000013f0000613d000000000801034f000000008908043c000000000a9a043600000000005a004b0000013b0000c13d000000000006004b0000014c0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000002260000613d0000001f01400039000001e00110018f0000008002100039000000400020043f000000800030008c000002ec0000413d0000010003100039000000400030043f000000800300043d0000016800300198000001690400004100000000040060190000016a05300197000000000454019f000000000043004b000002ec0000c13d0000000000320435000000a00200043d0000014f0020009c000002ec0000213d000000a0041000390000000000240435000000c00200043d0000016b002001980000016c0400004100000000040060190000016d05200197000000000454019f000000000042004b000002ec0000c13d000000c0041000390000000000240435000000e001100039000000e00400043d0000000000410435000000400100043d000700000001001d0000016e02400197000000000504001900000000060200190000021b0000013d0000014b0010009c0000014b01008041000000c00110021000000180011001c7052805230000040f00000060031002700000014b03300197000000800030008c000000800400003900000000040340190000001f0640018f000000e00740019000000080057000390000018d0000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000001890000c13d000000000006004b0000019a0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000002320000613d0000001f01400039000001e00110018f0000008002100039000000400020043f000000800030008c000002ec0000413d0000010003100039000000400030043f000000800300043d0000016800300198000001690400004100000000040060190000016a05300197000000000454019f000000000043004b000002ec0000c13d0000000000320435000000a00200043d0000014f0020009c000002ec0000213d000000a0031000390000000000230435000000c00200043d0000016b002001980000016c0300004100000000030060190000016d04200197000000000343019f000000000032004b000002ec0000c13d000000c0031000390000000000230435000000e001100039000000e00300043d00000000003104350000007f0120018f000000800220018f00000000011200490000008000100190000000800200008a00000000020060190000007f0310018f000000000232019f000000000012004b000002ee0000c13d000000ff0110018f000000d40000013d000700000006001d0000014b0010009c0000014b01008041000000c00110021000000167011001c7052805230000040f00000060031002700000014b03300197000000800030008c000000800400003900000000040340190000001f0640018f000000e0074001900000008005700039000001e20000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000001de0000c13d000000000006004b000001ef0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000023e0000613d00000007060000290000001f01400039000001e00110018f0000008002100039000000400020043f000000800030008c000002ec0000413d0000010003100039000000400030043f000000800300043d0000016800300198000001690400004100000000040060190000016a05300197000000000454019f000000000043004b000002ec0000c13d0000000000320435000000a00200043d0000014f0020009c000002ec0000213d000000a0041000390000000000240435000000c00200043d0000016b002001980000016c0400004100000000040060190000016d05200197000000000454019f000000000042004b000002ec0000c13d000000c0041000390000000000240435000000e001100039000000e00400043d0000000000410435000000400100043d000700000001001d00000000020600190000000005040019052803e80000040f000000070200002900000000012100490000014b0010009c0000014b0100804100000060011002100000014b0020009c0000014b020080410000004002200210000000000121019f000005290001042e0000001f0530018f0000014d06300198000000400200043d0000000004620019000002490000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000022d0000c13d000002490000013d0000001f0530018f0000014d06300198000000400200043d0000000004620019000002490000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000002390000c13d000002490000013d0000001f0530018f0000014d06300198000000400200043d0000000004620019000002490000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000002450000c13d000000000005004b000002560000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000014b0020009c0000014b020080410000004002200210000000000112019f0000052a00010430000000030230006a000000c404000039000000430520008a0000017106500197000000000800001900000006090000290000026d0000013d0000001f03b000390000018103300197000000000a2b001900000000000a0435000000000a23001900000020099000390000000108800039000000070080006c0000000503000029000000810000813d000000c402a0008a0000000004240436000000000291034f000000000b02043b0000017102b00197000000000c62013f000000000062004b0000000002000019000001710200404100000000005b004b000000000d000019000001710d0080410000017100c0009c00000000020dc019000000000002004b000002ec0000c13d0000000602b00029000000000b21034f000000000b0b043b0000014f00b0009c000002ec0000213d000000200c2000390000000002b3004900000000002c004b000000000d000019000001710d0020410000017102200197000001710ec00197000000000f2e013f00000000002e004b000000000200001900000171020040410000017100f0009c00000000020dc019000000000002004b000002ec0000c13d000000000dc1034f0000000002ba0436000001810eb00198000000000ce200190000029c0000613d000000000f0d034f000000000a02001900000000f30f043c000000000a3a04360000000000ca004b000002980000c13d0000001f0ab00190000002630000613d0000000003ed034f000000030aa00210000000000d0c0433000000000dad01cf000000000dad022f000000000303043b000001000aa000890000000003a3022f0000000003a301cf0000000003d3019f00000000003c0435000002630000013d0000014b0010009c0000014b01008041000000c0011002100000008003a0008a0000014b0030009c0000014b030080410000006003300210000000000113019f00000172011001c7052805230000040f00000060031002700000014b03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000002c30000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000002bf0000c13d000000000006004b000002d00000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000002f40000613d0000001f01400039000000600110018f00000080011001bf000000400010043f000000200030008c000002ec0000413d000000800100043d000100000001001d000001730100004100000000001004430000000201000029000000040010044300000000010004140000014b0010009c0000014b01008041000000c00110021000000174011001c70000800202000039052805230000040f00000001002001900000039d0000613d000000000101043b000000000001004b000003000000c13d00000000010000190000052a000104300000017901000041000000000010043f0000001101000039000000040010043f0000017a010000410000052a000104300000001f0530018f0000014d06300198000000400200043d0000000004620019000002490000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000002fb0000c13d000002490000013d000000400300043d00000175010000410000000000130435000000040130003900000020020000390000000000210435000000240130003900000007020000290000000000210435000500000003001d00000044013000390000000409100029000000000002004b000003230000c13d00000000010004140000000202000029000000040020008c0000037e0000613d000000050300002900000000023900490000014b0020009c0000014b0200804100000060022002100000014b0030009c0000014b030080410000004003300210000000000232019f0000014b0010009c0000014b01008041000000c001100210000000000112019f000000010000006b000003730000c13d0000000202000029000003780000013d0000000302000029000400000000003500000000042000790000000203000367000000430440008a000001710540019700000000070000190000000608000029000003350000013d0000001f02a000390000018102200197000000000a9a001900000000000a0435000000000992001900000020088000390000000107700039000000070070006c0000030e0000813d000000050a90006a000000440aa0008a0000000001a10436000000000a83034f000000000a0a043b000001710ba00197000000000c5b013f00000000005b004b000000000b000019000001710b00404100000000004a004b000000000d000019000001710d0080410000017100c0009c000000000b0dc01900000000000b004b000002ec0000c13d000000060ba00029000000000ab3034f000000000a0a043b0000014f00a0009c000002ec0000213d000000200bb00039000000040ca000690000000000cb004b000000000d000019000001710d002041000001710cc00197000001710eb00197000000000fce013f0000000000ce004b000000000c000019000001710c0040410000017100f0009c000000000c0dc01900000000000c004b000002ec0000c13d000000000cb3034f0000000009a90436000001810da00198000000000bd90019000003650000613d000000000e0c034f000000000f09001900000000e20e043c000000000f2f04360000000000bf004b000003610000c13d0000001f0ea001900000032c0000613d0000000002dc034f000000030ce00210000000000d0b0433000000000dcd01cf000000000dcd022f000000000202043b000001000cc000890000000002c2022f0000000002c201cf0000000002d2019f00000000002b04350000032c0000013d00000176011001c700008009020000390000000103000029000000020400002900000000050000190528051e0000040f000300000001035500000060031002700001014b0030019d00000001002001900000039e0000613d0000000501000029000001770010009c000003870000413d0000017901000041000000000010043f0000004101000039000000040010043f0000017a010000410000052a000104300000000501000029000000400010043f000001780100004100000000001004430000000001000410000000040010044300000000010004140000014b0010009c0000014b01008041000000c00110021000000174011001c70000800a02000039052805230000040f00000001002001900000039d0000613d000000000301043b00000000010004140000000004000411000000040040008c000003ab0000c13d0000000102000031000003ba0000013d000000000001042f0000014b033001970000001f0530018f0000014d06300198000000400200043d0000000004620019000002490000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000003a60000c13d000002490000013d0000014b0010009c0000014b01008041000000c001100210000000000003004b000003b20000c13d0000000002040019000003b50000013d00000176011001c7000080090200003900000000050000190528051e0000040f00000060021002700001014b0020019d0000014b022001970003000000010355000000000002004b000003be0000c13d0000000001000019000005290001042e0000014f0020009c000003810000213d0000001f0320003900000181033001970000003f033000390000018104300197000000400300043d0000000004430019000000000034004b000000000500003900000001050040390000014f0040009c000003810000213d0000000100500190000003810000c13d000000400040043f000000000523043600000181032001980000001f0220018f00000000013500190000000304000367000003d90000613d000000000604034f000000006706043c0000000005750436000000000015004b000003d50000c13d000000000002004b000003bc0000613d000000000334034f0000000302200210000000000401043300000000042401cf000000000424022f000000000303043b0000010002200089000000000323022f00000000022301cf000000000242019f00000000002104350000000001000019000005290001042e0000016e06600197000000800710003900000000006704350000006006100039000000000056043500000040051000390000000000450435000000200410003900000000003404350000016e022001970000000000210435000000a001100039000000000001042d00020000000000020000000101000039000000000201041a000000000100041a000000400b00043d0000017f0300004100000000053b04360000000403b00039000000000013043500000000010004140000014e02200197000000040020008c000004070000c13d0000000103000031000000800030008c00000080040000390000000004034019000004350000013d000100000005001d0000014b00b0009c0000014b0300004100000000030b401900000040033002100000014b0010009c0000014b01008041000000c001100210000000000131019f0000017a011001c700020000000b001d052805230000040f000000020b00002900000060031002700000014b03300197000000800030008c000000800400003900000000040340190000001f0640018f000000e00740019000000000057b0019000004230000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b0000041f0000c13d000000000006004b000004300000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000046b0000613d00000001050000290000001f01400039000001e00110018f0000000002b10019000000000012004b000000000100003900000001010040390000014f0020009c000004650000213d0000000100100190000004650000c13d000000400020043f0000007f0030008c000004630000a13d000001820020009c000004650000213d0000008001200039000000400010043f00000000010b04330000016800100198000001690300004100000000030060190000016a04100197000000000343019f000000000031004b000004630000c13d000000000312043600000000040504330000014f0040009c000004630000213d00000000004304350000004003b0003900000000030304330000016b003001980000016c0400004100000000040060190000016d05300197000000000454019f000000000043004b000004630000c13d0000004004200039000000000034043500000060022000390000006003b0003900000000030304330000000000320435000000000001042d00000000010000190000052a000104300000017901000041000000000010043f0000004101000039000000040010043f0000017a010000410000052a000104300000001f0530018f0000014d06300198000000400200043d0000000004620019000004760000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000004720000c13d000000000005004b000004830000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000014b0020009c0000014b020080410000004002200210000000000112019f0000052a0001043000020000000000020000000101000039000000000201041a000000000100041a000000400b00043d0000017f0300004100000000053b04360000000403b00039000000000013043500000000010004140000014e02200197000000040020008c0000049b0000c13d0000000103000031000000800030008c00000080040000390000000004034019000004c90000013d000100000005001d0000014b00b0009c0000014b0300004100000000030b401900000040033002100000014b0010009c0000014b01008041000000c001100210000000000131019f0000017a011001c700020000000b001d052805230000040f000000020b00002900000060031002700000014b03300197000000800030008c000000800400003900000000040340190000001f0640018f000000e00740019000000000057b0019000004b70000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000004b30000c13d000000000006004b000004c40000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000004ff0000613d00000001050000290000001f01400039000001e00210018f0000000001b20019000000000021004b000000000200003900000001020040390000014f0010009c000004f90000213d0000000100200190000004f90000c13d000000400010043f0000007f0030008c000004f70000a13d000001820010009c000004f90000213d0000008002100039000000400020043f00000000020b04330000016800200198000001690300004100000000030060190000016a04200197000000000343019f000000000032004b000004f70000c13d000000000221043600000000030504330000014f0030009c000004f70000213d00000000003204350000004002b0003900000000020204330000016b002001980000016c0300004100000000030060190000016d04200197000000000343019f000000000032004b000004f70000c13d0000004003100039000000000023043500000060021000390000006001b0003900000000010104330000000000120435000000000001042d00000000010000190000052a000104300000017901000041000000000010043f0000004101000039000000040010043f0000017a010000410000052a000104300000001f0530018f0000014d06300198000000400200043d00000000046200190000050a0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000005060000c13d000000000005004b000005170000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f000000000014043500000060013002100000014b0020009c0000014b020080410000004002200210000000000112019f0000052a00010430000000000001042f00000521002104210000000102000039000000000001042d0000000002000019000000000001042d00000526002104230000000102000039000000000001042d0000000002000019000000000001042d0000052800000432000005290001042e0000052a00010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffff00000000ffffffffffffffff0000000000000000000000000000000000000000ffffffff000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000040000001000000000000000000000000000000000000000000000000000000000000000000000000008205bf6900000000000000000000000000000000000000000000000000000000b633620b00000000000000000000000000000000000000000000000000000000f98d06ef00000000000000000000000000000000000000000000000000000000f98d06f000000000000000000000000000000000000000000000000000000000feaf968c00000000000000000000000000000000000000000000000000000000b633620c00000000000000000000000000000000000000000000000000000000bc36c0a9000000000000000000000000000000000000000000000000000000008205bf6a000000000000000000000000000000000000000000000000000000009a6fc8f500000000000000000000000000000000000000000000000000000000b5ab58dc0000000000000000000000000000000000000000000000000000000054fd4d4f000000000000000000000000000000000000000000000000000000007284e415000000000000000000000000000000000000000000000000000000007284e416000000000000000000000000000000000000000000000000000000007361e5ff0000000000000000000000000000000000000000000000000000000054fd4d5000000000000000000000000000000000000000000000000000000000668a0f02000000000000000000000000000000000000000000000000000000003118933400000000000000000000000000000000000000000000000000000000313ce5670000000000000000000000000000000000000000000000000000000050d25bcda4ae35e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000440000008000000000000000000000000000000000000000000000000000000000000000008000000000000000ffffffffffffffffffffffffffffffffffffffffffffffff80000000000000000000000000000000000000000000000000000000000000007fffffffffffffff0000000000000000000000000000000000000000000000000000000080000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000000000000000000000000000000000000000000000000000007fffffff00000000000000000000000000000000000000000000ffffffffffffffffffff0000000000000000000000000000000000000020000000800000000000000000d47eed4500000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000001806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000ef9e5e2800000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f394e487b71000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000000000000000000000555344432f555344207072696365206665656420706f77657265642062792070797468206e6574776f726b2066656564730000000000000000000000000000000000000000000000000000000000000000000080000000e00000000000000000000000000000000000000000000000000000002000000000000000000000000096834ad3000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024000000800000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000b045f665d010e3daf04b812529c6392024e52f28a6b0a366db33d6a2f4f9afe4
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000047f2a9bdad52d65b66287253cf5ca0d2b763b486eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a000000000000000000000000000000000000000000000000000000000000a8c0
-----Decoded View---------------
Arg [0] : _pyth (address): 0x47F2A9BDAd52d65b66287253cf5ca0D2b763b486
Arg [1] : _priceId (bytes32): 0xeaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a
Arg [2] : _maxStalePeriod (uint64): 43200
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000047f2a9bdad52d65b66287253cf5ca0d2b763b486
Arg [1] : eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a
Arg [2] : 000000000000000000000000000000000000000000000000000000000000a8c0
Loading...
Loading
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.