分享百科

ethers.js

Ethers.js

Ethers.js 是一个用于与以太坊区块链交互的 JavaScript 库。它通过提供一套工具来简化去中心化应用程序(Dapps)的开发过程,因其易用性、全面的功能和轻量化的特点在 Web3 生态系统中广泛使用。 除了Dapp开发,也常用于创建钱包(如MetaMask和Tally)以及其他需要读写区块链的工具和简单脚本。

Ethers.js 的主要特点

  • 轻量且模块化: Ethers.js 设计轻量且模块化,便于在项目中使用。它提供了一系列模块,可以根据应用需求单独或一起使用。
  • 用户友好的 API: 该库提供了简单直观的 API,使各个水平的开发者都能轻松上手。这种易用性有助于加快基于以太坊的应用程序的开发过程。
  • 全面的文档: Ethers.js 附带了详尽的文档,包括示例和教程,帮助开发者快速理解和利用其功能。
  • TypeScript 支持: Ethers.js 用 TypeScript 编写,并提供完整的 TypeScript 定义,使得在 IDE 中进行类型检查和自动补全的开发体验更好。
  • 兼容性: 它兼容各种以太坊网络,包括主网、测试网(如 Ropsten、Kovan、Rinkeby、Goerli)和私有网络。它还支持多个以太坊兼容的区块链。

Ethers.js 的核心组件

  • Providers(提供者):Providers用于连接以太坊网络。Ethers.js 支持多种类型的Providers,包括:

    • JSON-RPC Provider:直接连接到 JSON-RPC 节点。
    • Infura Provider:通过 Infura 服务连接。
    • Alchemy Provider:通过 Alchemy 服务连接。
    • Etherscan Provider:使用 Etherscan API 连接。
  • Signers(签名者):Signers代表一个以太坊账户,可以签署交易和消息。常见的Signers包括:
    • Wallet(钱包):代表一个可以用来签署交易的私钥。
    • JsonRpcSigner:代表由 JSON-RPC 提供者管理的账户。
  • Contracts(合约):Ethers.js 提供了一个合约抽象来与智能合约交互。可以使用 Contract 类轻松地部署、交互和查询智能合约。
  • Utilities(工具):Ethers.js 包含一整套用于处理以太坊数据格式的工具函数,例如:
    • 解析和格式化以太坊值(如将 wei 转换为 ether)
    • 处理十六进制字符串和字节数组
    • 哈希和加密函数

目前Ethers.js的最新版本为V6,更多内容请参考官方文档

✍️更新/纠错
登链社区