queryEventsByModule method

Future<List<Map<String, dynamic>>> queryEventsByModule(
  1. String packageId,
  2. String module, {
  3. int first = 20,
  4. String? after,
})

Query events emitted by a Move module, e.g. package 0x2, module coin.

Returns the raw event nodes (transactionModule, sender, contents).

Implementation

Future<List<Map<String, dynamic>>> queryEventsByModule(
  String packageId,
  String module, {
  int first = 20,
  String? after,
}) async {
  const q = r'''
    query ($module: String!, $first: Int!, $after: String) {
      events(
        first: $first
        after: $after
        filter: { module: $module }
      ) {
        pageInfo { hasNextPage endCursor }
        nodes {
          transactionModule { name }
          sender { address }
          contents { type { repr } json }
        }
      }
    }
  ''';
  final data = await transport.query(q, variables: {
    'module': '$packageId::$module',
    'first': first,
    if (after != null) 'after': after,
  });
  final events = data['events'] as Map<String, dynamic>;
  return (events['nodes'] as List).cast<Map<String, dynamic>>();
}