npm 包 @dexon-foundation/eth-json-rpc-middleware 使用教程

阅读时长 4 分钟读完

前言

对于使用以太坊进行开发的前端工程师而言,@dexon-foundation/eth-json-rpc-middleware 是一款十分重要的 npm 包。该包可以通过使用中间件的方法,将 web3.eth.*() 方法转化为与 Dexon 经典链兼容的 json-rpc 方法。

本篇文章将详细介绍该 npm 包的使用教程,帮助读者了解如何使用该中间件以及中间件的实现原理。

安装

首先,我们需要通过 npm 安装该包:

使用

在安装完该包之后,我们可以开始使用它提供的中间件了。以下为使用该中间件的代码示例:

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

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

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

在这个示例中,我们使用 Web3.js 创建了一个 ProviderEngine 对象,并为它添加了两个 Provider,一个是用于与 Dexon 经典链交互的 RpcSubprovider,另一个则是本文介绍的中间件 ethToJsonRpc。

在添加好 Provider 之后,我们需要通过 engine.start() 方法启动 ProviderEngine,然后即可使用 web3 对象进行以太坊应用的开发工作。

原理

本节将简单介绍一下该中间件的实现原理。

当我们使用 web3 对象调用以太坊方法时,通常会使用以下的语法:

然而,由于 Dexon 经典链不支持 web3 的 json-rpc 方法,该语法在与 Dexon 经典链进行交互时无法使用。因此,我们需要通过中间件将 web3.eth.getBlock 转化为与 Dexon 经典链兼容的 json-rpc 方法。

在本文的示例代码中,我们使用了 ProviderEngine 对象作为 web3 的 provider。当我们通过 web3.eth.getBlock('latest', callback) 调用以太坊方法时,ProviderEngine 将该方法请求发送到 ethToJsonRpc 这个中间件中。

中间件 ethToJsonRpc 会将该请求转化为以下的 json-rpc 请求:

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

然后,ethToJsonRpc 将该 json-rpc 请求发送到 Dexon 经典链的节点,等待响应,最后将节点返回的结果转化为 web3 可以使用的格式,并将其传递给 web3.eth.getBlock 的回调函数。

因此,通过使用该中间件,我们可以直接使用 web3 的 json-rpc 方法,并与 Dexon 经典链进行交互。

结语

本文介绍了 @dexon-foundation/eth-json-rpc-middleware 的使用教程以及中间件的实现原理。通过使用该中间件,我们可以直接使用 web3 的 json-rpc 方法,并与 Dexon 经典链进行交互。

对于以太坊开发者来说,该中间件的使用十分方便,可以大大提高开发效率。相信本文对读者有所帮助,谢谢阅读!

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