sui_gql_client/queries/
current_epoch.rs

1use cynic::QueryFragment;
2use graphql_extract::extract;
3
4use super::Error;
5use crate::queries::model::fragments::Epoch;
6use crate::{GraphQlClient, GraphQlResponseExt as _, schema};
7
8pub async fn query<C: GraphQlClient>(client: &C) -> Result<(u64, 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            reference_gas_price?
18        }
19    });
20    Ok((epoch_id, reference_gas_price.into_inner()))
21}
22
23#[cfg(test)]
24#[allow(clippy::unwrap_used)]
25#[test]
26fn init_gql_output() {
27    use cynic::QueryBuilder as _;
28    let operation = Query::build(());
29    insta::assert_snapshot!(operation.query, @r"
30    query Query {
31      epoch {
32        epochId
33        referenceGasPrice
34      }
35    }
36    ");
37}
38
39#[derive(QueryFragment, Clone, Debug)]
40#[cynic(graphql_type = "Query")]
41struct Query {
42    epoch: Option<Epoch>,
43}