npm 包 digger-contracts 使用教程

阅读时长 4 分钟读完

在前端开发中,我们经常需要与智能合约交互来实现去中心化应用。而 digger-contracts 就是一个能够很好地帮助我们连接智能合约的 npm 包。在这篇文章中,我们将详细介绍如何使用 digger-contracts,包括安装、配置、以及示例代码。

安装

使用下面的命令来安装 digger-contracts:

配置

在你的代码中,你需要指定你的 abi(JSON 接口定义) 和 contractAddress(智能合约地址) 以连接智能合约。假设你已经有一个 abi 文件和智能合约地址为 '0x12345678',下面是基本的配置代码:

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

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

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

其中,web3Provider 是你的 web3Provider,accounts 是你的账户数组。如果你不传递 accounts,则默认使用接口环境设置的账户。

使用

在配置完成后,你就可以使用下列方法来进行交互:

getInstance(config)

使用指定的 config 创建一个实例。

createAccount()

使用 web3 来创建一个新的账户,并返回这个账户。

getAccounts()

返回当前可用的账户列表。

getGasPrice()

返回当前的 gas 价格。

getBalance(address)

返回给定地址的余额,单位为 wei。

getTxReceipt(txHash)

用给定的 tx hash 返回交易清单。

call(method, args)

使用给定的方法和参数进行调用,并返回调用结果。

sendTransaction(options)

使用给定的 options 值来发送一个交易。

estimateGas(options)

使用给定的 options 值来估算需要的 gas 数量。

示例代码

下面是一个简单的合约与 digger-contracts 的交互代码:

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

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

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

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

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

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

这个示例代码展示了如何使用 digger-contracts 的一些基本操作。更多详细的使用说明可以查看官方文档。

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