【发布时间】:2021-07-19 15:07:23
【问题描述】:
web3库中web3.eth.getTransaction和web3.eth.getTransactionReceipt这两种方法有什么区别?我尝试阅读此文档https://web3js.readthedocs.io/en/v1.2.0/web3-eth.html#gettransactionreceipt,但我并不清楚其中的区别。
【问题讨论】:
web3库中web3.eth.getTransaction和web3.eth.getTransactionReceipt这两种方法有什么区别?我尝试阅读此文档https://web3js.readthedocs.io/en/v1.2.0/web3-eth.html#gettransactionreceipt,但我并不清楚其中的区别。
【问题讨论】:
收据仅适用于挖掘交易。但正因为如此,它包含了更多属性:
status - 成功或恢复gasUsed - 仅此 tx 使用的气体量cumulativeGasUsed - 此 tx 及其内部交易使用的 gas 量logs - 事务产生的事件日志列表常规的getTransaction 允许您获取尚未开采的交易的详细信息(例如from、to、data 和value)。可能的用例:您只从外部来源获得了transactionHash,需要找出收件人,但不知道该交易是否已被挖掘。
所以它们都可以在不同的情况下使用。
【讨论】:
getTransaction在block里面也给出了transactionIndex,应该只有交易包含在block里面的时候才有,所以我很困惑。
getTransaction() 中的transactionIndex 可以为空。因此,如果交易处于挂起状态,getTransaction() 返回索引为null 的交易,但getTransactionReceipt() 为整个交易返回null。如果交易被挖掘,两者都返回一个带有transactionIndex字段索引值的对象。