我正在尝试创建一个可以进行以太坊交易的网站。
如果我使用eth.sendTransaction({from:sender, to:receiver, value: amount})
进行eth交易,是否可以取消此交易?
我问这个是因为我发现它没有采取任何承诺或回调参数,这意味着我不知道交易是否成功了?
是否可以取消web3交易?如果是,我该如何确保收到交易是否已经通知? (最好使用承诺或回调,而不是每次都检查钱包)
答案 0 :(得分:2)
技术上可以取消交易,但不太可能。从本质上讲,唯一的方法是尝试使用相同的帐户/现时组合发送另一个事务,并希望在您要取消的事务被挖掘之前它被挖掘。这仅仅是nonce用于保证交易顺序而不是取消功能的副作用。
对于您的其他问题,web3.eth.sendTransaction
确实会收到回调。它是options对象之后的可选第二个参数,并使用错误/结果回调样式。来自Web3js API:
web3.eth.sendTransaction(transactionObject [, callback])
功能 - (可选)如果传递回调,则HTTP请求将成为异步。
如果要进行异步请求,可以将可选回调作为最后一个参数传递给大多数函数。所有回调都使用错误的第一个回调样式