HYPE Price: $25.02 (+0.54%)
 

Overview

HYPE Balance

HyperEVM LogoHyperEVM LogoHyperEVM Logo0 HYPE

HYPE Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To

There are no matching entries

> 10 Internal Transactions found.

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
256223712026-01-26 19:37:514 hrs ago1769456271
0xe2B8DBfc...9269f8855
0 HYPE
256223712026-01-26 19:37:514 hrs ago1769456271
0xe2B8DBfc...9269f8855
0 HYPE
256223712026-01-26 19:37:514 hrs ago1769456271
0xe2B8DBfc...9269f8855
0 HYPE
256223712026-01-26 19:37:514 hrs ago1769456271
0xe2B8DBfc...9269f8855
0 HYPE
256106082026-01-26 16:25:007 hrs ago1769444700
0xe2B8DBfc...9269f8855
0 HYPE
256106082026-01-26 16:25:007 hrs ago1769444700
0xe2B8DBfc...9269f8855
0 HYPE
256106082026-01-26 16:25:007 hrs ago1769444700
0xe2B8DBfc...9269f8855
0 HYPE
256106082026-01-26 16:25:007 hrs ago1769444700
0xe2B8DBfc...9269f8855
0 HYPE
255794422026-01-26 7:54:0416 hrs ago1769414044
0xe2B8DBfc...9269f8855
0 HYPE
255794422026-01-26 7:54:0416 hrs ago1769414044
0xe2B8DBfc...9269f8855
0 HYPE
255794422026-01-26 7:54:0416 hrs ago1769414044
0xe2B8DBfc...9269f8855
0 HYPE
255794422026-01-26 7:54:0416 hrs ago1769414044
0xe2B8DBfc...9269f8855
0 HYPE
255731022026-01-26 6:10:0818 hrs ago1769407808
0xe2B8DBfc...9269f8855
0 HYPE
255731022026-01-26 6:10:0818 hrs ago1769407808
0xe2B8DBfc...9269f8855
0 HYPE
255731022026-01-26 6:10:0818 hrs ago1769407808
0xe2B8DBfc...9269f8855
0 HYPE
255731022026-01-26 6:10:0818 hrs ago1769407808
0xe2B8DBfc...9269f8855
0 HYPE
255588482026-01-26 2:16:2822 hrs ago1769393788
0xe2B8DBfc...9269f8855
0 HYPE
255588482026-01-26 2:16:2822 hrs ago1769393788
0xe2B8DBfc...9269f8855
0 HYPE
255588482026-01-26 2:16:2822 hrs ago1769393788
0xe2B8DBfc...9269f8855
0 HYPE
255588482026-01-26 2:16:2822 hrs ago1769393788
0xe2B8DBfc...9269f8855
0 HYPE
255028122026-01-25 10:57:5137 hrs ago1769338671
0xe2B8DBfc...9269f8855
0 HYPE
255028122026-01-25 10:57:5137 hrs ago1769338671
0xe2B8DBfc...9269f8855
0 HYPE
255028122026-01-25 10:57:5137 hrs ago1769338671
0xe2B8DBfc...9269f8855
0 HYPE
255028122026-01-25 10:57:5137 hrs ago1769338671
0xe2B8DBfc...9269f8855
0 HYPE
254728862026-01-25 2:47:1545 hrs ago1769309235
0xe2B8DBfc...9269f8855
0 HYPE
View All Internal Transactions
Cross-Chain Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ChainlinkMiddleware

Compiler Version
v0.8.27+commit.40a35a09

Optimization Enabled:
Yes with 1000 runs

Other Settings:
shanghai EvmVersion, MIT license
// 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);
}

Settings
{
  "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

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"}]

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


Block Transaction Gas Used Reward
view all blocks ##produced##

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.