1use crate::{MeteoraDbcDecoder, PROGRAM_ID};
3
4#[cfg(feature = "postgres")]
5pub mod postgres;
6
7#[cfg(feature = "graphql")]
8pub mod graphql;
9
10pub mod claim_creator_trading_fee;
11pub mod claim_partner_pool_creation_fee;
12pub mod claim_protocol_fee;
13pub mod claim_protocol_pool_creation_fee;
14pub mod claim_trading_fee;
15pub mod close_claim_protocol_fee_operator;
16pub mod close_operator_account;
17pub mod cpi_event;
18pub mod create_config;
19pub mod create_locker;
20pub mod create_operator_account;
21pub mod create_partner_metadata;
22pub mod create_virtual_pool_metadata;
23pub mod creator_withdraw_surplus;
24pub mod initialize_virtual_pool_with_spl_token;
25pub mod initialize_virtual_pool_with_token2022;
26pub mod migrate_meteora_damm;
27pub mod migrate_meteora_damm_claim_lp_token;
28pub mod migrate_meteora_damm_lock_lp_token;
29pub mod migration_damm_v2;
30pub mod migration_damm_v2_create_metadata;
31pub mod migration_meteora_damm_create_metadata;
32pub mod partner_withdraw_surplus;
33pub mod swap;
34pub mod swap2;
35pub mod transfer_pool_creator;
36pub mod withdraw_leftover;
37pub mod withdraw_migration_fee;
38pub mod zap_protocol_fee;
39
40pub use self::{
41 claim_creator_trading_fee::*, claim_partner_pool_creation_fee::*, claim_protocol_fee::*,
42 claim_protocol_pool_creation_fee::*, claim_trading_fee::*,
43 close_claim_protocol_fee_operator::*, close_operator_account::*, cpi_event::*,
44 create_config::*, create_locker::*, create_operator_account::*, create_partner_metadata::*,
45 create_virtual_pool_metadata::*, creator_withdraw_surplus::*,
46 initialize_virtual_pool_with_spl_token::*, initialize_virtual_pool_with_token2022::*,
47 migrate_meteora_damm::*, migrate_meteora_damm_claim_lp_token::*,
48 migrate_meteora_damm_lock_lp_token::*, migration_damm_v2::*,
49 migration_damm_v2_create_metadata::*, migration_meteora_damm_create_metadata::*,
50 partner_withdraw_surplus::*, swap::*, swap2::*, transfer_pool_creator::*, withdraw_leftover::*,
51 withdraw_migration_fee::*, zap_protocol_fee::*,
52};
53
54#[derive(Debug, Clone, PartialEq)]
55#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
56#[cfg_attr(feature = "serde", serde(tag = "type", content = "data"))]
57pub enum MeteoraDbcInstruction {
58 ClaimCreatorTradingFee {
59 program_id: solana_pubkey::Pubkey,
60 data: ClaimCreatorTradingFee,
61 accounts: ClaimCreatorTradingFeeInstructionAccounts,
62 },
63 ClaimPartnerPoolCreationFee {
64 program_id: solana_pubkey::Pubkey,
65 data: ClaimPartnerPoolCreationFee,
66 accounts: ClaimPartnerPoolCreationFeeInstructionAccounts,
67 },
68 ClaimProtocolFee {
69 program_id: solana_pubkey::Pubkey,
70 data: ClaimProtocolFee,
71 accounts: ClaimProtocolFeeInstructionAccounts,
72 },
73 ClaimProtocolPoolCreationFee {
74 program_id: solana_pubkey::Pubkey,
75 data: ClaimProtocolPoolCreationFee,
76 accounts: ClaimProtocolPoolCreationFeeInstructionAccounts,
77 },
78 ClaimTradingFee {
79 program_id: solana_pubkey::Pubkey,
80 data: ClaimTradingFee,
81 accounts: ClaimTradingFeeInstructionAccounts,
82 },
83 CloseClaimProtocolFeeOperator {
84 program_id: solana_pubkey::Pubkey,
85 data: CloseClaimProtocolFeeOperator,
86 accounts: CloseClaimProtocolFeeOperatorInstructionAccounts,
87 },
88 CloseOperatorAccount {
89 program_id: solana_pubkey::Pubkey,
90 data: CloseOperatorAccount,
91 accounts: CloseOperatorAccountInstructionAccounts,
92 },
93 CreateConfig {
94 program_id: solana_pubkey::Pubkey,
95 data: CreateConfig,
96 accounts: CreateConfigInstructionAccounts,
97 },
98 CreateLocker {
99 program_id: solana_pubkey::Pubkey,
100 data: CreateLocker,
101 accounts: CreateLockerInstructionAccounts,
102 },
103 CreateOperatorAccount {
104 program_id: solana_pubkey::Pubkey,
105 data: CreateOperatorAccount,
106 accounts: CreateOperatorAccountInstructionAccounts,
107 },
108 CreatePartnerMetadata {
109 program_id: solana_pubkey::Pubkey,
110 data: CreatePartnerMetadata,
111 accounts: CreatePartnerMetadataInstructionAccounts,
112 },
113 CreateVirtualPoolMetadata {
114 program_id: solana_pubkey::Pubkey,
115 data: CreateVirtualPoolMetadata,
116 accounts: CreateVirtualPoolMetadataInstructionAccounts,
117 },
118 CreatorWithdrawSurplus {
119 program_id: solana_pubkey::Pubkey,
120 data: CreatorWithdrawSurplus,
121 accounts: CreatorWithdrawSurplusInstructionAccounts,
122 },
123 InitializeVirtualPoolWithSplToken {
124 program_id: solana_pubkey::Pubkey,
125 data: InitializeVirtualPoolWithSplToken,
126 accounts: InitializeVirtualPoolWithSplTokenInstructionAccounts,
127 },
128 InitializeVirtualPoolWithToken2022 {
129 program_id: solana_pubkey::Pubkey,
130 data: InitializeVirtualPoolWithToken2022,
131 accounts: InitializeVirtualPoolWithToken2022InstructionAccounts,
132 },
133 MigrateMeteoraDamm {
134 program_id: solana_pubkey::Pubkey,
135 data: MigrateMeteoraDamm,
136 accounts: MigrateMeteoraDammInstructionAccounts,
137 },
138 MigrateMeteoraDammClaimLpToken {
139 program_id: solana_pubkey::Pubkey,
140 data: MigrateMeteoraDammClaimLpToken,
141 accounts: MigrateMeteoraDammClaimLpTokenInstructionAccounts,
142 },
143 MigrateMeteoraDammLockLpToken {
144 program_id: solana_pubkey::Pubkey,
145 data: MigrateMeteoraDammLockLpToken,
146 accounts: MigrateMeteoraDammLockLpTokenInstructionAccounts,
147 },
148 MigrationDammV2 {
149 program_id: solana_pubkey::Pubkey,
150 data: MigrationDammV2,
151 accounts: MigrationDammV2InstructionAccounts,
152 },
153 MigrationDammV2CreateMetadata {
154 program_id: solana_pubkey::Pubkey,
155 data: MigrationDammV2CreateMetadata,
156 accounts: MigrationDammV2CreateMetadataInstructionAccounts,
157 },
158 MigrationMeteoraDammCreateMetadata {
159 program_id: solana_pubkey::Pubkey,
160 data: MigrationMeteoraDammCreateMetadata,
161 accounts: MigrationMeteoraDammCreateMetadataInstructionAccounts,
162 },
163 PartnerWithdrawSurplus {
164 program_id: solana_pubkey::Pubkey,
165 data: PartnerWithdrawSurplus,
166 accounts: PartnerWithdrawSurplusInstructionAccounts,
167 },
168 Swap {
169 program_id: solana_pubkey::Pubkey,
170 data: Swap,
171 accounts: SwapInstructionAccounts,
172 },
173 Swap2 {
174 program_id: solana_pubkey::Pubkey,
175 data: Swap2,
176 accounts: Swap2InstructionAccounts,
177 },
178 TransferPoolCreator {
179 program_id: solana_pubkey::Pubkey,
180 data: TransferPoolCreator,
181 accounts: TransferPoolCreatorInstructionAccounts,
182 },
183 WithdrawLeftover {
184 program_id: solana_pubkey::Pubkey,
185 data: WithdrawLeftover,
186 accounts: WithdrawLeftoverInstructionAccounts,
187 },
188 WithdrawMigrationFee {
189 program_id: solana_pubkey::Pubkey,
190 data: WithdrawMigrationFee,
191 accounts: WithdrawMigrationFeeInstructionAccounts,
192 },
193 ZapProtocolFee {
194 program_id: solana_pubkey::Pubkey,
195 data: ZapProtocolFee,
196 accounts: ZapProtocolFeeInstructionAccounts,
197 },
198 CpiEvent {
199 program_id: solana_pubkey::Pubkey,
200 data: CpiEvent,
201 accounts: CpiEventInstructionAccounts,
202 },
203}
204
205impl carbon_core::instruction::InstructionDecoder<'_> for MeteoraDbcDecoder {
206 type InstructionType = MeteoraDbcInstruction;
207
208 fn decode_instruction(
209 &self,
210 instruction: &solana_instruction::Instruction,
211 ) -> Option<Self::InstructionType> {
212 if instruction.program_id != PROGRAM_ID {
213 return None;
214 }
215
216 carbon_core::try_decode_instructions!(
217 instruction,
218 PROGRAM_ID,
219 MeteoraDbcInstruction::ClaimCreatorTradingFee => ClaimCreatorTradingFee,
220 MeteoraDbcInstruction::ClaimPartnerPoolCreationFee => ClaimPartnerPoolCreationFee,
221 MeteoraDbcInstruction::ClaimProtocolFee => ClaimProtocolFee,
222 MeteoraDbcInstruction::ClaimProtocolPoolCreationFee => ClaimProtocolPoolCreationFee,
223 MeteoraDbcInstruction::ClaimTradingFee => ClaimTradingFee,
224 MeteoraDbcInstruction::CloseClaimProtocolFeeOperator => CloseClaimProtocolFeeOperator,
225 MeteoraDbcInstruction::CloseOperatorAccount => CloseOperatorAccount,
226 MeteoraDbcInstruction::CreateConfig => CreateConfig,
227 MeteoraDbcInstruction::CreateLocker => CreateLocker,
228 MeteoraDbcInstruction::CreateOperatorAccount => CreateOperatorAccount,
229 MeteoraDbcInstruction::CreatePartnerMetadata => CreatePartnerMetadata,
230 MeteoraDbcInstruction::CreateVirtualPoolMetadata => CreateVirtualPoolMetadata,
231 MeteoraDbcInstruction::CreatorWithdrawSurplus => CreatorWithdrawSurplus,
232 MeteoraDbcInstruction::InitializeVirtualPoolWithSplToken => InitializeVirtualPoolWithSplToken,
233 MeteoraDbcInstruction::InitializeVirtualPoolWithToken2022 => InitializeVirtualPoolWithToken2022,
234 MeteoraDbcInstruction::MigrateMeteoraDamm => MigrateMeteoraDamm,
235 MeteoraDbcInstruction::MigrateMeteoraDammClaimLpToken => MigrateMeteoraDammClaimLpToken,
236 MeteoraDbcInstruction::MigrateMeteoraDammLockLpToken => MigrateMeteoraDammLockLpToken,
237 MeteoraDbcInstruction::MigrationDammV2 => MigrationDammV2,
238 MeteoraDbcInstruction::MigrationDammV2CreateMetadata => MigrationDammV2CreateMetadata,
239 MeteoraDbcInstruction::MigrationMeteoraDammCreateMetadata => MigrationMeteoraDammCreateMetadata,
240 MeteoraDbcInstruction::PartnerWithdrawSurplus => PartnerWithdrawSurplus,
241 MeteoraDbcInstruction::Swap => Swap,
242 MeteoraDbcInstruction::Swap2 => Swap2,
243 MeteoraDbcInstruction::TransferPoolCreator => TransferPoolCreator,
244 MeteoraDbcInstruction::WithdrawLeftover => WithdrawLeftover,
245 MeteoraDbcInstruction::WithdrawMigrationFee => WithdrawMigrationFee,
246 MeteoraDbcInstruction::ZapProtocolFee => ZapProtocolFee,
247 MeteoraDbcInstruction::CpiEvent => CpiEvent,
248 )
249 }
250}