面向 SDK 钱包构建者的钱包适配器插件
钱包适配器插件使 dapp 能够使用你的钱包。采用 AIP-62 Wallet 标准后,dapp 只需更新其 aptos-wallet-adapter 版本,便可连接新添加的钱包插件。
为可通过 npm 导入的 SDK 钱包实现钱包插件主要包含三个步骤:
- 为 SDK 钱包实现钱包适配器插件。
- 在 npm 上发布插件。
- 更新
aptos-wallet-adapter包,让 dapp 了解你的钱包。
1. 实现钱包适配器插件
Section titled “1. 实现钱包适配器插件”你可以使用 wallet-standard 仓库的示例,实现与 AIP-62 兼容、且可被 dapp 自动识别的钱包适配器插件。
-
创建新的 TypeScript 仓库。
-
将示例复制到新仓库中。
-
按照该示例中的说明,使其使用你的钱包执行 AIP-62 函数。
通过以下步骤测试变更
Section titled “通过以下步骤测试变更”-
克隆仓库。
-
在示例 dapp 中进入相应目录。
-
将其替换为你对 AIP-62 标准的实现。
- 需要更新
aptos-wallet-adapter/apps/nextjs-example/src/app/page.tsx中的导入,使其使用你的钱包而非MyWallet。 - 为便于本地测试,可以保留
registerWallet代码;但 SDK 钱包一旦加入aptos-wallet-standard核心包,便不再需要该代码。
- 需要更新
-
按照其中的说明运行 dapp 的本地版本。
-
点击“连接钱包”
应能在连接列表中看到你的钱包。
-
连接到你的钱包。
- 随后可使用演示 dapp 的功能,验证钱包的其他功能是否按预期工作。
- 这模拟了真实 dapp 与钱包交互的方式。
2. 测试完成后,按照本指南为 SDK 钱包代码发布新的 npm 包。(例如 AptosConnect)
Section titled “2. 测试完成后,按照本指南为 SDK 钱包代码发布新的 npm 包。(例如 AptosConnect)”为了让尚未使用你钱包的 dapp 用户也能选择通过你的钱包创建账户,需要在 wallet-adapter-core 中添加浏览器扩展的下载链接。
-
Fork monorepo。
-
在 VSCode 等本地编辑器中打开你的 fork。
-
为变更创建新分支。
Terminal window git checkout -b your-wallet -
进入相应目录。
-
导入 SDK 钱包 npm 包。
Terminal window pnpm i @yourpackage -
在相应文件中导入钱包。
以 AptosConnect 为例:
import { AptosConnectWallet } from "@aptos-connect/wallet-adapter-plugin"; -
在 getSDKWallets 中添加代码,将钱包实例推入 sdkWallets(位于 sdkWallets.ts)。
sdkWallets.push(new YourWallet(dappConfig)); -
在 type.ts 中更新 AvailableWallets 类型,使其包含钱包名称。
export type AvailableWallets = "Nightly" | "Petra" | "T wallet" | "Your Wallet's Name"; -
更新 aptos-wallet-adapter 顶层的内容,将钱包加入 AIP-62 兼容钱包列表。
-
提交并推送变更到你的 fork。
-
按照说明为仓库创建拉取请求。
- Wallet Adapter Demo App
- 在线站点
- 源代码
- 有关 AIP-62 兼容 wallet-adapter 插件的实现示例,请参阅
standardWallet.ts。
wallet-standard源代码。wallet-adapter-core源代码。- AIP-62 标准。