【问题标题】:getTransaction vs getTransactionReceiptgetTransaction 与 getTransactionReceipt
【发布时间】:2021-07-19 15:07:23
【问题描述】:

web3库中web3.eth.getTransactionweb3.eth.getTransactionReceipt这两种方法有什么区别?我尝试阅读此文档https://web3js.readthedocs.io/en/v1.2.0/web3-eth.html#gettransactionreceipt,但我并不清楚其中的区别。

【问题讨论】:

    标签: ethereum web3


    【解决方案1】:

    收据仅适用于挖掘交易。但正因为如此,它包含了更多属性:

    • status - 成功或恢复
    • gasUsed - 仅此 tx 使用的气体量
    • cumulativeGasUsed - 此 tx 及其内部交易使用的 gas 量
    • logs - 事务产生的事件日志列表

    常规的getTransaction 允许您获取尚未开采的交易的详细信息(例如fromtodatavalue)。可能的用例:您只从外部来源获得了transactionHash,需要找出收件人,但不知道该交易是否已被挖掘。

    所以它们都可以在不同的情况下使用。

    【讨论】:

    • 我也是这么想的,但是根据文档getTransaction在block里面也给出了transactionIndex,应该只有交易包含在block里面的时候才有,所以我很困惑。
    • @AnhDũngLê 是的,但getTransaction() 中的transactionIndex 可以为空。因此,如果交易处于挂起状态,getTransaction() 返回索引为null 的交易,但getTransactionReceipt() 为整个交易返回null。如果交易被挖掘,两者都返回一个带有transactionIndex字段索引值的对象。
    猜你喜欢
    • 2019-06-26
    • 1970-01-01
    • 2023-03-07
    • 2012-06-13
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    • 2012-05-24
    • 2013-04-18
    相关资源
    最近更新 更多