如何监听 Metamask 的 web3 的合约“确认”/“取消”事件?
Posted
技术标签:
【中文标题】如何监听 Metamask 的 web3 的合约“确认”/“取消”事件?【英文标题】:How to listen to Metamask's web3's "confirm"/"cancel" event of a contract? 【发布时间】:2019-03-01 20:54:50 【问题描述】:由于 metamask 注入的 web3 跟随 https://github.com/ethereum/wiki/wiki/javascript-API
但是在调用contract.new()时似乎没有编码来捕捉确认/取消按钮的点击事件(如下图)
有没有办法捕捉事件?谢谢。
【问题讨论】:
【参考方案1】:要处理用户对合约函数的确认/取消响应,您可以使用发送函数中的 transactionHash 事件和 error 事件。
“transactionHash”返回transactionHash:String:当交易哈希可用时触发。
"error" 返回错误: 错误:如果在发送过程中发生错误则触发。如果交易被网络拒绝并带有收据,则收据将作为错误对象的属性提供。
You can see detail here.
当您点击确认按钮时,您可以在 transactionHash 事件中处理这种情况。
当您点击Cancel按钮时,您可以在error事件中处理这种情况。
【讨论】:
【参考方案2】:自己找到答案
如果用户单击“取消”按钮,则下面的“processedContract”变量将未定义。 如果得到确认,它将是合约,如果它有一个地址(processedContract.address),那么它正在被挖掘。
newContract.new(..., function(e, processedContract) ...);
【讨论】:
以上是关于如何监听 Metamask 的 web3 的合约“确认”/“取消”事件?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 MetaMask 与 Web3.js 版本 1.2.6 连接?
如何使用 Web3.js 将 Metamask 连接到 Angular App?