Ich möchte den Zeitstempel eines Ereignisses erhalten.
Wie kann ich die Zeit des ausgelösten Ereignisses abrufen, wenn die Ereignisdaten keinen Zeitwert enthalten?
Sie können dies tun, indem Sie den Zeitstempel des Blocks überprüfen, in dem das Ereignis enthalten war. Für etwas wie web3.js können Sie Folgendes verwenden getBlock
:
web3.eth.getBlock(blockHashOrBlockNumber [, returnTransactionObjects] [, callback])
Außerdem können Sie den Zeitstempel in das Ereignis selbst einfügen. Es würde so aussehen:
pragma solidity ^0.5.5;
contract MyEvetTest {
event MyEvent(uint256 timestamp);
function myFunction() public {
emit MyEvent(block.timestamp);
}
}
Wenn Sie den Zeitstempel nicht im Ereignis gespeichert haben, können Sie so analysieren
const getTimeByBlock = async(txHash) => {
const blockN = await web3.eth.getTransaction(txHash)
const blockData = await web3.eth.getBlock(blockN.blockNumber)
return blockData.timestamp
}
KÖNIG DER FLAMMEN
Shane Fontaine
KÖNIG DER FLAMMEN
Shane Fontaine