use {
carbon_core::graphql::primitives::{Pubkey, U128, U64, U8},
juniper::GraphQLObject,
};
#[derive(Debug, Clone, GraphQLObject)]
#[graphql(name = "MintConfig")]
pub struct MintConfigGraphQL {
pub account_metadata: crate::accounts::graphql::AccountMetadataGraphQL,
pub instruction_discriminator: U8,
pub quote_mint: Pubkey,
pub create_requires_permission: bool,
pub create_permission_bitmap: Vec<U8>,
pub default_buy_requires_permission: bool,
pub default_buy_permission_bitmap: Vec<U8>,
pub default_sell_requires_permission: bool,
pub default_sell_permission_bitmap: Vec<U8>,
pub padding1: Vec<U8>,
pub default_creator_reward: U64,
pub default_graduation_reward: U64,
pub default_graduation_target: U64,
pub default_max_buy_amount: U64,
pub default_max_sell_amount: U64,
pub default_start_price: U128,
pub default_end_price: U128,
pub default_control_points: Vec<i32>,
pub default_swap_fee_bps: i32,
pub default_quote_fee_bps: i32,
pub default_base_fee_bps: i32,
pub padding2: Vec<U8>,
}
impl TryFrom<crate::accounts::postgres::MintConfigRow> for MintConfigGraphQL {
type Error = carbon_core::error::Error;
fn try_from(row: crate::accounts::postgres::MintConfigRow) -> Result<Self, Self::Error> {
Ok(Self {
account_metadata: row.account_metadata.into(),
instruction_discriminator: carbon_core::graphql::primitives::U8(
(*row.instruction_discriminator) as u8,
),
quote_mint: carbon_core::graphql::primitives::Pubkey(row.quote_mint.0),
create_requires_permission: row.create_requires_permission,
create_permission_bitmap: row
.create_permission_bitmap
.into_iter()
.map(|x| carbon_core::graphql::primitives::U8((*x) as u8))
.collect(),
default_buy_requires_permission: row.default_buy_requires_permission,
default_buy_permission_bitmap: row
.default_buy_permission_bitmap
.into_iter()
.map(|x| carbon_core::graphql::primitives::U8((*x) as u8))
.collect(),
default_sell_requires_permission: row.default_sell_requires_permission,
default_sell_permission_bitmap: row
.default_sell_permission_bitmap
.into_iter()
.map(|x| carbon_core::graphql::primitives::U8((*x) as u8))
.collect(),
padding1: row
.padding1
.into_iter()
.map(|x| carbon_core::graphql::primitives::U8((*x) as u8))
.collect(),
default_creator_reward: carbon_core::graphql::primitives::U64(
*row.default_creator_reward,
),
default_graduation_reward: carbon_core::graphql::primitives::U64(
*row.default_graduation_reward,
),
default_graduation_target: carbon_core::graphql::primitives::U64(
*row.default_graduation_target,
),
default_max_buy_amount: carbon_core::graphql::primitives::U64(
*row.default_max_buy_amount,
),
default_max_sell_amount: carbon_core::graphql::primitives::U64(
*row.default_max_sell_amount,
),
default_start_price: carbon_core::graphql::primitives::U128(*row.default_start_price),
default_end_price: carbon_core::graphql::primitives::U128(*row.default_end_price),
default_control_points: row
.default_control_points
.into_iter()
.map(|item| *item)
.collect(),
default_swap_fee_bps: *row.default_swap_fee_bps,
default_quote_fee_bps: *row.default_quote_fee_bps,
default_base_fee_bps: *row.default_base_fee_bps,
padding2: row
.padding2
.into_iter()
.map(|x| carbon_core::graphql::primitives::U8((*x) as u8))
.collect(),
})
}
}