multipleERC20Allowance method

Future<List<BigInt>> multipleERC20Allowance(
  1. List<String> tokens,
  2. List<String> owners,
  3. List<String> spenders
)

Implementation

Future<List<BigInt>> multipleERC20Allowance(
  List<String> tokens,
  List<String> owners,
  List<String> spenders,
) async {
  assert(tokens.isNotEmpty && owners.isNotEmpty && spenders.isNotEmpty);
  assert(tokens.length == owners.length && tokens.length == spenders.length);

  final payload = new Iterable<int>.generate(tokens.length)
      .map(
        (e) => MulticallPayload.fromFunctionAbi(
          tokens[e],
          'function allowance(address owner, address spender) external view returns (uint256)',
          [owners[e], spenders[e]],
        ),
      )
      .toList();

  final res = await aggregate(payload);

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