简介
@tsiry/hdkey 是一个 Node.js 模块,提供了一种生成和管理 BIP32 派生私钥的方便方式。它是 @trezor 的 JavaScript 实现版本,适用于生成 Hierarchical Deterministic (HD) 钱包地址和私钥。
安装
如果你想使用 @tsiry/hdkey,首先要确保 Node.js 已经安装。然后,在你的项目中运行以下命令:
npm install @tsiry/hdkey
使用
导入
在你的代码中,可以像下面这样导入 @tsiry/hdkey:
const HDKey = require('@tsiry/hdkey')
创建 HD 密钥
你可以像下面这样通过传递一个 32 字节的种子值来创建一个 HD 密钥:
const seed = Buffer.from('2cb3e20d3c2e547bd70e7e21fce891568e6e8b56e18db394cf7af3923413b3c0', 'hex') const hdkey = HDKey.fromMasterSeed(seed)
上面这个例子会创建一个从指定种子值派生的 HD 密钥。
获取派生密钥
从 HD 密钥派生其他私钥和地址也很容易,只需要使用 hdkey.derive() 方法:
const extended = hdkey.derive("m/0'/0")
上面的代码通过指定派生路径 "m/0'/0" 获取到了一个扩展的私钥(extended private key)。由于派生路径会根据具体需求而变化,可以查看 BIP32 规范中详细描述的路径简介。
获取地址
你可以使用 hdkey.deriveChild() 方法获取一个私钥然后生成相关的地址。例如,以下代码获取了 Bitcoin 地址:
const index = 0 const derived = hdkey.deriveChild(index).deriveChild(0) const publicKey = derived.publicKey const address = getBitcoinAddress(publicKey)
示例
下面是简单的示例代码:
-- -------------------- ---- ------- ----- ----- - ----------------------- ----- ------ - ----------------- ----- ---- - ---------------------- ----- ----- - -------------------------- ----- ----- - - ----- ------- - --------------------------------------- ----- --------- - ----------------- ----- ------- - ---------------------------- -------------------- --------------------- ----------------------- -------- -------- ---------------------------- - ----- ------- - --------------- ----- ----- ------- - ------------------------------------------------------ ----- -------- - ------------------------------------------------------------- -- ----- ------- - ----------------------- -------- ---------- ------ -------------------------- -
总结
使用 @tsiry/hdkey 可以方便地创建和管理 Hierarchical Deterministic (HD) 钱包地址和私钥。我们可以通过传递 32 字节的种子值来创建 HD 密钥。通过为 HD 密钥指定路径,我们可以获取派生密钥和地址。了解如何使用 @tsiry/hdkey 可以帮助我们更好地管理和保护我们的加密货币资产。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066b5551ab1864dac66ac8