//! This code was AUTOGENERATED using the Codama library.
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[derive(Debug, Clone, borsh::BorshSerialize, borsh::BorshDeserialize, PartialEq)]
pub enum Dex {
    SplTokenSwap,
    StableSwap,
    Whirlpool,
    MeteoraDynamicpool,
    RaydiumSwap,
    RaydiumStableSwap,
    RaydiumClmmSwap,
    AldrinExchangeV1,
    AldrinExchangeV2,
    LifinityV1,
    LifinityV2,
    RaydiumClmmSwapV2,
    FluxBeam,
    MeteoraDlmm,
    RaydiumCpmmSwap,
    OpenBookV2,
    WhirlpoolV2,
    Phoenix,
    ObricV2,
    SanctumAddLiq,
    SanctumRemoveLiq,
    SanctumNonWsolSwap,
    SanctumWsolSwap,
    PumpfunBuy,
    PumpfunSell,
    StabbleSwap,
    SanctumRouter,
    MeteoraVaultDeposit,
    MeteoraVaultWithdraw,
    Saros,
    MeteoraLst,
    Solfi,
    QualiaSwap,
    Zerofi,
    PumpfunammBuy,
    PumpfunammSell,
    Virtuals,
    VertigoBuy,
    VertigoSell,
    PerpetualsAddLiq,
    PerpetualsRemoveLiq,
    PerpetualsSwap,
    RaydiumLaunchpad,
    LetsBonkFun,
    Woofi,
    MeteoraDbc,
    MeteoraDlmmSwap2,
    MeteoraDAMMV2,
    Gavel,
    BoopfunBuy,
    BoopfunSell,
    MeteoraDbc2,
    GooseFX,
    Dooar,
    Numeraire,
    SaberDecimalWrapperDeposit,
    SaberDecimalWrapperWithdraw,
    SarosDlmm,
    OneDexSwap,
    Manifest,
    ByrealClmm,
    PancakeSwapV3Swap,
    PancakeSwapV3SwapV2,
    Tessera,
    SolRfq {
        rfq_id: u64,
        expected_maker_amount: u64,
        expected_taker_amount: u64,
        maker_send_amount: u64,
        taker_send_amount: u64,
        expiry: u64,
        maker_use_native_sol: bool,
        taker_use_native_sol: bool,
    },
    PumpfunBuy2,
    PumpfunammBuy2,
    Humidifi,
    HeavenBuy,
    HeavenSell,
    SolfiV2,
    PumpfunBuy3,
    PumpfunSell3,
    PumpfunammBuy3,
    PumpfunammSell3,
    Goonfi,
    MoonitBuy,
    MoonitSell,
    RaydiumSwapV2,
    Whalestreet,
    SugarMoneyBuy {
        bonding_curve_bump: u8,
        bonding_curve_sol_associated_account_bump: u8,
    },
    SugarMoneySell {
        bonding_curve_bump: u8,
        bonding_curve_sol_associated_account_bump: u8,
    },
    MeteoraDAMMV2Swap2,
    AlphaQ,
    FutarchyAmm,
    PumpfunSell2,
    HumidifiSwap2 {
        swap_id: u64,
    },
    Scorch {
        id: u128,
    },
    JupiterLendDeposit,
    JupiterLendRedeem,
    TaurusFi,
    BisonFi,
    GoonfiV2,
    Quantum,
    BoopfunBuy2,
    BoopfunSell2,
    ByrealClmm2,
    Dooar2,
    HeavenBuy2,
    HeavenSell2,
    MoonitBuy2,
    MoonitSell2,
    SaberDecimalWrapperDeposit2,
    SaberDecimalWrapperWithdraw2,
    ByrealPropAmm,
    SanctumPrefundSwapViaStake {
        swap_id: u64,
    },
    AbyssAmm,
    Aquifer,
    WhalestreetV2 {
        auth_amount_in: u64,
        auth: u64,
    },
    SolfiV2WithSig {
        unix_timestamp: u64,
        msg_amount_in: u64,
        expect_amount_out: u64,
        slippage: u16,
        user_request_slot: u64,
        #[cfg_attr(feature = "serde", serde(with = "serde_big_array::BigArray"))]
        signature: [u8; 64],
        recovery_id: u8,
    },
}
