carbon_wavebreak_decoder/instructions/
mod.rs1use crate::PROGRAM_ID;
2
3use super::WavebreakDecoder;
4pub mod authority_config_grant;
5pub mod authority_config_initialize;
6pub mod authority_config_revoke;
7pub mod bonding_curve_close;
8pub mod bonding_curve_collect_fees;
9pub mod bonding_curve_graduate;
10pub mod bonding_curve_initialize;
11pub mod create_launch;
12pub mod create_lockedlaunch;
13pub mod create_presale;
14pub mod graduate_manual;
15pub mod graduate_whirlpool;
16pub mod mint_config_close;
17pub mod mint_config_initialize;
18pub mod mint_config_update;
19pub mod permission_config_close;
20pub mod permission_config_initialize;
21pub mod permission_config_update;
22pub mod permission_consume_cpi;
23pub mod permission_consume_top_level;
24pub mod permission_refund;
25pub mod permission_revoke;
26pub mod reserved_authority_config_a;
27pub mod reserved_authority_config_b;
28pub mod reserved_authority_config_c;
29pub mod reserved_authority_config_y;
30pub mod reserved_authority_config_z;
31pub mod reserved_bonding_curve_a;
32pub mod reserved_bonding_curve_x;
33pub mod reserved_bonding_curve_y;
34pub mod reserved_bonding_curve_z;
35pub mod reserved_create_a;
36pub mod reserved_create_b;
37pub mod reserved_create_c;
38pub mod reserved_create_y;
39pub mod reserved_create_z;
40pub mod reserved_graduate_a;
41pub mod reserved_graduate_b;
42pub mod reserved_graduate_c;
43pub mod reserved_graduate_x;
44pub mod reserved_graduate_y;
45pub mod reserved_graduate_z;
46pub mod reserved_mint_config_a;
47pub mod reserved_mint_config_b;
48pub mod reserved_mint_config_c;
49pub mod reserved_mint_config_y;
50pub mod reserved_mint_config_z;
51pub mod reserved_permission_a;
52pub mod reserved_token_a;
53pub mod reserved_token_y;
54pub mod reserved_token_z;
55pub mod token_buy_exact_in;
56pub mod token_buy_exact_out;
57pub mod token_refund;
58pub mod token_sell_exact_in;
59pub mod token_sell_exact_out;
60
61#[derive(
62 carbon_core::InstructionType,
63 serde::Serialize,
64 serde::Deserialize,
65 PartialEq,
66 Eq,
67 Debug,
68 Clone,
69 Hash,
70)]
71pub enum WavebreakInstruction {
72 PermissionConsumeTopLevel(permission_consume_top_level::PermissionConsumeTopLevel),
73 PermissionConsumeCpi(permission_consume_cpi::PermissionConsumeCpi),
74 PermissionConfigInitialize(permission_config_initialize::PermissionConfigInitialize),
75 PermissionConfigUpdate(permission_config_update::PermissionConfigUpdate),
76 PermissionConfigClose(permission_config_close::PermissionConfigClose),
77 PermissionRevoke(permission_revoke::PermissionRevoke),
78 PermissionRefund(permission_refund::PermissionRefund),
79 ReservedPermissionA(reserved_permission_a::ReservedPermissionA),
80 TokenBuyExactIn(token_buy_exact_in::TokenBuyExactIn),
81 TokenBuyExactOut(token_buy_exact_out::TokenBuyExactOut),
82 TokenSellExactIn(token_sell_exact_in::TokenSellExactIn),
83 TokenSellExactOut(token_sell_exact_out::TokenSellExactOut),
84 TokenRefund(token_refund::TokenRefund),
85 ReservedTokenY(reserved_token_y::ReservedTokenY),
86 ReservedTokenZ(reserved_token_z::ReservedTokenZ),
87 ReservedTokenA(reserved_token_a::ReservedTokenA),
88 AuthorityConfigInitialize(authority_config_initialize::AuthorityConfigInitialize),
89 AuthorityConfigGrant(authority_config_grant::AuthorityConfigGrant),
90 AuthorityConfigRevoke(authority_config_revoke::AuthorityConfigRevoke),
91 ReservedAuthorityConfigY(reserved_authority_config_y::ReservedAuthorityConfigY),
92 ReservedAuthorityConfigZ(reserved_authority_config_z::ReservedAuthorityConfigZ),
93 ReservedAuthorityConfigA(reserved_authority_config_a::ReservedAuthorityConfigA),
94 ReservedAuthorityConfigB(reserved_authority_config_b::ReservedAuthorityConfigB),
95 ReservedAuthorityConfigC(reserved_authority_config_c::ReservedAuthorityConfigC),
96 MintConfigInitialize(mint_config_initialize::MintConfigInitialize),
97 MintConfigClose(mint_config_close::MintConfigClose),
98 MintConfigUpdate(mint_config_update::MintConfigUpdate),
99 ReservedMintConfigY(reserved_mint_config_y::ReservedMintConfigY),
100 ReservedMintConfigZ(reserved_mint_config_z::ReservedMintConfigZ),
101 ReservedMintConfigA(reserved_mint_config_a::ReservedMintConfigA),
102 ReservedMintConfigB(reserved_mint_config_b::ReservedMintConfigB),
103 ReservedMintConfigC(reserved_mint_config_c::ReservedMintConfigC),
104 GraduateWhirlpool(graduate_whirlpool::GraduateWhirlpool),
105 GraduateManual(graduate_manual::GraduateManual),
106 ReservedGraduateX(reserved_graduate_x::ReservedGraduateX),
107 ReservedGraduateY(reserved_graduate_y::ReservedGraduateY),
108 ReservedGraduateZ(reserved_graduate_z::ReservedGraduateZ),
109 ReservedGraduateA(reserved_graduate_a::ReservedGraduateA),
110 ReservedGraduateB(reserved_graduate_b::ReservedGraduateB),
111 ReservedGraduateC(reserved_graduate_c::ReservedGraduateC),
112 CreateLockedlaunch(create_lockedlaunch::CreateLockedlaunch),
113 CreateLaunch(create_launch::CreateLaunch),
114 CreatePresale(create_presale::CreatePresale),
115 ReservedCreateY(reserved_create_y::ReservedCreateY),
116 ReservedCreateZ(reserved_create_z::ReservedCreateZ),
117 ReservedCreateA(reserved_create_a::ReservedCreateA),
118 ReservedCreateB(reserved_create_b::ReservedCreateB),
119 ReservedCreateC(reserved_create_c::ReservedCreateC),
120 BondingCurveInitialize(bonding_curve_initialize::BondingCurveInitialize),
121 BondingCurveCollectFees(bonding_curve_collect_fees::BondingCurveCollectFees),
122 BondingCurveGraduate(bonding_curve_graduate::BondingCurveGraduate),
123 BondingCurveClose(bonding_curve_close::BondingCurveClose),
124 ReservedBondingCurveX(reserved_bonding_curve_x::ReservedBondingCurveX),
125 ReservedBondingCurveY(reserved_bonding_curve_y::ReservedBondingCurveY),
126 ReservedBondingCurveZ(reserved_bonding_curve_z::ReservedBondingCurveZ),
127 ReservedBondingCurveA(reserved_bonding_curve_a::ReservedBondingCurveA),
128}
129
130impl carbon_core::instruction::InstructionDecoder<'_> for WavebreakDecoder {
131 type InstructionType = WavebreakInstruction;
132
133 fn decode_instruction(
134 &self,
135 instruction: &solana_instruction::Instruction,
136 ) -> Option<carbon_core::instruction::DecodedInstruction<Self::InstructionType>> {
137 if !instruction.program_id.eq(&PROGRAM_ID) {
138 return None;
139 }
140
141 carbon_core::try_decode_instructions!(instruction,
142 WavebreakInstruction::PermissionConsumeTopLevel => permission_consume_top_level::PermissionConsumeTopLevel,
143 WavebreakInstruction::PermissionConsumeCpi => permission_consume_cpi::PermissionConsumeCpi,
144 WavebreakInstruction::PermissionConfigInitialize => permission_config_initialize::PermissionConfigInitialize,
145 WavebreakInstruction::PermissionConfigUpdate => permission_config_update::PermissionConfigUpdate,
146 WavebreakInstruction::PermissionConfigClose => permission_config_close::PermissionConfigClose,
147 WavebreakInstruction::PermissionRevoke => permission_revoke::PermissionRevoke,
148 WavebreakInstruction::PermissionRefund => permission_refund::PermissionRefund,
149 WavebreakInstruction::ReservedPermissionA => reserved_permission_a::ReservedPermissionA,
150 WavebreakInstruction::TokenBuyExactIn => token_buy_exact_in::TokenBuyExactIn,
151 WavebreakInstruction::TokenBuyExactOut => token_buy_exact_out::TokenBuyExactOut,
152 WavebreakInstruction::TokenSellExactIn => token_sell_exact_in::TokenSellExactIn,
153 WavebreakInstruction::TokenSellExactOut => token_sell_exact_out::TokenSellExactOut,
154 WavebreakInstruction::TokenRefund => token_refund::TokenRefund,
155 WavebreakInstruction::ReservedTokenY => reserved_token_y::ReservedTokenY,
156 WavebreakInstruction::ReservedTokenZ => reserved_token_z::ReservedTokenZ,
157 WavebreakInstruction::ReservedTokenA => reserved_token_a::ReservedTokenA,
158 WavebreakInstruction::AuthorityConfigInitialize => authority_config_initialize::AuthorityConfigInitialize,
159 WavebreakInstruction::AuthorityConfigGrant => authority_config_grant::AuthorityConfigGrant,
160 WavebreakInstruction::AuthorityConfigRevoke => authority_config_revoke::AuthorityConfigRevoke,
161 WavebreakInstruction::ReservedAuthorityConfigY => reserved_authority_config_y::ReservedAuthorityConfigY,
162 WavebreakInstruction::ReservedAuthorityConfigZ => reserved_authority_config_z::ReservedAuthorityConfigZ,
163 WavebreakInstruction::ReservedAuthorityConfigA => reserved_authority_config_a::ReservedAuthorityConfigA,
164 WavebreakInstruction::ReservedAuthorityConfigB => reserved_authority_config_b::ReservedAuthorityConfigB,
165 WavebreakInstruction::ReservedAuthorityConfigC => reserved_authority_config_c::ReservedAuthorityConfigC,
166 WavebreakInstruction::MintConfigInitialize => mint_config_initialize::MintConfigInitialize,
167 WavebreakInstruction::MintConfigClose => mint_config_close::MintConfigClose,
168 WavebreakInstruction::MintConfigUpdate => mint_config_update::MintConfigUpdate,
169 WavebreakInstruction::ReservedMintConfigY => reserved_mint_config_y::ReservedMintConfigY,
170 WavebreakInstruction::ReservedMintConfigZ => reserved_mint_config_z::ReservedMintConfigZ,
171 WavebreakInstruction::ReservedMintConfigA => reserved_mint_config_a::ReservedMintConfigA,
172 WavebreakInstruction::ReservedMintConfigB => reserved_mint_config_b::ReservedMintConfigB,
173 WavebreakInstruction::ReservedMintConfigC => reserved_mint_config_c::ReservedMintConfigC,
174 WavebreakInstruction::GraduateWhirlpool => graduate_whirlpool::GraduateWhirlpool,
175 WavebreakInstruction::GraduateManual => graduate_manual::GraduateManual,
176 WavebreakInstruction::ReservedGraduateX => reserved_graduate_x::ReservedGraduateX,
177 WavebreakInstruction::ReservedGraduateY => reserved_graduate_y::ReservedGraduateY,
178 WavebreakInstruction::ReservedGraduateZ => reserved_graduate_z::ReservedGraduateZ,
179 WavebreakInstruction::ReservedGraduateA => reserved_graduate_a::ReservedGraduateA,
180 WavebreakInstruction::ReservedGraduateB => reserved_graduate_b::ReservedGraduateB,
181 WavebreakInstruction::ReservedGraduateC => reserved_graduate_c::ReservedGraduateC,
182 WavebreakInstruction::CreateLockedlaunch => create_lockedlaunch::CreateLockedlaunch,
183 WavebreakInstruction::CreateLaunch => create_launch::CreateLaunch,
184 WavebreakInstruction::CreatePresale => create_presale::CreatePresale,
185 WavebreakInstruction::ReservedCreateY => reserved_create_y::ReservedCreateY,
186 WavebreakInstruction::ReservedCreateZ => reserved_create_z::ReservedCreateZ,
187 WavebreakInstruction::ReservedCreateA => reserved_create_a::ReservedCreateA,
188 WavebreakInstruction::ReservedCreateB => reserved_create_b::ReservedCreateB,
189 WavebreakInstruction::ReservedCreateC => reserved_create_c::ReservedCreateC,
190 WavebreakInstruction::BondingCurveInitialize => bonding_curve_initialize::BondingCurveInitialize,
191 WavebreakInstruction::BondingCurveCollectFees => bonding_curve_collect_fees::BondingCurveCollectFees,
192 WavebreakInstruction::BondingCurveGraduate => bonding_curve_graduate::BondingCurveGraduate,
193 WavebreakInstruction::BondingCurveClose => bonding_curve_close::BondingCurveClose,
194 WavebreakInstruction::ReservedBondingCurveX => reserved_bonding_curve_x::ReservedBondingCurveX,
195 WavebreakInstruction::ReservedBondingCurveY => reserved_bonding_curve_y::ReservedBondingCurveY,
196 WavebreakInstruction::ReservedBondingCurveZ => reserved_bonding_curve_z::ReservedBondingCurveZ,
197 WavebreakInstruction::ReservedBondingCurveA => reserved_bonding_curve_a::ReservedBondingCurveA,
198 )
199 }
200}