carbon_virtual_curve_decoder/instructions/
mod.rs1use crate::PROGRAM_ID;
2
3use super::VirtualCurveDecoder;
4pub mod claim_protocol_fee;
5pub mod claim_trading_fee;
6pub mod close_claim_fee_operator;
7pub mod create_claim_fee_operator;
8pub mod create_config;
9pub mod create_locker;
10pub mod create_partner_metadata;
11pub mod create_virtual_pool_metadata;
12pub mod evt_claim_protocol_fee_event;
13pub mod evt_claim_trading_fee_event;
14pub mod evt_close_claim_fee_operator_event;
15pub mod evt_create_claim_fee_operator_event;
16pub mod evt_create_config_event;
17pub mod evt_create_damm_v2_migration_metadata_event;
18pub mod evt_create_meteora_migration_metadata_event;
19pub mod evt_curve_complete_event;
20pub mod evt_initialize_pool_event;
21pub mod evt_partner_metadata_event;
22pub mod evt_partner_withdraw_surplus_event;
23pub mod evt_protocol_withdraw_surplus_event;
24pub mod evt_swap_event;
25pub mod evt_virtual_pool_metadata_event;
26pub mod initialize_virtual_pool_with_spl_token;
27pub mod initialize_virtual_pool_with_token2022;
28pub mod migrate_meteora_damm;
29pub mod migrate_meteora_damm_claim_lp_token;
30pub mod migrate_meteora_damm_lock_lp_token;
31pub mod migration_damm_v2;
32pub mod migration_damm_v2_create_metadata;
33pub mod migration_meteora_damm_create_metadata;
34pub mod partner_withdraw_surplus;
35pub mod protocol_withdraw_surplus;
36pub mod swap;
37
38#[derive(
39 carbon_core::InstructionType,
40 serde::Serialize,
41 serde::Deserialize,
42 PartialEq,
43 Eq,
44 Debug,
45 Clone,
46 Hash,
47)]
48pub enum VirtualCurveInstruction {
49 ClaimProtocolFee(claim_protocol_fee::ClaimProtocolFee),
50 ClaimTradingFee(claim_trading_fee::ClaimTradingFee),
51 CloseClaimFeeOperator(close_claim_fee_operator::CloseClaimFeeOperator),
52 CreateClaimFeeOperator(create_claim_fee_operator::CreateClaimFeeOperator),
53 CreateConfig(create_config::CreateConfig),
54 CreateLocker(create_locker::CreateLocker),
55 CreatePartnerMetadata(create_partner_metadata::CreatePartnerMetadata),
56 CreateVirtualPoolMetadata(create_virtual_pool_metadata::CreateVirtualPoolMetadata),
57 InitializeVirtualPoolWithSplToken(
58 initialize_virtual_pool_with_spl_token::InitializeVirtualPoolWithSplToken,
59 ),
60 InitializeVirtualPoolWithToken2022(
61 initialize_virtual_pool_with_token2022::InitializeVirtualPoolWithToken2022,
62 ),
63 MigrateMeteoraDamm(migrate_meteora_damm::MigrateMeteoraDamm),
64 MigrateMeteoraDammClaimLpToken(
65 migrate_meteora_damm_claim_lp_token::MigrateMeteoraDammClaimLpToken,
66 ),
67 MigrateMeteoraDammLockLpToken(
68 migrate_meteora_damm_lock_lp_token::MigrateMeteoraDammLockLpToken,
69 ),
70 MigrationDammV2(migration_damm_v2::MigrationDammV2),
71 MigrationDammV2CreateMetadata(migration_damm_v2_create_metadata::MigrationDammV2CreateMetadata),
72 MigrationMeteoraDammCreateMetadata(
73 migration_meteora_damm_create_metadata::MigrationMeteoraDammCreateMetadata,
74 ),
75 PartnerWithdrawSurplus(partner_withdraw_surplus::PartnerWithdrawSurplus),
76 ProtocolWithdrawSurplus(protocol_withdraw_surplus::ProtocolWithdrawSurplus),
77 Swap(swap::Swap),
78 EvtClaimProtocolFeeEvent(evt_claim_protocol_fee_event::EvtClaimProtocolFeeEvent),
79 EvtClaimTradingFeeEvent(evt_claim_trading_fee_event::EvtClaimTradingFeeEvent),
80 EvtCloseClaimFeeOperatorEvent(
81 evt_close_claim_fee_operator_event::EvtCloseClaimFeeOperatorEvent,
82 ),
83 EvtCreateClaimFeeOperatorEvent(
84 evt_create_claim_fee_operator_event::EvtCreateClaimFeeOperatorEvent,
85 ),
86 EvtCreateConfigEvent(evt_create_config_event::EvtCreateConfigEvent),
87 EvtCreateDammV2MigrationMetadataEvent(
88 evt_create_damm_v2_migration_metadata_event::EvtCreateDammV2MigrationMetadataEvent,
89 ),
90 EvtCreateMeteoraMigrationMetadataEvent(
91 evt_create_meteora_migration_metadata_event::EvtCreateMeteoraMigrationMetadataEvent,
92 ),
93 EvtCurveCompleteEvent(evt_curve_complete_event::EvtCurveCompleteEvent),
94 EvtInitializePoolEvent(evt_initialize_pool_event::EvtInitializePoolEvent),
95 EvtPartnerMetadataEvent(evt_partner_metadata_event::EvtPartnerMetadataEvent),
96 EvtPartnerWithdrawSurplusEvent(
97 evt_partner_withdraw_surplus_event::EvtPartnerWithdrawSurplusEvent,
98 ),
99 EvtProtocolWithdrawSurplusEvent(
100 evt_protocol_withdraw_surplus_event::EvtProtocolWithdrawSurplusEvent,
101 ),
102 EvtSwapEvent(evt_swap_event::EvtSwapEvent),
103 EvtVirtualPoolMetadataEvent(evt_virtual_pool_metadata_event::EvtVirtualPoolMetadataEvent),
104}
105
106impl carbon_core::instruction::InstructionDecoder<'_> for VirtualCurveDecoder {
107 type InstructionType = VirtualCurveInstruction;
108
109 fn decode_instruction(
110 &self,
111 instruction: &solana_instruction::Instruction,
112 ) -> Option<carbon_core::instruction::DecodedInstruction<Self::InstructionType>> {
113 if !instruction.program_id.eq(&PROGRAM_ID) {
114 return None;
115 }
116 carbon_core::try_decode_instructions!(instruction,
117 VirtualCurveInstruction::ClaimProtocolFee => claim_protocol_fee::ClaimProtocolFee,
118 VirtualCurveInstruction::ClaimTradingFee => claim_trading_fee::ClaimTradingFee,
119 VirtualCurveInstruction::CloseClaimFeeOperator => close_claim_fee_operator::CloseClaimFeeOperator,
120 VirtualCurveInstruction::CreateClaimFeeOperator => create_claim_fee_operator::CreateClaimFeeOperator,
121 VirtualCurveInstruction::CreateConfig => create_config::CreateConfig,
122 VirtualCurveInstruction::CreateLocker => create_locker::CreateLocker,
123 VirtualCurveInstruction::CreatePartnerMetadata => create_partner_metadata::CreatePartnerMetadata,
124 VirtualCurveInstruction::CreateVirtualPoolMetadata => create_virtual_pool_metadata::CreateVirtualPoolMetadata,
125 VirtualCurveInstruction::InitializeVirtualPoolWithSplToken => initialize_virtual_pool_with_spl_token::InitializeVirtualPoolWithSplToken,
126 VirtualCurveInstruction::InitializeVirtualPoolWithToken2022 => initialize_virtual_pool_with_token2022::InitializeVirtualPoolWithToken2022,
127 VirtualCurveInstruction::MigrateMeteoraDamm => migrate_meteora_damm::MigrateMeteoraDamm,
128 VirtualCurveInstruction::MigrateMeteoraDammClaimLpToken => migrate_meteora_damm_claim_lp_token::MigrateMeteoraDammClaimLpToken,
129 VirtualCurveInstruction::MigrateMeteoraDammLockLpToken => migrate_meteora_damm_lock_lp_token::MigrateMeteoraDammLockLpToken,
130 VirtualCurveInstruction::MigrationDammV2 => migration_damm_v2::MigrationDammV2,
131 VirtualCurveInstruction::MigrationDammV2CreateMetadata => migration_damm_v2_create_metadata::MigrationDammV2CreateMetadata,
132 VirtualCurveInstruction::MigrationMeteoraDammCreateMetadata => migration_meteora_damm_create_metadata::MigrationMeteoraDammCreateMetadata,
133 VirtualCurveInstruction::PartnerWithdrawSurplus => partner_withdraw_surplus::PartnerWithdrawSurplus,
134 VirtualCurveInstruction::ProtocolWithdrawSurplus => protocol_withdraw_surplus::ProtocolWithdrawSurplus,
135 VirtualCurveInstruction::Swap => swap::Swap,
136 VirtualCurveInstruction::EvtClaimProtocolFeeEvent => evt_claim_protocol_fee_event::EvtClaimProtocolFeeEvent,
137 VirtualCurveInstruction::EvtClaimTradingFeeEvent => evt_claim_trading_fee_event::EvtClaimTradingFeeEvent,
138 VirtualCurveInstruction::EvtCloseClaimFeeOperatorEvent => evt_close_claim_fee_operator_event::EvtCloseClaimFeeOperatorEvent,
139 VirtualCurveInstruction::EvtCreateClaimFeeOperatorEvent => evt_create_claim_fee_operator_event::EvtCreateClaimFeeOperatorEvent,
140 VirtualCurveInstruction::EvtCreateConfigEvent => evt_create_config_event::EvtCreateConfigEvent,
141 VirtualCurveInstruction::EvtCreateDammV2MigrationMetadataEvent => evt_create_damm_v2_migration_metadata_event::EvtCreateDammV2MigrationMetadataEvent,
142 VirtualCurveInstruction::EvtCreateMeteoraMigrationMetadataEvent => evt_create_meteora_migration_metadata_event::EvtCreateMeteoraMigrationMetadataEvent,
143 VirtualCurveInstruction::EvtCurveCompleteEvent => evt_curve_complete_event::EvtCurveCompleteEvent,
144 VirtualCurveInstruction::EvtInitializePoolEvent => evt_initialize_pool_event::EvtInitializePoolEvent,
145 VirtualCurveInstruction::EvtPartnerMetadataEvent => evt_partner_metadata_event::EvtPartnerMetadataEvent,
146 VirtualCurveInstruction::EvtPartnerWithdrawSurplusEvent => evt_partner_withdraw_surplus_event::EvtPartnerWithdrawSurplusEvent,
147 VirtualCurveInstruction::EvtProtocolWithdrawSurplusEvent => evt_protocol_withdraw_surplus_event::EvtProtocolWithdrawSurplusEvent,
148 VirtualCurveInstruction::EvtSwapEvent => evt_swap_event::EvtSwapEvent,
149 VirtualCurveInstruction::EvtVirtualPoolMetadataEvent => evt_virtual_pool_metadata_event::EvtVirtualPoolMetadataEvent,
150 )
151 }
152}