情况一:
连接过 metamask 钱包后,切换 walletconnect 后,walletConnectProvider的 rpc 地址没有更新,仍然是 metamask 链的 rpc
情况二:
直接连接到 walletconnect 时,rpcurl 默认为mainnet.infura.io/v3/ ${infura_key} 不会根据 walletconnect 当前连接的网络自动匹配 RPC 节点。
发现 walletConnectProvider 的 rpc 错误所以交易失败。然后刷新页面后会获取对应正常的 rpc。
此问题使用@web3-react/walletconnect-connector^6.2.13r 依赖包导致,相关 issues github.com/NoahZinsmei…
解决方案
以上问题可以通过刷新页面解决
- 第一次连接 metamask 然后想切换到 walletconnect 时,我必须操作 metamask 插件,断开钱包并连接到 walletconnect 后,刷新页面。
- 当用户连接到 walletconnect 后,检测 walletConnectProvider 的 rpc 是否正确,错误的 rpc 的话,自动刷新页面获取对应的 rpc