Skip to main content

fuel_core_client/client/schema/
relayed_tx.rs

1use crate::client::schema::{
2    RelayedTransactionId,
3    U32,
4    schema,
5};
6
7#[derive(cynic::QueryFragment, Clone, Debug)]
8#[cynic(
9    schema_path = "./assets/schema.sdl",
10    graphql_type = "Query",
11    variables = "RelayedTransactionStatusArgs"
12)]
13pub struct RelayedTransactionStatusQuery {
14    #[arguments(id: $id)]
15    pub relayed_transaction_status: Option<RelayedTransactionStatus>,
16}
17
18#[derive(cynic::QueryVariables, Debug, Clone)]
19pub struct RelayedTransactionStatusArgs {
20    /// Transaction id that contains the output message.
21    pub id: RelayedTransactionId,
22}
23
24#[allow(clippy::enum_variant_names)]
25#[derive(cynic::InlineFragments, Clone, Debug)]
26#[cynic(schema_path = "./assets/schema.sdl")]
27pub enum RelayedTransactionStatus {
28    /// Transaction was included in a block, but the execution was reverted
29    Failed(RelayedTransactionFailed),
30    #[cynic(fallback)]
31    Unknown,
32}
33
34#[derive(cynic::QueryFragment, Clone, Debug, PartialEq, Eq)]
35#[cynic(schema_path = "./assets/schema.sdl")]
36pub struct RelayedTransactionFailed {
37    pub block_height: U32,
38    pub failure: String,
39}