queryTransactionsBySender method

Future<TransactionDigestPage> queryTransactionsBySender(
  1. String sender, {
  2. int first = 20,
  3. String? after,
})

Query transaction digests filtered by sender address.

Returns the page of digests and the end cursor. Full result hydration is left to callers via the gRPC getTransaction once digests are known.

Implementation

Future<TransactionDigestPage> queryTransactionsBySender(
  String sender, {
  int first = 20,
  String? after,
}) async {
  const q = r'''
    query ($sender: SuiAddress!, $first: Int!, $after: String) {
      transactions(
        first: $first
        after: $after
        filter: { sentAddress: $sender }
      ) {
        pageInfo { hasNextPage endCursor }
        nodes { digest }
      }
    }
  ''';
  final data = await transport.query(q, variables: {
    'sender': sender,
    'first': first,
    if (after != null) 'after': after,
  });
  final tx = data['transactions'] as Map<String, dynamic>;
  final nodes = (tx['nodes'] as List)
      .map((n) => (n as Map<String, dynamic>)['digest'] as String)
      .toList();
  final pageInfo = tx['pageInfo'] as Map<String, dynamic>;
  return TransactionDigestPage(
    digests: nodes,
    hasNextPage: pageInfo['hasNextPage'] as bool,
    endCursor: pageInfo['endCursor'] as String?,
  );
}