Skip to main content

iota_sdk_graphql_client/
lib.rs

1// Copyright (c) Mysten Labs, Inc.
2// Modifications Copyright (c) 2026 IOTA Stiftung
3// SPDX-License-Identifier: Apache-2.0
4
5#![doc = include_str!("../README.md")]
6#![cfg_attr(doc_cfg, feature(doc_cfg))]
7
8mod api;
9mod client;
10pub mod error;
11pub mod faucet;
12pub mod output_types;
13pub mod pagination;
14pub mod query_types;
15mod streams;
16mod subscription;
17mod tls;
18mod transaction_builder_client;
19mod wait;
20
21#[cfg(all(test, not(target_arch = "wasm32")))]
22mod test_utils;
23
24// Re-export types used by query_types module internally
25#[cfg(feature = "move-types")]
26pub use api::move_objects::{ListMoveObjectsQuery, MoveObjectFilter, OwnedMoveObject};
27pub use api::{
28    balance::GetBalanceQuery,
29    checkpoints::{
30        GetCheckpointQuery, GetLatestCheckpointSequenceNumberQuery, GetTotalTransactionBlocksQuery,
31        ListCheckpointsQuery,
32    },
33    coins::{GetCoinMetadataQuery, GetTotalSupplyQuery, ListCoinsQuery, ListGasCoinsQuery},
34    dry_run::{DryRunTransactionKindQuery, DryRunTransactionQuery},
35    dynamic_fields::{GetDynamicFieldQuery, GetDynamicObjectFieldQuery, ListDynamicFieldsQuery},
36    epochs::{GetEpochQuery, GetEpochTotalCheckpointsQuery, GetEpochTotalTransactionBlocksQuery},
37    events::ListEventsQuery,
38    iota_names::{
39        GetIotaNamesDefaultNameQuery, GetIotaNamesLookupQuery, ListIotaNamesRegistrationsQuery,
40    },
41    move_view_call::{MoveViewArg, MoveViewArgList, MoveViewCallJsonQuery, MoveViewCallQuery},
42    network::{
43        GetChainIdQuery, GetProtocolConfigQuery, GetReferenceGasPriceQuery,
44        ListActiveValidatorsQuery,
45    },
46    objects::{
47        GetMoveObjectContentsBcsQuery, GetMoveObjectContentsQuery, GetObjectBcsQuery,
48        GetObjectQuery, ListObjectsQuery,
49    },
50    package::{
51        GetNormalizedMoveFunctionQuery, GetNormalizedMoveModuleQuery, GetPackageLatestQuery,
52        GetPackageQuery, ListPackageVersionsQuery, ListPackagesQuery,
53    },
54    transactions::{
55        ExecuteTransactionQuery, GetTransactionDataEffectsQuery, GetTransactionEffectsQuery,
56        GetTransactionQuery, IsTransactionFinalizedQuery, IsTransactionIndexedOnNodeQuery,
57        ListAddressTransactionsQuery, ListTransactionsDataEffectsQuery,
58        ListTransactionsEffectsQuery, ListTransactionsQuery, WaitForTransactionQuery,
59    },
60};
61pub use client::{GetMaxPageSizeQuery, GraphQLClient, GraphQLClientBuilder, USER_AGENT};
62pub use cynic;
63pub use error::{GraphQLError, GraphQLResult};
64pub use iota_transaction_builder::WaitForTransaction;
65pub use iota_types;
66pub(crate) use iota_types::Address;
67pub use output_types::*;
68pub use pagination::{Direction, Page, PaginationFilter};
69pub use reqwest;
70pub use subscription::{EventsSubscriptionBuilder, TransactionsSubscriptionBuilder};
71
72mod base64 {
73    use base64ct::Encoding;
74
75    use crate::error::{GraphQLError, GraphQLResult};
76
77    /// Decodes a base64 string from a response into bytes.
78    pub(crate) fn decode(input: &str) -> GraphQLResult<Vec<u8>> {
79        base64ct::Base64::decode_vec(input).map_err(|e| GraphQLError::Parse(e.into()))
80    }
81}