use borsh::{BorshDeserialize, BorshSerialize};
use solana_sdk::pubkey::Pubkey;
#[derive(Clone, Copy, Debug, Default, BorshSerialize, BorshDeserialize)]
pub struct RaydiumAmmV4 {
pub status: u64,
pub nonce: u64,
pub max_order: u64,
pub depth: u64,
pub base_decimal: u64,
pub quote_decimal: u64,
pub state: u64,
pub reset_flag: u64,
pub min_size: u64,
pub vol_max_cut_off: u64,
pub amount_wave_ratio: u64,
pub base_lot_size: u64,
pub quote_lot_size: u64,
pub min_price_multiplier: u64,
pub max_price_multiplier: u64,
pub system_decimal_value: u64,
pub min_separate_numerator: u64,
pub min_separate_denominator: u64,
pub trade_fee_numerator: u64,
pub trade_fee_denominator: u64,
pub pnl_numerator: u64,
pub pnl_denominator: u64,
pub swap_fee_numerator: u64,
pub swap_fee_denominator: u64,
pub base_need_take_pnl: u64,
pub quote_need_take_pnl: u64,
pub quote_total_pnl: u64,
pub base_total_pnl: u64,
pub pool_open_time: u64,
pub punit_numerator: u64,
pub punit_denominator: u64,
pub l_punit_numerator: u64,
pub l_punit_denominator: u64,
pub market_separate_numerator: u64,
pub market_separate_denominator: u64,
pub step_or_price_numerator: u64,
pub step_or_price_denominator: u64,
pub base_vault_total_pnl: u64,
pub quote_vault_total_pnl: u64,
pub base_vault: Pubkey,
pub quote_vault: Pubkey,
pub base_mint: Pubkey,
pub quote_mint: Pubkey,
pub lp_mint: Pubkey,
pub open_orders: Pubkey,
pub market_id: Pubkey,
pub market_program_id: Pubkey,
pub target_orders: Pubkey,
pub withdraw_queue: Pubkey,
pub lp_vault: Pubkey,
pub amm_owner: Pubkey,
pub lp_reserve: u64,
pub padding: [u64; 3],
}
impl RaydiumAmmV4 {
pub const LEN: usize = 752; }