#[derive(Clone, Copy, Debug, PartialEq, Eq, Default)]
#[repr(u8)]
pub enum PoolStatus {
#[default]
Fund = 0,
Migrate = 1,
Trade = 2,
}
impl PoolStatus {
pub fn from_u8(value: u8) -> Self {
match value {
0 => PoolStatus::Fund,
1 => PoolStatus::Migrate,
2 => PoolStatus::Trade,
_ => PoolStatus::Fund,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
#[repr(u8)]
pub enum TradeDirection {
Buy = 0,
Sell = 1,
}
impl TradeDirection {
pub fn from_u8(value: u8) -> Self {
match value {
0 => TradeDirection::Buy,
_ => TradeDirection::Sell,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Default)]
#[repr(u8)]
pub enum AmmCreatorFeeOn {
#[default]
Off = 0,
Quote = 1,
Both = 2,
}
impl AmmCreatorFeeOn {
pub fn from_u8(value: u8) -> Self {
match value {
0 => AmmCreatorFeeOn::Off,
1 => AmmCreatorFeeOn::Quote,
2 => AmmCreatorFeeOn::Both,
_ => AmmCreatorFeeOn::Off,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Default)]
#[repr(u8)]
pub enum CurveType {
#[default]
ConstantProduct = 0,
FixedPrice = 1,
LinearPrice = 2,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Default)]
#[repr(u8)]
pub enum MigrateType {
#[default]
Amm = 0,
CpSwap = 1,
}
#[derive(Clone, Debug, Default)]
pub struct VestingSchedule {
pub total_locked_amount: u64,
pub cliff_period: u64,
pub unlock_period: u64,
pub start_time: u64,
pub allocated_share_amount: u64,
}
pub mod discriminators {
pub const BUY_EXACT_IN: [u8; 8] = [250, 234, 13, 123, 213, 156, 19, 236];
pub const BUY_EXACT_OUT: [u8; 8] = [24, 211, 116, 40, 105, 3, 153, 56];
pub const SELL_EXACT_IN: [u8; 8] = [149, 39, 222, 155, 211, 124, 152, 26];
pub const SELL_EXACT_OUT: [u8; 8] = [95, 200, 71, 34, 8, 9, 11, 166];
pub const INITIALIZE: [u8; 8] = [175, 175, 109, 31, 13, 152, 155, 237];
}
pub mod account_discriminators {
pub const GLOBAL_CONFIG: [u8; 8] = [149, 8, 156, 202, 160, 252, 176, 217];
pub const PLATFORM_CONFIG: [u8; 8] = [160, 78, 128, 0, 248, 83, 230, 160];
pub const POOL_STATE: [u8; 8] = [247, 237, 227, 245, 215, 195, 222, 70];
pub const VESTING_RECORD: [u8; 8] = [106, 243, 221, 205, 230, 126, 85, 83];
}