例如我在 Solidity 中有一个支付功能
function makePayment(address someAddress) external payable {
balances[someAddress] += msg.value;
uint256 blockNumber = block.number;
bytes32 txHash = bytes32(bytes20(tx.origin));
emit PaymentReceived(msg.sender, txHash, blockNumber);
}
我在 txHash 中有一些数据,但它不是 transactionHash。我有块号。 我怎样才能得到正确的
transactionHash
。或者,如果在函数运行时无法获取它,如果我知道 transactionHash
,我可以得到 blockNumber
吗?
当交易在区块生产者节点上执行时,交易哈希在底层 EVM 层上可用,但目前(v0.8)尚未暴露给 Solidity。
希望它将在未来的版本中实现。