sui_gql_client/queries/
current_epoch_id.rs1use af_sui_types::Version;
2use cynic::QueryFragment;
3use graphql_extract::extract;
4
5use super::Error;
6use crate::{GraphQlClient, GraphQlResponseExt as _, schema};
7
8pub async fn query<C: GraphQlClient>(client: &C) -> Result<u64, Error<C::Error>> {
9 let data = client
10 .query::<Query, _>(())
11 .await
12 .map_err(Error::Client)?
13 .try_into_data()?;
14 extract!(data => {
15 epoch? {
16 epoch_id
17 }
18 });
19 Ok(epoch_id)
20}
21
22#[cfg(test)]
23#[allow(clippy::unwrap_used)]
24#[test]
25fn init_gql_output() {
26 use cynic::QueryBuilder as _;
27 let operation = Query::build(());
28 insta::assert_snapshot!(operation.query, @r###"
29 query Query {
30 epoch {
31 epochId
32 }
33 }
34 "###);
35}
36
37#[derive(QueryFragment, Clone, Debug)]
38#[cynic(graphql_type = "Query")]
39struct Query {
40 epoch: Option<Epoch>,
41}
42
43#[derive(QueryFragment, Clone, Debug)]
44struct Epoch {
45 epoch_id: Version,
46}