收据和确认回调之间的区别
Difference between Receipt & Confirmation callbacks
我想以编程方式验证交易是否成功 - 即以太坊网络本身识别出对于给定的交易哈希,它是有效的。
使用 web3.eth.sendSignedTransaction 返回的承诺,有两个事件 - 一个 'confirmation',另一个 'receipt'。
我能否依靠 'receipt' 回调来确定交易是否真实发生?还是我也必须依赖 'confirmation' 回调?如果是 - 如何?
同样,阅读 getTransactionReceipt 时提到 -
收据不适用于待定交易,returns 无效。
那么,如果我确实收到了收据 - 这意味着交易不再是 'pending'?也就是说,成功了?
_So, if I do get a receipt then - it means the transaction is no longer 'pending' ? That is, was successful?
当收据可用时(或者在您的情况下处理了事件),这意味着交易被挖掘到一个块中。
但 tx 可能已被还原(如果它是智能合约的 tx,由于某种原因将其还原)。检查收据字段 status
true
表示交易成功
false
表示已还原
请注意,status
未包含在 Byznatium 之前(2017 年 10 月)的交易中,并且在未来的某些交易类型中也可能会丢失。在 .
中查看有关交易类型的更多信息
我想以编程方式验证交易是否成功 - 即以太坊网络本身识别出对于给定的交易哈希,它是有效的。
使用 web3.eth.sendSignedTransaction 返回的承诺,有两个事件 - 一个 'confirmation',另一个 'receipt'。
我能否依靠 'receipt' 回调来确定交易是否真实发生?还是我也必须依赖 'confirmation' 回调?如果是 - 如何?
同样,阅读 getTransactionReceipt 时提到 -
收据不适用于待定交易,returns 无效。
那么,如果我确实收到了收据 - 这意味着交易不再是 'pending'?也就是说,成功了?
_So, if I do get a receipt then - it means the transaction is no longer 'pending' ? That is, was successful?
当收据可用时(或者在您的情况下处理了事件),这意味着交易被挖掘到一个块中。
但 tx 可能已被还原(如果它是智能合约的 tx,由于某种原因将其还原)。检查收据字段 status
true
表示交易成功false
表示已还原
请注意,status
未包含在 Byznatium 之前(2017 年 10 月)的交易中,并且在未来的某些交易类型中也可能会丢失。在