Source Code
Overview
HYPE Balance
HYPE Value
$0.00| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers.
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | ||||
|---|---|---|---|---|---|---|---|
| 25642690 | 29 mins ago | 0 HYPE | |||||
| 25642690 | 29 mins ago | 0 HYPE | |||||
| 25642690 | 29 mins ago | 0 HYPE | |||||
| 25642690 | 29 mins ago | 0 HYPE | |||||
| 25642690 | 29 mins ago | 0 HYPE | |||||
| 25642690 | 29 mins ago | 0 HYPE | |||||
| 25622371 | 6 hrs ago | 0 HYPE | |||||
| 25622371 | 6 hrs ago | 0 HYPE | |||||
| 25622371 | 6 hrs ago | 0 HYPE | |||||
| 25622371 | 6 hrs ago | 0 HYPE | |||||
| 25622371 | 6 hrs ago | 0 HYPE | |||||
| 25622371 | 6 hrs ago | 0 HYPE | |||||
| 25610608 | 9 hrs ago | 0 HYPE | |||||
| 25610608 | 9 hrs ago | 0 HYPE | |||||
| 25610608 | 9 hrs ago | 0 HYPE | |||||
| 25610608 | 9 hrs ago | 0 HYPE | |||||
| 25610608 | 9 hrs ago | 0 HYPE | |||||
| 25610608 | 9 hrs ago | 0 HYPE | |||||
| 25579442 | 17 hrs ago | 0 HYPE | |||||
| 25579442 | 17 hrs ago | 0 HYPE | |||||
| 25579442 | 17 hrs ago | 0 HYPE | |||||
| 25579442 | 17 hrs ago | 0 HYPE | |||||
| 25579442 | 17 hrs ago | 0 HYPE | |||||
| 25579442 | 17 hrs ago | 0 HYPE | |||||
| 25573102 | 19 hrs ago | 0 HYPE |
Cross-Chain Transactions
Loading...
Loading
Contract Name:
ChainlinkMiddleware
Compiler Version
v0.8.27+commit.40a35a09
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity 0.8.27;
import {AggregatorV3Interface} from "../../../interfaces/AggregatorV3Interface.sol";
/// @title ChainlinkMiddleware Contract
/// @author Prime
contract ChainlinkMiddleware is AggregatorV3Interface {
/// @notice Token price feed
AggregatorV3Interface public chainlinkFeed;
uint256 public immutable heartbeat;
/// @notice How late since heartbeat before a price reverts
uint256 public constant HEART_BEAT_TOLERANCE = 300;
error AddressZero();
error RoundNotComplete();
error StalePrice();
error InvalidPrice();
/**
* @notice constructor
* @param _chainlinkFeed Chainlink price feed for token.
* @param _heartbeat heartbeat for feed
*/
constructor(address _chainlinkFeed, uint256 _heartbeat) {
require(_chainlinkFeed != address(0), AddressZero());
chainlinkFeed = AggregatorV3Interface(_chainlinkFeed);
heartbeat = _heartbeat;
}
/**
* @notice Returns USD price in quote token.
* @dev supports 18 decimal token
* @return price of token in decimal 8
*/
function latestAnswer() external view virtual returns (uint256 price) {
(, int256 answer, , , ) = chainlinkFeed.latestRoundData();
return uint256(answer) / 10 ** 10; // Chainlink price is in 8 decimals, so we divide by 10^10 to get the price in 8 decimals
}
function validate(int256 _answer, uint256 _updatedAt) public view {
if (_updatedAt == 0) revert RoundNotComplete();
if (heartbeat > 0 && block.timestamp - _updatedAt >= heartbeat + HEART_BEAT_TOLERANCE) revert StalePrice();
if (_answer <= 0) revert InvalidPrice();
}
/**
* @notice Returns version of chainlink price feed for token
*/
function version() external view returns (uint256) {
return chainlinkFeed.version();
}
/**
* @notice Returns decimals of chainlink price feed for token
*/
function decimals() external pure returns (uint8) {
return 8;
}
/**
* @notice Returns description of chainlink price feed for token
*/
function description() external view returns (string memory) {
return chainlinkFeed.description();
}
/**
* @notice Get data about a round
* @param _roundId the requested round ID
* @return roundId is the round ID from the aggregator for which the data was retrieved.
* @return answer is the answer for the given round
* @return startedAt is the timestamp when the round was started.
* @return updatedAt is the timestamp when the round last was updated.
* @return answeredInRound is the round ID of the round in which the answer was computed.
*/
function getRoundData(
uint80 _roundId
)
external
view
returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound)
{
(roundId, answer, startedAt, updatedAt, answeredInRound) = chainlinkFeed.getRoundData(_roundId);
answer /= 10 ** 10;
}
/**
* @notice Returns data of latest round
* @return roundId is the round ID from the aggregator for which the data was retrieved.
* @return answer is the answer for the given round
* @return startedAt is the timestamp when the round was started.
* @return updatedAt is the timestamp when the round last was updated.
* @return answeredInRound is the round ID of the round in which the answer was computed.
*/
function latestRoundData()
public
view
returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound)
{
(roundId, answer, startedAt, updatedAt, answeredInRound) = chainlinkFeed.latestRoundData();
answer /= 10 ** 10;
}
}// SPDX-License-Identifier: MIT
pragma solidity 0.8.27;
interface AggregatorV3Interface {
function decimals() external view returns (uint8);
function description() external view returns (string memory);
function version() external view returns (uint256);
// getRoundData and latestRoundData should both raise "No data present"
// if they do not have data to report, instead of returning unset values
// which could be misinterpreted as actual reported values.
function getRoundData(
uint80 _roundId
)
external
view
returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);
function latestRoundData()
external
view
returns (uint80 roundId, int256 answer, uint256 startedAt, uint256 updatedAt, uint80 answeredInRound);
}{
"evmVersion": "shanghai",
"metadata": {
"bytecodeHash": "ipfs",
"useLiteralContent": true
},
"optimizer": {
"enabled": true,
"runs": 1000
},
"remappings": [],
"viaIR": true,
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_chainlinkFeed","type":"address"},{"internalType":"uint256","name":"_heartbeat","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AddressZero","type":"error"},{"inputs":[],"name":"InvalidPrice","type":"error"},{"inputs":[],"name":"RoundNotComplete","type":"error"},{"inputs":[],"name":"StalePrice","type":"error"},{"inputs":[],"name":"HEART_BEAT_TOLERANCE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"chainlinkFeed","outputs":[{"internalType":"contract AggregatorV3Interface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"description","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint80","name":"_roundId","type":"uint80"}],"name":"getRoundData","outputs":[{"internalType":"uint80","name":"roundId","type":"uint80"},{"internalType":"int256","name":"answer","type":"int256"},{"internalType":"uint256","name":"startedAt","type":"uint256"},{"internalType":"uint256","name":"updatedAt","type":"uint256"},{"internalType":"uint80","name":"answeredInRound","type":"uint80"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"heartbeat","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"latestAnswer","outputs":[{"internalType":"uint256","name":"price","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":[{"internalType":"int256","name":"_answer","type":"int256"},{"internalType":"uint256","name":"_updatedAt","type":"uint256"}],"name":"validate","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]Contract Creation Code
60a034609c57601f61075738819003918201601f19168301916001600160401b0383118484101760a0578084926040948552833981010312609c5780516001600160a01b0381169190829003609c5760200151908015608d575f80546001600160a01b0319169190911790556080526040516106a290816100b5823960805181818161017b01526105a10152f35b639fabe1c160e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c908163313ce567146105c4575080633defb9621461058a57806350d25bcd1461051457806354fd4d501461047e5780637284e416146103575780637dbdf1f5146103325780638d176086146103165780639a6fc8f514610262578063bb33f0851461015f5763feaf968c1461008a575f80fd5b3461015b575f36600319011261015b57600460a06001600160a01b035f541660405192838092633fabe5a360e21b82525afa8015610150575f5f915f925f905f9261010d575b6040805169ffffffffffffffffffff95861681526402540be400909205602083015281019490945260608401521660808201528060a081015b0390f35b505050505061010961013c6402540be4009260a03d60a011610149575b61013481836105fe565b810190610637565b91955085945090916100d0565b503d61012a565b6040513d5f823e3d90fd5b5f80fd5b3461015b57604036600319011261015b57602435801561023a577f00000000000000000000000000000000000000000000000000000000000000008015159182610205575b50506101dd575f60043513156101b657005b7ebfc921000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f19abf40e000000000000000000000000000000000000000000000000000000005f5260045ffd5b90915042034281116102265761012c820180921161022657101581806101a4565b634e487b7160e01b5f52601160045260245ffd5b7f159c98a0000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461015b57602036600319011261015b5760043569ffffffffffffffffffff811680910361015b5760a06001600160a01b035f5416916024604051809481937f9a6fc8f500000000000000000000000000000000000000000000000000000000835260048301525afa8015610150575f5f915f925f905f9261010d576040805169ffffffffffffffffffff95861681526402540be4009092056020830152810194909452606084015216608082015260a090f35b3461015b575f36600319011261015b57602060405161012c8152f35b3461015b575f36600319011261015b5760206001600160a01b035f5416604051908152f35b3461015b575f36600319011261015b5760045f6001600160a01b03815416604051928380927f7284e4160000000000000000000000000000000000000000000000000000000082525afa908115610150575f916103e1575b50604080518092602082526103d381518092816020860152602086860191016105dd565b601f01601f19168101030190f35b90503d805f833e6103f281836105fe565b81019060208183031261015b5780519067ffffffffffffffff821161015b570181601f8201121561015b57805167ffffffffffffffff811161046a5760405192610446601f8301601f1916602001856105fe565b8184526020828401011161015b5761046491602080850191016105dd565b816103af565b634e487b7160e01b5f52604160045260245ffd5b3461015b575f36600319011261015b57600460206001600160a01b035f5416604051928380927f54fd4d500000000000000000000000000000000000000000000000000000000082525afa8015610150575f906104e1575b602090604051908152f35b506020813d60201161050c575b816104fb602093836105fe565b8101031261015b57602090516104d6565b3d91506104ee565b3461015b575f36600319011261015b57600460a06001600160a01b035f541660405192838092633fabe5a360e21b82525afa8015610150576020915f91610566575b506402540be40060405191048152f35b61057f915060a03d60a0116101495761013481836105fe565b505050905082610556565b3461015b575f36600319011261015b5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461015b575f36600319011261015b5780600860209252f35b5f5b8381106105ee5750505f910152565b81810151838201526020016105df565b90601f8019910116810190811067ffffffffffffffff82111761046a57604052565b519069ffffffffffffffffffff8216820361015b57565b908160a091031261015b5761064b81610620565b91602082015191604081015191610669608060608401519301610620565b9056fea2646970667358221220a569a7635d134b5b12ab119e87783443ac7ed680cb9c089ae05ef0a61c7c2a4d64736f6c634300081b003300000000000000000000000004edbf3904789d80b0c991e0b66577f2208a2be60000000000000000000000000000000000000000000000000000000000015180
Deployed Bytecode
0x6080806040526004361015610012575f80fd5b5f3560e01c908163313ce567146105c4575080633defb9621461058a57806350d25bcd1461051457806354fd4d501461047e5780637284e416146103575780637dbdf1f5146103325780638d176086146103165780639a6fc8f514610262578063bb33f0851461015f5763feaf968c1461008a575f80fd5b3461015b575f36600319011261015b57600460a06001600160a01b035f541660405192838092633fabe5a360e21b82525afa8015610150575f5f915f925f905f9261010d575b6040805169ffffffffffffffffffff95861681526402540be400909205602083015281019490945260608401521660808201528060a081015b0390f35b505050505061010961013c6402540be4009260a03d60a011610149575b61013481836105fe565b810190610637565b91955085945090916100d0565b503d61012a565b6040513d5f823e3d90fd5b5f80fd5b3461015b57604036600319011261015b57602435801561023a577f00000000000000000000000000000000000000000000000000000000000151808015159182610205575b50506101dd575f60043513156101b657005b7ebfc921000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f19abf40e000000000000000000000000000000000000000000000000000000005f5260045ffd5b90915042034281116102265761012c820180921161022657101581806101a4565b634e487b7160e01b5f52601160045260245ffd5b7f159c98a0000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461015b57602036600319011261015b5760043569ffffffffffffffffffff811680910361015b5760a06001600160a01b035f5416916024604051809481937f9a6fc8f500000000000000000000000000000000000000000000000000000000835260048301525afa8015610150575f5f915f925f905f9261010d576040805169ffffffffffffffffffff95861681526402540be4009092056020830152810194909452606084015216608082015260a090f35b3461015b575f36600319011261015b57602060405161012c8152f35b3461015b575f36600319011261015b5760206001600160a01b035f5416604051908152f35b3461015b575f36600319011261015b5760045f6001600160a01b03815416604051928380927f7284e4160000000000000000000000000000000000000000000000000000000082525afa908115610150575f916103e1575b50604080518092602082526103d381518092816020860152602086860191016105dd565b601f01601f19168101030190f35b90503d805f833e6103f281836105fe565b81019060208183031261015b5780519067ffffffffffffffff821161015b570181601f8201121561015b57805167ffffffffffffffff811161046a5760405192610446601f8301601f1916602001856105fe565b8184526020828401011161015b5761046491602080850191016105dd565b816103af565b634e487b7160e01b5f52604160045260245ffd5b3461015b575f36600319011261015b57600460206001600160a01b035f5416604051928380927f54fd4d500000000000000000000000000000000000000000000000000000000082525afa8015610150575f906104e1575b602090604051908152f35b506020813d60201161050c575b816104fb602093836105fe565b8101031261015b57602090516104d6565b3d91506104ee565b3461015b575f36600319011261015b57600460a06001600160a01b035f541660405192838092633fabe5a360e21b82525afa8015610150576020915f91610566575b506402540be40060405191048152f35b61057f915060a03d60a0116101495761013481836105fe565b505050905082610556565b3461015b575f36600319011261015b5760206040517f00000000000000000000000000000000000000000000000000000000000151808152f35b3461015b575f36600319011261015b5780600860209252f35b5f5b8381106105ee5750505f910152565b81810151838201526020016105df565b90601f8019910116810190811067ffffffffffffffff82111761046a57604052565b519069ffffffffffffffffffff8216820361015b57565b908160a091031261015b5761064b81610620565b91602082015191604081015191610669608060608401519301610620565b9056fea2646970667358221220a569a7635d134b5b12ab119e87783443ac7ed680cb9c089ae05ef0a61c7c2a4d64736f6c634300081b0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000004edbf3904789d80b0c991e0b66577f2208a2be60000000000000000000000000000000000000000000000000000000000015180
-----Decoded View---------------
Arg [0] : _chainlinkFeed (address): 0x04EDBF3904789d80B0C991e0B66577F2208A2bE6
Arg [1] : _heartbeat (uint256): 86400
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000004edbf3904789d80b0c991e0b66577f2208a2be6
Arg [1] : 0000000000000000000000000000000000000000000000000000000000015180
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.