carbon_meteora_pools_decoder/instructions/
mod.rs1use 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}