diff --git "a/eth/\345\274\200\345\217\221/ethers.md" "b/eth/\345\274\200\345\217\221/ethers.md" index e69de29..fe5ae1f 100644 --- "a/eth/\345\274\200\345\217\221/ethers.md" +++ "b/eth/\345\274\200\345\217\221/ethers.md" @@ -0,0 +1,27 @@ +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,更多内容请参考[官方文档](https://docs.ethers.org/v6/)