carbon-marginfi-v2-decoder 1.0.0

MarginfiV2 Decoder
Documentation
//! This code was AUTOGENERATED using the Codama library.
use {
    carbon_core::graphql::primitives::{Pubkey, U64, U8},
    juniper::GraphQLObject,
};

#[derive(Debug, Clone, GraphQLObject)]
#[graphql(name = "MinimalReserve")]
pub struct MinimalReserveGraphQL {
    pub account_metadata: crate::accounts::graphql::AccountMetadataGraphQL,
    pub version: U64,
    pub slot: U64,
    pub stale: U8,
    pub price_status: U8,
    pub placeholder: Vec<U8>,
    pub lending_market: Pubkey,
    pub farm_collateral: Pubkey,
    pub farm_debt: Pubkey,
    pub mint_pubkey: Pubkey,
    pub supply_vault: Pubkey,
    pub fee_vault: Pubkey,
    pub available_amount: U64,
    pub borrowed_amount_sf: Vec<U8>,
    pub market_price_sf: Vec<U8>,
    pub market_price_last_updated_ts: U64,
    pub mint_decimals: U64,
    pub deposit_limit_crossed_timestamp: U64,
    pub borrow_limit_crossed_timestamp: U64,
    pub cumulative_borrow_rate_bsf: Vec<U8>,
    pub accumulated_protocol_fees_sf: Vec<U8>,
    pub accumulated_referrer_fees_sf: Vec<U8>,
    pub pending_referrer_fees_sf: Vec<U8>,
    pub absolute_referral_rate_sf: Vec<U8>,
    pub token_program: Pubkey,
    pub padding2_part1: Vec<U8>,
    pub padding2_part2: Vec<U8>,
    pub padding2_part3: Vec<U8>,
    pub padding3: Vec<U8>,
    pub padding_part1: Vec<U8>,
    pub padding_part2: Vec<U8>,
    pub padding_part3: Vec<U8>,
    pub padding_part4: Vec<U8>,
    pub collateral_mint_pubkey: Pubkey,
    pub mint_total_supply: U64,
    pub collateral_supply_vault: Pubkey,
    pub padding1_reserve_collateral: Vec<U8>,
    pub padding2_reserve_collateral: Vec<U8>,
    pub padding4_part1: Vec<U8>,
    pub padding4_part2: Vec<U8>,
    pub padding4_part3: Vec<U8>,
    pub padding4_part4: Vec<U8>,
    pub padding4_part5: Vec<U8>,
    pub padding4_part6: Vec<U8>,
}

impl TryFrom<crate::accounts::postgres::MinimalReserveRow> for MinimalReserveGraphQL {
    type Error = carbon_core::error::Error;
    fn try_from(row: crate::accounts::postgres::MinimalReserveRow) -> Result<Self, Self::Error> {
        Ok(Self {
            account_metadata: row.account_metadata.into(),
            version: carbon_core::graphql::primitives::U64(*row.version),
            slot: carbon_core::graphql::primitives::U64(*row.slot),
            stale: carbon_core::graphql::primitives::U8((*row.stale) as u8),
            price_status: carbon_core::graphql::primitives::U8((*row.price_status) as u8),
            placeholder: row
                .placeholder
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            lending_market: carbon_core::graphql::primitives::Pubkey(row.lending_market.0),
            farm_collateral: carbon_core::graphql::primitives::Pubkey(row.farm_collateral.0),
            farm_debt: carbon_core::graphql::primitives::Pubkey(row.farm_debt.0),
            mint_pubkey: carbon_core::graphql::primitives::Pubkey(row.mint_pubkey.0),
            supply_vault: carbon_core::graphql::primitives::Pubkey(row.supply_vault.0),
            fee_vault: carbon_core::graphql::primitives::Pubkey(row.fee_vault.0),
            available_amount: carbon_core::graphql::primitives::U64(*row.available_amount),
            borrowed_amount_sf: row
                .borrowed_amount_sf
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            market_price_sf: row
                .market_price_sf
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            market_price_last_updated_ts: carbon_core::graphql::primitives::U64(
                *row.market_price_last_updated_ts,
            ),
            mint_decimals: carbon_core::graphql::primitives::U64(*row.mint_decimals),
            deposit_limit_crossed_timestamp: carbon_core::graphql::primitives::U64(
                *row.deposit_limit_crossed_timestamp,
            ),
            borrow_limit_crossed_timestamp: carbon_core::graphql::primitives::U64(
                *row.borrow_limit_crossed_timestamp,
            ),
            cumulative_borrow_rate_bsf: row
                .cumulative_borrow_rate_bsf
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            accumulated_protocol_fees_sf: row
                .accumulated_protocol_fees_sf
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            accumulated_referrer_fees_sf: row
                .accumulated_referrer_fees_sf
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            pending_referrer_fees_sf: row
                .pending_referrer_fees_sf
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            absolute_referral_rate_sf: row
                .absolute_referral_rate_sf
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            token_program: carbon_core::graphql::primitives::Pubkey(row.token_program.0),
            padding2_part1: row
                .padding2_part1
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            padding2_part2: row
                .padding2_part2
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            padding2_part3: row
                .padding2_part3
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            padding3: row
                .padding3
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            padding_part1: row
                .padding_part1
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            padding_part2: row
                .padding_part2
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            padding_part3: row
                .padding_part3
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            padding_part4: row
                .padding_part4
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            collateral_mint_pubkey: carbon_core::graphql::primitives::Pubkey(
                row.collateral_mint_pubkey.0,
            ),
            mint_total_supply: carbon_core::graphql::primitives::U64(*row.mint_total_supply),
            collateral_supply_vault: carbon_core::graphql::primitives::Pubkey(
                row.collateral_supply_vault.0,
            ),
            padding1_reserve_collateral: row
                .padding1_reserve_collateral
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            padding2_reserve_collateral: row
                .padding2_reserve_collateral
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            padding4_part1: row
                .padding4_part1
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            padding4_part2: row
                .padding4_part2
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            padding4_part3: row
                .padding4_part3
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            padding4_part4: row
                .padding4_part4
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            padding4_part5: row
                .padding4_part5
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            padding4_part6: row
                .padding4_part6
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
        })
    }
}