如何监听 Metamask 的 web3 合约的 "confirm"/"cancel" 事件?

How to listen to Metamask's web3's "confirm"/"cancel" event of a contract?

由于 metamask 注入的 web3 遵循 https://github.com/ethereum/wiki/wiki/JavaScript-API

但是调用contract.new()

时似乎没有编码来捕获confirm/cancel按钮点击事件(下图)

有没有办法赶上这个事件?谢谢。

自己找到答案

如果用户点击了'cancel'按钮,下面的'processedContract'变量将是未定义的。 如果确认,它将是合同,如果它有一个地址(processedContract.address),那么它正在被开采。

newContract.new({...}, function(e, processedContract) {...});

要处理 Confirm/Cancel 用户对你的合约函数的响应,你可以使用 transactionHash 事件和 error 事件发送功能。

"transactionHash" returns transactionHash: String: Fired when the transaction hash is available.

"error" returns error: Error: Fired if an error occurs during sending. If the transaction was rejected by the network with a receipt, the receipt will be available as a property on the error object.

You can see detail here.

当您点击 确认 按钮时,您可以在 transactionHash 事件中处理这种情况。

当您点击取消按钮时,您可以在错误事件中处理这种情况。