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