npm包eth-contract-metadata使用教程

阅读时长 8 分钟读完

概述

eth-contract-metadata是一个将etherscan上的智能合约元数据分析为JSON格式并提供查询的npm包。该包适用于前端开发人员和DApp开发人员,在合约开发和调试,合约地址查询等方面提供了很多便利。本篇文章将为大家详细介绍如何使用该npm包,包含安装,配置,调用和实例演示。

安装

安装eth-contract-metadata包,只需要使用npm命令即可:

配置

在使用eth-contract-metadata包之前,我们需要将其正确配置。etherscan提供了智能合约元数据,我们需要知道API的endpoint地址并注册API KEY,API KEY可以免费获取。请访问 https://etherscan.io/apis 找到 Contract API 然后注册您的 API KEY.

下面是一个配置示例,您只需要修改 etherscanApiKey 值为您自己的API key即可:

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

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

----- --- - --- ----------------------------
展开代码

调用

使用 EthContractMetadata 类的 getContract(address) 函数查询智能合约信息。该函数返回值为promise对象,当promise被resolved,返回如下结构:

-- -------------------- ---- -------
-
  ---------- ---------------------------------------------
  ------- -------------
  --------- ------
  ----------- ---
  ---------- -------
  ------------- -----------------------
  ------------- --------- ---------- ------- -- -----
  ------ ----- -- -----
-
展开代码

下面是一个示例代码,它查询合约地址 0x57d90b64a1a57749b0f932f1a3395792e12e7055 的信息并输出到控制台:

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

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

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

-------------------------------------------------------------
  ---------------- -- -
    ----------------------
  --
  -------------- -- -
    ---------------------
  ---
展开代码

案例演示

下面是一个完整的DApp代码示例,该DApp可以查询ertherum网络上的智能合约信息并在页面上显示。在这个例子中,我们使用了Bootstrap框架,这样我们可以在不添加样式的情况下,快速构造出我们的DAPp。

-- -------------------- ---- -------
---- ---------- ---
--------- -----
----- ---------------
------
  ----- ----------------
  ----- --------------- ---------------------------- ---------------- ------------------
  ------------ -------- -------- ------------
  ----- ---------------- --------------------------------------------------------------------------------
  ------- ---------------------------------------------------------------------
  ------- -----------------------------------------------------------------------------
  ------- --------------------------------------------------------------------------------------
-------
------
  ---- ------------------
    --------- -------- -------- ---------
    ------
      ---- -------------------
        ------ ------------------------------ ----------------
        ------ ----------- -------------------- -------------------- --------------------
      ------
      ------- ------------- ---------- ----------------------------
    -------
    ----
    ---- --------------------------
  ------
  ------- ---------------------- --------------------------
-------
-------
展开代码
-- -------------------- ---- -------
-- --------
----- - ------------------- - - ---------------------------------

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

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

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

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

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

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

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

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

          --- ----------------------- ---------
          --- -------------------------------------------------------
        -----
      ---
    --
    -------------- -- -
      -----------------------------
      --------------------------------- ------------ ---------------------------------------
    ---
---
展开代码

该DApp可以通过输入想要查询的合约地址,查询该合约的详细信息,包括合约名称,简称,小数位等等。在查询完成后,DApp将合约ABI和源代码以预格式化代码块的形式展示在网页上。

结论

本篇文章介绍了eth-contract-metadata的使用方法和示例代码。希望这篇文章可以帮助前端开发和DApp开发更方便地使用etherscan提供的智能合约元数据接口,提高开发效率。

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