use crate::{MeteoraDbcDecoder, PROGRAM_ID};
#[cfg(feature = "postgres")]
pub mod postgres;
#[cfg(feature = "graphql")]
pub mod graphql;
pub mod claim_creator_trading_fee;
pub mod claim_partner_pool_creation_fee;
pub mod claim_protocol_fee;
pub mod claim_protocol_pool_creation_fee;
pub mod claim_trading_fee;
pub mod close_claim_protocol_fee_operator;
pub mod close_operator_account;
pub mod cpi_event;
pub mod create_config;
pub mod create_locker;
pub mod create_operator_account;
pub mod create_partner_metadata;
pub mod create_virtual_pool_metadata;
pub mod creator_withdraw_surplus;
pub mod initialize_virtual_pool_with_spl_token;
pub mod initialize_virtual_pool_with_token2022;
pub mod migrate_meteora_damm;
pub mod migrate_meteora_damm_claim_lp_token;
pub mod migrate_meteora_damm_lock_lp_token;
pub mod migration_damm_v2;
pub mod migration_damm_v2_create_metadata;
pub mod migration_meteora_damm_create_metadata;
pub mod partner_withdraw_surplus;
pub mod swap;
pub mod swap2;
pub mod transfer_pool_creator;
pub mod withdraw_leftover;
pub mod withdraw_migration_fee;
pub mod zap_protocol_fee;
pub use self::{
claim_creator_trading_fee::*, claim_partner_pool_creation_fee::*, claim_protocol_fee::*,
claim_protocol_pool_creation_fee::*, claim_trading_fee::*,
close_claim_protocol_fee_operator::*, close_operator_account::*, cpi_event::*,
create_config::*, create_locker::*, create_operator_account::*, create_partner_metadata::*,
create_virtual_pool_metadata::*, creator_withdraw_surplus::*,
initialize_virtual_pool_with_spl_token::*, initialize_virtual_pool_with_token2022::*,
migrate_meteora_damm::*, migrate_meteora_damm_claim_lp_token::*,
migrate_meteora_damm_lock_lp_token::*, migration_damm_v2::*,
migration_damm_v2_create_metadata::*, migration_meteora_damm_create_metadata::*,
partner_withdraw_surplus::*, swap::*, swap2::*, transfer_pool_creator::*, withdraw_leftover::*,
withdraw_migration_fee::*, zap_protocol_fee::*,
};
#[derive(Debug, Clone, PartialEq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(tag = "type", content = "data"))]
pub enum MeteoraDbcInstruction {
ClaimCreatorTradingFee {
program_id: solana_pubkey::Pubkey,
data: ClaimCreatorTradingFee,
accounts: ClaimCreatorTradingFeeInstructionAccounts,
},
ClaimPartnerPoolCreationFee {
program_id: solana_pubkey::Pubkey,
data: ClaimPartnerPoolCreationFee,
accounts: ClaimPartnerPoolCreationFeeInstructionAccounts,
},
ClaimProtocolFee {
program_id: solana_pubkey::Pubkey,
data: ClaimProtocolFee,
accounts: ClaimProtocolFeeInstructionAccounts,
},
ClaimProtocolPoolCreationFee {
program_id: solana_pubkey::Pubkey,
data: ClaimProtocolPoolCreationFee,
accounts: ClaimProtocolPoolCreationFeeInstructionAccounts,
},
ClaimTradingFee {
program_id: solana_pubkey::Pubkey,
data: ClaimTradingFee,
accounts: ClaimTradingFeeInstructionAccounts,
},
CloseClaimProtocolFeeOperator {
program_id: solana_pubkey::Pubkey,
data: CloseClaimProtocolFeeOperator,
accounts: CloseClaimProtocolFeeOperatorInstructionAccounts,
},
CloseOperatorAccount {
program_id: solana_pubkey::Pubkey,
data: CloseOperatorAccount,
accounts: CloseOperatorAccountInstructionAccounts,
},
CreateConfig {
program_id: solana_pubkey::Pubkey,
data: CreateConfig,
accounts: CreateConfigInstructionAccounts,
},
CreateLocker {
program_id: solana_pubkey::Pubkey,
data: CreateLocker,
accounts: CreateLockerInstructionAccounts,
},
CreateOperatorAccount {
program_id: solana_pubkey::Pubkey,
data: CreateOperatorAccount,
accounts: CreateOperatorAccountInstructionAccounts,
},
CreatePartnerMetadata {
program_id: solana_pubkey::Pubkey,
data: CreatePartnerMetadata,
accounts: CreatePartnerMetadataInstructionAccounts,
},
CreateVirtualPoolMetadata {
program_id: solana_pubkey::Pubkey,
data: CreateVirtualPoolMetadata,
accounts: CreateVirtualPoolMetadataInstructionAccounts,
},
CreatorWithdrawSurplus {
program_id: solana_pubkey::Pubkey,
data: CreatorWithdrawSurplus,
accounts: CreatorWithdrawSurplusInstructionAccounts,
},
InitializeVirtualPoolWithSplToken {
program_id: solana_pubkey::Pubkey,
data: InitializeVirtualPoolWithSplToken,
accounts: InitializeVirtualPoolWithSplTokenInstructionAccounts,
},
InitializeVirtualPoolWithToken2022 {
program_id: solana_pubkey::Pubkey,
data: InitializeVirtualPoolWithToken2022,
accounts: InitializeVirtualPoolWithToken2022InstructionAccounts,
},
MigrateMeteoraDamm {
program_id: solana_pubkey::Pubkey,
data: MigrateMeteoraDamm,
accounts: MigrateMeteoraDammInstructionAccounts,
},
MigrateMeteoraDammClaimLpToken {
program_id: solana_pubkey::Pubkey,
data: MigrateMeteoraDammClaimLpToken,
accounts: MigrateMeteoraDammClaimLpTokenInstructionAccounts,
},
MigrateMeteoraDammLockLpToken {
program_id: solana_pubkey::Pubkey,
data: MigrateMeteoraDammLockLpToken,
accounts: MigrateMeteoraDammLockLpTokenInstructionAccounts,
},
MigrationDammV2 {
program_id: solana_pubkey::Pubkey,
data: MigrationDammV2,
accounts: MigrationDammV2InstructionAccounts,
},
MigrationDammV2CreateMetadata {
program_id: solana_pubkey::Pubkey,
data: MigrationDammV2CreateMetadata,
accounts: MigrationDammV2CreateMetadataInstructionAccounts,
},
MigrationMeteoraDammCreateMetadata {
program_id: solana_pubkey::Pubkey,
data: MigrationMeteoraDammCreateMetadata,
accounts: MigrationMeteoraDammCreateMetadataInstructionAccounts,
},
PartnerWithdrawSurplus {
program_id: solana_pubkey::Pubkey,
data: PartnerWithdrawSurplus,
accounts: PartnerWithdrawSurplusInstructionAccounts,
},
Swap {
program_id: solana_pubkey::Pubkey,
data: Swap,
accounts: SwapInstructionAccounts,
},
Swap2 {
program_id: solana_pubkey::Pubkey,
data: Swap2,
accounts: Swap2InstructionAccounts,
},
TransferPoolCreator {
program_id: solana_pubkey::Pubkey,
data: TransferPoolCreator,
accounts: TransferPoolCreatorInstructionAccounts,
},
WithdrawLeftover {
program_id: solana_pubkey::Pubkey,
data: WithdrawLeftover,
accounts: WithdrawLeftoverInstructionAccounts,
},
WithdrawMigrationFee {
program_id: solana_pubkey::Pubkey,
data: WithdrawMigrationFee,
accounts: WithdrawMigrationFeeInstructionAccounts,
},
ZapProtocolFee {
program_id: solana_pubkey::Pubkey,
data: ZapProtocolFee,
accounts: ZapProtocolFeeInstructionAccounts,
},
CpiEvent {
program_id: solana_pubkey::Pubkey,
data: CpiEvent,
accounts: CpiEventInstructionAccounts,
},
}
impl carbon_core::instruction::InstructionDecoder<'_> for MeteoraDbcDecoder {
type InstructionType = MeteoraDbcInstruction;
fn decode_instruction(
&self,
instruction: &solana_instruction::Instruction,
) -> Option<Self::InstructionType> {
if instruction.program_id != PROGRAM_ID {
return None;
}
carbon_core::try_decode_instructions!(
instruction,
PROGRAM_ID,
MeteoraDbcInstruction::ClaimCreatorTradingFee => ClaimCreatorTradingFee,
MeteoraDbcInstruction::ClaimPartnerPoolCreationFee => ClaimPartnerPoolCreationFee,
MeteoraDbcInstruction::ClaimProtocolFee => ClaimProtocolFee,
MeteoraDbcInstruction::ClaimProtocolPoolCreationFee => ClaimProtocolPoolCreationFee,
MeteoraDbcInstruction::ClaimTradingFee => ClaimTradingFee,
MeteoraDbcInstruction::CloseClaimProtocolFeeOperator => CloseClaimProtocolFeeOperator,
MeteoraDbcInstruction::CloseOperatorAccount => CloseOperatorAccount,
MeteoraDbcInstruction::CreateConfig => CreateConfig,
MeteoraDbcInstruction::CreateLocker => CreateLocker,
MeteoraDbcInstruction::CreateOperatorAccount => CreateOperatorAccount,
MeteoraDbcInstruction::CreatePartnerMetadata => CreatePartnerMetadata,
MeteoraDbcInstruction::CreateVirtualPoolMetadata => CreateVirtualPoolMetadata,
MeteoraDbcInstruction::CreatorWithdrawSurplus => CreatorWithdrawSurplus,
MeteoraDbcInstruction::InitializeVirtualPoolWithSplToken => InitializeVirtualPoolWithSplToken,
MeteoraDbcInstruction::InitializeVirtualPoolWithToken2022 => InitializeVirtualPoolWithToken2022,
MeteoraDbcInstruction::MigrateMeteoraDamm => MigrateMeteoraDamm,
MeteoraDbcInstruction::MigrateMeteoraDammClaimLpToken => MigrateMeteoraDammClaimLpToken,
MeteoraDbcInstruction::MigrateMeteoraDammLockLpToken => MigrateMeteoraDammLockLpToken,
MeteoraDbcInstruction::MigrationDammV2 => MigrationDammV2,
MeteoraDbcInstruction::MigrationDammV2CreateMetadata => MigrationDammV2CreateMetadata,
MeteoraDbcInstruction::MigrationMeteoraDammCreateMetadata => MigrationMeteoraDammCreateMetadata,
MeteoraDbcInstruction::PartnerWithdrawSurplus => PartnerWithdrawSurplus,
MeteoraDbcInstruction::Swap => Swap,
MeteoraDbcInstruction::Swap2 => Swap2,
MeteoraDbcInstruction::TransferPoolCreator => TransferPoolCreator,
MeteoraDbcInstruction::WithdrawLeftover => WithdrawLeftover,
MeteoraDbcInstruction::WithdrawMigrationFee => WithdrawMigrationFee,
MeteoraDbcInstruction::ZapProtocolFee => ZapProtocolFee,
MeteoraDbcInstruction::CpiEvent => CpiEvent,
)
}
}