@defihelper/ethers-multicall
TypeScript icon, indicating that this package has built-in type declarations

0.3.6 • Public • Published

ethers-multicall

Make multiple Ethereum network requests in a single HTTP query. ethcall for ethers v5.

API

  • Contract(address, abi): Create contract instance; calling contract.callFuncName will yield a call object
  • all(calls): Execute all calls in a single request
  • calls: List of helper call methods
  • getEthBalance(address): Returns account ether balance

Example

import { Contract, Provider } from 'ethers-multicall';
import { ethers } from 'ethers';

import erc20Abi from './abi/erc20.json';

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

const daiAddress = '0x6b175474e89094c44da98b954eedeac495271d0f';

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

  await ethcallProvider.init(); // Only required when `chainId` is not provided in the `Provider` constructor

  const daiContract = new Contract(daiAddress, erc20Abi);

  const uniswapDaiPool = '0x2a1530c4c41db0b0b2bb646cb5eb1a67b7158667';

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

  const [ethBalance, daiBalance] = await ethcallProvider.all(
    [ethBalanceCall, daiBalanceCall],
    {} // Call options
  );

  console.log('ETH Balance:', ethBalance.toString());
  console.log('DAI Balance:', daiBalance.toString());
}

call();

Readme

Keywords

Package Sidebar

Install

npm i @defihelper/ethers-multicall

Weekly Downloads

0

Version

0.3.6

License

MIT

Unpacked Size

27 kB

Total Files

20

Last publish

Collaborators

  • defihelper