npm 包 @0x/contract-artifacts 使用教程

阅读时长 6 分钟读完

什么是 @0x/contract-artifacts 包?

@0x/contract-artifacts 是一个 Node.js 包,用于在以太坊上部署及调用智能合约。该包包含了各种以太坊上常用的智能合约 ABI(Application Binary Interface)及二进制代码,可以使用该包来部署自己的智能合约,或者调用已有的智能合约。该包使用的是 0x Protocol 的智能合约 ABI 标准,开发者可以根据需要自行扩展。

如何使用 @0x/contract-artifacts 包?

使用 @0x/contract-artifacts 包很简单,只需要按以下步骤操作即可:

  1. 安装该包
  1. 导入该包
  1. 使用该包

使用该包可以有多种方式,下面将列举两种常用方式:

  • 部署自己的智能合约

    -- -------------------- ---- -------
    ----- ---- - ----------------
    ----- -------- - -----------------------------
    
    ----- --------------- - ------ -- ------- ---
    
    ----- ------------ - --- ------------------------------
    ---------------------------------------------------
    
    ----- ------------------ - --- --------------------------
    --------------------------- ----- ----------- ---------- --- ----------- ---- --- ---
    ------------------------- ----- ---------- --
      -------------- --------- -- -
        --------------------- -------- -- -------------------------
      ---
  • 调用已有的智能合约

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

怎样扩展 @0x/contract-artifacts 包?

@0x/contract-artifacts 包使用的是 0x Protocol 的智能合约 ABI 标准,可以根据自己的需要在该标准的基础上扩展更多的智能合约 ABI。以添加一个名为 MyContract 的智能合约 ABI 为例,步骤如下:

  1. 在 @0x/contract-artifacts 包中,找到 src/abis 目录下的 json 文件,并添加一个新的 json 文件 MyContract.json,该文件的内容应符合 0x Protocol 的智能合约 ABI 标准。

  2. 在 @0x/contract-artifacts 包中,找到 src/index.ts 文件,添加如下的语句:

  3. 在 @0x/contract-artifacts 包的构建脚本中,添加将 src/abis 目录下的所有 json 文件编译成 js 文件的语句(常见使用 tsc 命令),以便生成支持 TypeScript 的类型声明文件。

  4. 在自己的代码中,导入新增的智能合约 ABI:

示例代码

下面给出一个部署自己智能合约的完整示例代码:

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

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

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

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

上述代码使用的合约 ABI 是一个简单的合约,只有一个返回字符串类型的方法 sayHello,和一个 payable 的构造函数。使用该代码可以先将合约部署到以太坊上,再通过所部署的合约地址进行调用。

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