Transaction Hash:
Block:
22807905 at Jun-29-2025 05:09:35 AM +UTC
Transaction Fee:
0.00001023380598848 ETH
$0.02
Gas Used:
33,892 Gas / 0.30195344 Gwei
Emitted Events:
| 190 |
DIAOracleV2.OracleUpdate( key=PEAS/USD, value=363224158, timestamp=1751173758 )
|
Account State Difference:
| Address | Before | After | State Difference | ||
|---|---|---|---|---|---|
| 0x1EA2D013...91b62662b |
0.162000664166330577 Eth
Nonce: 14477
|
0.161990430360342097 Eth
Nonce: 14478
| 0.00001023380598848 | ||
|
0x6Adb3baB...16393C200
Miner
| (MEV Builder: 0x6adb...200) | 5.013340576213293339 Eth | 5.013340931924779711 Eth | 0.000000355711486372 | |
| 0xed6F4747...96727712e |
Execution Trace
DIAOracleV2.setValue( key=PEAS/USD, value=363224158, timestamp=1751173758 )
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);
}
}