carbon_meteora_pools_decoder/instructions/
mod.rs

1use crate::PROGRAM_ID;
2
3use super::MeteoraPoolsDecoder;
4pub mod add_balance_liquidity;
5pub mod add_imbalance_liquidity;
6pub mod add_liquidity_event;
7pub mod bootstrap_liquidity;
8pub mod bootstrap_liquidity_event;
9pub mod claim_fee;
10pub mod claim_fee_event;
11pub mod close_config;
12pub mod close_config_event;
13pub mod create_config;
14pub mod create_config_event;
15pub mod create_lock_escrow;
16pub mod create_lock_escrow_event;
17pub mod create_mint_metadata;
18pub mod enable_or_disable_pool;
19pub mod get_pool_info;
20pub mod initialize_customizable_permissionless_constant_product_pool;
21pub mod initialize_permissioned_pool;
22pub mod initialize_permissionless_constant_product_pool_with_config;
23pub mod initialize_permissionless_constant_product_pool_with_config2;
24pub mod initialize_permissionless_pool;
25pub mod initialize_permissionless_pool_with_fee_tier;
26pub mod lock;
27pub mod lock_event;
28pub mod migrate_fee_account_event;
29pub mod override_curve_param;
30pub mod override_curve_param_event;
31pub mod partner_claim_fee;
32pub mod partner_claim_fees_event;
33pub mod pool_created_event;
34pub mod pool_enabled_event;
35pub mod pool_info_event;
36pub mod remove_balance_liquidity;
37pub mod remove_liquidity_event;
38pub mod remove_liquidity_single_side;
39pub mod set_pool_fees;
40pub mod set_pool_fees_event;
41pub mod set_whitelisted_vault;
42pub mod swap;
43pub mod swap_event;
44pub mod transfer_admin_event;
45pub mod update_activation_point;
46pub mod withdraw_protocol_fees;
47pub mod withdraw_protocol_fees_event;
48
49#[derive(
50    carbon_core::InstructionType, serde::Serialize, serde::Deserialize, PartialEq, Debug, Clone,
51)]
52pub enum MeteoraPoolsProgramInstruction {
53    InitializePermissionedPool(initialize_permissioned_pool::InitializePermissionedPool),
54    InitializePermissionlessPool(initialize_permissionless_pool::InitializePermissionlessPool),
55    InitializePermissionlessPoolWithFeeTier(initialize_permissionless_pool_with_fee_tier::InitializePermissionlessPoolWithFeeTier),
56    EnableOrDisablePool(enable_or_disable_pool::EnableOrDisablePool),
57    Swap(swap::Swap),
58    RemoveLiquiditySingleSide(remove_liquidity_single_side::RemoveLiquiditySingleSide),
59    AddImbalanceLiquidity(add_imbalance_liquidity::AddImbalanceLiquidity),
60    RemoveBalanceLiquidity(remove_balance_liquidity::RemoveBalanceLiquidity),
61    AddBalanceLiquidity(add_balance_liquidity::AddBalanceLiquidity),
62    SetPoolFees(set_pool_fees::SetPoolFees),
63    OverrideCurveParam(override_curve_param::OverrideCurveParam),
64    GetPoolInfo(get_pool_info::GetPoolInfo),
65    BootstrapLiquidity(bootstrap_liquidity::BootstrapLiquidity),
66    CreateMintMetadata(create_mint_metadata::CreateMintMetadata),
67    CreateLockEscrow(create_lock_escrow::CreateLockEscrow),
68    Lock(lock::Lock),
69    ClaimFee(claim_fee::ClaimFee),
70    CreateConfig(create_config::CreateConfig),
71    CloseConfig(close_config::CloseConfig),
72    InitializePermissionlessConstantProductPoolWithConfig(initialize_permissionless_constant_product_pool_with_config::InitializePermissionlessConstantProductPoolWithConfig),
73    InitializePermissionlessConstantProductPoolWithConfig2(initialize_permissionless_constant_product_pool_with_config2::InitializePermissionlessConstantProductPoolWithConfig2),
74    InitializeCustomizablePermissionlessConstantProductPool(initialize_customizable_permissionless_constant_product_pool::InitializeCustomizablePermissionlessConstantProductPool),
75    UpdateActivationPoint(update_activation_point::UpdateActivationPoint),
76    WithdrawProtocolFees(withdraw_protocol_fees::WithdrawProtocolFees),
77    SetWhitelistedVault(set_whitelisted_vault::SetWhitelistedVault),
78    PartnerClaimFee(partner_claim_fee::PartnerClaimFee),
79    AddLiquidityEvent(add_liquidity_event::AddLiquidityEvent),
80    RemoveLiquidityEvent(remove_liquidity_event::RemoveLiquidityEvent),
81    BootstrapLiquidityEvent(bootstrap_liquidity_event::BootstrapLiquidityEvent),
82    SwapEvent(swap_event::SwapEvent),
83    SetPoolFeesEvent(set_pool_fees_event::SetPoolFeesEvent),
84    PoolInfoEvent(pool_info_event::PoolInfoEvent),
85    TransferAdminEvent(transfer_admin_event::TransferAdminEvent),
86    OverrideCurveParamEvent(override_curve_param_event::OverrideCurveParamEvent),
87    PoolCreatedEvent(pool_created_event::PoolCreatedEvent),
88    PoolEnabledEvent(pool_enabled_event::PoolEnabledEvent),
89    MigrateFeeAccountEvent(migrate_fee_account_event::MigrateFeeAccountEvent),
90    CreateLockEscrowEvent(create_lock_escrow_event::CreateLockEscrowEvent),
91    LockEvent(lock_event::LockEvent),
92    ClaimFeeEvent(claim_fee_event::ClaimFeeEvent),
93    CreateConfigEvent(create_config_event::CreateConfigEvent),
94    CloseConfigEvent(close_config_event::CloseConfigEvent),
95    WithdrawProtocolFeesEvent(withdraw_protocol_fees_event::WithdrawProtocolFeesEvent),
96    PartnerClaimFeesEvent(partner_claim_fees_event::PartnerClaimFeesEvent),
97}
98
99impl carbon_core::instruction::InstructionDecoder<'_> for MeteoraPoolsDecoder {
100    type InstructionType = MeteoraPoolsProgramInstruction;
101
102    fn decode_instruction(
103        &self,
104        instruction: &solana_instruction::Instruction,
105    ) -> Option<carbon_core::instruction::DecodedInstruction<Self::InstructionType>> {
106        if !instruction.program_id.eq(&PROGRAM_ID) {
107            return None;
108        }
109
110        carbon_core::try_decode_instructions!(instruction,
111            MeteoraPoolsProgramInstruction::InitializePermissionedPool => initialize_permissioned_pool::InitializePermissionedPool,
112            MeteoraPoolsProgramInstruction::InitializePermissionlessPool => initialize_permissionless_pool::InitializePermissionlessPool,
113            MeteoraPoolsProgramInstruction::InitializePermissionlessPoolWithFeeTier => initialize_permissionless_pool_with_fee_tier::InitializePermissionlessPoolWithFeeTier,
114            MeteoraPoolsProgramInstruction::EnableOrDisablePool => enable_or_disable_pool::EnableOrDisablePool,
115            MeteoraPoolsProgramInstruction::Swap => swap::Swap,
116            MeteoraPoolsProgramInstruction::RemoveLiquiditySingleSide => remove_liquidity_single_side::RemoveLiquiditySingleSide,
117            MeteoraPoolsProgramInstruction::AddImbalanceLiquidity => add_imbalance_liquidity::AddImbalanceLiquidity,
118            MeteoraPoolsProgramInstruction::RemoveBalanceLiquidity => remove_balance_liquidity::RemoveBalanceLiquidity,
119            MeteoraPoolsProgramInstruction::AddBalanceLiquidity => add_balance_liquidity::AddBalanceLiquidity,
120            MeteoraPoolsProgramInstruction::SetPoolFees => set_pool_fees::SetPoolFees,
121            MeteoraPoolsProgramInstruction::OverrideCurveParam => override_curve_param::OverrideCurveParam,
122            MeteoraPoolsProgramInstruction::GetPoolInfo => get_pool_info::GetPoolInfo,
123            MeteoraPoolsProgramInstruction::BootstrapLiquidity => bootstrap_liquidity::BootstrapLiquidity,
124            MeteoraPoolsProgramInstruction::CreateMintMetadata => create_mint_metadata::CreateMintMetadata,
125            MeteoraPoolsProgramInstruction::CreateLockEscrow => create_lock_escrow::CreateLockEscrow,
126            MeteoraPoolsProgramInstruction::Lock => lock::Lock,
127            MeteoraPoolsProgramInstruction::ClaimFee => claim_fee::ClaimFee,
128            MeteoraPoolsProgramInstruction::CreateConfig => create_config::CreateConfig,
129            MeteoraPoolsProgramInstruction::CloseConfig => close_config::CloseConfig,
130            MeteoraPoolsProgramInstruction::InitializePermissionlessConstantProductPoolWithConfig => initialize_permissionless_constant_product_pool_with_config::InitializePermissionlessConstantProductPoolWithConfig,
131            MeteoraPoolsProgramInstruction::InitializePermissionlessConstantProductPoolWithConfig2 => initialize_permissionless_constant_product_pool_with_config2::InitializePermissionlessConstantProductPoolWithConfig2,
132            MeteoraPoolsProgramInstruction::InitializeCustomizablePermissionlessConstantProductPool => initialize_customizable_permissionless_constant_product_pool::InitializeCustomizablePermissionlessConstantProductPool,
133            MeteoraPoolsProgramInstruction::UpdateActivationPoint => update_activation_point::UpdateActivationPoint,
134            MeteoraPoolsProgramInstruction::WithdrawProtocolFees => withdraw_protocol_fees::WithdrawProtocolFees,
135            MeteoraPoolsProgramInstruction::SetWhitelistedVault => set_whitelisted_vault::SetWhitelistedVault,
136            MeteoraPoolsProgramInstruction::PartnerClaimFee => partner_claim_fee::PartnerClaimFee,
137            MeteoraPoolsProgramInstruction::AddLiquidityEvent => add_liquidity_event::AddLiquidityEvent,
138            MeteoraPoolsProgramInstruction::RemoveLiquidityEvent => remove_liquidity_event::RemoveLiquidityEvent,
139            MeteoraPoolsProgramInstruction::BootstrapLiquidityEvent => bootstrap_liquidity_event::BootstrapLiquidityEvent,
140            MeteoraPoolsProgramInstruction::SwapEvent => swap_event::SwapEvent,
141            MeteoraPoolsProgramInstruction::SetPoolFeesEvent => set_pool_fees_event::SetPoolFeesEvent,
142            MeteoraPoolsProgramInstruction::PoolInfoEvent => pool_info_event::PoolInfoEvent,
143            MeteoraPoolsProgramInstruction::TransferAdminEvent => transfer_admin_event::TransferAdminEvent,
144            MeteoraPoolsProgramInstruction::OverrideCurveParamEvent => override_curve_param_event::OverrideCurveParamEvent,
145            MeteoraPoolsProgramInstruction::PoolCreatedEvent => pool_created_event::PoolCreatedEvent,
146            MeteoraPoolsProgramInstruction::PoolEnabledEvent => pool_enabled_event::PoolEnabledEvent,
147            MeteoraPoolsProgramInstruction::MigrateFeeAccountEvent => migrate_fee_account_event::MigrateFeeAccountEvent,
148            MeteoraPoolsProgramInstruction::CreateLockEscrowEvent => create_lock_escrow_event::CreateLockEscrowEvent,
149            MeteoraPoolsProgramInstruction::LockEvent => lock_event::LockEvent,
150            MeteoraPoolsProgramInstruction::ClaimFeeEvent => claim_fee_event::ClaimFeeEvent,
151            MeteoraPoolsProgramInstruction::CreateConfigEvent => create_config_event::CreateConfigEvent,
152            MeteoraPoolsProgramInstruction::CloseConfigEvent => close_config_event::CloseConfigEvent,
153            MeteoraPoolsProgramInstruction::WithdrawProtocolFeesEvent => withdraw_protocol_fees_event::WithdrawProtocolFeesEvent,
154            MeteoraPoolsProgramInstruction::PartnerClaimFeesEvent => partner_claim_fees_event::PartnerClaimFeesEvent,
155        )
156    }
157}