queryTransactionsBySender method
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?,
);
}