carbon-wavebreak-decoder 2.0.0

Wavebreak Program Decoder
Documentation
//! This code was AUTOGENERATED using the Codama library.
pub mod authority_config_grant_schema;
pub mod authority_config_initialize_schema;
pub mod authority_config_revoke_schema;
pub mod bonding_curve_close_schema;
pub mod bonding_curve_collect_fees_schema;
pub mod bonding_curve_graduate_schema;
pub mod bonding_curve_initialize_schema;
pub mod create_launch_schema;
pub mod create_lockedlaunch_schema;
pub mod create_presale_schema;
pub mod graduate_manual_schema;
pub mod graduate_whirlpool_schema;
pub mod lp_harvest_schema;
pub mod lp_takeover_schema;
pub mod lp_transfer_schema;
pub mod mint_config_close_schema;
pub mod mint_config_initialize_schema;
pub mod mint_config_update_schema;
pub mod permission_config_close_schema;
pub mod permission_config_initialize_schema;
pub mod permission_config_update_schema;
pub mod permission_consume_cpi_schema;
pub mod permission_consume_top_level_schema;
pub mod permission_refund_schema;
pub mod permission_revoke_schema;
pub mod reserved_authority_config_a_schema;
pub mod reserved_authority_config_b_schema;
pub mod reserved_authority_config_c_schema;
pub mod reserved_authority_config_y_schema;
pub mod reserved_authority_config_z_schema;
pub mod reserved_bonding_curve_a_schema;
pub mod reserved_bonding_curve_x_schema;
pub mod reserved_bonding_curve_y_schema;
pub mod reserved_bonding_curve_z_schema;
pub mod reserved_create_a_schema;
pub mod reserved_create_b_schema;
pub mod reserved_create_c_schema;
pub mod reserved_create_y_schema;
pub mod reserved_create_z_schema;
pub mod reserved_graduate_a_schema;
pub mod reserved_graduate_b_schema;
pub mod reserved_graduate_c_schema;
pub mod reserved_graduate_x_schema;
pub mod reserved_graduate_y_schema;
pub mod reserved_graduate_z_schema;
pub mod reserved_lp_a_schema;
pub mod reserved_lp_b_schema;
pub mod reserved_lp_x_schema;
pub mod reserved_lp_y_schema;
pub mod reserved_lp_z_schema;
pub mod reserved_mint_config_a_schema;
pub mod reserved_mint_config_b_schema;
pub mod reserved_mint_config_c_schema;
pub mod reserved_mint_config_y_schema;
pub mod reserved_mint_config_z_schema;
pub mod reserved_permission_a_schema;
pub mod reserved_token_a_schema;
pub mod reserved_token_y_schema;
pub mod reserved_token_z_schema;
pub mod token_buy_exact_in_schema;
pub mod token_buy_exact_out_schema;
pub mod token_refund_schema;
pub mod token_sell_exact_in_schema;
pub mod token_sell_exact_out_schema;

use juniper::GraphQLObject;
pub use {
    authority_config_grant_schema::*, authority_config_initialize_schema::*,
    authority_config_revoke_schema::*, bonding_curve_close_schema::*,
    bonding_curve_collect_fees_schema::*, bonding_curve_graduate_schema::*,
    bonding_curve_initialize_schema::*, create_launch_schema::*, create_lockedlaunch_schema::*,
    create_presale_schema::*, graduate_manual_schema::*, graduate_whirlpool_schema::*,
    lp_harvest_schema::*, lp_takeover_schema::*, lp_transfer_schema::*,
    mint_config_close_schema::*, mint_config_initialize_schema::*, mint_config_update_schema::*,
    permission_config_close_schema::*, permission_config_initialize_schema::*,
    permission_config_update_schema::*, permission_consume_cpi_schema::*,
    permission_consume_top_level_schema::*, permission_refund_schema::*,
    permission_revoke_schema::*, reserved_authority_config_a_schema::*,
    reserved_authority_config_b_schema::*, reserved_authority_config_c_schema::*,
    reserved_authority_config_y_schema::*, reserved_authority_config_z_schema::*,
    reserved_bonding_curve_a_schema::*, reserved_bonding_curve_x_schema::*,
    reserved_bonding_curve_y_schema::*, reserved_bonding_curve_z_schema::*,
    reserved_create_a_schema::*, reserved_create_b_schema::*, reserved_create_c_schema::*,
    reserved_create_y_schema::*, reserved_create_z_schema::*, reserved_graduate_a_schema::*,
    reserved_graduate_b_schema::*, reserved_graduate_c_schema::*, reserved_graduate_x_schema::*,
    reserved_graduate_y_schema::*, reserved_graduate_z_schema::*, reserved_lp_a_schema::*,
    reserved_lp_b_schema::*, reserved_lp_x_schema::*, reserved_lp_y_schema::*,
    reserved_lp_z_schema::*, reserved_mint_config_a_schema::*, reserved_mint_config_b_schema::*,
    reserved_mint_config_c_schema::*, reserved_mint_config_y_schema::*,
    reserved_mint_config_z_schema::*, reserved_permission_a_schema::*, reserved_token_a_schema::*,
    reserved_token_y_schema::*, reserved_token_z_schema::*, token_buy_exact_in_schema::*,
    token_buy_exact_out_schema::*, token_refund_schema::*, token_sell_exact_in_schema::*,
    token_sell_exact_out_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)),
        }
    }
}