sui_gql_client/queries/
reference_gas_price.rs

1use super::Error;
2use crate::scalars::BigInt;
3use crate::{GraphQlClient, GraphQlResponseExt, missing_data, schema};
4
5pub(super) async fn query<C: GraphQlClient>(client: &C) -> Result<u64, Error<C::Error>> {
6    let query: Query = client
7        .query(())
8        .await
9        .map_err(Error::Client)?
10        .try_into_data()?
11        .ok_or(missing_data!("No data in response"))?;
12
13    Ok(query
14        .epoch
15        .ok_or(missing_data!("Epoch not found"))?
16        .reference_gas_price
17        .ok_or(missing_data!("Epoch reference gas price"))?
18        .into_inner())
19}
20
21#[cfg(test)]
22#[allow(clippy::unwrap_used)]
23#[test]
24fn gql_output() {
25    use cynic::QueryBuilder as _;
26
27    let operation = Query::build(());
28    insta::assert_snapshot!(operation.query, @r###"
29    query Query {
30      epoch {
31        referenceGasPrice
32      }
33    }
34    "###);
35}
36
37#[derive(cynic::QueryFragment, Clone, Debug)]
38struct Query {
39    epoch: Option<Epoch>,
40}
41
42#[derive(cynic::QueryFragment, Clone, Debug)]
43struct Epoch {
44    reference_gas_price: Option<BigInt<u64>>,
45}