ethers.js 教程

推特@Hita_DAO  DiscordHitaDAO


ethers.js是一个完整而紧凑的开源库,用于与以太坊区块链及其生态系统进行交互。

它通常可用于创建去中心化应用程序 (dapps)、钱包(如 MetaMask 和 Tally)以及其他需要读取和写入区块链的工具和简单脚本。

与更早出现的web3.js相比,它有以下优点:

  1. 代码更加紧凑:ethers.js大小为116.5 kB,而web3.js为590.6 kB。
  2. 更加安全:Web3.js认为用户会在本地部署以太坊节点,私钥和网络连接状态由这个节点管理(实际并不是这样);ethers.js中,Provider提供器类管理网络连接状态,Wallet钱包类管理密钥,安全且灵活。
  3. 原生支持ENS





 

1. ethers.js 用途

‌Ethers.js库是一个强大的工具,用于与以太坊区块链进行交互。例如它可以执行以下任务:

  • 代币转账
  • 创建智能合约
  • 与智能合约进行交互,读取合约信息
  • ...

 

2. 学习基础

阅读本教程,需要你有拥有一定的 web 前端开发背景,对 Javascript 语法和 Ajax 运行机制有所了解。

如果你对 Ajax 与 web 服务器进行通信的机制很熟悉,那么使用 ethers.js 完全没有问题。ethers.js 与 Ajax 类似,可以使用 ethers.js 读写以太坊区块链。

 

3. ethers.js工作流程

ethers.js 是一个用于以太坊区块链的JavaScript和TypeScript库,‌它提供了丰富的API来处理以太坊的各种功能,‌比如钱包管理、‌与智能合约交互、‌发送交易等。‌ethers.js 的工作原理主要涉及以下几个方面:‌

1.‌钱包管理‌:‌

  • ethers.js 支持多种类型的钱包,‌包括随机钱包、‌助记词钱包、‌私钥钱包等。‌
  • 钱包用于管理用户的私钥和公钥,‌以及进行签名操作。‌

2.‌与以太坊节点交互‌:‌

  • ethers.js 通过JSON-RPC与以太坊节点(‌如Geth、‌Parity、‌Infura等)‌进行通信。‌
  • 它发送请求到节点,‌并处理节点的响应,‌以执行各种操作,‌如查询账户余额、‌读取智能合约状态、‌发送交易等。‌

3.‌智能合约交互‌:‌

  • ethers.js 提供了与智能合约交互的API,‌允许用户读取和写入智能合约的状态。‌
  • 它支持通过ABI(‌应用程序二进制接口)‌与智能合约进行交互,‌ABI定义了如何调用智能合约的函数以及这些函数的参数和返回值。‌

4.‌交易发送‌:‌

  • ethers.js 允许用户构建和发送交易到以太坊网络。‌
  • 它处理交易的签名、‌序列化、‌发送到节点等步骤。‌

5.‌监听和事件‌:‌

  • ethers.js 提供了监听以太坊网络上事件的能力,‌如监听新的区块、‌交易、‌日志等。‌
  • 这使得应用程序可以实时响应区块链上的变化。‌

6.‌工具和实用程序‌:‌

  • ethers.js 还提供了一些工具和实用程序,‌如单位转换、‌地址处理、‌交易和区块解析等。‌

总的来说,‌ethers.js 的工作原理是基于与以太坊节点的通信,‌通过提供丰富的API来简化与以太坊区块链交互的复杂性。‌这使得开发人员可以更容易地构建与以太坊交互的应用程序。