【问题标题】:cannot disconnect or close or clear accounts from web3model or web3无法从 web3model 或 web3 断开或关闭或清除帐户
【发布时间】:2021-07-06 14:18:39
【问题描述】:

我正在尝试断开与提供商的连接,以便在未连接时显示带有连接按钮的屏幕,并在已连接时显示显示屏幕。

示例代码不起作用:

public resetApp = async () => {
    const { web3 } = this.state;
    if (web3 && web3.currentProvider && web3.currentProvider.close) {
      await web3.currentProvider.close();
    }
    await this.web3Modal.clearCachedProvider();
    this.setState({ ...INITIAL_STATE });
  };

web3.currentProvider.close(); 不是函数。条件从未满足。 网络上的所有示例都不起作用。

下面的这段代码总是返回一个地址,除了手动禁用元掩码并从 chrome 扩展设置再次启用它之外,我没有尝试过清除它。

      const accounts = await web3.eth.getAccounts();
      if (accounts[0] != null) {
          // connected
          resolve(true);
      } else {
          // not connected
          resolve(false);
      }

请任何人提供帮助。

【问题讨论】:

    标签: javascript reactjs web3


    【解决方案1】:

    找到解决方案:我的情况是测试错误的东西(不知道该怎么说)。 如果你调用 await web3Modal.clearCachedProvider(); 那么web3Modal.cachedProvider 返回一个空字符串。

    // test if wallet is connected
    if (web3Modal.cachedProvider) {
        // connected now you can get accounts
        const accounts = await web3.eth.getAccounts();
    }
    
    // disconnect wallet
    const disconnectWallet = async (web3Modal: any) => {
        await web3Modal.clearCachedProvider();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-04
      • 2021-03-02
      • 1970-01-01
      • 2021-02-19
      • 2010-12-06
      • 2018-06-21
      • 1970-01-01
      相关资源
      最近更新 更多