Skip to main content

carbon_virtual_curve_decoder/instructions/
mod.rs

1use 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}