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