npm 包 @0xproject/contract-wrappers 使用教程

阅读时长 5 分钟读完

在以太坊的开发中,经常需要和智能合约进行交互。而 @0xproject/contract-wrappers 就是一个非常好用的 npm 包,提供了便捷的 API,方便我们在前端中调用智能合约的函数。

安装

首先,我们需要使用 npm 安装 @0xproject/contract-wrappers:

初始化

接下来,我们需要初始化 @0xproject/contract-wrappers。在初始化之前,我们需要用 web3.js 连接以太坊节点,并解锁账户,才能够对智能合约进行读写操作。

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

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

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

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

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

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

值得注意的是,我们需要指定网络 ID。这里使用的是 Kovan 网络,你需要根据实际情况进行修改。

查询余额

在对智能合约进行读操作时,我们可以直接调用合约函数。例如,查询某个地址在交易所中的代币余额,可以调用 Exchange 里的 getBalanceAsync 函数:

这里仅仅是查询余额,不需要进行一笔真正的交易,所以我们不需要解锁账户。

调用函数

在对智能合约进行写操作时,我们需要构造一笔交易,并调用 awaitTransactionSuccessAsync 函数等待交易被确认。

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

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

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

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

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

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

这里我们已经构造了一个订单,使用私钥进行了签名,然后调用 fillOrderAsync 函数进行交易。值得注意的是,我们需要提供 taker 的资产数量,并传入一笔交易的 gasPrice 和 gasLimit。

总结

通过本篇文章,我们学习了如何使用 @0xproject/contract-wrappers 进行智能合约的读写操作,包括查询余额和构造、签名、发送交易等。这对于开发基于以太坊的 dApp 非常有指导意义。

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