SuperAPI AI 工具集

metamask-connect-conventions

前端与建站

查看项目

更新于 10-16 00:29

技能介绍

用途:为 MetaMask Connect SDK(@metamask/connect-evm / -multichain / -solana 及 wagmi metaMask() 连接器)的代码生成与审查提供常驻约定和约束,避免常见错误。

主要能力与要点: 导入路径:EVM 用 @metamask/connect-evm,多链用 @metamask/connect-multichain,Solana 用 @metamask/connect-solana;不要从内部子包导入。connect-multichain 自 2.1.0 起为前两者的常规传递依赖,无需自行添加。 必需配置:dapp.name 始终必需;Node.js 与 React Native 中 dapp.url 必需,浏览器可默认 window.location.href;iconUrl 与 base64Icon 可选。 支持网络:每个交互链都须列入 api.supportedNetworks 且 RPC 可达,可用 getInfuraRpcUrls 填充(EVM 用 chainIds,多链用 caipChainIds,Solana 用 networks)。0x1 会自动加入 connect() 权限请求,但不会自动加入 supportedNetworks。 单例行为:createMultichainClient 为共享单例核心,不要在任何 React 组件渲染或可能重跑的 hook 中创建客户端。 错误处理:4001 为用户拒绝;-32002 仅来自扩展传输;所有 connect()、invokeMethod() 与签名调用需 try/catch;多链 invokeMethod 错误包装在 RPCInvokeMethodErr 中,原始码保存在 rpcCode。 连接状态:签名前检查状态,监听 wallet_sessionChanged;多链 disconnect() 撤销全部作用域,EVM disconnect() 只撤销 eip155:* 作用域。 链 ID:必须为十六进制字符串(如 '0x1'),CAIP-2 用十进制(eip155:1)。chainChanged 事件也发十六进制字符串,勿与十进制直接比较。 事件:EIP-1193 的 connect、disconnect、accountsChanged、chainChanged;SDK eventHandlers 另有 displayUri、connectAndSign、connectWith。display_uri 只在 connecting 状态触发,需在 connect() 前注册。 限制:资料未提供收费、价格、平台支持列表、性能或效果等信息。