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(),
})
}
}