carbon-token-program-decoder 1.0.0

Token Program Decoder
Documentation
//! This code was AUTOGENERATED using the Codama library.
pub mod amount_to_ui_amount_schema;
pub mod approve_checked_schema;
pub mod approve_schema;
pub mod batch_schema;
pub mod burn_checked_schema;
pub mod burn_schema;
pub mod close_account_schema;
pub mod freeze_account_schema;
pub mod get_account_data_size_schema;
pub mod initialize_account2_schema;
pub mod initialize_account3_schema;
pub mod initialize_account_schema;
pub mod initialize_immutable_owner_schema;
pub mod initialize_mint2_schema;
pub mod initialize_mint_schema;
pub mod initialize_multisig2_schema;
pub mod initialize_multisig_schema;
pub mod mint_to_checked_schema;
pub mod mint_to_schema;
pub mod revoke_schema;
pub mod set_authority_schema;
pub mod sync_native_schema;
pub mod thaw_account_schema;
pub mod transfer_checked_schema;
pub mod transfer_schema;
pub mod ui_amount_to_amount_schema;
pub mod unwrap_lamports_schema;
pub mod withdraw_excess_lamports_schema;

use juniper::GraphQLObject;
pub use {
    amount_to_ui_amount_schema::*, approve_checked_schema::*, approve_schema::*, batch_schema::*,
    burn_checked_schema::*, burn_schema::*, close_account_schema::*, freeze_account_schema::*,
    get_account_data_size_schema::*, initialize_account2_schema::*, initialize_account3_schema::*,
    initialize_account_schema::*, initialize_immutable_owner_schema::*, initialize_mint2_schema::*,
    initialize_mint_schema::*, initialize_multisig2_schema::*, initialize_multisig_schema::*,
    mint_to_checked_schema::*, mint_to_schema::*, revoke_schema::*, set_authority_schema::*,
    sync_native_schema::*, thaw_account_schema::*, transfer_checked_schema::*, transfer_schema::*,
    ui_amount_to_amount_schema::*, unwrap_lamports_schema::*, withdraw_excess_lamports_schema::*,
};

#[derive(Debug, Clone, GraphQLObject)]
#[graphql(name = "InstructionMetadata")]
pub struct InstructionMetadataGraphQL {
    pub signature: String,
    pub instruction_index: carbon_core::graphql::primitives::U32,
    pub stack_height: carbon_core::graphql::primitives::U32,
    pub slot: Option<carbon_core::graphql::primitives::U64>,
}

impl From<carbon_core::postgres::metadata::InstructionRowMetadata> for InstructionMetadataGraphQL {
    fn from(metadata: carbon_core::postgres::metadata::InstructionRowMetadata) -> Self {
        Self {
            signature: metadata.signature,
            instruction_index: carbon_core::graphql::primitives::U32(
                (*metadata.instruction_index) as u32,
            ),
            stack_height: carbon_core::graphql::primitives::U32((*metadata.stack_height) as u32),
            slot: metadata
                .slot
                .map(|v| carbon_core::graphql::primitives::U64(*v)),
        }
    }
}