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