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 = "SolendMinimalReserve")]
pub struct SolendMinimalReserveGraphQL {
    pub account_metadata: crate::accounts::graphql::AccountMetadataGraphQL,
    pub last_update_slot: U64,
    pub last_update_stale: U8,
    pub lending_market: Pubkey,
    pub liquidity_mint_pubkey: Pubkey,
    pub liquidity_mint_decimals: U8,
    pub liquidity_supply_pubkey: Pubkey,
    pub liquidity_pyth_oracle_pubkey: Pubkey,
    pub liquidity_switchboard_oracle_pubkey: Pubkey,
    pub liquidity_available_amount: U64,
    pub liquidity_borrowed_amount_wads: Vec<U8>,
    pub liquidity_cumulative_borrow_rate_wads: Vec<U8>,
    pub liquidity_market_price: Vec<U8>,
    pub collateral_mint_pubkey: Pubkey,
    pub collateral_mint_total_supply: U64,
    pub collateral_supply_pubkey: Pubkey,
    pub config_optimal_utilization_rate: U8,
    pub config_loan_to_value_ratio: U8,
    pub config_liquidation_bonus: U8,
    pub config_liquidation_threshold: U8,
    pub padding_to_fees64: Vec<U8>,
    pub padding_to_fees6: Vec<U8>,
    pub liquidity_accumulated_protocol_fees_wads: Vec<U8>,
    pub padding_final128: Vec<U8>,
    pub padding_final64: Vec<U8>,
    pub padding_final32: Vec<U8>,
    pub padding_final6: Vec<U8>,
}

impl TryFrom<crate::accounts::postgres::SolendMinimalReserveRow> for SolendMinimalReserveGraphQL {
    type Error = carbon_core::error::Error;
    fn try_from(
        row: crate::accounts::postgres::SolendMinimalReserveRow,
    ) -> Result<Self, Self::Error> {
        Ok(Self {
            account_metadata: row.account_metadata.into(),
            last_update_slot: carbon_core::graphql::primitives::U64(*row.last_update_slot),
            last_update_stale: carbon_core::graphql::primitives::U8((*row.last_update_stale) as u8),
            lending_market: carbon_core::graphql::primitives::Pubkey(row.lending_market.0),
            liquidity_mint_pubkey: carbon_core::graphql::primitives::Pubkey(
                row.liquidity_mint_pubkey.0,
            ),
            liquidity_mint_decimals: carbon_core::graphql::primitives::U8(
                (*row.liquidity_mint_decimals) as u8,
            ),
            liquidity_supply_pubkey: carbon_core::graphql::primitives::Pubkey(
                row.liquidity_supply_pubkey.0,
            ),
            liquidity_pyth_oracle_pubkey: carbon_core::graphql::primitives::Pubkey(
                row.liquidity_pyth_oracle_pubkey.0,
            ),
            liquidity_switchboard_oracle_pubkey: carbon_core::graphql::primitives::Pubkey(
                row.liquidity_switchboard_oracle_pubkey.0,
            ),
            liquidity_available_amount: carbon_core::graphql::primitives::U64(
                *row.liquidity_available_amount,
            ),
            liquidity_borrowed_amount_wads: row
                .liquidity_borrowed_amount_wads
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            liquidity_cumulative_borrow_rate_wads: row
                .liquidity_cumulative_borrow_rate_wads
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            liquidity_market_price: row
                .liquidity_market_price
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            collateral_mint_pubkey: carbon_core::graphql::primitives::Pubkey(
                row.collateral_mint_pubkey.0,
            ),
            collateral_mint_total_supply: carbon_core::graphql::primitives::U64(
                *row.collateral_mint_total_supply,
            ),
            collateral_supply_pubkey: carbon_core::graphql::primitives::Pubkey(
                row.collateral_supply_pubkey.0,
            ),
            config_optimal_utilization_rate: carbon_core::graphql::primitives::U8(
                (*row.config_optimal_utilization_rate) as u8,
            ),
            config_loan_to_value_ratio: carbon_core::graphql::primitives::U8(
                (*row.config_loan_to_value_ratio) as u8,
            ),
            config_liquidation_bonus: carbon_core::graphql::primitives::U8(
                (*row.config_liquidation_bonus) as u8,
            ),
            config_liquidation_threshold: carbon_core::graphql::primitives::U8(
                (*row.config_liquidation_threshold) as u8,
            ),
            padding_to_fees64: row
                .padding_to_fees64
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            padding_to_fees6: row
                .padding_to_fees6
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            liquidity_accumulated_protocol_fees_wads: row
                .liquidity_accumulated_protocol_fees_wads
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            padding_final128: row
                .padding_final128
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            padding_final64: row
                .padding_final64
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            padding_final32: row
                .padding_final32
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
            padding_final6: row
                .padding_final6
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
        })
    }
}