scematica-executor 1.11.0

DEX-specific swap instruction builders for Scematica — Raydium, Orca, Meteora, Jupiter.
Documentation
use borsh::{BorshDeserialize, BorshSerialize};
use solana_sdk::pubkey::Pubkey;

/// Raydium AMM V4 pool state layout
#[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; // Actual size on-chain
}