iota_package_dump/
query.rs1use cynic::{Operation, QueryBuilder};
6
7#[cynic::schema("iota")]
8mod schema {}
9
10#[derive(cynic::Scalar, Debug)]
11pub(crate) struct IotaAddress(pub String);
12
13#[derive(cynic::Scalar, Debug)]
14pub(crate) struct Base64(pub String);
15
16#[derive(cynic::Scalar, Debug)]
17pub(crate) struct UInt53(pub u64);
18
19pub(crate) mod limits {
21 use super::*;
22
23 pub(crate) fn build() -> Operation<Query> {
24 Query::build(())
25 }
26
27 #[derive(cynic::QueryFragment, Debug)]
28 pub(crate) struct Query {
29 pub(crate) service_config: ServiceConfig,
30 }
31
32 #[derive(cynic::QueryFragment, Debug)]
33 pub(crate) struct ServiceConfig {
34 pub(crate) max_page_size: i32,
35 }
36}
37
38pub(crate) mod packages {
40 use super::*;
41
42 pub(crate) fn build(
43 first: i32,
44 after: Option<String>,
45 after_checkpoint: Option<UInt53>,
46 before_checkpoint: Option<UInt53>,
47 ) -> Operation<Query, Vars> {
48 Query::build(Vars {
49 first,
50 after,
51 filter: Some(MovePackageCheckpointFilter {
52 after_checkpoint,
53 before_checkpoint,
54 }),
55 })
56 }
57
58 #[derive(cynic::QueryVariables, Debug)]
59 pub(crate) struct Vars {
60 pub(crate) first: i32,
61 pub(crate) after: Option<String>,
62 pub(crate) filter: Option<MovePackageCheckpointFilter>,
63 }
64
65 #[derive(cynic::InputObject, Debug)]
66 pub(crate) struct MovePackageCheckpointFilter {
67 pub(crate) after_checkpoint: Option<UInt53>,
68 pub(crate) before_checkpoint: Option<UInt53>,
69 }
70
71 #[derive(cynic::QueryFragment, Debug)]
72 #[cynic(variables = "Vars")]
73 pub(crate) struct Query {
74 pub(crate) checkpoint: Option<Checkpoint>,
75 #[arguments(
76 first: $first,
77 after: $after,
78 filter: $filter,
79 )]
80 pub(crate) packages: MovePackageConnection,
81 }
82
83 #[derive(cynic::QueryFragment, Debug)]
84 pub(crate) struct Checkpoint {
85 pub(crate) sequence_number: UInt53,
86 }
87
88 #[derive(cynic::QueryFragment, Debug)]
89 pub(crate) struct MovePackageConnection {
90 pub(crate) page_info: PageInfo,
91 pub(crate) nodes: Vec<MovePackage>,
92 }
93
94 #[derive(cynic::QueryFragment, Debug)]
95 pub(crate) struct PageInfo {
96 pub(crate) has_next_page: bool,
97 pub(crate) end_cursor: Option<String>,
98 }
99
100 #[derive(cynic::QueryFragment, Debug)]
101 pub(crate) struct MovePackage {
102 pub(crate) address: IotaAddress,
103 pub(crate) bcs: Option<Base64>,
104 }
105}