sui_gql_client/queries/
latest_checkpoint.rs1use graphql_extract::extract;
2
3use crate::queries::Error;
4use crate::{GraphQlClient, GraphQlResponseExt as _, schema};
5
6pub async fn query<C>(client: &C) -> Result<u64, Error<C::Error>>
7where
8 C: GraphQlClient,
9{
10 let data = client
11 .query::<Query, _>(Variables {})
12 .await
13 .map_err(Error::Client)?
14 .try_into_data()?;
15
16 extract!(data => {
17 checkpoint? {
18 sequence_number
19 }
20 });
21
22 Ok(sequence_number)
23}
24
25#[derive(cynic::QueryVariables, Debug)]
26struct Variables {}
27
28#[derive(cynic::QueryFragment, Debug)]
29#[cynic(variables = "Variables")]
30struct Query {
31 checkpoint: Option<Checkpoint>,
32}
33
34#[derive(cynic::QueryFragment, Debug)]
35struct Checkpoint {
36 sequence_number: af_sui_types::Version,
37}
38
39#[cfg(test)]
40#[allow(clippy::unwrap_used)]
41#[test]
42fn gql_output() {
43 use cynic::QueryBuilder as _;
44
45 let vars = Variables {};
46 let operation = Query::build(vars);
47 insta::assert_snapshot!(operation.query, @r###"
48 query Query {
49 checkpoint {
50 sequenceNumber
51 }
52 }
53 "###);
54}