JSPM

@kargakis/ethers-multicall

0.6.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 57
  • Score
    100M100P100Q71646F
  • License MIT

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

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; 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]);
    
      console.log('ETH Balance:', ethBalance.toString());
      console.log('DAI Balance:', daiBalance.toString());
    }
    
    call();