carbon-openbook-v2-decoder 2.0.0

Openbook V2 Decoder
Documentation
//! This code was AUTOGENERATED using the Codama library.
pub mod cancel_all_and_place_orders_schema;
pub mod cancel_all_orders_schema;
pub mod cancel_order_by_client_order_id_schema;
pub mod cancel_order_schema;
pub mod close_market_schema;
pub mod close_open_orders_account_schema;
pub mod close_open_orders_indexer_schema;
pub mod consume_events_schema;
pub mod consume_given_events_schema;
pub mod cpi_event_schema;
pub mod create_market_schema;
pub mod create_open_orders_account_schema;
pub mod create_open_orders_indexer_schema;
pub mod deposit_schema;
pub mod edit_order_pegged_schema;
pub mod edit_order_schema;
pub mod place_order_pegged_schema;
pub mod place_order_schema;
pub mod place_orders_schema;
pub mod place_take_order_schema;
pub mod prune_orders_schema;
pub mod refill_schema;
pub mod set_delegate_schema;
pub mod set_market_expired_schema;
pub mod settle_funds_expired_schema;
pub mod settle_funds_schema;
pub mod stub_oracle_close_schema;
pub mod stub_oracle_create_schema;
pub mod stub_oracle_set_schema;
pub mod sweep_fees_schema;

use juniper::GraphQLObject;
pub use {
    cancel_all_and_place_orders_schema::*, cancel_all_orders_schema::*,
    cancel_order_by_client_order_id_schema::*, cancel_order_schema::*, close_market_schema::*,
    close_open_orders_account_schema::*, close_open_orders_indexer_schema::*,
    consume_events_schema::*, consume_given_events_schema::*, cpi_event_schema::*,
    create_market_schema::*, create_open_orders_account_schema::*,
    create_open_orders_indexer_schema::*, deposit_schema::*, edit_order_pegged_schema::*,
    edit_order_schema::*, place_order_pegged_schema::*, place_order_schema::*,
    place_orders_schema::*, place_take_order_schema::*, prune_orders_schema::*, refill_schema::*,
    set_delegate_schema::*, set_market_expired_schema::*, settle_funds_expired_schema::*,
    settle_funds_schema::*, stub_oracle_close_schema::*, stub_oracle_create_schema::*,
    stub_oracle_set_schema::*, sweep_fees_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)),
        }
    }
}