multipleERC20Balances method

Future<List<BigInt>> multipleERC20Balances(
  1. List<String> tokens,
  2. List<String> addresses
)

Implementation

Future<List<BigInt>> multipleERC20Balances(
  List<String> tokens,
  List<String> addresses,
) async {
  assert(addresses.isNotEmpty && tokens.isNotEmpty,
      'addresses and tokens should not be empty');
  assert(addresses.length == tokens.length,
      'addresses and tokens length should be equal');

  final payload = new Iterable<int>.generate(tokens.length)
      .map(
        (e) => MulticallPayload.fromFunctionAbi(
          tokens[e],
          'function balanceOf(address) view returns (uint)',
          [addresses[e]],
        ),
      )
      .toList();

  final res = await aggregate(payload);

  return res.returnData.map((e) => BigInt.parse(e)).toList();
}