用途:本技能用于在 TypeScript 中实现符合 BRC-100 的 BSV 钱包,基于 @bsv/wallet-toolbox(v1.7.18+)与 @bsv/sdk。实现前建议先查看 Strategic Questionnaire 以确定钱包架构。核心区别:WalletClient(@bsv/sdk)是轻客户端,连接用户现有钱包(浏览器扩展、MetaNet Client 等),不掌控密钥,适合多数 dApp 与支付集成;Wallet(@bsv/wallet-toolbox)是自建完整钱包,自己掌控密钥、存储与服务,适合钱包构建者。安装:bun add @bsv/wallet-toolbox @bsv/sdk;可选存储后端 bun add knex sqlite3、bun add knex mysql2、bun add idb。主要类包括 WalletClient、Wallet、SimpleWalletManager、CWIStyleWalletManager、WalletSigner。初始化提供三种模式:Node.js+SQLite 简单钱包(StorageKnex、Services、KeyDeriver)、浏览器 IndexedDB 钱包(StorageIdb)、多档案钱包(CWIStyleWalletManager 与 OverlayUMPTokenInteractor,涉及 presentation key 与密码流程)。交易方面涵盖 createAction 创建交易、listOutputs、listActions、balance、balanceAndUtxos,以及直接 signAction。关键限制:通过 createAction 花费已知钱包输出时,必须提供 inputBEEF(完整 BEEF 证明链),可用 listOutputs 的 include: 'entire transactions' 获取,或用 services.getBeefForTxid 获取外部输入证明;否则会报 missing full proof in the inputBEEF。noSend+BEEF 中继模式可先签名后由后端 SPV 校验并广播,适合付费接口与内容解锁。两阶段签名可用 @1sat/actions 的 completeSignedAction(需 @bsv/sdk v2+),它会处理 BEEF 合并、脚本校验、signAction 与失败时 abortAction;仅用 v1.x 时应直接调用 wallet.signAction。abortAction 仅对 nosend、unsigned、unprocessed 状态有效。密钥管理含 getPublicKey、encrypt/decrypt、createSignature。存储、证书、错误处理与生产模式详见对应 references 文档。资料未提供收费、价格、平台与效果信息。
wallet-brc100
编程与开发
更新于 10-15 18:45