用途:为钱包提供标准化 Web3 provider 接口,使 dApp 能跨多条区块链与钱包通信。架构为 dApp → request() → ChainProvider → Adapter → Handler(钱包代码),支持 Promise 与 Callback 两种策略。
主要能力:Web3Provider 作为编排器路由请求;BaseProvider 为各链 provider 的抽象基类(继承 EventEmitter);PromiseAdapter 直接返回 Promise;CallbackAdapter 通过 sendResponse(id, result) 异步回传;MobileAdapter 默认开启,将 RPC 方法名转换为移动端友好名称(如 eth_requestAccounts→requestAccounts、personal_sign→signPersonalMessage),可用 disableMobileAdapter: true 关闭。支持 EIP-1193 标准错误码与事件(connect、disconnect、chainChanged、accountsChanged、message)。
使用方式:先安装核心包 npm i @trustwallet/web3-provider-core,再按需安装各链包(如 @trustwallet/web3-provider-ethereum)。创建链 provider 后通过 new Web3Provider({ strategy, handler }).registerProvider(provider) 注册,并设置 window.ethereum。Handler 按 params.network 与 params.name 路由。新增链可在 monorepo 中执行 bun run generate myChain 生成脚手架,实现 getNetwork 与链特定 API,再执行 bun run build:packages。
适用场景:钱包集成多链 dApp 连接、移动端原生桥接、构建新链 provider。
限制:资料未提供收费、价格、平台支持范围或性能数据;需自行实现 handler 中的钱包逻辑;Callback 模式下必须传递 params.id 给 sendResponse/sendError。