queryTransactionsByObject method

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

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