npm包@dexon-foundation/web3-provider-engine使用教程

在以太坊和链上应用程序中,web3提供程序是与以太坊节点通信的关键组件。@dexon-foundation/web3-provider-engine是一个npm包,提供了一个灵活的通用web3提供程序框架,可以在任何Ethereum节点上工作。本文将告诉你如何使用@dexon-foundation/web3-provider-engine包。

依赖

在开始使用@dexon-foundation/web3-provider-engine之前,你需要先手动安装一些依赖:

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

这些依赖在我们的应用程序中使用的所有web3实例上都是必需的。

安装

使用下面的命令来安装@dexon-foundation/web3-provider-engine包。

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

使用

在你的JavaScript文件中,你可以像下面这样使用@dexon-foundation/web3-provider-engine。

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

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

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

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

在这个例子中,我们通过import语句引入了Engine、RpcSubprovider和ProviderSubprovider,然后创建了一个新的web3 provider engine实例,并通过addProvider()方法来添加了一个RpcSubprovider,该RpcSubprovider通过infura RPC节点与以太坊ropsten测试网络进行通信。

在我们添加好RpcSubprovider后,我们需要调用start()方法开始使用。

例子

让我们来看一个更高级的例子,该例子使用多个子提供程序,并在通信过程中为每个提供程序添加钩子函数。

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

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

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

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

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

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

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

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

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

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

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

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

在这个例子中,我们创建了一个Web3ProviderFactory的工厂函数,该函数用于创建新的web3实例。首先,我们引入了必要的依赖:Web3@truffle/hdwallet-provider(可下载),@dexon-foundation/web3-provider-engine,以及四个子提供程序依赖:RpcSubproviderFetchSubproviderFilterSubproviderSubscriptionSubprovider

接下来,我们定义了一些必要的常量来与以太坊ropsten网络进行交互:INFURA_ROPSTEN_URL和MNEMONIC。我们通过调用new Engine()创建一个新的web3 provider engine实例,并利用addProvider()方法添加多个子提供程序,包括rpcProvider,hdWalletProvider和其他三个提供程序。

我们利用engine.on()方法为block事件添加了一个钩子函数,每当一个新的块到达时,都会在控制台上打印该块的数值。

最后,我们通过调用start()方法,启动了web3提供程序引擎。最后,我们通过导出Web3ProviderFactory函数,并传递给其他组件,以实例化web3,与以太坊ropsten网络进行通信。

结论

在这篇文章中,我们详细讲解了如何使用npm包@dexon-foundation/web3-provider-engine,并提供了示例代码,希望你们能够从本文中清楚地理解如何利用web3 provider engine实现与以太坊节点的交互。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/5eedad83b5cbfe1ea0610c88


猜你喜欢

  • NPM 包 @turf/simplify 使用教程

    在前端开发中,很常常需要对地图中的数据进行简化以方便展示及提高渲染速度。@turf/simplify 是一个 npm 包,提供了一种快速且简易的算法,用于对复杂的地图数据进行简化。

    4 年前
  • npm包 @turf/square 使用教程

    前言 turf.js 是一个针对地理信息及其分析开发的 JavaScript 库。其中,@turf/square 是其中一个功能模块,用来创建正方形的多边形,可以应用在地图绘制或分析等场景中。

    4 年前
  • npm 包 boolean-shapely 使用教程

    在前端开发中,有时需要进行针对多个布尔类型变量的运算。这时候,使用 boolean-shapely 这个 npm 包可以帮助我们快速且方便地进行布尔类型运算。本文将主要介绍 boolean-shape...

    4 年前
  • npm 包 @turf/boolean-intersects 使用教程

    前言 @turf/boolean-intersects 是一个 npm 包,它提供了一个函数用于判断两个几何体是否相交。在很多前端应用中,我们需要判断两个几何体是否相交,从而决定是否需要进行进一步的处...

    4 年前
  • npm 包 @turf/square-grid 使用教程

    介绍 @turf/square-grid 是一个 JavaScript 库,用于生成规则的正方形网格。正方形网格是地理信息系统(GIS)中一个常见的概念,可以用于分割地图以及计算统计数据等。

    4 年前
  • npm 包 @atlas.js/component 使用教程

    介绍 @atlas.js/component 是一个前端开发所需的 npm 包,它可以帮助我们实现组件化开发,提高代码可复用性,降低开发难度,提高应用程序的性能和可维护性。

    4 年前
  • npm 包 @turf/standard-deviational-ellipse 使用教程

    在地理数据可视化和分析过程中,标准偏向椭圆(Standard Deviational Ellipse)是一个重要的工具。能够帮助我们更好地理解数据的分布规律,以及寻找异常点和热点区域。

    4 年前
  • npm 包 @turf/tag 使用教程

    前言 在 GIS 领域中,我们经常需要对地理数据进行分类、标注等操作,而 @turf/tag 就是一款非常实用的 npm 包,可帮助我们快速、方便地对地理数据进行标注。

    4 年前
  • npm 包 @turf/tesselate 使用教程

    前言 在前端开发中,地图应用的需求越来越多,而要实现复杂的地图交互,需要用到很多地理数据处理的算法。其中,tesselation(简单理解为“网格化”)是一类重要的算法,它将一个面(polygon)分...

    4 年前
  • npm 包 @turf/transform-rotate 使用教程

    前言 在地理信息系统(GIS)领域,经常需要对地图上的要素进行旋转操作。而 @turf/transform-rotate 正是一款专门用于进行空间要素(如点、线、面等)旋转的工具。

    4 年前
  • npm 包 @turf/transform-scale 使用教程

    在前端开发中,为了方便地操作地理数据和地图,我们常常使用 Turf.js 这样的工具库。而 @turf/transform-scale 就是 Turf.js 中用于将几何图形放大或缩小的 npm 包。

    4 年前
  • npm包@turf/transform-translate 使用教程

    介绍 在前端开发中,常常需要对地理数据进行处理和展示。@turf/transform-translate 是一个基于 Turf.js 的 npm 包,用于在二维平面上对地理数据进行移动操作。

    4 年前
  • npm 包 @turf/triangle-grid 使用教程

    简介 @turf/triangle-grid 是一个用于生成网格状三角形的 Node.js/npm 包,其主要用途是为街区、城市和其他需要区域化数据的应用程序提供地理编码和相关分析支持。

    4 年前
  • npm 包 - robust-predicates 使用教程

    当我们进行几何计算的时候,由于我们使用的是浮点数据表示,因此可能会遇到一些问题。例如,我们可能会遇到两个看起来相等的浮点数,在计算机中确实不相等。为了解决这个问题,我们可以使用 robust-pred...

    4 年前
  • npm 包 AVL 使用教程

    前言 在进行数据结构算法的开发时,AVL Tree(平衡二叉树)是一种非常重要的数据结构。如果你对 AVL Tree 还不熟悉的话,你可以阅读一下这篇介绍 AVL Tree 的文章。

    4 年前
  • npm 包 splaytree 使用教程

    前言 在前端开发过程中,我们经常需要处理各种数据结构,比如数组、队列、栈、二叉搜索树等。而 splaytree 是一种自适应的二叉搜索树,可以根据访问次数自动调整树的形态,从而提高数据操作的效率。

    4 年前
  • npm 包 geojson-project 使用教程

    前言 在当今数字化社会,地理信息(Geospatial Information)的应用越来越广泛。在前端开发中,GeoJSON 是一种方便的地理信息数据格式。在某些场景下,我们需要对 GeoJSON ...

    4 年前
  • NPM包:tap-status使用教程

    在前端开发中,我们常常需要使用各种NPM包来实现项目需求。而tap-status则是一款用于在CLI命令行中输出测试结果的NPM包。 本文将详细介绍tap-status的使用方法,包括安装、配置、使用...

    4 年前
  • npm 包 martinez-polygon-clipping 使用教程

    在前端开发过程中,经常需要处理多边形的相关问题,如求交、求并、裁剪等。而 martinez-polygon-clipping 是一款强大的 npm 包,可以帮助我们高效地解决多边形相关的计算问题。

    4 年前
  • NPM 包 @turf/union 使用教程

    前言 在前端开发中,我们经常需要对地图进行操作。@turf/union 是一款用于合并地图数据的 NPM 包,提供了一种简便的方法来合并多个地图区域,并将其转换为 GeoJSON 格式。

    4 年前

相关推荐

    暂无文章