用途:在无 React 的原生 JS/TS 浏览器应用中集成 MetaMask,接入 createEVMClient,注册 EIP-1193 提供者事件,通过 provider.request 发起 RPC 调用,并实现链切换。
主要能力:创建 EVM 客户端(dapp 信息、Infura RPC 网络、UI 选项、事件处理器);监听 accountsChanged、chainChanged、disconnect;连接与断开会话;读取 eth_chainId、eth_accounts、eth_blockNumber、eth_getBalance、eth_gasPrice、eth_getTransactionCount、eth_call;使用 switchChain 及 chainConfiguration 回退切换链。
用法:安装 npm install @metamask/connect-evm(或经 CDN/script 标签引入);应用启动时只调用一次 createEVMClient,创建后立即注册提供者事件;连接用 client.connect({ chainIds: ['0x1'] }),断开办 client.disconnect()。链 ID 必须为十六进制字符串,如 '0x1'、'0x89'、'0xaa36a7'。0x1 会自动包含在每次 connect 中。
限制:provider 在连接前即存在,但节点路由读取(eth_blockNumber、eth_getBalance、eth_call 等)需先选定链,否则抛 No chain ID selected,只有 eth_chainId 和 eth_accounts 在连接前安全。EVM 客户端无 .on() 方法和 wallet_sessionChanged 处理器,会话恢复通过 connect 处理器 / 提供者事件体现。chainConfiguration 仅为回退,钱包已有该链时只触发 wallet_switchEthereumChain。错误码 4001 表示用户拒绝,-32002 表示已有待处理请求。页面刷新会自动恢复会话。
适用场景:纯 HTML 页面或打包器项目的 MetaMask EVM 集成。未提供的内容暂未说明。