Skip to main content

carbon_wavebreak_decoder/instructions/
mod.rs

1//! This code was AUTOGENERATED using the Codama library.
2use crate::{WavebreakDecoder, PROGRAM_ID};
3
4#[cfg(feature = "postgres")]
5pub mod postgres;
6
7#[cfg(feature = "graphql")]
8pub mod graphql;
9
10pub mod authority_config_grant;
11pub mod authority_config_initialize;
12pub mod authority_config_revoke;
13pub mod bonding_curve_close;
14pub mod bonding_curve_collect_fees;
15pub mod bonding_curve_graduate;
16pub mod bonding_curve_initialize;
17pub mod create_launch;
18pub mod create_lockedlaunch;
19pub mod create_presale;
20pub mod graduate_manual;
21pub mod graduate_whirlpool;
22pub mod lp_harvest;
23pub mod lp_takeover;
24pub mod lp_transfer;
25pub mod mint_config_close;
26pub mod mint_config_initialize;
27pub mod mint_config_update;
28pub mod permission_config_close;
29pub mod permission_config_initialize;
30pub mod permission_config_update;
31pub mod permission_consume_cpi;
32pub mod permission_consume_top_level;
33pub mod permission_refund;
34pub mod permission_revoke;
35pub mod reserved_authority_config_a;
36pub mod reserved_authority_config_b;
37pub mod reserved_authority_config_c;
38pub mod reserved_authority_config_y;
39pub mod reserved_authority_config_z;
40pub mod reserved_bonding_curve_a;
41pub mod reserved_bonding_curve_x;
42pub mod reserved_bonding_curve_y;
43pub mod reserved_bonding_curve_z;
44pub mod reserved_create_a;
45pub mod reserved_create_b;
46pub mod reserved_create_c;
47pub mod reserved_create_y;
48pub mod reserved_create_z;
49pub mod reserved_graduate_a;
50pub mod reserved_graduate_b;
51pub mod reserved_graduate_c;
52pub mod reserved_graduate_x;
53pub mod reserved_graduate_y;
54pub mod reserved_graduate_z;
55pub mod reserved_lp_a;
56pub mod reserved_lp_b;
57pub mod reserved_lp_x;
58pub mod reserved_lp_y;
59pub mod reserved_lp_z;
60pub mod reserved_mint_config_a;
61pub mod reserved_mint_config_b;
62pub mod reserved_mint_config_c;
63pub mod reserved_mint_config_y;
64pub mod reserved_mint_config_z;
65pub mod reserved_permission_a;
66pub mod reserved_token_a;
67pub mod reserved_token_y;
68pub mod reserved_token_z;
69pub mod token_buy_exact_in;
70pub mod token_buy_exact_out;
71pub mod token_refund;
72pub mod token_sell_exact_in;
73pub mod token_sell_exact_out;
74
75pub use self::{
76    authority_config_grant::*, authority_config_initialize::*, authority_config_revoke::*,
77    bonding_curve_close::*, bonding_curve_collect_fees::*, bonding_curve_graduate::*,
78    bonding_curve_initialize::*, create_launch::*, create_lockedlaunch::*, create_presale::*,
79    graduate_manual::*, graduate_whirlpool::*, lp_harvest::*, lp_takeover::*, lp_transfer::*,
80    mint_config_close::*, mint_config_initialize::*, mint_config_update::*,
81    permission_config_close::*, permission_config_initialize::*, permission_config_update::*,
82    permission_consume_cpi::*, permission_consume_top_level::*, permission_refund::*,
83    permission_revoke::*, reserved_authority_config_a::*, reserved_authority_config_b::*,
84    reserved_authority_config_c::*, reserved_authority_config_y::*, reserved_authority_config_z::*,
85    reserved_bonding_curve_a::*, reserved_bonding_curve_x::*, reserved_bonding_curve_y::*,
86    reserved_bonding_curve_z::*, reserved_create_a::*, reserved_create_b::*, reserved_create_c::*,
87    reserved_create_y::*, reserved_create_z::*, reserved_graduate_a::*, reserved_graduate_b::*,
88    reserved_graduate_c::*, reserved_graduate_x::*, reserved_graduate_y::*, reserved_graduate_z::*,
89    reserved_lp_a::*, reserved_lp_b::*, reserved_lp_x::*, reserved_lp_y::*, reserved_lp_z::*,
90    reserved_mint_config_a::*, reserved_mint_config_b::*, reserved_mint_config_c::*,
91    reserved_mint_config_y::*, reserved_mint_config_z::*, reserved_permission_a::*,
92    reserved_token_a::*, reserved_token_y::*, reserved_token_z::*, token_buy_exact_in::*,
93    token_buy_exact_out::*, token_refund::*, token_sell_exact_in::*, token_sell_exact_out::*,
94};
95
96#[derive(Debug, Clone, PartialEq)]
97#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
98#[cfg_attr(feature = "serde", serde(tag = "type", content = "data"))]
99pub enum WavebreakInstruction {
100    AuthorityConfigGrant {
101        program_id: solana_pubkey::Pubkey,
102        data: AuthorityConfigGrant,
103        accounts: AuthorityConfigGrantInstructionAccounts,
104    },
105    AuthorityConfigInitialize {
106        program_id: solana_pubkey::Pubkey,
107        data: AuthorityConfigInitialize,
108        accounts: AuthorityConfigInitializeInstructionAccounts,
109    },
110    AuthorityConfigRevoke {
111        program_id: solana_pubkey::Pubkey,
112        data: AuthorityConfigRevoke,
113        accounts: AuthorityConfigRevokeInstructionAccounts,
114    },
115    BondingCurveClose {
116        program_id: solana_pubkey::Pubkey,
117        data: BondingCurveClose,
118        accounts: BondingCurveCloseInstructionAccounts,
119    },
120    BondingCurveCollectFees {
121        program_id: solana_pubkey::Pubkey,
122        data: BondingCurveCollectFees,
123        accounts: BondingCurveCollectFeesInstructionAccounts,
124    },
125    BondingCurveGraduate {
126        program_id: solana_pubkey::Pubkey,
127        data: BondingCurveGraduate,
128        accounts: BondingCurveGraduateInstructionAccounts,
129    },
130    BondingCurveInitialize {
131        program_id: solana_pubkey::Pubkey,
132        data: BondingCurveInitialize,
133        accounts: BondingCurveInitializeInstructionAccounts,
134    },
135    CreateLaunch {
136        program_id: solana_pubkey::Pubkey,
137        data: CreateLaunch,
138        accounts: CreateLaunchInstructionAccounts,
139    },
140    CreateLockedlaunch {
141        program_id: solana_pubkey::Pubkey,
142        data: CreateLockedlaunch,
143        accounts: CreateLockedlaunchInstructionAccounts,
144    },
145    CreatePresale {
146        program_id: solana_pubkey::Pubkey,
147        data: CreatePresale,
148        accounts: CreatePresaleInstructionAccounts,
149    },
150    GraduateManual {
151        program_id: solana_pubkey::Pubkey,
152        data: GraduateManual,
153        accounts: GraduateManualInstructionAccounts,
154    },
155    GraduateWhirlpool {
156        program_id: solana_pubkey::Pubkey,
157        data: GraduateWhirlpool,
158        accounts: GraduateWhirlpoolInstructionAccounts,
159    },
160    LpHarvest {
161        program_id: solana_pubkey::Pubkey,
162        data: LpHarvest,
163        accounts: LpHarvestInstructionAccounts,
164    },
165    LpTakeover {
166        program_id: solana_pubkey::Pubkey,
167        data: LpTakeover,
168        accounts: LpTakeoverInstructionAccounts,
169    },
170    LpTransfer {
171        program_id: solana_pubkey::Pubkey,
172        data: LpTransfer,
173        accounts: LpTransferInstructionAccounts,
174    },
175    MintConfigClose {
176        program_id: solana_pubkey::Pubkey,
177        data: MintConfigClose,
178        accounts: MintConfigCloseInstructionAccounts,
179    },
180    MintConfigInitialize {
181        program_id: solana_pubkey::Pubkey,
182        data: MintConfigInitialize,
183        accounts: MintConfigInitializeInstructionAccounts,
184    },
185    MintConfigUpdate {
186        program_id: solana_pubkey::Pubkey,
187        data: MintConfigUpdate,
188        accounts: MintConfigUpdateInstructionAccounts,
189    },
190    PermissionConfigClose {
191        program_id: solana_pubkey::Pubkey,
192        data: PermissionConfigClose,
193        accounts: PermissionConfigCloseInstructionAccounts,
194    },
195    PermissionConfigInitialize {
196        program_id: solana_pubkey::Pubkey,
197        data: PermissionConfigInitialize,
198        accounts: PermissionConfigInitializeInstructionAccounts,
199    },
200    PermissionConfigUpdate {
201        program_id: solana_pubkey::Pubkey,
202        data: PermissionConfigUpdate,
203        accounts: PermissionConfigUpdateInstructionAccounts,
204    },
205    PermissionConsumeCpi {
206        program_id: solana_pubkey::Pubkey,
207        data: PermissionConsumeCpi,
208        accounts: PermissionConsumeCpiInstructionAccounts,
209    },
210    PermissionConsumeTopLevel {
211        program_id: solana_pubkey::Pubkey,
212        data: PermissionConsumeTopLevel,
213        accounts: PermissionConsumeTopLevelInstructionAccounts,
214    },
215    PermissionRefund {
216        program_id: solana_pubkey::Pubkey,
217        data: PermissionRefund,
218        accounts: PermissionRefundInstructionAccounts,
219    },
220    PermissionRevoke {
221        program_id: solana_pubkey::Pubkey,
222        data: PermissionRevoke,
223        accounts: PermissionRevokeInstructionAccounts,
224    },
225    ReservedAuthorityConfigA {
226        program_id: solana_pubkey::Pubkey,
227        data: ReservedAuthorityConfigA,
228        accounts: ReservedAuthorityConfigAInstructionAccounts,
229    },
230    ReservedAuthorityConfigB {
231        program_id: solana_pubkey::Pubkey,
232        data: ReservedAuthorityConfigB,
233        accounts: ReservedAuthorityConfigBInstructionAccounts,
234    },
235    ReservedAuthorityConfigC {
236        program_id: solana_pubkey::Pubkey,
237        data: ReservedAuthorityConfigC,
238        accounts: ReservedAuthorityConfigCInstructionAccounts,
239    },
240    ReservedAuthorityConfigY {
241        program_id: solana_pubkey::Pubkey,
242        data: ReservedAuthorityConfigY,
243        accounts: ReservedAuthorityConfigYInstructionAccounts,
244    },
245    ReservedAuthorityConfigZ {
246        program_id: solana_pubkey::Pubkey,
247        data: ReservedAuthorityConfigZ,
248        accounts: ReservedAuthorityConfigZInstructionAccounts,
249    },
250    ReservedBondingCurveA {
251        program_id: solana_pubkey::Pubkey,
252        data: ReservedBondingCurveA,
253        accounts: ReservedBondingCurveAInstructionAccounts,
254    },
255    ReservedBondingCurveX {
256        program_id: solana_pubkey::Pubkey,
257        data: ReservedBondingCurveX,
258        accounts: ReservedBondingCurveXInstructionAccounts,
259    },
260    ReservedBondingCurveY {
261        program_id: solana_pubkey::Pubkey,
262        data: ReservedBondingCurveY,
263        accounts: ReservedBondingCurveYInstructionAccounts,
264    },
265    ReservedBondingCurveZ {
266        program_id: solana_pubkey::Pubkey,
267        data: ReservedBondingCurveZ,
268        accounts: ReservedBondingCurveZInstructionAccounts,
269    },
270    ReservedCreateA {
271        program_id: solana_pubkey::Pubkey,
272        data: ReservedCreateA,
273        accounts: ReservedCreateAInstructionAccounts,
274    },
275    ReservedCreateB {
276        program_id: solana_pubkey::Pubkey,
277        data: ReservedCreateB,
278        accounts: ReservedCreateBInstructionAccounts,
279    },
280    ReservedCreateC {
281        program_id: solana_pubkey::Pubkey,
282        data: ReservedCreateC,
283        accounts: ReservedCreateCInstructionAccounts,
284    },
285    ReservedCreateY {
286        program_id: solana_pubkey::Pubkey,
287        data: ReservedCreateY,
288        accounts: ReservedCreateYInstructionAccounts,
289    },
290    ReservedCreateZ {
291        program_id: solana_pubkey::Pubkey,
292        data: ReservedCreateZ,
293        accounts: ReservedCreateZInstructionAccounts,
294    },
295    ReservedGraduateA {
296        program_id: solana_pubkey::Pubkey,
297        data: ReservedGraduateA,
298        accounts: ReservedGraduateAInstructionAccounts,
299    },
300    ReservedGraduateB {
301        program_id: solana_pubkey::Pubkey,
302        data: ReservedGraduateB,
303        accounts: ReservedGraduateBInstructionAccounts,
304    },
305    ReservedGraduateC {
306        program_id: solana_pubkey::Pubkey,
307        data: ReservedGraduateC,
308        accounts: ReservedGraduateCInstructionAccounts,
309    },
310    ReservedGraduateX {
311        program_id: solana_pubkey::Pubkey,
312        data: ReservedGraduateX,
313        accounts: ReservedGraduateXInstructionAccounts,
314    },
315    ReservedGraduateY {
316        program_id: solana_pubkey::Pubkey,
317        data: ReservedGraduateY,
318        accounts: ReservedGraduateYInstructionAccounts,
319    },
320    ReservedGraduateZ {
321        program_id: solana_pubkey::Pubkey,
322        data: ReservedGraduateZ,
323        accounts: ReservedGraduateZInstructionAccounts,
324    },
325    ReservedLpA {
326        program_id: solana_pubkey::Pubkey,
327        data: ReservedLpA,
328        accounts: ReservedLpAInstructionAccounts,
329    },
330    ReservedLpB {
331        program_id: solana_pubkey::Pubkey,
332        data: ReservedLpB,
333        accounts: ReservedLpBInstructionAccounts,
334    },
335    ReservedLpX {
336        program_id: solana_pubkey::Pubkey,
337        data: ReservedLpX,
338        accounts: ReservedLpXInstructionAccounts,
339    },
340    ReservedLpY {
341        program_id: solana_pubkey::Pubkey,
342        data: ReservedLpY,
343        accounts: ReservedLpYInstructionAccounts,
344    },
345    ReservedLpZ {
346        program_id: solana_pubkey::Pubkey,
347        data: ReservedLpZ,
348        accounts: ReservedLpZInstructionAccounts,
349    },
350    ReservedMintConfigA {
351        program_id: solana_pubkey::Pubkey,
352        data: ReservedMintConfigA,
353        accounts: ReservedMintConfigAInstructionAccounts,
354    },
355    ReservedMintConfigB {
356        program_id: solana_pubkey::Pubkey,
357        data: ReservedMintConfigB,
358        accounts: ReservedMintConfigBInstructionAccounts,
359    },
360    ReservedMintConfigC {
361        program_id: solana_pubkey::Pubkey,
362        data: ReservedMintConfigC,
363        accounts: ReservedMintConfigCInstructionAccounts,
364    },
365    ReservedMintConfigY {
366        program_id: solana_pubkey::Pubkey,
367        data: ReservedMintConfigY,
368        accounts: ReservedMintConfigYInstructionAccounts,
369    },
370    ReservedMintConfigZ {
371        program_id: solana_pubkey::Pubkey,
372        data: ReservedMintConfigZ,
373        accounts: ReservedMintConfigZInstructionAccounts,
374    },
375    ReservedPermissionA {
376        program_id: solana_pubkey::Pubkey,
377        data: ReservedPermissionA,
378        accounts: ReservedPermissionAInstructionAccounts,
379    },
380    ReservedTokenA {
381        program_id: solana_pubkey::Pubkey,
382        data: ReservedTokenA,
383        accounts: ReservedTokenAInstructionAccounts,
384    },
385    ReservedTokenY {
386        program_id: solana_pubkey::Pubkey,
387        data: ReservedTokenY,
388        accounts: ReservedTokenYInstructionAccounts,
389    },
390    ReservedTokenZ {
391        program_id: solana_pubkey::Pubkey,
392        data: ReservedTokenZ,
393        accounts: ReservedTokenZInstructionAccounts,
394    },
395    TokenBuyExactIn {
396        program_id: solana_pubkey::Pubkey,
397        data: TokenBuyExactIn,
398        accounts: TokenBuyExactInInstructionAccounts,
399    },
400    TokenBuyExactOut {
401        program_id: solana_pubkey::Pubkey,
402        data: TokenBuyExactOut,
403        accounts: TokenBuyExactOutInstructionAccounts,
404    },
405    TokenRefund {
406        program_id: solana_pubkey::Pubkey,
407        data: TokenRefund,
408        accounts: TokenRefundInstructionAccounts,
409    },
410    TokenSellExactIn {
411        program_id: solana_pubkey::Pubkey,
412        data: TokenSellExactIn,
413        accounts: TokenSellExactInInstructionAccounts,
414    },
415    TokenSellExactOut {
416        program_id: solana_pubkey::Pubkey,
417        data: TokenSellExactOut,
418        accounts: TokenSellExactOutInstructionAccounts,
419    },
420}
421
422impl carbon_core::instruction::InstructionDecoder<'_> for WavebreakDecoder {
423    type InstructionType = WavebreakInstruction;
424
425    fn decode_instruction(
426        &self,
427        instruction: &solana_instruction::Instruction,
428    ) -> Option<Self::InstructionType> {
429        if instruction.program_id != PROGRAM_ID {
430            return None;
431        }
432
433        carbon_core::try_decode_instructions!(
434            instruction,
435            PROGRAM_ID,
436            WavebreakInstruction::AuthorityConfigGrant => AuthorityConfigGrant,
437            WavebreakInstruction::AuthorityConfigInitialize => AuthorityConfigInitialize,
438            WavebreakInstruction::AuthorityConfigRevoke => AuthorityConfigRevoke,
439            WavebreakInstruction::BondingCurveClose => BondingCurveClose,
440            WavebreakInstruction::BondingCurveCollectFees => BondingCurveCollectFees,
441            WavebreakInstruction::BondingCurveGraduate => BondingCurveGraduate,
442            WavebreakInstruction::BondingCurveInitialize => BondingCurveInitialize,
443            WavebreakInstruction::CreateLaunch => CreateLaunch,
444            WavebreakInstruction::CreateLockedlaunch => CreateLockedlaunch,
445            WavebreakInstruction::CreatePresale => CreatePresale,
446            WavebreakInstruction::GraduateManual => GraduateManual,
447            WavebreakInstruction::GraduateWhirlpool => GraduateWhirlpool,
448            WavebreakInstruction::LpHarvest => LpHarvest,
449            WavebreakInstruction::LpTakeover => LpTakeover,
450            WavebreakInstruction::LpTransfer => LpTransfer,
451            WavebreakInstruction::MintConfigClose => MintConfigClose,
452            WavebreakInstruction::MintConfigInitialize => MintConfigInitialize,
453            WavebreakInstruction::MintConfigUpdate => MintConfigUpdate,
454            WavebreakInstruction::PermissionConfigClose => PermissionConfigClose,
455            WavebreakInstruction::PermissionConfigInitialize => PermissionConfigInitialize,
456            WavebreakInstruction::PermissionConfigUpdate => PermissionConfigUpdate,
457            WavebreakInstruction::PermissionConsumeCpi => PermissionConsumeCpi,
458            WavebreakInstruction::PermissionConsumeTopLevel => PermissionConsumeTopLevel,
459            WavebreakInstruction::PermissionRefund => PermissionRefund,
460            WavebreakInstruction::PermissionRevoke => PermissionRevoke,
461            WavebreakInstruction::ReservedAuthorityConfigA => ReservedAuthorityConfigA,
462            WavebreakInstruction::ReservedAuthorityConfigB => ReservedAuthorityConfigB,
463            WavebreakInstruction::ReservedAuthorityConfigC => ReservedAuthorityConfigC,
464            WavebreakInstruction::ReservedAuthorityConfigY => ReservedAuthorityConfigY,
465            WavebreakInstruction::ReservedAuthorityConfigZ => ReservedAuthorityConfigZ,
466            WavebreakInstruction::ReservedBondingCurveA => ReservedBondingCurveA,
467            WavebreakInstruction::ReservedBondingCurveX => ReservedBondingCurveX,
468            WavebreakInstruction::ReservedBondingCurveY => ReservedBondingCurveY,
469            WavebreakInstruction::ReservedBondingCurveZ => ReservedBondingCurveZ,
470            WavebreakInstruction::ReservedCreateA => ReservedCreateA,
471            WavebreakInstruction::ReservedCreateB => ReservedCreateB,
472            WavebreakInstruction::ReservedCreateC => ReservedCreateC,
473            WavebreakInstruction::ReservedCreateY => ReservedCreateY,
474            WavebreakInstruction::ReservedCreateZ => ReservedCreateZ,
475            WavebreakInstruction::ReservedGraduateA => ReservedGraduateA,
476            WavebreakInstruction::ReservedGraduateB => ReservedGraduateB,
477            WavebreakInstruction::ReservedGraduateC => ReservedGraduateC,
478            WavebreakInstruction::ReservedGraduateX => ReservedGraduateX,
479            WavebreakInstruction::ReservedGraduateY => ReservedGraduateY,
480            WavebreakInstruction::ReservedGraduateZ => ReservedGraduateZ,
481            WavebreakInstruction::ReservedLpA => ReservedLpA,
482            WavebreakInstruction::ReservedLpB => ReservedLpB,
483            WavebreakInstruction::ReservedLpX => ReservedLpX,
484            WavebreakInstruction::ReservedLpY => ReservedLpY,
485            WavebreakInstruction::ReservedLpZ => ReservedLpZ,
486            WavebreakInstruction::ReservedMintConfigA => ReservedMintConfigA,
487            WavebreakInstruction::ReservedMintConfigB => ReservedMintConfigB,
488            WavebreakInstruction::ReservedMintConfigC => ReservedMintConfigC,
489            WavebreakInstruction::ReservedMintConfigY => ReservedMintConfigY,
490            WavebreakInstruction::ReservedMintConfigZ => ReservedMintConfigZ,
491            WavebreakInstruction::ReservedPermissionA => ReservedPermissionA,
492            WavebreakInstruction::ReservedTokenA => ReservedTokenA,
493            WavebreakInstruction::ReservedTokenY => ReservedTokenY,
494            WavebreakInstruction::ReservedTokenZ => ReservedTokenZ,
495            WavebreakInstruction::TokenBuyExactIn => TokenBuyExactIn,
496            WavebreakInstruction::TokenBuyExactOut => TokenBuyExactOut,
497            WavebreakInstruction::TokenRefund => TokenRefund,
498            WavebreakInstruction::TokenSellExactIn => TokenSellExactIn,
499            WavebreakInstruction::TokenSellExactOut => TokenSellExactOut,
500        )
501    }
502}