如何使用web3react将WalletConnect集成到您的Dapp中



我一直在尝试通过遵循web3react的文档来集成WalletConnect。

我为连接器使用的配置如下:

import { WalletConnectConnector } from '@web3-react/walletconnect-connector';
export const walletconnect = new WalletConnectConnector({
rpc: { 1: RPC_URLS[1], 4: RPC_URLS[4] },
infuraId: INFURA_TOKEN,
bridge: BRIDGE_URL,
qrcode: true,
pollingInterval: 15000,
});

此外,软件包的版本如下:

"@web3-react/core": "^6.0.9",
"@web3-react/walletconnect-connector": "^6.2.0",

当我使用useWeb3React()中的activate函数时,如下代码所述:

const { connector, activate, active, account } = useWeb3React();
activate(walletconnect, undefined, true)
.catch((error) => {
if (error instanceof UnsupportedChainIdError) {
activate(walletconnect)
} else {
console.log('Pending Error Occured')
}
})

它能够生成二维码,我也能够成功地扫描我手机上的MetaMask应用程序,并在手机应用程序上显示成功连接。

不过,在Web应用程序的控制台日志上,它显示了一条警告,上面写着

Warning: Suppressed stale connector activation [object Object]

因此,它无法接收account变量内部的地址。

重要提示:我在InjectedConnector中使用了类似的代码,它对MetaMask非常适用。

尽管上述问题也出现在其他钱包中。这些是我面临的问题的钱包:

  1. 钱包连接
  2. WalletLink(Coinbase钱包(
  3. Portis

我用两种方法解决了它:

  1. 在后续线路中多次调用激活功能

  2. 在调用激活功能时设置延迟,类似于

    setTimeout(() => activate(...), 500)
    

我不确定你的代码结构,所以我不知道这有什么帮助。但过时的连接器对象问题是我使用上面两种方法解决的。

相关内容

  • 没有找到相关文章

最新更新