Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@kargakis/ethers-multicall) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
ethers-multicall
Make multiple Ethereum network requests in a single HTTP query. multicall for ethers v5.
Build
yarn
yarn build
Test
yarn test
Publish
Set your NPM auth token in .npmrc
, then run:
npm publish
API
Contract(address, abi)
: Create contract instance; callingcontract.callFuncName
will yield acall
objectall(calls)
: Execute all calls in a single requestcalls
: List of helper call methodsgetEthBalance(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]);
console.log('ETH Balance:', ethBalance.toString());
console.log('DAI Balance:', daiBalance.toString());
}
call();