Skip to main content

carbon_jupiter_limit_order_decoder/instructions/
mod.rs

1//! This code was AUTOGENERATED using the Codama library.
2use crate::{JupiterLimitOrderDecoder, PROGRAM_ID};
3
4#[cfg(feature = "postgres")]
5pub mod postgres;
6
7#[cfg(feature = "graphql")]
8pub mod graphql;
9
10pub mod cancel_expired_order;
11pub mod cancel_order;
12pub mod cpi_event;
13pub mod fill_order;
14pub mod flash_fill_order;
15pub mod init_fee;
16pub mod initialize_order;
17pub mod pre_flash_fill_order;
18pub mod update_fee;
19pub mod withdraw_fee;
20
21pub use self::{
22    cancel_expired_order::*, cancel_order::*, cpi_event::*, fill_order::*, flash_fill_order::*,
23    init_fee::*, initialize_order::*, pre_flash_fill_order::*, update_fee::*, withdraw_fee::*,
24};
25
26#[derive(Debug, Clone, PartialEq)]
27#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
28#[cfg_attr(feature = "serde", serde(tag = "type", content = "data"))]
29pub enum JupiterLimitOrderInstruction {
30    CancelExpiredOrder {
31        program_id: solana_pubkey::Pubkey,
32        data: CancelExpiredOrder,
33        accounts: CancelExpiredOrderInstructionAccounts,
34    },
35    CancelOrder {
36        program_id: solana_pubkey::Pubkey,
37        data: CancelOrder,
38        accounts: CancelOrderInstructionAccounts,
39    },
40    FillOrder {
41        program_id: solana_pubkey::Pubkey,
42        data: FillOrder,
43        accounts: FillOrderInstructionAccounts,
44    },
45    FlashFillOrder {
46        program_id: solana_pubkey::Pubkey,
47        data: FlashFillOrder,
48        accounts: FlashFillOrderInstructionAccounts,
49    },
50    InitFee {
51        program_id: solana_pubkey::Pubkey,
52        data: InitFee,
53        accounts: InitFeeInstructionAccounts,
54    },
55    InitializeOrder {
56        program_id: solana_pubkey::Pubkey,
57        data: InitializeOrder,
58        accounts: InitializeOrderInstructionAccounts,
59    },
60    PreFlashFillOrder {
61        program_id: solana_pubkey::Pubkey,
62        data: PreFlashFillOrder,
63        accounts: PreFlashFillOrderInstructionAccounts,
64    },
65    UpdateFee {
66        program_id: solana_pubkey::Pubkey,
67        data: UpdateFee,
68        accounts: UpdateFeeInstructionAccounts,
69    },
70    WithdrawFee {
71        program_id: solana_pubkey::Pubkey,
72        data: WithdrawFee,
73        accounts: WithdrawFeeInstructionAccounts,
74    },
75    CpiEvent {
76        program_id: solana_pubkey::Pubkey,
77        data: CpiEvent,
78        accounts: CpiEventInstructionAccounts,
79    },
80}
81
82impl carbon_core::instruction::InstructionDecoder<'_> for JupiterLimitOrderDecoder {
83    type InstructionType = JupiterLimitOrderInstruction;
84
85    fn decode_instruction(
86        &self,
87        instruction: &solana_instruction::Instruction,
88    ) -> Option<Self::InstructionType> {
89        if instruction.program_id != PROGRAM_ID {
90            return None;
91        }
92
93        carbon_core::try_decode_instructions!(
94            instruction,
95            PROGRAM_ID,
96            JupiterLimitOrderInstruction::CancelExpiredOrder => CancelExpiredOrder,
97            JupiterLimitOrderInstruction::CancelOrder => CancelOrder,
98            JupiterLimitOrderInstruction::FillOrder => FillOrder,
99            JupiterLimitOrderInstruction::FlashFillOrder => FlashFillOrder,
100            JupiterLimitOrderInstruction::InitFee => InitFee,
101            JupiterLimitOrderInstruction::InitializeOrder => InitializeOrder,
102            JupiterLimitOrderInstruction::PreFlashFillOrder => PreFlashFillOrder,
103            JupiterLimitOrderInstruction::UpdateFee => UpdateFee,
104            JupiterLimitOrderInstruction::WithdrawFee => WithdrawFee,
105            JupiterLimitOrderInstruction::CpiEvent => CpiEvent,
106        )
107    }
108}