npm 包 @97network/gdao 使用教程

阅读时长 6 分钟读完

介绍

@97network/gdao 是一个基于 Gnosis Safe 智能合约的 Node.js 包。它提供了一系列简单易用的函数接口,供 Node.js 开发者调用 Gnosis Safe 合约的方法。它能够让你在 Node.js 应用中轻松地读取、创建、修改 Gnosis Safe 合约。

安装

要使用 @97network/gdao,你需要首先在你的项目中安装它。可以通过 npm 安装,命令如下:

使用

使用 @97network/gdao,你需要连接一个以太坊节点,并且拥有对 Gnosis Safe 合约的访问权限。以下为一个简单的示例代码,它演示了如何读取 Gnosis Safe 合约的余额:

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

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

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

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

在上述示例代码中,我们首先创建了一个 Web3 实例,并将其连接到了以太坊节点。然后,我们创建了一个 Gdao 实例,并传入了我们所连接的 Web3 对象。接着,我们指定了要查询余额的 Gnosis Safe 的地址,并调用了 gdao 的 getSafeBalance 函数。最后,我们输出了获取到的余额。

如果你希望在开发中使用本地的以太坊节点,可以参考以下代码:

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

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

-- ---------

在上述代码中,我们使用了 ganache-core 包作为本地的以太坊节点。我们创建了一个 provider 对象,并将其传入了 Web3 中。最后,我们将连接到这个 provider 的 web3 对象传递给了 gdao。

API

构造函数

创建一个 Gdao 实例。

参数:

  • web3 - 一个已连接到以太坊网络的 web3 实例对象。
  • options - 配置对象,可选,包含以下字段:
    • gasPrice - 以 Gwei 为单位的 gas 价格。默认值为 20 Gwei。
    • gasLimit - 每次交易的 gas 上限。默认值为 300000。

getSafeBalance

获取指定 Gnosis Safe 合约的余额。

参数:

  • safeAddress - 待查询余额的 Gnosis Safe 合约地址。

getSafeInfo

获取指定 Gnosis Safe 合约的信息。

参数:

  • safeAddress - 待查询信息的 Gnosis Safe 合约地址。

返回值:

  • info - 包含如下字段的对象:
    • owners - Gnosis Safe 交易授权者的地址列表。
    • threshold - 交易的多重签名阈值。
    • currentNonce - 当前交易 nonce,用于避免交易重放。

signTransaction

使用指定的私钥对交易进行签名。

参数:

  • transaction - 代表待签名交易的对象,包含以下字段:
    • from - 发送者地址。
    • to - 接收者地址。
    • value - 转账金额。
    • data - 调用合约的数据。
    • gas - gas 上限。
    • gasPrice - gas 价格。
    • nonce - 交易 nonce。
    • chainId - 链的 ID。
  • privateKey - 用于进行签名的私钥。

返回值:

  • signature - 签名结果,包含 r、s 和 v 值。

executeTransaction

使用指定的私钥对交易进行签名,并将签名后的交易发送给 Gnosis Safe 合约进行执行。注意,本函数并不会将交易上链。实际应用中,你需要通过 web3 等工具将交易上链。

参数:

  • safeAddress - 待操作的 Gnosis Safe 合约地址。
  • transaction - 代表待执行交易的对象,包含以下字段:
    • from - 发送者地址。
    • to - 接收者地址。
    • value - 转账金额。
    • data - 调用合约的数据。
    • gas - gas 上限。
    • gasPrice - gas 价格。
    • nonce - 交易 nonce。
    • chainId - 链的 ID。
  • privateKey - 用于进行签名的私钥。

返回值:

  • result - 一个包含如下字段的对象:
    • transactionHash - 交易哈希。
    • success - 是否执行成功。
    • error - 错误信息。

结语

通过本文,你应该已经掌握了如何使用 @97network/gdao 包进行 Gnosis Safe 合约的交互了。当然,这只是一个基础,你可以通过查看 Web3.js API 等文档来深入学习和了解更多内容。

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

纠错
反馈