3

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

但是在调用 contract.new() 时似乎没有编码来捕捉确认/取消按钮单击事件(如下图)

用户确认/取消的元掩码弹出窗口

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

4

2 回答 2

2

要处理用户对合约函数的确认/取消响应,您可以使用发送函数中的transactionHash事件和错误事件。

"transactionHash" 返回 transactionHash: String: 当交易哈希可用时触发。

“错误”返回错误:错误:如果在发送过程中发生错误,则触发。如果交易被网络拒绝并带有收据,则收据将作为错误对象的属性提供。在此处输入图像描述

您可以在此处查看详细信息。

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

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

于 2021-02-11T11:12:02.127 回答
1

自己找到了答案

如果用户单击“取消”按钮,则下面的“processedContract”变量将未定义。如果确认,它将是合约,如果它有一个地址(processedContract.address),那么它正在被挖掘。

newContract.new({...}, function(e, processedContract) {...});
于 2018-09-27T08:41:56.673 回答