use {
carbon_core::graphql::primitives::{Pubkey, I64, U128, U64, U8},
juniper::GraphQLObject,
};
#[derive(Debug, Clone, GraphQLObject)]
#[graphql(name = "InsuranceFundStake")]
pub struct InsuranceFundStakeGraphQL {
pub account_metadata: crate::accounts::graphql::AccountMetadataGraphQL,
pub authority: Pubkey,
pub if_shares: U128,
pub last_withdraw_request_shares: U128,
pub if_base: U128,
pub last_valid_ts: I64,
pub last_withdraw_request_value: U64,
pub last_withdraw_request_ts: I64,
pub cost_basis: I64,
pub market_index: i32,
pub padding: Vec<U8>,
}
impl TryFrom<crate::accounts::postgres::InsuranceFundStakeRow> for InsuranceFundStakeGraphQL {
type Error = carbon_core::error::Error;
fn try_from(
row: crate::accounts::postgres::InsuranceFundStakeRow,
) -> Result<Self, Self::Error> {
Ok(Self {
account_metadata: row.account_metadata.into(),
authority: carbon_core::graphql::primitives::Pubkey(row.authority.0),
if_shares: carbon_core::graphql::primitives::U128(*row.if_shares),
last_withdraw_request_shares: carbon_core::graphql::primitives::U128(
*row.last_withdraw_request_shares,
),
if_base: carbon_core::graphql::primitives::U128(*row.if_base),
last_valid_ts: carbon_core::graphql::primitives::I64(row.last_valid_ts),
last_withdraw_request_value: carbon_core::graphql::primitives::U64(
*row.last_withdraw_request_value,
),
last_withdraw_request_ts: carbon_core::graphql::primitives::I64(
row.last_withdraw_request_ts,
),
cost_basis: carbon_core::graphql::primitives::I64(row.cost_basis),
market_index: *row.market_index,
padding: row
.padding
.into_iter()
.map(carbon_core::graphql::primitives::U8)
.collect(),
})
}
}