npm 包 @ethersproject/hdnode 使用教程

简介

使用 @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


猜你喜欢

  • npm 包 @types/socketty 使用教程

    如果你正在进行 Node.js Socket.io 应用程序的开发,并且想要使用 TypeScript 构建你的应用程序,那么这篇文章将会对你非常有帮助。本文将介绍如何使用 npm 包 @types/...

    4 年前
  • npm 包 @types/solr-client 使用教程

    在前端开发中,使用 Solr 进行搜索是非常常见的操作。为了让 TypeScript 开发者更方便地使用 Solr 客户端库,社区开发了 npm 包 @types/solr-client,它为 sol...

    4 年前
  • npm 包 @types/solution-center-communicator 使用教程

    简介 @types/solution-center-communicator 是一个 npm 包,它提供了解决方案中心通信器(Solution Center Communicator)的 TypeSc...

    4 年前
  • npm 包 @types/sort-array 使用教程

    1. npm 包介绍 npm 包 @types/sort-array 是 TypeScript 语言下的数组排序工具包,可以帮助开发者快速地对数组进行排序操作,并提供丰富的 API 供开发者使用。

    4 年前
  • npm 包 @types/fibjs 使用教程

    前言 @types/fibjs 是一个 npm 包,它提供了 FibJS 框架的 TypeScript 类型定义。FibJS 是一款基于 V8 引擎的服务器端 JavaScript 运行环境,拥有高性...

    4 年前
  • npm 包 @types/createjs-lib 使用教程

    CreateJS 是一个开源的 JavaScript 框架,用于创建富交互性的 HTML5 应用程序。其中包括了多个模块,如 EaselJS、SoundJS、PreloadJS 和 TweenJS。

    4 年前
  • npm 包 @types/preloadjs 使用教程

    随着现代 Web 应用的发展,前端网页所要承载的信息和交互越来越复杂。图片、音频、视频等静态资源的处理和优化也显得越来越重要。作为前端工程师,我们需要探索各种解决方案,使得我们的网页在资源载入方面更加...

    4 年前
  • npm 包 @types/soundjs 使用教程

    简介 SoundJS 是一款 Web Audio 库,提供了一种简单易用的方式来处理声音。对于需要在网站或者应用中集成音频的前端开发者来说,这个库是非常有用的。 @types/soundjs 为 So...

    4 年前
  • npm 包 @types/soundmanager2 使用教程

    在前端开发过程中,经常需要处理音频播放的问题,而 SoundManager2 是一款优秀的音频播放插件,它能够在浏览器上播放多种格式的音频文件,包括 MP3、AAC、WMA、WAV 等格式。

    4 年前
  • npm 包 @types/soupbintcp 使用教程

    什么是 @types/soupbintcp @types/soupbintcp 是一个 npm 包,用于提供 TypeScript 对 SoupBinTCP 协议的支持。

    4 年前
  • npm 包 @types/space-pen 使用教程

    在前端开发中,我们常常使用各种第三方库和插件来帮助我们更高效地完成开发任务。其中,npm 包是前端开发者最常用的一种工具。它为我们提供了许多有用的功能和工具,让我们可以方便地管理项目依赖。

    4 年前
  • npm 包 sparkly 使用教程

    npm 包是前端开发不可或缺的工具,其丰富多彩的功能极大提高了开发效率。在这篇文章中,我们将介绍一个名为 sparkly 的 npm 包,它可以用来将数组转化为漂亮的彩色字符图表。

    4 年前
  • npm 包 @types/sparkly 使用教程

    在前端开发中,我们经常使用的一些库和框架都是通过 npm 安装的,而 npm 包数量如此之多,让我们很难找到合适的包来满足我们的需求。而 @types/sparkly 就是一个非常实用的 npm 包,...

    4 年前
  • npm 包 @types/sparkpost 使用教程

    在 Web 开发中,使用类库和框架是提高开发效率和质量的关键。而在 JavaScript 中,我们常常使用 npm 包来管理和引用这些类库。在使用这些 npm 包时,对于类型定义的支持就显得尤其重要。

    4 年前
  • npm 包 @types/sparqljs 使用教程

    简介 SPARQL 是一种查询 RDF 数据的语言,该语言基于 RDF 的三元组结构,并支持类似于 SQL 的查询功能。@types/sparqljs 是一个 TypeScript 类型定义包,能够提...

    4 年前
  • npm包@types/react-input-autosize使用教程

    前言 随着前端技术的发展,开发者们能够通过npm包来快速获取到需要的模块,方便了开发流程,提高了开发效率。而@types/react-input-autosize就是一款非常实用的npm包,它可以帮助...

    4 年前
  • npm 包 @types/spatialite 使用教程

    前言 在进行前端地理信息系统(GIS)开发时,经常需要使用到空间数据库,如sqlite、postgis等。而在使用这些空间数据库时,我们通常会使用一种名为spatialite的库。

    4 年前
  • npm包@types/spdx-correct使用教程

    简介 @types/spdx-correct是一个NPM包,它提供了一个typescript类型定义文件,用于规范化SPDX(Software Package Data Exchange)标准中的许可...

    4 年前
  • npm 包 @types/spdx-satisfies 使用教程

    npm 是前后端开发不可或缺的资源管理工具,相信许多开发者都已经使用过了。在使用 npm 过程中,我们时常需要使用到各种开源库,其中不乏需要进行类型定义的库。在 TypeScript 中,如果一个库没...

    4 年前
  • npm包 @types/speakingurl 使用教程

    前言 在前端开发过程中,URL是一个非常重要的元素。而URL的SEO优化也是前端同学们必须要考虑的问题。为了方便地生成带有清晰易读的URL,我们需要使用一些工具。其中,speakingurl是一个非常...

    4 年前

相关推荐

    暂无文章