Transaction Hash:
Block:
22862927 at Jul-06-2025 09:45:11 PM +UTC
Transaction Fee:
0.000033522407807784 ETH
$0.07
Gas Used:
33,892 Gas / 0.989095002 Gwei
Emitted Events:
| 341 |
DIAOracleV2.OracleUpdate( key=IMF/USD, value=868128986163, timestamp=1751838299 )
|
Account State Difference:
| Address | Before | After | State Difference | ||
|---|---|---|---|---|---|
| 0xBEE10964...955e5FaE3 |
0.975389768370419034 Eth
Nonce: 11296
|
0.97535624596261125 Eth
Nonce: 11297
| 0.000033522407807784 | ||
|
0xdadB0d80...24f783711
Miner
| (BuilderNet) | 40.96898546355018805 Eth | 40.968988595639409382 Eth | 0.000003132089221332 | |
| 0xE1A3d58d...4B4Ac1552 |
Execution Trace
DIAOracleV2.setValue( key=IMF/USD, value=868128986163, timestamp=1751838299 )
setValue[DIAOracleV2 (ln:16)]
OracleUpdate[DIAOracleV2 (ln:20)]
// compiled using solidity 0.8.19
pragma solidity 0.8.19;
contract DIAOracleV2 {
mapping (string => uint256) public values;
address oracleUpdater;
event OracleUpdate(string key, uint128 value, uint128 timestamp);
event UpdaterAddressChange(address newUpdater);
constructor() {
oracleUpdater = msg.sender;
}
function setValue(string memory key, uint128 value, uint128 timestamp) public {
require(msg.sender == oracleUpdater);
uint256 cValue = (((uint256)(value)) << 128) + timestamp;
values[key] = cValue;
emit OracleUpdate(key, value, timestamp);
}
function setMultipleValues(string[] memory keys, uint256[] memory compressedValues) public {
require(msg.sender == oracleUpdater);
require(keys.length == compressedValues.length);
for (uint128 i = 0; i < keys.length; i++) {
string memory currentKey = keys[i];
uint256 currentCvalue = compressedValues[i];
uint128 value = (uint128)(currentCvalue >> 128);
uint128 timestamp = (uint128)(currentCvalue % 2**128);
values[currentKey] = currentCvalue;
emit OracleUpdate(currentKey, value, timestamp);
}
}
function getValue(string memory key) external view returns (uint128, uint128) {
uint256 cValue = values[key];
uint128 timestamp = (uint128)(cValue % 2**128);
uint128 value = (uint128)(cValue >> 128);
return (value, timestamp);
}
function updateOracleUpdaterAddress(address newOracleUpdaterAddress) public {
require(msg.sender == oracleUpdater);
oracleUpdater = newOracleUpdaterAddress;
emit UpdaterAddressChange(newOracleUpdaterAddress);
}
}