assetBalance method

Future<String> assetBalance({
  1. required String assetId,
  2. required int threshold,
  3. List<String>? members,
})

Implementation

Future<String> assetBalance({
  required String assetId,
  required int threshold,
  List<String>? members,
}) async {
  final outputs = <SafeUtxoOutput>[];
  int? latestSequence;
  while (true) {
    final data = (await getOutputs(
      members: members,
      threshold: threshold,
      asset: assetId,
      state: OutputState.unspent.name,
      offset: latestSequence == null ? null : latestSequence + 1,
    ))
        .data;
    outputs.addAll(data);
    if (data.length < _kLimit) {
      break;
    }
    latestSequence = data.last.sequence;
  }
  final balance = outputs.fold(
    Decimal.zero,
    (previousValue, element) => previousValue + Decimal.parse(element.amount),
  );
  return balance.toString();
}