Solidity

如何獲取交易的返回值而不是布朗尼中的交易收據

  • August 17, 2021

我的智能合約中有一個名為 的函式getRandomNumer,它返回一個字節 32。但是,在布朗尼中,當我進行交易時,它會返回交易收據。

我如何獲得返回值?

requestId = vrf_consumer.getRandomNumber(get_seed, {'from': accounts[0]})

您可以tx.return_value在交易收據中使用或提出.call請求。

.call這將模擬正在進行的交易。請注意,如果您再次發送交易,然後.call再次呼叫,情況會有所不同。這裡有些例子;

requestId是交易收據:

requestId = vrf_consumer.getRandomNumber(get_seed, {'from': accounts[0]})

requestId是 requestId(返回值):

requestId = vrf_consumer.getRandomNumber.call(get_seed, {'from': accounts[0]})

使用TransactionReceipt.return_value

tx = vrf_consumer.getRandomNumber(get_seed, {'from': accounts[0]})
request_id = tx.return_value

引用自:https://ethereum.stackexchange.com/questions/92603