有什么方法可以在调用函数时获取transactionHash吗?

问题描述 投票:0回答:1

例如我在 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
吗?

solidity
1个回答
0
投票

当交易在区块生产者节点上执行时,交易哈希在底层 EVM 层上可用,但目前(v0.8)尚未暴露给 Solidity。

希望它将在未来的版本中实现。

© www.soinside.com 2019 - 2024. All rights reserved.