use solana_pubkey::Pubkey;
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Debug, Clone, borsh::BorshSerialize, borsh::BorshDeserialize, PartialEq)]
pub struct CacheInfo {
pub oracle: Pubkey,
pub last_fee_pool_token_amount: u128,
pub last_net_pnl_pool_token_amount: i128,
pub last_exchange_fees: u128,
pub last_settle_amm_ex_fees: u128,
pub last_settle_amm_pnl: i128,
pub position: i64,
pub slot: u64,
pub last_settle_amount: u64,
pub last_settle_slot: u64,
pub last_settle_ts: i64,
pub quote_owed_from_lp_pool: i64,
pub amm_inventory_limit: i64,
pub oracle_price: i64,
pub oracle_slot: u64,
pub market_index: u16,
pub oracle_source: u8,
pub oracle_validity: u8,
pub lp_status_for_perp_market: u8,
pub amm_position_scalar: u8,
#[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))]
pub padding: [u8; 34],
}