npm 包 @ethersproject/contracts 使用教程

简介

@ethersproject/contracts 是一个 JavaScript 库,提供了一个简单的 API 来与以太坊智能合约进行交互。它能够通过 ABI 将函数调用和交易封装成一个 JavaScript 对象,并用 web3 来进行签名和发送。在这篇文章中,我们将讨论如何使用 @ethersproject/contracts 来与智能合约进行交互。

开始

首先,你需要为你的项目安装 @ethersproject/contracts:

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

然后你需要导入库文件:

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

然后,你需要配置一个 Provider。Provider 提供了一个访问节点的接口,以太坊网络使用 JSON-RPC 协议,这个接口实现了这个协议。

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

接下来,你需要创建一个新的 Contract 对象来处理你的智能合约交互。你需要提供智能合约的地址和 ABI。

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

现在,我们已经完成了 @ethersproject/contracts 的初始化。

获得智能合约函数返回值

现在,我们可以调用智能合约中的函数并获取返回值:

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

发送交易

调用智能合约函数也可以可以发送交易,需要使用钱包进行签名:

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

事件监听

智能合约返回值和交易状态也可被监听:

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

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

结论

@ethersproject/contracts 提供了一个方便的 API 来与以太坊智能合约进行交互。本篇文章介绍了该库的基本使用方法,包括获得智能合约函数返回值,发送交易和事件监听等。如果你想了解更多关于以太坊开发的内容,请访问以太坊开发者入门指南。

示例代码

完整示例代码请参考本篇文章中使用的代码,具体请见 github

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

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

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

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

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

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

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/5eedc1c5b5cbfe1ea0611ef8


猜你喜欢

  • npm 包 @types/signalr-no-jquery 使用教程

    SignalR 是 Microsoft 推出的一种实时通信框架,其官方提供了多种语言的支持,其中包括前端的 JavaScript。@types/signalr-no-jquery 是 SignalR ...

    4 年前
  • npm 包 @types/signals 使用教程

    在前端开发中,我们经常需要处理异步事件和回调函数,而在处理这些事件和函数时,多个事件之间可能存在依赖或者相互影响的情况,这时候就需要使用到信号处理机制。在 JavaScript 中,可以使用 npm ...

    4 年前
  • npm 包 @types/signature_pad 使用教程

    在前端开发中,手写签名的功能是很常见的。而在 TypeScript 项目中,为了让编译器能够识别手写签名相关的类型,我们需要使用一个名为 @types/signature_pad 的 npm 包。

    4 年前
  • npm 包 @types/simple-assign 使用教程

    介绍 在前端开发中,我们经常会使用 TypeScript 来编写代码,它是一个强类型的 JavaScript 超集。但是 TypeScript 并没有内置的对象和函数类型定义。

    4 年前
  • npm 包 @types/simple-cw-node 使用教程

    如果你是一名前端工程师,你可能会用到很多的开源库和框架来简化你的工作。而这些库和框架通常是使用 JavaScript 编写的。在 JavaScript 中,类型是在运行时动态推导出来的,这会给开发带来...

    4 年前
  • npm包eslint-config-richienb的使用教程

    简介 eslint-config-richienb是一个基于ESLint的NPM包,由richienb维护。它是一个可以用来规范JavaScript编程风格的工具,该工具可以很好的定义标准化的代码风格...

    4 年前
  • npm 包 random-rejection 使用教程

    前言 在编写 JavaScript 时,我们常常需要处理异步操作。异步操作中难免会出现错误,比如服务器故障、网络断连等等。而如何优雅地处理这些错误则成为了我们优秀代码的一个重要组成部分。

    4 年前
  • npm 包 promise-infinite 使用教程

    前言 在前端开发中,我们常常会遇到需要无限滚动的情况。如果直接实现无限滚动,会导致性能问题,因为我们需要不断地请求数据以及渲染页面。 那么,有没有一种方法可以让我们实现无限滚动,并且不影响性能呢?答案...

    4 年前
  • npm 包 @types/simple-lru 使用教程

    简介 在前端开发中,很多时候需要使用本地缓存来存储数据或者页面状态,以便提升用户体验。而 simple-lru 是一个可以帮助我们实现此功能的轻量级 JavaScript 缓存模块。

    4 年前
  • npm 包 promise-timeout-rejection 使用教程

    前言 在编写 JavaScript 前端代码时,我们通常会使用 Promise 对象来处理异步操作,以保证代码的可读性和性能。然而,有时候我们需要对 Promise 进行一些额外的处理,比如设置超时,...

    4 年前
  • npm 包 @types/simple-oauth2 使用教程

    npm 包 @types/simple-oauth2 使用教程 前言 在开发前端应用时,我们通常需要与后端服务进行交互,有时候需要使用 OAuth2.0 库来实现授权、鉴权等功能,而 @types/s...

    4 年前
  • npm 包 @types/simple-url-cache 使用教程

    在前端开发中,缓存是一个非常重要的概念,它可以极大地提高前端应用的性能和用户体验。而基于 URL 的缓存则是其中最常用的一种方式之一。@types/simple-url-cache 是一个 npm 包...

    4 年前
  • npm包@types/simple-xml使用教程

    介绍 @types/simple-xml是一个npm包,提供了Simple-XML这个Java开发的XML解析和生成库的TypeScript类型声明。这个包主要用于在TypeScript项目中使用Si...

    4 年前
  • npm 包 @types/simplebar 使用教程

    简介: @types/simplebar 是一个npm包,用于在TypeScript中实现对simplebar的类型检查。它提供了类型定义,以便在代码进行编译时进行类型检查。

    4 年前
  • npm 包 @types/simplesmtp 使用教程

    简介 在前端开发过程中,我们常常需要发送邮件,而其中涉及的一个核心组件就是 SMTP,简单邮件传输协议。而 @types/simplesmtp,就是一个为 SMTP 库提供类型定义的 npm 包。

    4 年前
  • npm 包 @types/simplestorage.js 使用教程

    在前端开发中,我们经常需要使用 localStorage 来存储一些数据,但是直接使用 localStorage 有一些限制,例如只能存储字符串类型的数据,不能存储复杂的对象类型数据等。

    4 年前
  • npm 包 @types/single-line-log 使用教程

    在前端项目中,经常需要输出一些信息到控制台或者日志文件中,以便于开发者调试代码或者查看运行状态。在这个过程中,有时需要在一行中更新输出的信息,这就需要使用单行输出的方式。

    4 年前
  • npm 包 @types/sinon-as-promised 使用教程

    在前端开发中,我们经常需要使用 Mock 测试来模拟异步请求或异步操作的返回结果,以便于在没有与后端接口集成的情况下进行开发和测试。其中,sinon 是一个流行的 Mock 测试库,它能够帮助我们轻松...

    4 年前
  • npm 包 @types/sinon-chrome 使用教程

    在编写前端代码时,我们通常会用到一些浏览器提供的 API,比如 Chrome 的扩展 API。但是,使用这些 API 时我们有时候会遇到一些问题,比如无法测试自己编写的 Chrome 扩展,因为无法模...

    4 年前
  • npm 包 @types/sinon-express-mock 使用教程

    前言 在进行前端开发的过程中,我们经常需要模拟 HTTP 请求。为了方便我们进行测试和开发,有了像 sinon-express-mock 这样的 npm 包,可以帮助我们轻松地模拟 HTTP 请求。

    4 年前

相关推荐

    暂无文章