钱包管理 API 指南:token-core-android WalletManager 的 10 个高频操作
【免费下载链接】token-core-androida blockchain private key management library on android项目地址: https://gitcode.com/gh_mirrors/to/token-core-android
token-core-android 是一个基于 Android 的区块链私钥管理库,由 imToken 团队开源,可让你在 BTC、ETH、EOS 三条链上统一完成钱包创建、导入、导出与交易签名。而WalletManager正是这个库对外最核心的入口类,几乎所有钱包管理 API 都集中在它身上。本文面向新手与普通开发者,梳理 WalletManager 的 10 个高频操作,帮助你快速掌握 token-core-android 钱包管理 API 的核心用法,少踩坑、快上手。
为什么选择 token-core-android 管理钱包私钥?
传统做法是让用户把私钥交给你保存,风险极高。token-core-android 的思路恰恰相反:私钥只存在用户手机本地,通过 keystore 文件加密落盘,签名也在本地完成,服务端永远接触不到私钥。同时它引入 "Identity"(身份)概念,同一组助记词即可派生和管理三条链的钱包,非常适合钱包类 App 快速集成。
准备工作:初始化存储并扫描钱包
使用 WalletManager 前,只需两步:
- 让你的 Activity 实现
KeystoreStorage接口,返回 keystore 存放目录; - 设置
WalletManager.storage并调用WalletManager.scanWallets()扫描本地已有钱包。
这一步是整个钱包管理 API 的地基,具体可参考 README.md 与app/src/test/java/org/consenlabs/tokencore/wallet/WalletSupport.java中的测试初始化写法。
WalletManager 的 10 个高频操作
1️⃣ 创建身份并自动派生 ETH / BTC 钱包
调用Identity.createIdentity(name, password, passwordHint, network, segWit)后,库会自动用随机助记词派生出以太坊和比特币两个钱包,分别通过identity.getWallets().get(0)与get(1)获取。注意:创建其他钱包之前,必须先创建或恢复 Identity。源码见app/src/main/java/org/consenlabs/tokencore/wallet/Identity.java。
2️⃣ 用私钥导入钱包
importWalletFromPrivateKey(metadata, prvKeyHex, password, overwrite)是最常用的导入入口,支持 ETH 私钥和 BTC 的 WIF 格式。其中overwrite参数决定遇到同地址钱包时是否覆盖,非常实用。核心逻辑在app/src/main/java/org/consenlabs/tokencore/wallet/WalletManager.java。
3️⃣ 用助记词导入钱包
importWalletFromMnemonic(metadata, mnemonic, path, password, overwrite)支持根据链类型自动选择 keystore:ETH 走V3MnemonicKeystore、BTC 走HDMnemonicKeystore、EOS 走EOSKeystore。助记词路径参数可参考app/src/main/java/org/consenlabs/tokencore/wallet/model/BIP44Util.java中预设的 BIP44 路径常量。
4️⃣ 用 keystore 文件导入钱包
importWalletFromKeystore(metadata, keystoreContent, password, overwrite)接收 JSON 格式的 keystore 内容。库会校验 MAC、解密私钥并核对地址一致性,安全性由底层加密模块保证,相关实现见app/src/main/java/org/consenlabs/tokencore/foundation/crypto/。
5️⃣ 导出私钥
exportPrivateKey(id, password)返回钱包私钥(十六进制或 WIF 原文),注意它需要钱包 ID 和密码双重凭证,务必在用户二次确认后调用。钱包 ID 可通过wallet.getId()获取,完整方法定义在Wallet.java中。
6️⃣ 导出助记词
exportMnemonic(id, password)返回MnemonicAndPath对象,同时包含助记词和对应路径,方便用户备份或迁移到其他钱包。这也是"助记词找回钱包"功能的标准实现方式。
7️⃣ 导出 keystore
exportKeystore(id, password)输出加密后的 keystore JSON,可安全分享给用户用于其他设备导入,因为私钥仍被密码保护,不担心泄露。
8️⃣ 修改钱包密码
changePassword(id, oldPassword, newPassword)支持原地重加密并刷新 keystore 文件。注意旧密码必须正确,否则会抛出TokenException。
9️⃣ 查询与查找钱包
库提供了多种查找方式:mustFindWalletById(id)按 ID 查找(不存在即抛异常)、findWalletByAddress(chainType, address)按地址查找、以及findWalletByPrivateKey、findWalletByKeystore、findWalletByMnemonic等按原始材料反查,适合做"导入前查重"或"恢复钱包"功能。
🔟 删除钱包
removeWallet(id, password)会先校验密码,再删除本地 keystore 文件并从 Identity 中移除。删除是不可逆操作,UI 上务必增加二次确认弹窗。此外,BTC 钱包还支持switchBTCWalletMode在普通地址与 SegWit(P2WPKH)模式间切换,EOS 钱包可用setAccountName更新账户名,都属于高频的衍生操作。
进阶:本地签名交易
钱包管理之外,交易签名同样一行搞定:构造EthereumTransaction后调用signTransaction(chainId, password, wallet),返回TxSignResult,其中getSignedTx()是可直接广播的签名结果,getTxHash()是交易哈希。示例代码见app/src/test/java/org/consenlabs/tokencore/wallet/TokenCoreTour.java的signEthereumTransactionExample测试。
快速集成步骤
仓库地址为https://gitcode.com/gh_mirrors/to/token-core-android,clone 后可直接运行其中的 JUnit 测试学习全部 API。集成到你的项目只需在build.gradle添加 JitPack 仓库与依赖,并开启 Java 8 支持即可,详见仓库根目录 README.md 的 Installation 章节。
总结
掌握 WalletManager 这 10 个高频操作,你就已经能独立完成一个钱包 App 的绝大多数功能:创建、导入、导出、改密、查询、删除,外加本地交易签名。token-core-android 把复杂的区块链私钥管理封装成简洁一致的钱包管理 API,让开发者能把精力放在业务上,值得一试。
【免费下载链接】token-core-androida blockchain private key management library on android项目地址: https://gitcode.com/gh_mirrors/to/token-core-android
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考