@curvefi/ethcall

中文文档
6.0.20发布于 2026/04/16MITTypeScriptES Module构建来源已验证近 30 天下载 7082

环绕多声调的相容包装器

中文使用文档
文档目录4 节
  1. API 密码
  2. 示例
  3. 捐款
  4. 无部署的多点呼叫

召唤

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

使用 MakerDAO 软件 多点预约合同 可以在单一的HTTP查询中提出多个请求。 自动编码并解码数据.

电源 辅助编码器 财务报告和审定财务报表 乙醚(js)。 。 。 .

npm install ethcall

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

此软件包使用 导入请求,它得到Vite 4+,Rollup 3+,和Node 16+的支持.

这一一揽子计划是纯无害环境管理的一揽子计划。 跟随 本指南 需要更多信息.

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): 返回账户醚余额

示例

又见 实例 供参考.

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平衡 .

你可以读到更多关于部署无多呼 这里。 。 。 .

版本与发布记录

@curvefi/ethcall 共发布 7 个版本,首次发布于 2024/06/21;过去 12 个月发布了 1 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
6.0.20latest2026/04/166 个月前
6.0.162025/08/141.2 年前
6.0.152025/06/111.4 年前
6.0.142025/06/041.4 年前
6.0.132025/03/031.7 年前
6.0.122025/02/051.8 年前

关于 @curvefi/ethcall 的常见问题

@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 和提交记录判断。