Skip to main content

carbon_openbook_v2_decoder/instructions/
mod.rs

1//! This code was AUTOGENERATED using the Codama library.
2use crate::{OpenbookV2Decoder, PROGRAM_ID};
3
4#[cfg(feature = "postgres")]
5pub mod postgres;
6
7#[cfg(feature = "graphql")]
8pub mod graphql;
9
10pub mod cancel_all_and_place_orders;
11pub mod cancel_all_orders;
12pub mod cancel_order;
13pub mod cancel_order_by_client_order_id;
14pub mod close_market;
15pub mod close_open_orders_account;
16pub mod close_open_orders_indexer;
17pub mod consume_events;
18pub mod consume_given_events;
19pub mod cpi_event;
20pub mod create_market;
21pub mod create_open_orders_account;
22pub mod create_open_orders_indexer;
23pub mod deposit;
24pub mod edit_order;
25pub mod edit_order_pegged;
26pub mod place_order;
27pub mod place_order_pegged;
28pub mod place_orders;
29pub mod place_take_order;
30pub mod prune_orders;
31pub mod refill;
32pub mod set_delegate;
33pub mod set_market_expired;
34pub mod settle_funds;
35pub mod settle_funds_expired;
36pub mod stub_oracle_close;
37pub mod stub_oracle_create;
38pub mod stub_oracle_set;
39pub mod sweep_fees;
40
41pub use self::{
42    cancel_all_and_place_orders::*, cancel_all_orders::*, cancel_order::*,
43    cancel_order_by_client_order_id::*, close_market::*, close_open_orders_account::*,
44    close_open_orders_indexer::*, consume_events::*, consume_given_events::*, cpi_event::*,
45    create_market::*, create_open_orders_account::*, create_open_orders_indexer::*, deposit::*,
46    edit_order::*, edit_order_pegged::*, place_order::*, place_order_pegged::*, place_orders::*,
47    place_take_order::*, prune_orders::*, refill::*, set_delegate::*, set_market_expired::*,
48    settle_funds::*, settle_funds_expired::*, stub_oracle_close::*, stub_oracle_create::*,
49    stub_oracle_set::*, sweep_fees::*,
50};
51
52#[derive(Debug, Clone, PartialEq)]
53#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
54#[cfg_attr(feature = "serde", serde(tag = "type", content = "data"))]
55pub enum OpenbookV2Instruction {
56    CancelAllAndPlaceOrders {
57        program_id: solana_pubkey::Pubkey,
58        data: CancelAllAndPlaceOrders,
59        accounts: CancelAllAndPlaceOrdersInstructionAccounts,
60    },
61    CancelAllOrders {
62        program_id: solana_pubkey::Pubkey,
63        data: CancelAllOrders,
64        accounts: CancelAllOrdersInstructionAccounts,
65    },
66    CancelOrder {
67        program_id: solana_pubkey::Pubkey,
68        data: CancelOrder,
69        accounts: CancelOrderInstructionAccounts,
70    },
71    CancelOrderByClientOrderId {
72        program_id: solana_pubkey::Pubkey,
73        data: CancelOrderByClientOrderId,
74        accounts: CancelOrderByClientOrderIdInstructionAccounts,
75    },
76    CloseMarket {
77        program_id: solana_pubkey::Pubkey,
78        data: CloseMarket,
79        accounts: CloseMarketInstructionAccounts,
80    },
81    CloseOpenOrdersAccount {
82        program_id: solana_pubkey::Pubkey,
83        data: CloseOpenOrdersAccount,
84        accounts: CloseOpenOrdersAccountInstructionAccounts,
85    },
86    CloseOpenOrdersIndexer {
87        program_id: solana_pubkey::Pubkey,
88        data: CloseOpenOrdersIndexer,
89        accounts: CloseOpenOrdersIndexerInstructionAccounts,
90    },
91    ConsumeEvents {
92        program_id: solana_pubkey::Pubkey,
93        data: ConsumeEvents,
94        accounts: ConsumeEventsInstructionAccounts,
95    },
96    ConsumeGivenEvents {
97        program_id: solana_pubkey::Pubkey,
98        data: ConsumeGivenEvents,
99        accounts: ConsumeGivenEventsInstructionAccounts,
100    },
101    CreateMarket {
102        program_id: solana_pubkey::Pubkey,
103        data: CreateMarket,
104        accounts: CreateMarketInstructionAccounts,
105    },
106    CreateOpenOrdersAccount {
107        program_id: solana_pubkey::Pubkey,
108        data: CreateOpenOrdersAccount,
109        accounts: CreateOpenOrdersAccountInstructionAccounts,
110    },
111    CreateOpenOrdersIndexer {
112        program_id: solana_pubkey::Pubkey,
113        data: CreateOpenOrdersIndexer,
114        accounts: CreateOpenOrdersIndexerInstructionAccounts,
115    },
116    Deposit {
117        program_id: solana_pubkey::Pubkey,
118        data: Deposit,
119        accounts: DepositInstructionAccounts,
120    },
121    EditOrder {
122        program_id: solana_pubkey::Pubkey,
123        data: EditOrder,
124        accounts: EditOrderInstructionAccounts,
125    },
126    EditOrderPegged {
127        program_id: solana_pubkey::Pubkey,
128        data: EditOrderPegged,
129        accounts: EditOrderPeggedInstructionAccounts,
130    },
131    PlaceOrder {
132        program_id: solana_pubkey::Pubkey,
133        data: PlaceOrder,
134        accounts: PlaceOrderInstructionAccounts,
135    },
136    PlaceOrderPegged {
137        program_id: solana_pubkey::Pubkey,
138        data: PlaceOrderPegged,
139        accounts: PlaceOrderPeggedInstructionAccounts,
140    },
141    PlaceOrders {
142        program_id: solana_pubkey::Pubkey,
143        data: PlaceOrders,
144        accounts: PlaceOrdersInstructionAccounts,
145    },
146    PlaceTakeOrder {
147        program_id: solana_pubkey::Pubkey,
148        data: PlaceTakeOrder,
149        accounts: PlaceTakeOrderInstructionAccounts,
150    },
151    PruneOrders {
152        program_id: solana_pubkey::Pubkey,
153        data: PruneOrders,
154        accounts: PruneOrdersInstructionAccounts,
155    },
156    Refill {
157        program_id: solana_pubkey::Pubkey,
158        data: Refill,
159        accounts: RefillInstructionAccounts,
160    },
161    SetDelegate {
162        program_id: solana_pubkey::Pubkey,
163        data: SetDelegate,
164        accounts: SetDelegateInstructionAccounts,
165    },
166    SetMarketExpired {
167        program_id: solana_pubkey::Pubkey,
168        data: SetMarketExpired,
169        accounts: SetMarketExpiredInstructionAccounts,
170    },
171    SettleFunds {
172        program_id: solana_pubkey::Pubkey,
173        data: SettleFunds,
174        accounts: SettleFundsInstructionAccounts,
175    },
176    SettleFundsExpired {
177        program_id: solana_pubkey::Pubkey,
178        data: SettleFundsExpired,
179        accounts: SettleFundsExpiredInstructionAccounts,
180    },
181    StubOracleClose {
182        program_id: solana_pubkey::Pubkey,
183        data: StubOracleClose,
184        accounts: StubOracleCloseInstructionAccounts,
185    },
186    StubOracleCreate {
187        program_id: solana_pubkey::Pubkey,
188        data: StubOracleCreate,
189        accounts: StubOracleCreateInstructionAccounts,
190    },
191    StubOracleSet {
192        program_id: solana_pubkey::Pubkey,
193        data: StubOracleSet,
194        accounts: StubOracleSetInstructionAccounts,
195    },
196    SweepFees {
197        program_id: solana_pubkey::Pubkey,
198        data: SweepFees,
199        accounts: SweepFeesInstructionAccounts,
200    },
201    CpiEvent {
202        program_id: solana_pubkey::Pubkey,
203        data: CpiEvent,
204        accounts: CpiEventInstructionAccounts,
205    },
206}
207
208impl carbon_core::instruction::InstructionDecoder<'_> for OpenbookV2Decoder {
209    type InstructionType = OpenbookV2Instruction;
210
211    fn decode_instruction(
212        &self,
213        instruction: &solana_instruction::Instruction,
214    ) -> Option<Self::InstructionType> {
215        if instruction.program_id != PROGRAM_ID {
216            return None;
217        }
218
219        carbon_core::try_decode_instructions!(
220            instruction,
221            PROGRAM_ID,
222            OpenbookV2Instruction::CancelAllAndPlaceOrders => CancelAllAndPlaceOrders,
223            OpenbookV2Instruction::CancelAllOrders => CancelAllOrders,
224            OpenbookV2Instruction::CancelOrder => CancelOrder,
225            OpenbookV2Instruction::CancelOrderByClientOrderId => CancelOrderByClientOrderId,
226            OpenbookV2Instruction::CloseMarket => CloseMarket,
227            OpenbookV2Instruction::CloseOpenOrdersAccount => CloseOpenOrdersAccount,
228            OpenbookV2Instruction::CloseOpenOrdersIndexer => CloseOpenOrdersIndexer,
229            OpenbookV2Instruction::ConsumeEvents => ConsumeEvents,
230            OpenbookV2Instruction::ConsumeGivenEvents => ConsumeGivenEvents,
231            OpenbookV2Instruction::CreateMarket => CreateMarket,
232            OpenbookV2Instruction::CreateOpenOrdersAccount => CreateOpenOrdersAccount,
233            OpenbookV2Instruction::CreateOpenOrdersIndexer => CreateOpenOrdersIndexer,
234            OpenbookV2Instruction::Deposit => Deposit,
235            OpenbookV2Instruction::EditOrder => EditOrder,
236            OpenbookV2Instruction::EditOrderPegged => EditOrderPegged,
237            OpenbookV2Instruction::PlaceOrder => PlaceOrder,
238            OpenbookV2Instruction::PlaceOrderPegged => PlaceOrderPegged,
239            OpenbookV2Instruction::PlaceOrders => PlaceOrders,
240            OpenbookV2Instruction::PlaceTakeOrder => PlaceTakeOrder,
241            OpenbookV2Instruction::PruneOrders => PruneOrders,
242            OpenbookV2Instruction::Refill => Refill,
243            OpenbookV2Instruction::SetDelegate => SetDelegate,
244            OpenbookV2Instruction::SetMarketExpired => SetMarketExpired,
245            OpenbookV2Instruction::SettleFunds => SettleFunds,
246            OpenbookV2Instruction::SettleFundsExpired => SettleFundsExpired,
247            OpenbookV2Instruction::StubOracleClose => StubOracleClose,
248            OpenbookV2Instruction::StubOracleCreate => StubOracleCreate,
249            OpenbookV2Instruction::StubOracleSet => StubOracleSet,
250            OpenbookV2Instruction::SweepFees => SweepFees,
251            OpenbookV2Instruction::CpiEvent => CpiEvent,
252        )
253    }
254}