listTransfers method

Future<List<TransferDoc>> listTransfers({
  1. required String operator,
  2. String? accountId,
  3. String? contextId,
  4. int? maxTxId,
  5. int minTxId = 0,
  6. int limit = 10,
  7. bool includeChildAccounts = false,
})

Implementation

Future<List<TransferDoc>> listTransfers({
  required String operator,
  String? accountId,
  String? contextId,
  int? maxTxId,
  int minTxId = 0,
  int limit = 10,
  bool includeChildAccounts = false,
}) async {
  final filterCount =
      (accountId == null ? 0 : 1) + (contextId == null ? 0 : 1);
  if (filterCount != 1) {
    throw ArgumentError('Invalid filter');
  }
  final request = ListTransferRequest()
    ..minTxId = Int64(minTxId)
    ..limit = Int64(limit)
    ..includeChildAccounts = includeChildAccounts;

  if (accountId != null) {
    request.accountId = hex.decode(accountId);
  }
  if (contextId != null) {
    request.contextId = hex.decode(contextId);
  }
  if (maxTxId != null) {
    request.maxTxId = Int64(maxTxId);
  }

  final envelop = await requestEnvelope(request: request);
  final response =
      await getServiceClient(operator).query.listTransfers(envelop);
  return response.transfers
      .map((transfer) => TransferDoc(transfer, operator))
      .toList();
}