WalletConnect连接Polygon(chainId:137)提示无可用RPC URL如何解决
问题原因
你使用的@walletconnect/web3-provider版本未内置Polygon主网(chainId:137)的Infura RPC映射规则,即使传入了合法的infuraId也无法自动拼接出正确的RPC访问地址,因此触发找不到对应链ID的RPC URL报错。
修复方案
在WalletConnect的配置项中显式指定对应chainId的RPC地址即可,修改后的代码如下:
let web3Modal = new Web3Modal({ network: "matic", cacheProvider: true, providerOptions: { walletconnect: { package: WalletConnectProvider, options: { infuraId: "c22c90a767684c5fbd7257da57802b35" , // 新增rpc配置,手动指定chainId对应RPC地址 rpc: { 137: "https://polygon-mainnet.infura.io/v3/c22c90a767684c5fbd7257da57802b35" } }, }, }, }); web3Modal.clearCachedProvider(); await web3Modal.connect();
补充说明
- 如果需要同时支持其他链,只需在
rpc对象中按照链ID: RPC地址的格式追加配置即可 - 也可以升级
@walletconnect/web3-provider到最新正式版,新版已内置Polygon主网的Infura RPC映射规则,无需手动配置也可正常运行,不过手动指定RPC兼容性更强,不受依赖版本变动影响
内容的提问来源于stack exchange,提问作者David Callanan
相关产品推荐
相关产品推荐

