召唤
用于给Ethereum区块链打电话的用户库.
使用 MakerDAO 软件 多点预约合同 可以在单一的HTTP查询中提出多个请求。 自动编码并解码数据.
电源 辅助编码器 财务报告和审定财务报表 乙醚(js)。 。 。 .
npm install ethcall
此包需要醚V6. 如果使用醚V5,需要安装ethcall V5.
此软件包使用 导入请求,它得到Vite 4+,Rollup 3+,和Node 16+的支持.
这一一揽子计划是纯无害环境管理的一揽子计划。 跟随 本指南 需要更多信息.
API 密码
Contractconstructor(address, abi): 创建合同实例CALL_FUNC_NAME: 产量acall对象; 使用类似于ethers合同类
Providerconstructor(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平衡 .
你可以读到更多关于部署无多呼 这里。 。 。 .