sui_gql_client/queries/
current_epoch_id.rs

1use 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}