use anchor_lang::prelude::*;
#[derive(AnchorSerialize, AnchorDeserialize, Clone, Copy, PartialEq, Eq, Debug)]
pub enum PoolType {
Official,
Community,
}
impl Default for PoolType {
fn default() -> Self {
PoolType::Official
}
}
#[account]
#[derive(Default, Debug)]
pub struct DlmmPool {
pub bump: u8,
pub authority: Pubkey,
pub pool_type: PoolType,
pub token_a_mint: Pubkey,
pub token_b_mint: Pubkey,
pub token_a_vault: Pubkey,
pub token_b_vault: Pubkey,
pub active_bin_id: i32,
pub bin_step: u16,
pub fee_rate: u16,
pub protocol_fee_share: u16,
pub referrer_fee_share: u16,
pub protocol_fee_vault_a: Pubkey,
pub protocol_fee_vault_b: Pubkey,
pub volatility_accumulator: u64,
pub last_fee_update_timestamp: i64,
pub reserves_a: u64,
pub reserves_b: u64,
}