You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已实现钱包连接函数,请求开发账户断开连接功能及调用按钮

实现钱包断开连接功能

针对你现有的连接钱包逻辑,以下是实现断开钱包功能的方案:

首先编写断开钱包的函数:

const disconnectWallet = async () => {
  if (window.ethereum) {
    try {
      // 调用MetaMask的断开连接方法(需确保钱包版本较新)
      await window.ethereum.request({ method: 'wallet_disconnect' });
      // 重置前端所有相关状态
      setAddress('');
      setWeb3(null);
      setVmContract(null);
      setError('');
    } catch (err) {
      // 若钱包不支持断开方法,直接重置前端状态即可
      setAddress('');
      setWeb3(null);
      setVmContract(null);
      setError('断开失败:' + err.message);
    }
  } else {
    alert('请安装MetaMask扩展!');
  }
};

逻辑说明:

  • 优先调用MetaMask官方支持的wallet_disconnect方法,让钱包端同步断开状态
  • 无论调用是否成功,都会重置前端存储的钱包地址、Web3实例、合约实例及错误信息,确保前端与钱包状态一致
  • 捕获异常,兼容部分旧版本钱包不支持断开方法的情况

最后添加断开钱包按钮(以React为例):

<button onClick={disconnectWallet} disabled={!address}>
  断开钱包
</button>

可通过address是否存在控制按钮禁用状态,避免未连接时的无效点击。

内容的提问来源于stack exchange,提问作者Saira Rao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 11:31:04