WalletConnect V2原生JavaScript环境下personalSign扫码签名异常问题
问题排查:Web3Modal v2 扫码签名错误及版本升级问题
我正在自己的站点上基于HTML和原生JavaScript(vanilla JavaScript)完成从WC1到WC2的迁移,尝试多种方案后效果均不理想。当前实现的方案在MetaMask浏览器插件环境下运行正常,但扫码连接钱包时出现问题:地址连接完成后发送personalSign请求,扫码场景下会触发错误(错误截图:
)。
以下是我的JavaScript代码:
import { EthereumClient, w3mConnectors, w3mProvider, WagmiCore, WagmiCoreChains, WagmiCoreConnectors } from "https://unpkg.com/@web3modal/ethereum@2.7.0"; import { Web3Modal } from "https://unpkg.com/@web3modal/html@2.6.2"; // 0. Import wagmi dependencies const { mainnet, polygon, avalanche, arbitrum } = WagmiCoreChains; const { configureChains, createConfig, watchAccount, signMessage, disconnect } = WagmiCore; const projectId = "PRIVATE_ID"; const chains = [mainnet, polygon, avalanche, arbitrum]; // 2. Configure wagmi client const { publicClient } = configureChains(chains, [w3mProvider({ projectId })]); const wagmiConfig = createConfig({ autoConnect: true, connectors: [ ...w3mConnectors({ chains, version: 2, projectId }) ], publicClient }); // 3. Create Ethereum and modal clients const ethereumClient = new EthereumClient(wagmiConfig, chains); export const web3Modal = new Web3Modal( { projectId }, ethereumClient ); const unwatch = watchAccount((account) => checkaccount(account)); document.getElementById('my-button').addEventListener('click', () => { web3Modal.openModal() }) async function checkaccount(account) { try { if (account.address) { const signature = await signMessage({ message: 'prova 123', }); console.log(signature); await disconnect(); } } catch (err) { console.log(err); } }
另外,尝试将依赖包从https://unpkg.com/@web3modal/html@2.6.2升级到https://unpkg.com/@web3modal/html@2.7.0时,出现process.env未定义的错误,恳请帮忙排查解决。
内容的提问来源于stack exchange,提问作者Enrico Luperini
相关产品推荐
相关产品推荐

