getMultiUtxoInfo method

Future<Map<String, List<Utxo>>> getMultiUtxoInfo({
  1. required List<String> addresses,
})

Implementation

Future<Map<String, List<Utxo>>> getMultiUtxoInfo(
    {required List<String> addresses}) async {
  int addressLimit = 10;
  Map<String, List<Utxo>> addressMap = {};

  List<Uri> urlCalls = [];

  for (int i = 0; i < addresses.length; i += addressLimit) {
    int end = (i + addressLimit < addresses.length)
        ? i + addressLimit
        : addresses.length;
    urlCalls.add(api(
        'address/utxos', {'addresses': addresses.sublist(i, end).join(',')}));
  }
  // Await the http get response, then decode the json-formatted response.
  try {
    for (int i = 0; i < urlCalls.length; i++) {
      var response = await client.get(urlCalls[i]);

      response.forEach((value) {
        List<Utxo> _utxos = List<Utxo>.from(value['utxos'].map((ut) {
          return Utxo.fromJson(ut);
        }));
        addressMap[value['address']] = _utxos;
      });
    }

    return addressMap;
  } catch (e) {
    throw e;
  }
}