npm 包 @ethersproject/hdnode 使用教程

阅读时长 4 分钟读完

简介

使用 @ethersproject/hdnode 这个 npm 包可以方便地创建和管理分层确定性钱包(Hierarchical Deterministic Wallet,简称 HD 钱包)。该库基于 BIP32 和 BIP44 协议,用于生成多个输入地址的钱包,并可在备份的种子短语之上运行。

安装

在终端中输入以下命令安装 @ethersproject/hdnode:

创建 HD 钱包

首先,我们需要导入 @ethersproject/hdnode 库:

接下来,我们可以创建 HD 钱包,具体方法如下:

上面代码的作用是从助记词创建 HDNode 实例,并根据路径(path)派生一个 HDNode 子类,即 HD 钱包。

生成钱包地址

生成钱包地址的方法有两种,一种是使用 HDNode 的 derivePath 方法,一种是使用 HDNode 的 deriveChild 方法。两种方法的区别在于生成的地址不同,derivePath 方法生成的地址是 P2WPKH(Pay to Witness Public Key Hash)或 P2WPKH-in-P2SH(Pay to Witness Public Key Hash in Pay to Script Hash),而 deriveChild 方法生成的地址是 P2PKH(Pay to Public Key Hash)。

使用 derivePath 方法生成地址

经过上面的代码之后,address 就是按照 path 派生出来的钱包地址。

使用 deriveChild 方法生成地址

上面的代码通过获取 HDNode 子钱包之后,根据 publicKey 生成 P2PKH 地址。

总结

使用 @ethersproject/hdnode 可以方便地创建和管理 HD 钱包,同时也可以生成不同版本的钱包地址。在智能合约中,可以将 HD 钱包作为输入地址,避免重复生成输入地址的麻烦,并且还可以根据地址派生出更多的子地址,实现更多的功能。

示例代码:

-- -------------------- ---- -------
----- - ------ - - ------------------
----- - ------ - - ---------------------------------

----- -------- - ------------
----- ---- - -------------------
----- ------ - -----------------------------------------------
----- ----- - --
----- --------- - --------------------------

----- -------- - ---------------
----- -------- - -------------------------------------------------

--------------- ------ - ----------
-------------------- - ----------

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedc1c6b5cbfe1ea0611efc

纠错
反馈