Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update ethers.md #4

Merged
merged 1 commit into from
Jun 18, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions eth/开发/ethers.md
Original file line number Diff line number Diff line change
@@ -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/)
Loading