0

基本上我有一个从 window.web3 (从元掩码注入)获取 web3 对象的 dapp。

当我从 chrome 禁用 de 扩展(不删除,只是禁用)时,会跳过 web3 调用,不会生成回调。

重现

  1. 在浏览器中安装元掩码
  2. 禁用它
  3. 在 dapp 中,发送一笔交易

我的代码:

const getData = myContract.myMethod.getData(parameters);
web3.eth.sendTransaction({ from: from, to: CONTRACT_ADDRESS, data: getData }, function (error, result) {
       console.log("Callback !")
});

我认为 sendTransaction 应该失败或抛出错误

  • 操作系统:Windows
  • 浏览器:在 chrome 和 Mozilla firefox 上测试
  • MetaMask 版本:最新 5.2.2

有任何想法吗?

问题只是何时被禁用,当插件从 chrome 安装或删除时,我得到正确的响应(弹出窗口显示并分别抛出错误)

我已经实现,如果用户刷新页面,则再次获得 web3 实例,如果它被禁用,则 web3 对象为空。问题是浏览器在重新加载之前不会检测到禁用

我可以看到禁用网页时会显示此警告,但是..有没有办法检测这些事件以将 window.web3 对象设置为 null 或其他什么?

在此处输入图像描述

4

0 回答 0