Source Code
Overview
HYPE Balance
HYPE Value
$0.00View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Cross-Chain Transactions
Loading...
Loading
Contract Name:
PythAggregatorV3
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
Yes with 200 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: Apache 2
pragma solidity ^0.8.0;
import {PythStructs} from "@pythnetwork/pyth-sdk-solidity/PythStructs.sol";
import {IPyth} from "@pythnetwork/pyth-sdk-solidity/IPyth.sol";
// This interface is forked from the Zerolend Adapter found here:
// https://github.com/zerolend/pyth-oracles/blob/master/contracts/PythAggregatorV3.sol
// Original license found under licenses/zerolend-pyth-oracles.md
/**
* @title A port of the ChainlinkAggregatorV3 interface that supports Pyth price feeds
* @notice This does not store any roundId information on-chain. Please review the code before using this implementation.
* Users should deploy an instance of this contract to wrap every price feed id that they need to use.
*/
contract PythAggregatorV3 {
bytes32 public priceId;
IPyth public pyth;
string public description;
constructor(address _pyth, bytes32 _priceId, string memory _description) {
priceId = _priceId;
pyth = IPyth(_pyth);
description = _description;
}
// Wrapper function to update the underlying Pyth price feeds. Not part of the AggregatorV3 interface but useful.
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.
uint256 fee = pyth.getUpdateFee(priceUpdateData);
pyth.updatePriceFeeds{value: fee}(priceUpdateData);
// refund remaining eth
(bool success,) = payable(msg.sender).call{value: address(this).balance}("");
require(success, "Refund failed");
}
function decimals() public view virtual returns (uint8) {
PythStructs.Price memory price = pyth.getPriceUnsafe(priceId);
return uint8(-1 * int8(price.expo));
}
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.getPriceUnsafe(priceId);
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.getPriceUnsafe(priceId);
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;
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
);
}// 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;
}
}{
"evmVersion": "paris",
"libraries": {},
"metadata": {
"appendCBOR": true,
"bytecodeHash": "ipfs",
"useLiteralContent": false
},
"optimizer": {
"enabled": true,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"remappings": [
"@chainlink/=node_modules/@chainlink/",
"@ensdomains/=node_modules/@ensdomains/",
"@eth-optimism/=node_modules/@eth-optimism/",
"@mean-finance/=node_modules/@mean-finance/",
"@openzeppelin/=node_modules/@openzeppelin/",
"@rari-capital/=node_modules/@rari-capital/",
"@uniswap/=node_modules/@uniswap/",
"base64-sol/=node_modules/base64-sol/",
"ds-test/=lib/ds-test/src/",
"erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
"eth-gas-reporter/=node_modules/eth-gas-reporter/",
"forge-std/=lib/forge-std/src/",
"halmos-cheatcodes/=lib/openzeppelin-contracts/lib/halmos-cheatcodes/src/",
"hardhat/=node_modules/hardhat/",
"openzeppelin-contracts/=lib/openzeppelin-contracts/",
"solidity-bytes-utils/=node_modules/solidity-bytes-utils/",
"gluex-router/=lib/gluex_router_contract/router_v1/",
"@pythnetwork/=lib/pyth-adapters/node_modules/@pythnetwork/",
"gluex_router_contract/=lib/gluex_router_contract/",
"openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/",
"pyth-adapters/=lib/pyth-adapters/",
"v3-core/=lib/v3-core/",
"v3-periphery/=lib/v3-periphery/contracts/"
],
"viaIR": true
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_pyth","type":"address"},{"internalType":"bytes32","name":"_priceId","type":"bytes32"},{"internalType":"string","name":"_description","type":"string"}],"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":"view","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":"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
608060405234620002475762000b9f803803806200001d816200024c565b928339810190606081830312620002475780516001600160a01b0381169081900362000247576020928383015190604084015160018060401b039485821162000247570194601f92828488011215620002475786518681116200021c57601f19976200008f8287018a1685016200024c565b948286528483830101116200024757839060005b8381106200023257505060009185010181905255600180546001600160a01b031916909417845581519485116200021c576002548481811c9116801562000211575b82821014620001fb57838111620001af575b50809285116001146200014457508394509083929160009462000138575b50501b916000199060031b1c1916176002555b60405161092c9081620002738239f35b01519250388062000115565b929484908116600260005284600020946000905b888383106200019457505050106200017a575b505050811b0160025562000128565b015160001960f88460031b161c191690553880806200016b565b85870151885590960195948501948793509081019062000158565b6002600052816000208480880160051c820192848910620001f1575b0160051c019085905b828110620001e4575050620000f7565b60008155018590620001d4565b92508192620001cb565b634e487b7160e01b600052602260045260246000fd5b90607f1690620000e5565b634e487b7160e01b600052604160045260246000fd5b818101830151878201840152859201620000a3565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200021c5760405256fe6080604081815260048036101561001557600080fd5b600092833560e01c90816331189334146106a157508063313ce567146105fe57806350d25bcd146105e157806354fd4d50146105c5578063668a0f02146104795780637284e4161461047e5780638205bf6a146104795780639a6fc8f5146103a9578063b5ab58dc1461038b578063b633620c14610366578063bc36c0a9146101a7578063f98d06f01461017a5763feaf968c146100b257600080fd5b34610176578260031936011261017657600154835483516396834ad360e01b815292830152608090829060249082906001600160a01b03165afa92831561016b579261013b575b506060828101519251915169ffffffffffffffffffff841680825260079390930b60208201526040810184905290810192909252608082015260a090f35b0390f35b61015d91925060803d8111610164575b61015581836106e3565b8101906107bf565b90386100f9565b503d61014b565b8251903d90823e3d90fd5b8280fd5b5050346101a357816003193601126101a35760015490516001600160a01b039091168152602090f35b5080fd5b5090602090816003193601126103255767ffffffffffffffff83358181116103625736602382011215610362578581860135918383116101a3576024810190602436918560051b0101116101a357600154855163d47eed4560e01b815293916001600160a01b039091169087858061022286858e840161071b565b0381855afa948515610358578495610329575b50813b15610325578651631df3cbc560e31b81529485938492839161025c918d840161071b565b03925af1801561031b576102f5575b508480808047335af1903d156102ef573d9081116102dc57825190610299601f8201601f19168601836106e3565b815285843d92013e5b156102ab578380f35b5162461bcd60e51b815291820152600d60248201526c1499599d5b990819985a5b1959609a1b604482015260649150fd5b634e487b7160e01b865260418552602486fd5b506102a2565b818196929611610308578252933861026b565b634e487b7160e01b825260418552602482fd5b83513d88823e3d90fd5b8380fd5b9094508781813d8311610351575b61034181836106e3565b8101031261032557519338610235565b503d610337565b87513d86823e3d90fd5b8580fd5b5050346101a35760203660031901126101a357602090610384610897565b9051908152f35b5050346101a35760203660031901126101a35760209061038461082c565b508290346101a35760203660031901126101a35780359069ffffffffffffffffffff8216820361017657600154835485516396834ad360e01b815292830152608090829060249082906001600160a01b03165afa92831561046e579261044a575b508151606092830151935169ffffffffffffffffffff9290921680835260079190910b60208301526040820184905291810192909252608082015260a090f35b6101379192506104679060803d81116101645761015581836106e3565b919061040a565b8451903d90823e3d90fd5b6106bb565b5091346105c257806003193601126105c25781519080600254600181811c9181811680156105b8575b60209889851082146105a557509183918995938895865290816000146105845750600114610528575b50506104e292509593929503826106e3565b82519382859384528251928382860152825b84811061051257505050828201840152601f01601f19168101030190f35b81810183015188820188015287955082016104f4565b600286527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9492508591905b81831061056c5750889450508201016104e2386104d0565b85548884018501529485019487945091830191610554565b9150506104e294925060ff191682840152151560051b8201018692386104d0565b634e487b7160e01b875260229052602486fd5b92607f16926104a7565b80fd5b5050346101a357816003193601126101a3576020905160018152f35b5050346101a357816003193601126101a35760209061038461082c565b5082346105c257806003193601126105c25760018060a01b03600154166080825460248651809481936396834ad360e01b8352888301525afa908115610697579084918391610679575b500151810b8103918280830b036106665760208360ff865191168152f35b634e487b7160e01b825260119052602490fd5b610691915060803d81116101645761015581836106e3565b85610648565b84513d84823e3d90fd5b8490346101a357816003193601126101a357602091548152f35b346106de5760003660031901126106de5760206106d6610897565b604051908152f35b600080fd5b90601f8019910116810190811067ffffffffffffffff82111761070557604052565b634e487b7160e01b600052604160045260246000fd5b9160208181850182865252604084019360408360051b82010194846000925b85841061074b575050505050505090565b90919293949596603f198282030184528735601e19843603018112156106de57830186810191903567ffffffffffffffff81116106de5780360383136106de5787828280600196849695859652848401376000828201840152601f01601f191601019901979695919091019301919061073a565b908160809103126106de576040519067ffffffffffffffff60808301818111848210176107055760405281518060070b81036106de578352602082015190811681036106de5760208301526040810151908160030b82036106de5760609160408401520151606082015290565b60018060a01b036001541660806000546024604051809481936396834ad360e01b835260048301525afa90811561088b5760009161086d575b505160070b90565b610885915060803d81116101645761015581836106e3565b38610865565b6040513d6000823e3d90fd5b60018060a01b036001541660806000546024604051809481936396834ad360e01b835260048301525afa801561088b576060916000916108d8575b50015190565b6108f0915060803d81116101645761015581836106e3565b386108d256fea26469706673582212209be03b50d56601d02e901e65e0da3d56287fa0d0ab5679ab7b4a7bde44f92e8f64736f6c63430008130033000000000000000000000000e9d69cdd6fe41e7b621b4a688c5d1a68cb5c8adcca3ba9a619a4b3755c10ac7d5e760275aa95e9823d38a84fedd416856cdba37c0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000001950797468205072696365204665656420666f7220735553446500000000000000
Deployed Bytecode
0x6080604081815260048036101561001557600080fd5b600092833560e01c90816331189334146106a157508063313ce567146105fe57806350d25bcd146105e157806354fd4d50146105c5578063668a0f02146104795780637284e4161461047e5780638205bf6a146104795780639a6fc8f5146103a9578063b5ab58dc1461038b578063b633620c14610366578063bc36c0a9146101a7578063f98d06f01461017a5763feaf968c146100b257600080fd5b34610176578260031936011261017657600154835483516396834ad360e01b815292830152608090829060249082906001600160a01b03165afa92831561016b579261013b575b506060828101519251915169ffffffffffffffffffff841680825260079390930b60208201526040810184905290810192909252608082015260a090f35b0390f35b61015d91925060803d8111610164575b61015581836106e3565b8101906107bf565b90386100f9565b503d61014b565b8251903d90823e3d90fd5b8280fd5b5050346101a357816003193601126101a35760015490516001600160a01b039091168152602090f35b5080fd5b5090602090816003193601126103255767ffffffffffffffff83358181116103625736602382011215610362578581860135918383116101a3576024810190602436918560051b0101116101a357600154855163d47eed4560e01b815293916001600160a01b039091169087858061022286858e840161071b565b0381855afa948515610358578495610329575b50813b15610325578651631df3cbc560e31b81529485938492839161025c918d840161071b565b03925af1801561031b576102f5575b508480808047335af1903d156102ef573d9081116102dc57825190610299601f8201601f19168601836106e3565b815285843d92013e5b156102ab578380f35b5162461bcd60e51b815291820152600d60248201526c1499599d5b990819985a5b1959609a1b604482015260649150fd5b634e487b7160e01b865260418552602486fd5b506102a2565b818196929611610308578252933861026b565b634e487b7160e01b825260418552602482fd5b83513d88823e3d90fd5b8380fd5b9094508781813d8311610351575b61034181836106e3565b8101031261032557519338610235565b503d610337565b87513d86823e3d90fd5b8580fd5b5050346101a35760203660031901126101a357602090610384610897565b9051908152f35b5050346101a35760203660031901126101a35760209061038461082c565b508290346101a35760203660031901126101a35780359069ffffffffffffffffffff8216820361017657600154835485516396834ad360e01b815292830152608090829060249082906001600160a01b03165afa92831561046e579261044a575b508151606092830151935169ffffffffffffffffffff9290921680835260079190910b60208301526040820184905291810192909252608082015260a090f35b6101379192506104679060803d81116101645761015581836106e3565b919061040a565b8451903d90823e3d90fd5b6106bb565b5091346105c257806003193601126105c25781519080600254600181811c9181811680156105b8575b60209889851082146105a557509183918995938895865290816000146105845750600114610528575b50506104e292509593929503826106e3565b82519382859384528251928382860152825b84811061051257505050828201840152601f01601f19168101030190f35b81810183015188820188015287955082016104f4565b600286527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9492508591905b81831061056c5750889450508201016104e2386104d0565b85548884018501529485019487945091830191610554565b9150506104e294925060ff191682840152151560051b8201018692386104d0565b634e487b7160e01b875260229052602486fd5b92607f16926104a7565b80fd5b5050346101a357816003193601126101a3576020905160018152f35b5050346101a357816003193601126101a35760209061038461082c565b5082346105c257806003193601126105c25760018060a01b03600154166080825460248651809481936396834ad360e01b8352888301525afa908115610697579084918391610679575b500151810b8103918280830b036106665760208360ff865191168152f35b634e487b7160e01b825260119052602490fd5b610691915060803d81116101645761015581836106e3565b85610648565b84513d84823e3d90fd5b8490346101a357816003193601126101a357602091548152f35b346106de5760003660031901126106de5760206106d6610897565b604051908152f35b600080fd5b90601f8019910116810190811067ffffffffffffffff82111761070557604052565b634e487b7160e01b600052604160045260246000fd5b9160208181850182865252604084019360408360051b82010194846000925b85841061074b575050505050505090565b90919293949596603f198282030184528735601e19843603018112156106de57830186810191903567ffffffffffffffff81116106de5780360383136106de5787828280600196849695859652848401376000828201840152601f01601f191601019901979695919091019301919061073a565b908160809103126106de576040519067ffffffffffffffff60808301818111848210176107055760405281518060070b81036106de578352602082015190811681036106de5760208301526040810151908160030b82036106de5760609160408401520151606082015290565b60018060a01b036001541660806000546024604051809481936396834ad360e01b835260048301525afa90811561088b5760009161086d575b505160070b90565b610885915060803d81116101645761015581836106e3565b38610865565b6040513d6000823e3d90fd5b60018060a01b036001541660806000546024604051809481936396834ad360e01b835260048301525afa801561088b576060916000916108d8575b50015190565b6108f0915060803d81116101645761015581836106e3565b386108d256fea26469706673582212209be03b50d56601d02e901e65e0da3d56287fa0d0ab5679ab7b4a7bde44f92e8f64736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000e9d69cdd6fe41e7b621b4a688c5d1a68cb5c8adcca3ba9a619a4b3755c10ac7d5e760275aa95e9823d38a84fedd416856cdba37c0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000001950797468205072696365204665656420666f7220735553446500000000000000
-----Decoded View---------------
Arg [0] : _pyth (address): 0xe9d69CdD6Fe41e7B621B4A688C5D1a68cB5c8ADc
Arg [1] : _priceId (bytes32): 0xca3ba9a619a4b3755c10ac7d5e760275aa95e9823d38a84fedd416856cdba37c
Arg [2] : _description (string): Pyth Price Feed for sUSDe
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000e9d69cdd6fe41e7b621b4a688c5d1a68cb5c8adc
Arg [1] : ca3ba9a619a4b3755c10ac7d5e760275aa95e9823d38a84fedd416856cdba37c
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000019
Arg [4] : 50797468205072696365204665656420666f7220735553446500000000000000
Loading...
Loading
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in HYPE
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
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.