pub struct Vault {
/// Link to SY program
pub sy_program: Pubkey,
/// Mint for SY token
pub mint_sy: Pubkey,
/// Mint for the vault-specific YT token
pub mint_yt: Pubkey,
/// Mint for the vault-specific PT token
pub mint_pt: Pubkey,
/// Escrow account for holding deposited YT
pub escrow_yt: Pubkey,
/// Escrow account that holds temporary SY tokens
/// As an interchange between users and the SY program
pub escrow_sy: Pubkey,
/// Link to a vault-owned YT position
/// This account collects yield from all "unstaked" YT
pub yield_position: Pubkey,
/// Address lookup table key for vault
pub address_lookup_table: Pubkey,
/// Start timestamp
pub start_ts: u32,
/// Seconds duration
pub duration: u32,
/// Seed for CPI signing
pub signer_seed: Pubkey,
/// Authority for CPI signing
pub authority: Pubkey,
/// Bump for signer authority PDA
pub signer_bump: [u8; 1],
/// Last seen SY exchange rate
/// Continues to be updated after vault maturity to track SY appreciation
pub last_seen_sy_exchange_rate: Number,
/// All time high exchange rate for SY
pub all_time_high_sy_exchange_rate: Number,
/// Exchange rate for SY when the vault expires
pub final_sy_exchange_rate: Number,
/// How much SY is held in escrow
pub total_sy_in_escrow: u64,
/// Total SY set aside to back PT holders
pub sy_for_pt: u64,
/// Total supply of PT
pub pt_supply: u64,
/// Amount of SY staged for the treasury
pub treasury_sy: u64,
/// SY earned by YT but not yet collected
pub uncollected_sy: u64,
/// Treasury SY token account address
pub treasury_sy_token_account: Pubkey,
/// Interest fee in basis points
pub interest_bps_fee: u16,
/// Minimum operation size for stripping
pub min_op_size_strip: u64,
/// Minimum operation size for merging
pub min_op_size_merge: u64,
/// Status flags bitmask
pub status: u8,
/// Emission reward configurations
pub emissions: Vec<EmissionInfo>,
/// CPI account configuration for SY program
pub cpi_accounts: CpiAccounts,
/// Claim rate limiting configuration
pub claim_limits: ClaimLimits,
/// Maximum PT + YT supply
pub max_py_supply: u64,
}