基本上我有一个从 window.web3 (从元掩码注入)获取 web3 对象的 dapp。
当我从 chrome 禁用 de 扩展(不删除,只是禁用)时,会跳过 web3 调用,不会生成回调。
重现
- 在浏览器中安装元掩码
- 禁用它
- 在 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 或其他什么?