carbon-meteora-dbc-decoder 1.0.0

Meteora DBC Decoder
Documentation
//! This code was AUTOGENERATED using the Codama library.
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,
        )
    }
}