queryTransactionsByObject method
Query transaction digests that affected a given object (its history).
Implementation
Future<TransactionDigestPage> queryTransactionsByObject(
String objectId, {
int first = 20,
String? after,
}) async {
const q = r'''
query ($obj: SuiAddress!, $first: Int!, $after: String) {
transactions(
first: $first
after: $after
filter: { affectedObject: $obj }
) {
pageInfo { hasNextPage endCursor }
nodes { digest }
}
}
''';
final data = await transport.query(q, variables: {
'obj': objectId,
'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?,
);
}