Skip to main content

carbon_jupiter_dca_decoder/instructions/
mod.rs

1//! This code was AUTOGENERATED using the Codama library.
2use crate::{JupiterDcaDecoder, PROGRAM_ID};
3
4#[cfg(feature = "postgres")]
5pub mod postgres;
6
7#[cfg(feature = "graphql")]
8pub mod graphql;
9
10pub mod close_dca;
11pub mod cpi_event;
12pub mod deposit;
13pub mod end_and_close;
14pub mod fulfill_dlmm_fill;
15pub mod fulfill_flash_fill;
16pub mod initiate_dlmm_fill;
17pub mod initiate_flash_fill;
18pub mod open_dca;
19pub mod open_dca_v2;
20pub mod transfer;
21pub mod withdraw;
22pub mod withdraw_fees;
23
24pub use self::{
25    close_dca::*, cpi_event::*, deposit::*, end_and_close::*, fulfill_dlmm_fill::*,
26    fulfill_flash_fill::*, initiate_dlmm_fill::*, initiate_flash_fill::*, open_dca::*,
27    open_dca_v2::*, transfer::*, withdraw::*, withdraw_fees::*,
28};
29
30#[derive(Debug, Clone, PartialEq)]
31#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
32#[cfg_attr(feature = "serde", serde(tag = "type", content = "data"))]
33pub enum JupiterDcaInstruction {
34    CloseDca {
35        program_id: solana_pubkey::Pubkey,
36        data: CloseDca,
37        accounts: CloseDcaInstructionAccounts,
38    },
39    Deposit {
40        program_id: solana_pubkey::Pubkey,
41        data: Deposit,
42        accounts: DepositInstructionAccounts,
43    },
44    EndAndClose {
45        program_id: solana_pubkey::Pubkey,
46        data: EndAndClose,
47        accounts: EndAndCloseInstructionAccounts,
48    },
49    FulfillDlmmFill {
50        program_id: solana_pubkey::Pubkey,
51        data: FulfillDlmmFill,
52        accounts: FulfillDlmmFillInstructionAccounts,
53    },
54    FulfillFlashFill {
55        program_id: solana_pubkey::Pubkey,
56        data: FulfillFlashFill,
57        accounts: FulfillFlashFillInstructionAccounts,
58    },
59    InitiateDlmmFill {
60        program_id: solana_pubkey::Pubkey,
61        data: InitiateDlmmFill,
62        accounts: InitiateDlmmFillInstructionAccounts,
63    },
64    InitiateFlashFill {
65        program_id: solana_pubkey::Pubkey,
66        data: InitiateFlashFill,
67        accounts: InitiateFlashFillInstructionAccounts,
68    },
69    OpenDca {
70        program_id: solana_pubkey::Pubkey,
71        data: OpenDca,
72        accounts: OpenDcaInstructionAccounts,
73    },
74    OpenDcaV2 {
75        program_id: solana_pubkey::Pubkey,
76        data: OpenDcaV2,
77        accounts: OpenDcaV2InstructionAccounts,
78    },
79    Transfer {
80        program_id: solana_pubkey::Pubkey,
81        data: Transfer,
82        accounts: TransferInstructionAccounts,
83    },
84    Withdraw {
85        program_id: solana_pubkey::Pubkey,
86        data: Withdraw,
87        accounts: WithdrawInstructionAccounts,
88    },
89    WithdrawFees {
90        program_id: solana_pubkey::Pubkey,
91        data: WithdrawFees,
92        accounts: WithdrawFeesInstructionAccounts,
93    },
94    CpiEvent {
95        program_id: solana_pubkey::Pubkey,
96        data: CpiEvent,
97        accounts: CpiEventInstructionAccounts,
98    },
99}
100
101impl carbon_core::instruction::InstructionDecoder<'_> for JupiterDcaDecoder {
102    type InstructionType = JupiterDcaInstruction;
103
104    fn decode_instruction(
105        &self,
106        instruction: &solana_instruction::Instruction,
107    ) -> Option<Self::InstructionType> {
108        if instruction.program_id != PROGRAM_ID {
109            return None;
110        }
111
112        carbon_core::try_decode_instructions!(
113            instruction,
114            PROGRAM_ID,
115            JupiterDcaInstruction::CloseDca => CloseDca,
116            JupiterDcaInstruction::Deposit => Deposit,
117            JupiterDcaInstruction::EndAndClose => EndAndClose,
118            JupiterDcaInstruction::FulfillDlmmFill => FulfillDlmmFill,
119            JupiterDcaInstruction::FulfillFlashFill => FulfillFlashFill,
120            JupiterDcaInstruction::InitiateDlmmFill => InitiateDlmmFill,
121            JupiterDcaInstruction::InitiateFlashFill => InitiateFlashFill,
122            JupiterDcaInstruction::OpenDca => OpenDca,
123            JupiterDcaInstruction::OpenDcaV2 => OpenDcaV2,
124            JupiterDcaInstruction::Transfer => Transfer,
125            JupiterDcaInstruction::Withdraw => Withdraw,
126            JupiterDcaInstruction::WithdrawFees => WithdrawFees,
127            JupiterDcaInstruction::CpiEvent => CpiEvent,
128        )
129    }
130}