概述
Js-wallet-sdk 是一款基于 TypeScript/JavaScript 语言的全面钱包解决方案,它集成了多种主流公链的加密算法与通用功能。开发者能够利用该 SDK 实现私钥创建、地址生成、交易组装、签名操作等核心功能。本文档将详细讲解如何使用该 SDK,并介绍其支持的平台与核心特性。
目前,该 SDK 已支持多种主流区块链,每种代币格式都有独立的模块实现。未来还将持续扩展更多区块链的支持范围。
支持平台
作为一款 JavaScript SDK,它兼容各种浏览器与 JavaScript 环境,可轻松集成到 Web 应用、移动应用或桌面应用中,为开发者提供高度灵活的开发体验。
安装与构建
使用 NPM 安装
通过 npm 可以便捷地安装最新版本的 Signing SDK。该 SDK 提供两种类型的包:公共包和单币种模块。
公共包适用于所有币种:
npm install @okxweb3/coin-base以 ETH 和 BTC 为例,集成单币种模块:
集成 ETH:
npm install @okxweb3/coin-ethereum集成 BTC:
npm install @okxweb3/coin-bitcoin本地构建
若需本地构建 SDK,请按以下步骤操作:
- 下载项目源代码
- 运行构建脚本
核心功能
Signing SDK 的各模块功能如下:
- crypto-lib:提供常用的安全加密算法与签名算法。
- coin-base:为所有币种提供通用接口。
- coin-*:各币种模块(如 coin-ethereum、coin-bitcoin 等)实现特定币种的交易构建与签名方法。
功能模块详解
coin-base 基础模块
基础模块是所有币种的通用基础模块,提供如随机私钥生成、私钥推导、获取推导路径等通用接口方法。各币种实现包已基本实现这些通用方法,但不同币种支持的功能可能略有差异。
通过 npm 获取最新版本:
npm install @okxweb3/coin-base支持的功能包括:
- 生成随机私钥(getRandomPrivateKey)
- 通过参数推导私钥(getDerivedPrivateKey)
- 通过私钥生成新地址(getNewAddress)
- 验证地址有效性(validAddress)
- 交易签名(signTransaction)
- 获取 BIP44 路径(getDerivedPath)
- 验证私钥有效性(validPrivateKey)
- 消息签名与验证(signMessage、verifyMessage)
- 从签名恢复公钥(ecRecover)
- 通过公钥获取地址(getAddressByPublicKey)
- 硬件交易相关功能(getHardWareRawTransaction 等)
- 计算交易哈希(calcTxHash)
- 生成原始交易数据(getRawTransaction)
- 验证已签名交易(validSignedTransaction)
- 估算手续费(estimateFee)
crypto-lib 加密库
该库包含常用安全加密与签名算法的实现,如 BIP32、BIP39、ECDSA、Ed25519 等。具体功能包括:
- BIP32 相关功能:处理与比特币改进支付协议(BIP32)相关的操作。
- BIP39 助记词生成、公私钥及消息签名功能。
- 常用哈希与编解码功能:如 SHA256 哈希、Base64 编解码等。
- Ed5519 与 ECDSA 签名功能。
通过 npm 获取最新版本:
npm install @okxweb3/crypto-lib各币种模块概览
SDK 支持多种主流区块链,以下是部分模块的简要介绍:
- coin-aptos:集成 Aptos 区块链,支持私钥生成、交易转账等功能。
- coin-bitcoin:支持比特币主网与测试网,同时兼容 BSV、DOGE、LTC 等币种。
- coin-cosmos:适用于 Cosmos 生态,包括 Atom、Axelar、Osmos 等代币。
- coin-ethereum:支持以太坊及所有 EVM 兼容链,提供完整的钱包交互功能。
- coin-solana:为 Solana 区块链提供私钥管理、交易签名等功能。
- coin-tron:集成 TRON 区块链,涵盖地址验证、交易签名等操作。
各模块均通过 npm 发布,安装方式统一为 npm install @okxweb3/coin-{币种名称}。
测试用例与支持币种
在 GitHub 各模块包下的 tests 目录中,提供了丰富的测试用例,帮助开发者深入了解 SDK 功能的使用方法。
SDK 支持多种币种及其推导路径,例如:
- BTC:支持多种地址格式,如常规地址、SegWit 等。
- ETH:支持以太坊及众多 Layer2 网络,如 Arbitrum、Polygon、zkSync 等。
- Cosmos:涵盖 Atom、Osmos、Kava 等生态代币。
- 其他币种如 Aptos、EOS、Solana、Stacks 等均有相应支持。
常见问题
该 SDK 的主要用途是什么?
Js-wallet-sdk 主要用于帮助开发者快速集成区块链钱包功能,包括私钥管理、地址生成、交易签名等。它支持多链环境,简化了 Web3 应用的开发流程。
如何选择需要安装的模块?
开发者可根据项目需求选择安装公共包(coin-base)或特定币种模块。如果项目涉及多种币种,建议安装所需的各单币种模块以保持灵活性。
SDK 是否支持硬件钱包集成?
是的,部分模块(如 coin-ethereum)提供了硬件钱包相关功能,包括获取原始交易、签名交易等,方便开发者集成硬件钱包解决方案。
如果遇到问题,如何获取帮助?
开发者可以通过各模块的 GitHub 文档查看详细的功能说明与使用案例。测试用例也可作为参考,帮助理解各功能的具体用法。
SDK 是否持续更新?
是的,开发团队会持续增加对新区块链的支持并优化现有功能。建议定期查看官方更新以获取最新特性。
是否支持自定义推导路径?
部分模块支持通过参数自定义推导路径,具体请参考各币种模块的文档说明。