sui_graphql_client/query_types/
events.rs

1// Copyright (c) Mysten Labs, Inc.
2// SPDX-License-Identifier: Apache-2.0
3
4use crate::query_types::schema;
5use crate::query_types::transaction::TransactionBlockDigest;
6use crate::query_types::Address;
7use crate::query_types::Base64;
8use crate::query_types::PageInfo;
9
10// ===========================================================================
11// Events Queries
12// ===========================================================================
13
14#[derive(cynic::QueryFragment, Debug)]
15#[cynic(schema = "rpc", graphql_type = "Query", variables = "EventsQueryArgs")]
16pub struct EventsQuery {
17    #[arguments(after: $after, before: $before, filter: $filter, first: $first, last: $last)]
18    pub events: EventConnection,
19}
20
21// ===========================================================================
22// Events Query Args
23// ===========================================================================
24
25#[derive(cynic::QueryVariables, Debug)]
26pub struct EventsQueryArgs<'a> {
27    pub filter: Option<EventFilter>,
28    pub after: Option<&'a str>,
29    pub before: Option<&'a str>,
30    pub first: Option<i32>,
31    pub last: Option<i32>,
32}
33
34// ===========================================================================
35// Events Types
36// ===========================================================================
37
38#[derive(cynic::QueryFragment, Debug)]
39#[cynic(schema = "rpc", graphql_type = "EventConnection")]
40pub struct EventConnection {
41    pub page_info: PageInfo,
42    pub nodes: Vec<Event>,
43}
44
45#[derive(Clone, cynic::InputObject, Debug)]
46#[cynic(schema = "rpc", graphql_type = "EventFilter")]
47pub struct EventFilter {
48    pub emitting_module: Option<String>,
49    pub event_type: Option<String>,
50    pub sender: Option<Address>,
51    pub transaction_digest: Option<String>,
52}
53
54#[derive(cynic::QueryFragment, Debug)]
55#[cynic(schema = "rpc", graphql_type = "Event")]
56pub struct Event {
57    pub bcs: Base64,
58    pub transaction_block: Option<TransactionBlockDigest>,
59}