# @curvefi/ethcall 中文文档

规范地址：https://npmcn.com/package/%40curvefi/ethcall/

版本：6\.0\.20
npm 元数据更新时间：2026-04-15T20:09:10.416Z
中文译文更新时间：2026-11-11T05:08:50.398Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40curvefi/ethcall
原文对照：https://npmcn.com/package/%40curvefi/ethcall/?lang=original
项目主页：https://github.com/curvefi/ethcall#readme
源码仓库：https://github.com/curvefi/ethcall

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：158 kB，39 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：2 个
- peer 依赖：ethers ^6\.0\.0
- 首次发布：2024-06-21T09:00:53.624Z
- 最新版本发布：2026-04-15T20:09:10.146Z
- 近 30 天下载量：7082（2026-10-11 至 2026-11-09，npm 官方下载统计）
- 已发布版本数：7（近 12 个月 1 个）

## 中文简介

环绕多声调的相容包装器

## 安装

```sh
npm install @curvefi/ethcall
```

也可以使用：`pnpm add @curvefi/ethcall`、`yarn add @curvefi/ethcall`、`bun add @curvefi/ethcall`

## README

# 召唤

用于给Ethereum区块链打电话的用户库.

使用 MakerDAO 软件 [多点预约合同](https://github.com/makerdao/multicall) 可以在单一的HTTP查询中提出多个请求。 自动编码并解码数据.

电源 [辅助编码器](https://github.com/Destiner/abi-coder) 财务报告和审定财务报表 [乙醚(js)](https://github.com/ethers-io/ethers.js/)。 。 。 .

```
npm install ethcall
```

> 此包需要醚V6. 如果使用醚V5,需要安装ethcall V5.

> 此软件包使用 [导入请求](https://github.com/tc39/proposal-import-attributes#import-attributes),它得到Vite 4+,Rollup 3+,和Node 16+的支持.

> 这一一揽子计划是纯无害环境管理的一揽子计划。 跟随 [本指南](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c) 需要更多信息.

## API 密码

-   `Contract`
    -   `constructor(address, abi)`: 创建合同实例
    -   `CALL_FUNC_NAME`: 产量a `call` 对象; 使用类似于 `ethers` 合同类
-   `Provider`
    -   `constructor(chainId, provider, config)`: 创建提供者实例
    -   `all(calls)`: 执行单个请求中的所有调用
    -   `tryAll(calls)`:在一个单一的请求中执行所有调用. 忽略回调和返回 `null` 值取而代之的返回数据(在 `tryAggregate` 方法)
    -   `tryEach(calls, canFail)`:在一个单一的请求中执行所有调用. 忽略回调和返回 `null` 值取而代之的是允许失败的调用数据(在 `aggregate3` 方法)
    -   `getEthBalance(address)`: 返回账户醚余额

## 示例

> 又见 [实例](https://npmcn.com/package/%40curvefi/ethcall/examples) 供参考.

```js
import { Contract, Provider } from 'ethcall';
import { InfuraProvider } from 'ethers';

import erc20Abi from './abi/erc20.json' with { type: 'json' };

const infuraKey = 'INSERT_YOUR_KEY_HERE';
const provider = new InfuraProvider('mainnet', infuraKey);

const daiAddress = '0x6b175474e89094c44da98b954eedeac495271d0f';

async function call() {
  const ethcallProvider = new Provider(1, provider);

  const daiContract = new Contract(daiAddress, erc20Abi);

  const uniswapDaiPool = '0x2a1530c4c41db0b0b2bb646cb5eb1a67b7158667';

  const ethBalanceCall = ethcallProvider.getEthBalance(uniswapDaiPool);
  const daiBalanceCall = daiContract.balanceOf(uniswapDaiPool);

  const data = await ethcallProvider.all([ethBalanceCall, daiBalanceCall], {
    blockTag: 'latest',
  });

  const ethBalance = data[0];
  const daiBalance = data[1];

  console.log('eth balance', ethBalance.toString());
  console.log('dai balance', daiBalance.toString());
}

call();
```

## 捐款

所有Mulitcall合同都存放在 `src/multicall.ts` 文档。 有三个 `getMulticall` 与三个多呼版本相对应的方法。 要增加新合同,需要了解其版本、地址、基本链条的链条和(可选的)多呼合同所在区块.

## 无部署的多点呼叫

如果查询一个没有部署多呼叫的链条,或者在部署合同之前查询一个历史块,则将使用无部署版本。 简言之,无所部署的多调"集"所部署的合同并返回完全相同的数据. 注意您无法使用无部署版本查询ETH平衡 .

你可以读到更多关于部署无多呼 [这里](https://destiner.io/blog/post/deployless-multicall/)。 。 。 .

## 常见问题

### @curvefi/ethcall 是什么？

环绕多声调的相容包装器

### 如何安装 @curvefi/ethcall？

在项目目录运行 npm install @curvefi/ethcall，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：ethers（^6\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @curvefi/ethcall 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @curvefi/ethcall 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @curvefi/ethcall 可以商用吗？

@curvefi/ethcall 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @curvefi/ethcall 的下载量有多少？

根据 npm 官方下载统计，@curvefi/ethcall 在 2026/10/11 – 2026/11/09 这 30 天内被下载 7,082 次，日均约 236 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @curvefi/ethcall 还在维护吗？

最新版本 6\.0\.20 发布于 2026/04/16（6 个月前）；至今共发布 7 个版本，其中过去 12 个月发布了 1 个；首次发布于 2024/06/21。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

