Source Code
Overview
HYPE Balance
HYPE Value
$0.00Latest 7 from a total of 7 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Update Price And... | 25582146 | 7 hrs ago | IN | 0.0002 HYPE | 0.00005482 | ||||
| Update Price And... | 25546882 | 16 hrs ago | IN | 0.0002 HYPE | 0.00005485 | ||||
| Update Price And... | 25535561 | 20 hrs ago | IN | 0.00225617 HYPE | 0.00054763 | ||||
| Update Price And... | 25533907 | 20 hrs ago | IN | 0.00108709 HYPE | 0.00030381 | ||||
| Update Price And... | 25287094 | 3 days ago | IN | 0.0002 HYPE | 0.00003539 | ||||
| Update Price And... | 25242002 | 4 days ago | IN | 0.00022152 HYPE | 0.00003539 | ||||
| Initialize | 25172353 | 4 days ago | IN | 0 HYPE | 0.0001396 |
Latest 12 internal transactions
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 25582146 | 7 hrs ago | 0.00019999 HYPE | ||||
| 25582146 | 7 hrs ago | 11 wei | ||||
| 25546882 | 16 hrs ago | 0.00019999 HYPE | ||||
| 25546882 | 16 hrs ago | 11 wei | ||||
| 25535561 | 20 hrs ago | 0.00225617 HYPE | ||||
| 25535561 | 20 hrs ago | 11 wei | ||||
| 25533907 | 20 hrs ago | 0.00108709 HYPE | ||||
| 25533907 | 20 hrs ago | 11 wei | ||||
| 25287094 | 3 days ago | 0.00019999 HYPE | ||||
| 25287094 | 3 days ago | 3 wei | ||||
| 25242002 | 4 days ago | 0.00022152 HYPE | ||||
| 25242002 | 4 days ago | 3 wei |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
PythOracle
Compiler Version
v0.8.28+commit.7893614a
Optimization Enabled:
Yes with 10000 runs
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "../interfaces/IMarket.sol";
import "../interfaces/IRelayerManager.sol";
import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
/*───────────────────────────────────────────────────────────────────────
│ Pyth structs │
└───────────────────────────────────────────────────────────────────────*/
library PythStructs {
struct Price {
int64 price; // raw price
uint64 conf; // confidence interval
int32 expo; // exponent
uint64 publishTime; // unix timestamp (seconds)
}
struct PriceFeed {
bytes32 id;
Price price; // latest price
Price emaPrice; // EMA price
}
}
/*───────────────────────────────────────────────────────────────────────
│ Interfaces │
└───────────────────────────────────────────────────────────────────────*/
interface IPyth {
struct Price {
int64 price; // raw price with shared exponent
uint64 conf; // confidence interval (same exponent)
int32 expo; // shared exponent
uint256 publishTime; // unix timestamp (seconds)
}
function getUpdateFee(bytes[] calldata updateData) external view returns (uint256);
function updatePriceFeeds(bytes[] calldata updateData) external payable;
function getPriceUnsafe(bytes32 id) external view returns (Price memory);
function getPriceNoOlderThan(bytes32 id, uint256 age) external view returns (Price memory);
function parsePriceFeedUpdates(
bytes[] calldata updateData,
bytes32[] calldata priceIds,
uint64 minPublishTime,
uint64 maxPublishTime
) external payable returns (PythStructs.PriceFeed[] memory priceFeeds);
}
/*───────────────────────────────────────────────────────────────────────
│ PythOracle Contract │
└───────────────────────────────────────────────────────────────────────*/
contract PythOracle is Initializable {
IPyth public PYTH;
address public relayerManager;
error ZeroPythAddress();
error RelayerManagerZero();
/// reject if |price| / conf ≤ MIN_CONFIDENCE_RATIO (basis points ⇒ 100 == 1%)
uint256 public constant MIN_CONFIDENCE_RATIO = 100;
/// the most negative exponent we accept (-18 ≙ 18 ERC-20 decimals)
int32 public constant MIN_ACCEPTABLE_EXPO = -18;
modifier onlyRelayer() {
require(
IRelayerManager(relayerManager).isRelayer(msg.sender),
"Only Relayer Can Call"
);
_;
}
function initialize(address _pythAddress, address _relayerManager) external initializer {
if (_pythAddress == address(0)) revert ZeroPythAddress();
if (_relayerManager == address(0)) revert RelayerManagerZero();
PYTH = IPyth(_pythAddress);
relayerManager = _relayerManager;
}
/**
* @notice Push a Pyth update, evaluate the condition, and settle a market.
* @param market The prediction-market contract being settled.
* @param updateData Raw Pyth price-feed update packets.
*/
function updatePriceAndFulfill(
address market,
bytes[] calldata updateData
) external onlyRelayer payable {
require(market != address(0), "Oracle: zero market");
require(updateData.length > 0, "Oracle: empty update");
/*── 1. Pay Pyth fee and publish the update ───────────────────*/
uint256 fee = PYTH.getUpdateFee(updateData);
require(msg.value >= fee, "Oracle: fee too low");
/*── 2. Pull market parameters ────────────────────────────────*/
IMarket.TriggerCondition memory tc = IMarket(market).getMarketParams();
bytes32[] memory priceIds = new bytes32[](1);
priceIds[0] = tc.assetId;
/*── 3. Fetch and validate a fresh price ──────────────────────*/
PythStructs.PriceFeed[] memory feeds =
PYTH.parsePriceFeedUpdates{ value: fee }(
updateData,
priceIds,
0,
uint64(block.timestamp)
);
// 5) Use the single feed we requested
PythStructs.PriceFeed memory feed = feeds[0];
_validatePriceStruct(feed.price.price, feed.price.conf, feed.price.expo);
int256 triggerPx = int256(uint256(tc.triggerPrice));
int256 oraclePx = int256(feed.price.price);
uint256 winningToken;
if (tc.op == IMarket.Operator.LT) {
winningToken = (oraclePx <= triggerPx) ? 1 : 2;
} else { // GT
winningToken = (oraclePx >= triggerPx) ? 1 : 2;
}
/*── 5. Resolve the market ───────────────────────────────────*/
IMarket(market).resolveMarketOracle(winningToken);
/*── 6. Refund any excess ETH ────────────────────────────────*/
uint256 refund = msg.value - fee;
if (refund != 0) payable(msg.sender).transfer(refund);
}
/*───────────────────────────────────────────────────────────────────
│ Internal helpers │
───────────────────────────────────────────────────────────────────*/
/// Implements Pyth best-practice checks.
function _validatePriceStruct(int64 _price, uint64 _conf, int32 _expo) internal pure {
// 1) non-positive price
require(_price > 0, "Oracle: invalid price");
// 2) exponent too negative
require(_expo >= MIN_ACCEPTABLE_EXPO, "Oracle: invalid expo");
// 3) confidence too wide: require |price|/conf > MIN_CONFIDENCE_RATIO (bp)
require(
_conf > 0 &&
uint256(int256(_price)) * 1e4 / uint256(_conf) > MIN_CONFIDENCE_RATIO,
"Oracle: untrusted price"
);
}
uint256[49] private __gap;
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.3.0) (proxy/utils/Initializable.sol)
pragma solidity ^0.8.20;
/**
* @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed
* behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an
* external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer
* function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.
*
* The initialization functions use a version number. Once a version number is used, it is consumed and cannot be
* reused. This mechanism prevents re-execution of each "step" but allows the creation of new initialization steps in
* case an upgrade adds a module that needs to be initialized.
*
* For example:
*
* [.hljs-theme-light.nopadding]
* ```solidity
* contract MyToken is ERC20Upgradeable {
* function initialize() initializer public {
* __ERC20_init("MyToken", "MTK");
* }
* }
*
* contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {
* function initializeV2() reinitializer(2) public {
* __ERC20Permit_init("MyToken");
* }
* }
* ```
*
* TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as
* possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.
*
* CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure
* that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.
*
* [CAUTION]
* ====
* Avoid leaving a contract uninitialized.
*
* An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation
* contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke
* the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:
*
* [.hljs-theme-light.nopadding]
* ```
* /// @custom:oz-upgrades-unsafe-allow constructor
* constructor() {
* _disableInitializers();
* }
* ```
* ====
*/
abstract contract Initializable {
/**
* @dev Storage of the initializable contract.
*
* It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions
* when using with upgradeable contracts.
*
* @custom:storage-location erc7201:openzeppelin.storage.Initializable
*/
struct InitializableStorage {
/**
* @dev Indicates that the contract has been initialized.
*/
uint64 _initialized;
/**
* @dev Indicates that the contract is in the process of being initialized.
*/
bool _initializing;
}
// keccak256(abi.encode(uint256(keccak256("openzeppelin.storage.Initializable")) - 1)) & ~bytes32(uint256(0xff))
bytes32 private constant INITIALIZABLE_STORAGE = 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00;
/**
* @dev The contract is already initialized.
*/
error InvalidInitialization();
/**
* @dev The contract is not initializing.
*/
error NotInitializing();
/**
* @dev Triggered when the contract has been initialized or reinitialized.
*/
event Initialized(uint64 version);
/**
* @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,
* `onlyInitializing` functions can be used to initialize parent contracts.
*
* Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any
* number of times. This behavior in the constructor can be useful during testing and is not expected to be used in
* production.
*
* Emits an {Initialized} event.
*/
modifier initializer() {
// solhint-disable-next-line var-name-mixedcase
InitializableStorage storage $ = _getInitializableStorage();
// Cache values to avoid duplicated sloads
bool isTopLevelCall = !$._initializing;
uint64 initialized = $._initialized;
// Allowed calls:
// - initialSetup: the contract is not in the initializing state and no previous version was
// initialized
// - construction: the contract is initialized at version 1 (no reinitialization) and the
// current contract is just being deployed
bool initialSetup = initialized == 0 && isTopLevelCall;
bool construction = initialized == 1 && address(this).code.length == 0;
if (!initialSetup && !construction) {
revert InvalidInitialization();
}
$._initialized = 1;
if (isTopLevelCall) {
$._initializing = true;
}
_;
if (isTopLevelCall) {
$._initializing = false;
emit Initialized(1);
}
}
/**
* @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the
* contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be
* used to initialize parent contracts.
*
* A reinitializer may be used after the original initialization step. This is essential to configure modules that
* are added through upgrades and that require initialization.
*
* When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`
* cannot be nested. If one is invoked in the context of another, execution will revert.
*
* Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in
* a contract, executing them in the right order is up to the developer or operator.
*
* WARNING: Setting the version to 2**64 - 1 will prevent any future reinitialization.
*
* Emits an {Initialized} event.
*/
modifier reinitializer(uint64 version) {
// solhint-disable-next-line var-name-mixedcase
InitializableStorage storage $ = _getInitializableStorage();
if ($._initializing || $._initialized >= version) {
revert InvalidInitialization();
}
$._initialized = version;
$._initializing = true;
_;
$._initializing = false;
emit Initialized(version);
}
/**
* @dev Modifier to protect an initialization function so that it can only be invoked by functions with the
* {initializer} and {reinitializer} modifiers, directly or indirectly.
*/
modifier onlyInitializing() {
_checkInitializing();
_;
}
/**
* @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}.
*/
function _checkInitializing() internal view virtual {
if (!_isInitializing()) {
revert NotInitializing();
}
}
/**
* @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.
* Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized
* to any version. It is recommended to use this to lock implementation contracts that are designed to be called
* through proxies.
*
* Emits an {Initialized} event the first time it is successfully executed.
*/
function _disableInitializers() internal virtual {
// solhint-disable-next-line var-name-mixedcase
InitializableStorage storage $ = _getInitializableStorage();
if ($._initializing) {
revert InvalidInitialization();
}
if ($._initialized != type(uint64).max) {
$._initialized = type(uint64).max;
emit Initialized(type(uint64).max);
}
}
/**
* @dev Returns the highest version that has been initialized. See {reinitializer}.
*/
function _getInitializedVersion() internal view returns (uint64) {
return _getInitializableStorage()._initialized;
}
/**
* @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.
*/
function _isInitializing() internal view returns (bool) {
return _getInitializableStorage()._initializing;
}
/**
* @dev Pointer to storage slot. Allows integrators to override it with a custom storage location.
*
* NOTE: Consider following the ERC-7201 formula to derive storage locations.
*/
function _initializableStorageSlot() internal pure virtual returns (bytes32) {
return INITIALIZABLE_STORAGE;
}
/**
* @dev Returns a pointer to the storage namespace.
*/
// solhint-disable-next-line var-name-mixedcase
function _getInitializableStorage() private pure returns (InitializableStorage storage $) {
bytes32 slot = _initializableStorageSlot();
assembly {
$.slot := slot
}
}
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
interface IMarket {
enum Operator { GT, LT }
struct TriggerCondition {
uint256 triggerPrice;
Operator op;
bytes32 assetId;
}
function getMarketParams()
external
view
returns (IMarket.TriggerCondition memory);
function resolveMarketOracle(uint256 winningToken) external;
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
interface IRelayerManager {
function isRelayer(address relayer) external view returns (bool);
}{
"optimizer": {
"enabled": true,
"runs": 10000
},
"viaIR": true,
"evmVersion": "paris",
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"metadata": {
"useLiteralContent": true
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"RelayerManagerZero","type":"error"},{"inputs":[],"name":"ZeroPythAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"inputs":[],"name":"MIN_ACCEPTABLE_EXPO","outputs":[{"internalType":"int32","name":"","type":"int32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_CONFIDENCE_RATIO","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PYTH","outputs":[{"internalType":"contract IPyth","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pythAddress","type":"address"},{"internalType":"address","name":"_relayerManager","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"relayerManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"market","type":"address"},{"internalType":"bytes[]","name":"updateData","type":"bytes[]"}],"name":"updatePriceAndFulfill","outputs":[],"stateMutability":"payable","type":"function"}]Contract Creation Code
60808060405234601557611035908161001b8239f35b600080fdfe608080604052600436101561001357600080fd5b600090813560e01c9081622e2cb714610d56575080632cf5067d14610d3a578063485cc95514610a6257806367e406d514610a2f5780638dff8509146100985763c71d36b31461006257600080fd5b34610095578060031936011261009557602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b80fd5b506040600319360112610095576100ad610d94565b6024359067ffffffffffffffff821161048557366023830112156104855781600401359067ffffffffffffffff8211610a2b576024830192602436918460051b010111610a2b576024602073ffffffffffffffffffffffffffffffffffffffff60015416604051928380927f541d55480000000000000000000000000000000000000000000000000000000082523360048301525afa908115610a205785916109e1575b50156109835773ffffffffffffffffffffffffffffffffffffffff1680156109255781156108c75773ffffffffffffffffffffffffffffffffffffffff845416604051927fd47eed4500000000000000000000000000000000000000000000000000000000845260206004850152602084806101d160248201858a610e48565b0381855afa9384156108bc578694610884575b5083341061082657604051917f90c9427c000000000000000000000000000000000000000000000000000000008352606083600481875afa92831561081b5787936107b5575b509490869060409686885161023f8a82610e07565b6001815260208101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08b013683378a88015161027b82610f3c565b5260206102ba8c519889977f4716e9c5000000000000000000000000000000000000000000000000000000008952608060048a01526084890191610e48565b916003198784030160248801525191828152019190865b818110610796575050509083809286604483015267ffffffffffffffff4216606483015203925af190811561078c578691610675575b50610313602091610f3c565b5101908151805160070b908667ffffffffffffffff60208301511691015160030b88831315610618577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee136105bb5780159182159283610536575b505050156104d9576020815192515160070b91015160028110156104ac57869392919060010361049257136104895760ff60015b16905b803b156104855760248392865194859384927fd6edb72b00000000000000000000000000000000000000000000000000000000845260048401525af1801561047857610464575b5080340390348211610437579083913414908115610408578280f35b828092918192829061042e575b3390f115610424578181808280f35b51903d90823e3d90fd5b506108fc610415565b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b8361047191949294610e07565b91386103ec565b50505051903d90823e3d90fd5b8280fd5b60ff60026103a2565b126104a35760ff60015b16906103a5565b60ff600261049c565b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b606485517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4f7261636c653a20756e747275737465642070726963650000000000000000006044820152fd5b90919250612710820291808304612710149015171561058e576105615790606491041138808061036e565b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b606487517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4f7261636c653a20696e76616c6964206578706f0000000000000000000000006044820152fd5b606488517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f7261636c653a20696e76616c696420707269636500000000000000000000006044820152fd5b90503d8087833e6106868183610e07565b8101906020818303126107845780519067ffffffffffffffff8211610788570181601f820112156107845780519067ffffffffffffffff82116107575760208260051b01926106d788519485610e07565b828452602061012081860194028301019181831161075357602001925b8284106107075750505050610313610307565b61012084830312610753576020610120918a5161072381610dbc565b8651815261073385848901610f8d565b838201526107448560a08901610f8d565b8c8201528152019301926106f4565b8980fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b8680fd5b8780fd5b85513d88823e3d90fd5b825184528d97508896508b9450602093840193909201916001016102d1565b9092506060813d606011610813575b816107d160609383610e07565b8101031261078457604051906107e682610dbc565b80518252602081015190600282101561080f57604091602084015201516040820152913861022a565b8880fd5b3d91506107c4565b6040513d89823e3d90fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f7261636c653a2066656520746f6f206c6f77000000000000000000000000006044820152fd5b9093506020813d6020116108b4575b816108a060209383610e07565b810103126108b0575192386101e4565b8580fd5b3d9150610893565b6040513d88823e3d90fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4f7261636c653a20656d707479207570646174650000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f7261636c653a207a65726f206d61726b6574000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f6e6c792052656c617965722043616e2043616c6c00000000000000000000006044820152fd5b90506020813d602011610a18575b816109fc60209383610e07565b81010312610a1457518015158103610a145738610151565b8480fd5b3d91506109ef565b6040513d87823e3d90fd5b8380fd5b503461009557806003193601126100955773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461009557604060031936011261009557610a7c610d94565b60243573ffffffffffffffffffffffffffffffffffffffff8116809103610485577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00549160ff8360401c16159267ffffffffffffffff811680159081610d32575b6001149081610d28575b159081610d1f575b50610cf75790818460017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610ca2575b50168015610c7a578115610c52577fffffffffffffffffffffffff00000000000000000000000000000000000000008454161783557fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155610bbe5780f35b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b6004847f9f09e165000000000000000000000000000000000000000000000000000000008152fd5b6004847f9704e71e000000000000000000000000000000000000000000000000000000008152fd5b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005538610b59565b6004857ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b90501538610aef565b303b159150610ae7565b859150610add565b5034610095578060031936011261009557602060405160648152f35b905034610d905781600319360112610d9057807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee60209252f35b5080fd5b6004359073ffffffffffffffffffffffffffffffffffffffff82168203610db757565b600080fd5b6060810190811067ffffffffffffffff821117610dd857604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610dd857604052565b90602083828152019060208160051b85010193836000915b838310610e705750505050505090565b9091929394957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820301865286357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811215610db7578301906020823592019167ffffffffffffffff8111610db7578036038313610db7576020827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f848060019886989787985286860137600084820186015201160101980196019493019190610e60565b805115610f495760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b519067ffffffffffffffff82168203610db757565b9190826080910312610db7576040516080810181811067ffffffffffffffff821117610dd857604052809280518060070b8103610db7578252610fd260208201610f78565b60208301526040810151908160030b8203610db7576060610ffa918193604086015201610f78565b91015256fea2646970667358221220f70cd27a20bb7a26b4aa3ecc9e653675d922df381ed09c43392d0f83b20be89e64736f6c634300081c0033
Deployed Bytecode
0x608080604052600436101561001357600080fd5b600090813560e01c9081622e2cb714610d56575080632cf5067d14610d3a578063485cc95514610a6257806367e406d514610a2f5780638dff8509146100985763c71d36b31461006257600080fd5b34610095578060031936011261009557602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b80fd5b506040600319360112610095576100ad610d94565b6024359067ffffffffffffffff821161048557366023830112156104855781600401359067ffffffffffffffff8211610a2b576024830192602436918460051b010111610a2b576024602073ffffffffffffffffffffffffffffffffffffffff60015416604051928380927f541d55480000000000000000000000000000000000000000000000000000000082523360048301525afa908115610a205785916109e1575b50156109835773ffffffffffffffffffffffffffffffffffffffff1680156109255781156108c75773ffffffffffffffffffffffffffffffffffffffff845416604051927fd47eed4500000000000000000000000000000000000000000000000000000000845260206004850152602084806101d160248201858a610e48565b0381855afa9384156108bc578694610884575b5083341061082657604051917f90c9427c000000000000000000000000000000000000000000000000000000008352606083600481875afa92831561081b5787936107b5575b509490869060409686885161023f8a82610e07565b6001815260208101907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08b013683378a88015161027b82610f3c565b5260206102ba8c519889977f4716e9c5000000000000000000000000000000000000000000000000000000008952608060048a01526084890191610e48565b916003198784030160248801525191828152019190865b818110610796575050509083809286604483015267ffffffffffffffff4216606483015203925af190811561078c578691610675575b50610313602091610f3c565b5101908151805160070b908667ffffffffffffffff60208301511691015160030b88831315610618577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee136105bb5780159182159283610536575b505050156104d9576020815192515160070b91015160028110156104ac57869392919060010361049257136104895760ff60015b16905b803b156104855760248392865194859384927fd6edb72b00000000000000000000000000000000000000000000000000000000845260048401525af1801561047857610464575b5080340390348211610437579083913414908115610408578280f35b828092918192829061042e575b3390f115610424578181808280f35b51903d90823e3d90fd5b506108fc610415565b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b8361047191949294610e07565b91386103ec565b50505051903d90823e3d90fd5b8280fd5b60ff60026103a2565b126104a35760ff60015b16906103a5565b60ff600261049c565b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b606485517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f4f7261636c653a20756e747275737465642070726963650000000000000000006044820152fd5b90919250612710820291808304612710149015171561058e576105615790606491041138808061036e565b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b6024897f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b606487517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4f7261636c653a20696e76616c6964206578706f0000000000000000000000006044820152fd5b606488517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f7261636c653a20696e76616c696420707269636500000000000000000000006044820152fd5b90503d8087833e6106868183610e07565b8101906020818303126107845780519067ffffffffffffffff8211610788570181601f820112156107845780519067ffffffffffffffff82116107575760208260051b01926106d788519485610e07565b828452602061012081860194028301019181831161075357602001925b8284106107075750505050610313610307565b61012084830312610753576020610120918a5161072381610dbc565b8651815261073385848901610f8d565b838201526107448560a08901610f8d565b8c8201528152019301926106f4565b8980fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b8680fd5b8780fd5b85513d88823e3d90fd5b825184528d97508896508b9450602093840193909201916001016102d1565b9092506060813d606011610813575b816107d160609383610e07565b8101031261078457604051906107e682610dbc565b80518252602081015190600282101561080f57604091602084015201516040820152913861022a565b8880fd5b3d91506107c4565b6040513d89823e3d90fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f7261636c653a2066656520746f6f206c6f77000000000000000000000000006044820152fd5b9093506020813d6020116108b4575b816108a060209383610e07565b810103126108b0575192386101e4565b8580fd5b3d9150610893565b6040513d88823e3d90fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f4f7261636c653a20656d707479207570646174650000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4f7261636c653a207a65726f206d61726b6574000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4f6e6c792052656c617965722043616e2043616c6c00000000000000000000006044820152fd5b90506020813d602011610a18575b816109fc60209383610e07565b81010312610a1457518015158103610a145738610151565b8480fd5b3d91506109ef565b6040513d87823e3d90fd5b8380fd5b503461009557806003193601126100955773ffffffffffffffffffffffffffffffffffffffff6020915416604051908152f35b503461009557604060031936011261009557610a7c610d94565b60243573ffffffffffffffffffffffffffffffffffffffff8116809103610485577ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00549160ff8360401c16159267ffffffffffffffff811680159081610d32575b6001149081610d28575b159081610d1f575b50610cf75790818460017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610ca2575b50168015610c7a578115610c52577fffffffffffffffffffffffff00000000000000000000000000000000000000008454161783557fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155610bbe5780f35b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a180f35b6004847f9f09e165000000000000000000000000000000000000000000000000000000008152fd5b6004847f9704e71e000000000000000000000000000000000000000000000000000000008152fd5b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005538610b59565b6004857ff92ee8a9000000000000000000000000000000000000000000000000000000008152fd5b90501538610aef565b303b159150610ae7565b859150610add565b5034610095578060031936011261009557602060405160648152f35b905034610d905781600319360112610d9057807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffee60209252f35b5080fd5b6004359073ffffffffffffffffffffffffffffffffffffffff82168203610db757565b600080fd5b6060810190811067ffffffffffffffff821117610dd857604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610dd857604052565b90602083828152019060208160051b85010193836000915b838310610e705750505050505090565b9091929394957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820301865286357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811215610db7578301906020823592019167ffffffffffffffff8111610db7578036038313610db7576020827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f848060019886989787985286860137600084820186015201160101980196019493019190610e60565b805115610f495760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b519067ffffffffffffffff82168203610db757565b9190826080910312610db7576040516080810181811067ffffffffffffffff821117610dd857604052809280518060070b8103610db7578252610fd260208201610f78565b60208301526040810151908160030b8203610db7576060610ffa918193604086015201610f78565b91015256fea2646970667358221220f70cd27a20bb7a26b4aa3ecc9e653675d922df381ed09c43392d0f83b20be89e64736f6c634300081c0033
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
[ Download: CSV Export ]
[ 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.