carbon-sharky-decoder 2.0.0

Sharky 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 = "TokenLendingPool")]
pub struct TokenLendingPoolGraphQL {
    pub account_metadata: crate::accounts::graphql::AccountMetadataGraphQL,
    pub orderbook: Pubkey,
    pub lender: Pubkey,
    pub usdc_vault: Pubkey,
    pub collateral_vault: Pubkey,
    pub nonce: U64,
    pub total_usdc_liquidity: U64,
    pub available_usdc_liquidity: U64,
    pub collateral_required_amount: U64,
    pub total_usdc_interest: U64,
    pub total_loan_count: U64,
    pub active_loan_count: U64,
    pub total_defaulted_loan_count: U64,
    pub total_defaulted_usdc_amount: U64,
    pub total_defaulted_collateral_amount: U64,
    pub version: U8,
    pub bump: U8,
    pub padding: Vec<U8>,
}

impl TryFrom<crate::accounts::postgres::TokenLendingPoolRow> for TokenLendingPoolGraphQL {
    type Error = carbon_core::error::Error;
    fn try_from(row: crate::accounts::postgres::TokenLendingPoolRow) -> Result<Self, Self::Error> {
        Ok(Self {
            account_metadata: row.account_metadata.into(),
            orderbook: carbon_core::graphql::primitives::Pubkey(row.orderbook.0),
            lender: carbon_core::graphql::primitives::Pubkey(row.lender.0),
            usdc_vault: carbon_core::graphql::primitives::Pubkey(row.usdc_vault.0),
            collateral_vault: carbon_core::graphql::primitives::Pubkey(row.collateral_vault.0),
            nonce: carbon_core::graphql::primitives::U64(*row.nonce),
            total_usdc_liquidity: carbon_core::graphql::primitives::U64(*row.total_usdc_liquidity),
            available_usdc_liquidity: carbon_core::graphql::primitives::U64(
                *row.available_usdc_liquidity,
            ),
            collateral_required_amount: carbon_core::graphql::primitives::U64(
                *row.collateral_required_amount,
            ),
            total_usdc_interest: carbon_core::graphql::primitives::U64(*row.total_usdc_interest),
            total_loan_count: carbon_core::graphql::primitives::U64(*row.total_loan_count),
            active_loan_count: carbon_core::graphql::primitives::U64(*row.active_loan_count),
            total_defaulted_loan_count: carbon_core::graphql::primitives::U64(
                *row.total_defaulted_loan_count,
            ),
            total_defaulted_usdc_amount: carbon_core::graphql::primitives::U64(
                *row.total_defaulted_usdc_amount,
            ),
            total_defaulted_collateral_amount: carbon_core::graphql::primitives::U64(
                *row.total_defaulted_collateral_amount,
            ),
            version: carbon_core::graphql::primitives::U8((*row.version) as u8),
            bump: carbon_core::graphql::primitives::U8((*row.bump) as u8),
            padding: row
                .padding
                .into_iter()
                .map(carbon_core::graphql::primitives::U8)
                .collect(),
        })
    }
}