sui_graphql_client/query_types/
mod.rs

1// Copyright (c) Mysten Labs, Inc.
2// SPDX-License-Identifier: Apache-2.0
3
4mod active_validators;
5mod balance;
6mod chain;
7mod checkpoint;
8mod coin;
9mod dry_run;
10mod dynamic_fields;
11mod epoch;
12mod events;
13mod execute_tx;
14mod normalized_move;
15mod object;
16mod packages;
17mod protocol_config;
18mod service_config;
19mod suins;
20mod transaction;
21
22pub use active_validators::ActiveValidatorsArgs;
23pub use active_validators::ActiveValidatorsQuery;
24pub use active_validators::EpochValidator;
25pub use active_validators::Validator;
26pub use active_validators::ValidatorConnection;
27pub use active_validators::ValidatorSet;
28pub use balance::Balance;
29pub use balance::BalanceArgs;
30pub use balance::BalanceQuery;
31pub use balance::Owner;
32pub use chain::ChainIdentifierQuery;
33pub use checkpoint::CheckpointArgs;
34pub use checkpoint::CheckpointId;
35pub use checkpoint::CheckpointQuery;
36pub use checkpoint::CheckpointTotalTxQuery;
37pub use checkpoint::CheckpointsArgs;
38pub use checkpoint::CheckpointsQuery;
39pub use coin::CoinMetadata;
40pub use coin::CoinMetadataArgs;
41pub use coin::CoinMetadataQuery;
42pub use dry_run::DryRunArgs;
43pub use dry_run::DryRunQuery;
44pub use dry_run::DryRunResult;
45pub use dry_run::TransactionMetadata;
46pub use dynamic_fields::DynamicFieldArgs;
47pub use dynamic_fields::DynamicFieldConnectionArgs;
48pub use dynamic_fields::DynamicFieldName;
49pub use dynamic_fields::DynamicFieldQuery;
50pub use dynamic_fields::DynamicFieldsOwnerQuery;
51pub use dynamic_fields::DynamicObjectFieldQuery;
52pub use epoch::Epoch;
53pub use epoch::EpochArgs;
54pub use epoch::EpochQuery;
55pub use epoch::EpochSummaryQuery;
56pub use epoch::EpochsArgs;
57pub use epoch::EpochsQuery;
58pub use events::Event;
59pub use events::EventConnection;
60pub use events::EventFilter;
61pub use events::EventsQuery;
62pub use events::EventsQueryArgs;
63pub use execute_tx::ExecuteTransactionArgs;
64pub use execute_tx::ExecuteTransactionQuery;
65pub use execute_tx::ExecutionResult;
66pub use normalized_move::MoveAbility;
67pub use normalized_move::MoveFunction;
68pub use normalized_move::MoveFunctionTypeParameter;
69pub use normalized_move::MoveModule;
70pub use normalized_move::MoveVisibility;
71pub use normalized_move::NormalizedMoveFunctionQuery;
72pub use normalized_move::NormalizedMoveFunctionQueryArgs;
73pub use normalized_move::NormalizedMoveModuleQuery;
74pub use normalized_move::NormalizedMoveModuleQueryArgs;
75pub use normalized_move::OpenMoveType;
76pub use object::ObjectFilter;
77pub use object::ObjectKey;
78pub use object::ObjectQuery;
79pub use object::ObjectQueryArgs;
80pub use object::ObjectsQuery;
81pub use object::ObjectsQueryArgs;
82pub use packages::LatestPackageQuery;
83pub use packages::MovePackage;
84pub use packages::MovePackageConnection;
85pub use packages::MovePackageVersionFilter;
86pub use packages::PackageArgs;
87pub use packages::PackageByNameArgs;
88pub use packages::PackageByNameQuery;
89pub use packages::PackageCheckpointFilter;
90pub use packages::PackageQuery;
91pub use packages::PackageVersionsArgs;
92pub use packages::PackageVersionsQuery;
93pub use packages::PackagesQuery;
94pub use packages::PackagesQueryArgs;
95pub use protocol_config::ProtocolConfigQuery;
96pub use protocol_config::ProtocolConfigs;
97pub use protocol_config::ProtocolVersionArgs;
98pub use service_config::Feature;
99pub use service_config::ServiceConfig;
100pub use service_config::ServiceConfigQuery;
101pub use suins::DefaultSuinsNameQuery;
102pub use suins::DefaultSuinsNameQueryArgs;
103pub use suins::ResolveSuinsQuery;
104pub use suins::ResolveSuinsQueryArgs;
105pub use transaction::TransactionBlock;
106pub use transaction::TransactionBlockArgs;
107pub use transaction::TransactionBlockEffectsQuery;
108pub use transaction::TransactionBlockQuery;
109pub use transaction::TransactionBlockWithEffects;
110pub use transaction::TransactionBlockWithEffectsQuery;
111pub use transaction::TransactionBlocksEffectsQuery;
112pub use transaction::TransactionBlocksQuery;
113pub use transaction::TransactionBlocksQueryArgs;
114pub use transaction::TransactionBlocksWithEffectsQuery;
115pub use transaction::TransactionsFilter;
116
117use sui_types::Address;
118
119use cynic::impl_scalar;
120use serde_json::Value as JsonValue;
121
122use crate::error;
123
124#[cynic::schema("rpc")]
125pub mod schema {}
126
127// ===========================================================================
128// Scalars
129// ===========================================================================
130
131impl_scalar!(Address, schema::SuiAddress);
132impl_scalar!(u64, schema::UInt53);
133impl_scalar!(JsonValue, schema::JSON);
134
135#[derive(cynic::Scalar, Debug, Clone)]
136#[cynic(graphql_type = "Base64")]
137pub struct Base64(pub String);
138
139#[derive(cynic::Scalar, Debug, Clone)]
140#[cynic(graphql_type = "BigInt")]
141pub struct BigInt(pub String);
142
143#[derive(cynic::Scalar, Debug, Clone)]
144#[cynic(graphql_type = "DateTime")]
145pub struct DateTime(pub String);
146
147// ===========================================================================
148// Types used in several queries
149// ===========================================================================
150
151#[derive(cynic::QueryFragment, Debug)]
152#[cynic(schema = "rpc", graphql_type = "Address")]
153pub struct GQLAddress {
154    pub address: Address,
155}
156
157#[derive(cynic::QueryFragment, Debug)]
158#[cynic(schema = "rpc", graphql_type = "MoveObject")]
159pub struct MoveObject {
160    pub bcs: Option<Base64>,
161}
162
163#[derive(cynic::QueryFragment, Debug)]
164#[cynic(schema = "rpc", graphql_type = "MoveObject")]
165pub struct MoveObjectContents {
166    pub contents: Option<MoveValue>,
167}
168
169#[derive(cynic::QueryFragment, Debug)]
170#[cynic(schema = "rpc", graphql_type = "MoveValue")]
171pub struct MoveValue {
172    pub type_: MoveType,
173    pub bcs: Base64,
174    pub json: Option<JsonValue>,
175}
176
177#[derive(cynic::QueryFragment, Debug)]
178#[cynic(schema = "rpc", graphql_type = "MoveType")]
179pub struct MoveType {
180    pub repr: String,
181}
182// ===========================================================================
183// Utility Types
184// ===========================================================================
185
186#[derive(Clone, Default, cynic::QueryFragment, Debug)]
187#[cynic(schema = "rpc", graphql_type = "PageInfo")]
188/// Information about pagination in a connection.
189pub struct PageInfo {
190    /// When paginating backwards, are there more items?
191    pub has_previous_page: bool,
192    /// Are there more items when paginating forwards?
193    pub has_next_page: bool,
194    /// When paginating backwards, the cursor to continue.
195    pub start_cursor: Option<String>,
196    /// When paginating forwards, the cursor to continue.
197    pub end_cursor: Option<String>,
198}
199
200impl TryFrom<BigInt> for u64 {
201    type Error = error::Error;
202
203    fn try_from(value: BigInt) -> Result<Self, Self::Error> {
204        Ok(value.0.parse::<u64>()?)
205    }
206}