Transaction Hash:
Block:
23176999 at Aug-19-2025 06:45:47 PM +UTC
Transaction Fee:
0.000032287224705414 ETH
$0.13
Gas Used:
46,438 Gas / 0.695275953 Gwei
Emitted Events:
| 494 |
DIAOracleV2.OracleUpdate( key=XMW/USD, value=4138743, timestamp=1755629141 )
|
| 495 |
DIAOracleV2.OracleUpdate( key=WILD/USD, value=41112942, timestamp=1755629141 )
|
Account State Difference:
| Address | Before | After | State Difference | ||
|---|---|---|---|---|---|
| 0x1EA2D013...91b62662b |
0.749308778062523941 Eth
Nonce: 23717
|
0.749276490837818527 Eth
Nonce: 23718
| 0.000032287224705414 | ||
|
0xdadB0d80...24f783711
Miner
| (BuilderNet) | 136.935335109203378141 Eth | 136.935337766971553511 Eth | 0.00000265776817537 | |
| 0xed6F4747...96727712e |
Execution Trace
DIAOracleV2.setMultipleValues( keys=[XMW/USD, WILD/USD], compressedValues=[1408341264117465619089797412885978664541668949, 13990009214843261633938839359615055436789892693] )
setMultipleValues[DIAOracleV2 (ln:23)]
OracleUpdate[DIAOracleV2 (ln:34)]
// 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);
}
}