sui_gql_client/queries/
current_epoch.rs1use 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}