1use crate::PROGRAM_ID;
2
3use super::DriftDecoder;
4pub mod add_insurance_fund_stake;
5pub mod add_perp_lp_shares;
6pub mod admin_disable_update_perp_bid_ask_twap;
7pub mod begin_swap;
8pub mod cancel_order;
9pub mod cancel_order_by_user_id;
10pub mod cancel_orders;
11pub mod cancel_orders_by_ids;
12pub mod cancel_request_remove_insurance_fund_stake;
13pub mod curve_record_event;
14pub mod delete_initialized_perp_market;
15pub mod delete_initialized_spot_market;
16pub mod delete_prelaunch_oracle;
17pub mod delete_signed_msg_user_orders;
18pub mod delete_user;
19pub mod delete_user_record_event;
20pub mod deposit;
21pub mod deposit_into_perp_market_fee_pool;
22pub mod deposit_into_spot_market_revenue_pool;
23pub mod deposit_into_spot_market_vault;
24pub mod deposit_record_event;
25pub mod disable_user_high_leverage_mode;
26pub mod enable_user_high_leverage_mode;
27pub mod end_swap;
28pub mod fill_perp_order;
29pub mod fill_spot_order;
30pub mod force_cancel_orders;
31pub mod force_delete_user;
32pub mod fuel_season_record_event;
33pub mod fuel_sweep_record_event;
34pub mod funding_payment_record_event;
35pub mod funding_rate_record_event;
36pub mod init_user_fuel;
37pub mod initialize;
38pub mod initialize_fuel_overflow;
39pub mod initialize_high_leverage_mode_config;
40pub mod initialize_insurance_fund_stake;
41pub mod initialize_openbook_v2_fulfillment_config;
42pub mod initialize_perp_market;
43pub mod initialize_phoenix_fulfillment_config;
44pub mod initialize_prediction_market;
45pub mod initialize_prelaunch_oracle;
46pub mod initialize_protected_maker_mode_config;
47pub mod initialize_protocol_if_shares_transfer_config;
48pub mod initialize_pyth_lazer_oracle;
49pub mod initialize_pyth_pull_oracle;
50pub mod initialize_referrer_name;
51pub mod initialize_serum_fulfillment_config;
52pub mod initialize_signed_msg_user_orders;
53pub mod initialize_spot_market;
54pub mod initialize_user;
55pub mod initialize_user_stats;
56pub mod insurance_fund_record_event;
57pub mod insurance_fund_stake_record_event;
58pub mod liquidate_borrow_for_perp_pnl;
59pub mod liquidate_perp;
60pub mod liquidate_perp_pnl_for_deposit;
61pub mod liquidate_perp_with_fill;
62pub mod liquidate_spot;
63pub mod liquidate_spot_with_swap_begin;
64pub mod liquidate_spot_with_swap_end;
65pub mod liquidation_record_event;
66pub mod log_user_balances;
67pub mod lp_record_event;
68pub mod modify_order;
69pub mod modify_order_by_user_id;
70pub mod move_amm_price;
71pub mod new_user_record_event;
72pub mod openbook_v2_fulfillment_config_status;
73pub mod order_action_record_event;
74pub mod order_record_event;
75pub mod pause_spot_market_deposit_withdraw;
76pub mod phoenix_fulfillment_config_status;
77pub mod place_and_make_perp_order;
78pub mod place_and_make_signed_msg_perp_order;
79pub mod place_and_make_spot_order;
80pub mod place_and_take_perp_order;
81pub mod place_and_take_spot_order;
82pub mod place_orders;
83pub mod place_perp_order;
84pub mod place_signed_msg_taker_order;
85pub mod place_spot_order;
86pub mod post_multi_pyth_pull_oracle_updates_atomic;
87pub mod post_pyth_lazer_oracle_update;
88pub mod post_pyth_pull_oracle_update_atomic;
89pub mod recenter_perp_market_amm;
90pub mod reclaim_rent;
91pub mod remove_insurance_fund_stake;
92pub mod remove_perp_lp_shares;
93pub mod remove_perp_lp_shares_in_expiring_market;
94pub mod repeg_amm_curve;
95pub mod request_remove_insurance_fund_stake;
96pub mod reset_fuel_season;
97pub mod reset_perp_market_amm_oracle_twap;
98pub mod resize_signed_msg_user_orders;
99pub mod resolve_perp_bankruptcy;
100pub mod resolve_perp_pnl_deficit;
101pub mod resolve_spot_bankruptcy;
102pub mod revert_fill;
103pub mod set_user_status_to_being_liquidated;
104pub mod settle_expired_market;
105pub mod settle_expired_market_pools_to_revenue_pool;
106pub mod settle_funding_payment;
107pub mod settle_lp;
108pub mod settle_multiple_pnls;
109pub mod settle_pnl;
110pub mod settle_pnl_record_event;
111pub mod settle_revenue_to_insurance_fund;
112pub mod signed_msg_order_record_event;
113pub mod spot_interest_record_event;
114pub mod spot_market_vault_deposit_record_event;
115pub mod swap_record_event;
116pub mod sweep_fuel;
117pub mod transfer_deposit;
118pub mod transfer_pools;
119pub mod transfer_protocol_if_shares;
120pub mod trigger_order;
121pub mod update_admin;
122pub mod update_amm_jit_intensity;
123pub mod update_amms;
124pub mod update_discount_mint;
125pub mod update_exchange_status;
126pub mod update_funding_rate;
127pub mod update_high_leverage_mode_config;
128pub mod update_initial_pct_to_liquidate;
129pub mod update_insurance_fund_unstaking_period;
130pub mod update_k;
131pub mod update_liquidation_duration;
132pub mod update_liquidation_margin_buffer_ratio;
133pub mod update_lp_cooldown_time;
134pub mod update_oracle_guard_rails;
135pub mod update_perp_auction_duration;
136pub mod update_perp_bid_ask_twap;
137pub mod update_perp_fee_structure;
138pub mod update_perp_market_amm_oracle_twap;
139pub mod update_perp_market_amm_summary_stats;
140pub mod update_perp_market_base_spread;
141pub mod update_perp_market_concentration_coef;
142pub mod update_perp_market_contract_tier;
143pub mod update_perp_market_curve_update_intensity;
144pub mod update_perp_market_expiry;
145pub mod update_perp_market_fee_adjustment;
146pub mod update_perp_market_fuel;
147pub mod update_perp_market_funding_period;
148pub mod update_perp_market_high_leverage_margin_ratio;
149pub mod update_perp_market_imf_factor;
150pub mod update_perp_market_liquidation_fee;
151pub mod update_perp_market_margin_ratio;
152pub mod update_perp_market_max_fill_reserve_fraction;
153pub mod update_perp_market_max_imbalances;
154pub mod update_perp_market_max_open_interest;
155pub mod update_perp_market_max_slippage_ratio;
156pub mod update_perp_market_max_spread;
157pub mod update_perp_market_min_order_size;
158pub mod update_perp_market_name;
159pub mod update_perp_market_number_of_users;
160pub mod update_perp_market_oracle;
161pub mod update_perp_market_paused_operations;
162pub mod update_perp_market_per_lp_base;
163pub mod update_perp_market_status;
164pub mod update_perp_market_step_size_and_tick_size;
165pub mod update_perp_market_target_base_asset_amount_per_lp;
166pub mod update_perp_market_unrealized_asset_weight;
167pub mod update_prelaunch_oracle;
168pub mod update_prelaunch_oracle_params;
169pub mod update_protected_maker_mode_config;
170pub mod update_protocol_if_shares_transfer_config;
171pub mod update_pyth_pull_oracle;
172pub mod update_serum_fulfillment_config_status;
173pub mod update_serum_vault;
174pub mod update_spot_auction_duration;
175pub mod update_spot_fee_structure;
176pub mod update_spot_market_asset_tier;
177pub mod update_spot_market_borrow_rate;
178pub mod update_spot_market_cumulative_interest;
179pub mod update_spot_market_expiry;
180pub mod update_spot_market_fee_adjustment;
181pub mod update_spot_market_fuel;
182pub mod update_spot_market_if_factor;
183pub mod update_spot_market_if_paused_operations;
184pub mod update_spot_market_liquidation_fee;
185pub mod update_spot_market_margin_weights;
186pub mod update_spot_market_max_token_borrows;
187pub mod update_spot_market_max_token_deposits;
188pub mod update_spot_market_min_order_size;
189pub mod update_spot_market_name;
190pub mod update_spot_market_oracle;
191pub mod update_spot_market_orders_enabled;
192pub mod update_spot_market_paused_operations;
193pub mod update_spot_market_pool_id;
194pub mod update_spot_market_revenue_settle_period;
195pub mod update_spot_market_scale_initial_asset_weight_start;
196pub mod update_spot_market_status;
197pub mod update_spot_market_step_size_and_tick_size;
198pub mod update_state_max_initialize_user_fee;
199pub mod update_state_max_number_of_sub_accounts;
200pub mod update_state_settlement_duration;
201pub mod update_user_advanced_lp;
202pub mod update_user_custom_margin_ratio;
203pub mod update_user_delegate;
204pub mod update_user_fuel_bonus;
205pub mod update_user_gov_token_insurance_stake;
206pub mod update_user_gov_token_insurance_stake_devnet;
207pub mod update_user_idle;
208pub mod update_user_margin_trading_enabled;
209pub mod update_user_name;
210pub mod update_user_open_orders_count;
211pub mod update_user_pool_id;
212pub mod update_user_protected_maker_orders;
213pub mod update_user_quote_asset_insurance_stake;
214pub mod update_user_reduce_only;
215pub mod update_user_stats_referrer_status;
216pub mod update_whitelist_mint;
217pub mod update_withdraw_guard_threshold;
218pub mod withdraw;
219
220#[derive(
221 carbon_core::InstructionType,
222 serde::Serialize,
223 serde::Deserialize,
224 PartialEq,
225 Eq,
226 Debug,
227 Clone,
228 Hash,
229)]
230pub enum DriftInstruction {
231 InitializeUser(initialize_user::InitializeUser),
232 InitializeUserStats(initialize_user_stats::InitializeUserStats),
233 InitializeSignedMsgUserOrders(initialize_signed_msg_user_orders::InitializeSignedMsgUserOrders),
234 ResizeSignedMsgUserOrders(resize_signed_msg_user_orders::ResizeSignedMsgUserOrders),
235 InitializeFuelOverflow(initialize_fuel_overflow::InitializeFuelOverflow),
236 SweepFuel(sweep_fuel::SweepFuel),
237 ResetFuelSeason(reset_fuel_season::ResetFuelSeason),
238 InitializeReferrerName(initialize_referrer_name::InitializeReferrerName),
239 Deposit(deposit::Deposit),
240 Withdraw(withdraw::Withdraw),
241 TransferDeposit(transfer_deposit::TransferDeposit),
242 TransferPools(transfer_pools::TransferPools),
243 PlacePerpOrder(place_perp_order::PlacePerpOrder),
244 CancelOrder(cancel_order::CancelOrder),
245 CancelOrderByUserId(cancel_order_by_user_id::CancelOrderByUserId),
246 CancelOrders(cancel_orders::CancelOrders),
247 CancelOrdersByIds(cancel_orders_by_ids::CancelOrdersByIds),
248 ModifyOrder(modify_order::ModifyOrder),
249 ModifyOrderByUserId(modify_order_by_user_id::ModifyOrderByUserId),
250 PlaceAndTakePerpOrder(place_and_take_perp_order::PlaceAndTakePerpOrder),
251 PlaceAndMakePerpOrder(place_and_make_perp_order::PlaceAndMakePerpOrder),
252 PlaceAndMakeSignedMsgPerpOrder(place_and_make_signed_msg_perp_order::PlaceAndMakeSignedMsgPerpOrder),
253 PlaceSignedMsgTakerOrder(place_signed_msg_taker_order::PlaceSignedMsgTakerOrder),
254 PlaceSpotOrder(place_spot_order::PlaceSpotOrder),
255 PlaceAndTakeSpotOrder(place_and_take_spot_order::PlaceAndTakeSpotOrder),
256 PlaceAndMakeSpotOrder(place_and_make_spot_order::PlaceAndMakeSpotOrder),
257 PlaceOrders(place_orders::PlaceOrders),
258 BeginSwap(begin_swap::BeginSwap),
259 EndSwap(end_swap::EndSwap),
260 AddPerpLpShares(add_perp_lp_shares::AddPerpLpShares),
261 RemovePerpLpShares(remove_perp_lp_shares::RemovePerpLpShares),
262 RemovePerpLpSharesInExpiringMarket(remove_perp_lp_shares_in_expiring_market::RemovePerpLpSharesInExpiringMarket),
263 UpdateUserName(update_user_name::UpdateUserName),
264 UpdateUserCustomMarginRatio(update_user_custom_margin_ratio::UpdateUserCustomMarginRatio),
265 UpdateUserMarginTradingEnabled(update_user_margin_trading_enabled::UpdateUserMarginTradingEnabled),
266 UpdateUserPoolId(update_user_pool_id::UpdateUserPoolId),
267 UpdateUserDelegate(update_user_delegate::UpdateUserDelegate),
268 UpdateUserReduceOnly(update_user_reduce_only::UpdateUserReduceOnly),
269 UpdateUserAdvancedLp(update_user_advanced_lp::UpdateUserAdvancedLp),
270 UpdateUserProtectedMakerOrders(update_user_protected_maker_orders::UpdateUserProtectedMakerOrders),
271 DeleteUser(delete_user::DeleteUser),
272 ForceDeleteUser(force_delete_user::ForceDeleteUser),
273 DeleteSignedMsgUserOrders(delete_signed_msg_user_orders::DeleteSignedMsgUserOrders),
274 ReclaimRent(reclaim_rent::ReclaimRent),
275 EnableUserHighLeverageMode(enable_user_high_leverage_mode::EnableUserHighLeverageMode),
276 FillPerpOrder(fill_perp_order::FillPerpOrder),
277 RevertFill(revert_fill::RevertFill),
278 FillSpotOrder(fill_spot_order::FillSpotOrder),
279 TriggerOrder(trigger_order::TriggerOrder),
280 ForceCancelOrders(force_cancel_orders::ForceCancelOrders),
281 UpdateUserIdle(update_user_idle::UpdateUserIdle),
282 LogUserBalances(log_user_balances::LogUserBalances),
283 DisableUserHighLeverageMode(disable_user_high_leverage_mode::DisableUserHighLeverageMode),
284 UpdateUserFuelBonus(update_user_fuel_bonus::UpdateUserFuelBonus),
285 UpdateUserStatsReferrerStatus(update_user_stats_referrer_status::UpdateUserStatsReferrerStatus),
286 UpdateUserOpenOrdersCount(update_user_open_orders_count::UpdateUserOpenOrdersCount),
287 AdminDisableUpdatePerpBidAskTwap(admin_disable_update_perp_bid_ask_twap::AdminDisableUpdatePerpBidAskTwap),
288 SettlePnl(settle_pnl::SettlePnl),
289 SettleMultiplePnls(settle_multiple_pnls::SettleMultiplePnls),
290 SettleFundingPayment(settle_funding_payment::SettleFundingPayment),
291 SettleLp(settle_lp::SettleLp),
292 SettleExpiredMarket(settle_expired_market::SettleExpiredMarket),
293 LiquidatePerp(liquidate_perp::LiquidatePerp),
294 LiquidatePerpWithFill(liquidate_perp_with_fill::LiquidatePerpWithFill),
295 LiquidateSpot(liquidate_spot::LiquidateSpot),
296 LiquidateSpotWithSwapBegin(liquidate_spot_with_swap_begin::LiquidateSpotWithSwapBegin),
297 LiquidateSpotWithSwapEnd(liquidate_spot_with_swap_end::LiquidateSpotWithSwapEnd),
298 LiquidateBorrowForPerpPnl(liquidate_borrow_for_perp_pnl::LiquidateBorrowForPerpPnl),
299 LiquidatePerpPnlForDeposit(liquidate_perp_pnl_for_deposit::LiquidatePerpPnlForDeposit),
300 SetUserStatusToBeingLiquidated(set_user_status_to_being_liquidated::SetUserStatusToBeingLiquidated),
301 ResolvePerpPnlDeficit(resolve_perp_pnl_deficit::ResolvePerpPnlDeficit),
302 ResolvePerpBankruptcy(resolve_perp_bankruptcy::ResolvePerpBankruptcy),
303 ResolveSpotBankruptcy(resolve_spot_bankruptcy::ResolveSpotBankruptcy),
304 SettleRevenueToInsuranceFund(settle_revenue_to_insurance_fund::SettleRevenueToInsuranceFund),
305 UpdateFundingRate(update_funding_rate::UpdateFundingRate),
306 UpdatePrelaunchOracle(update_prelaunch_oracle::UpdatePrelaunchOracle),
307 UpdatePerpBidAskTwap(update_perp_bid_ask_twap::UpdatePerpBidAskTwap),
308 UpdateSpotMarketCumulativeInterest(update_spot_market_cumulative_interest::UpdateSpotMarketCumulativeInterest),
309 UpdateAmms(update_amms::UpdateAmms),
310 UpdateSpotMarketExpiry(update_spot_market_expiry::UpdateSpotMarketExpiry),
311 UpdateUserQuoteAssetInsuranceStake(update_user_quote_asset_insurance_stake::UpdateUserQuoteAssetInsuranceStake),
312 UpdateUserGovTokenInsuranceStake(update_user_gov_token_insurance_stake::UpdateUserGovTokenInsuranceStake),
313 UpdateUserGovTokenInsuranceStakeDevnet(update_user_gov_token_insurance_stake_devnet::UpdateUserGovTokenInsuranceStakeDevnet),
314 InitializeInsuranceFundStake(initialize_insurance_fund_stake::InitializeInsuranceFundStake),
315 AddInsuranceFundStake(add_insurance_fund_stake::AddInsuranceFundStake),
316 RequestRemoveInsuranceFundStake(request_remove_insurance_fund_stake::RequestRemoveInsuranceFundStake),
317 CancelRequestRemoveInsuranceFundStake(cancel_request_remove_insurance_fund_stake::CancelRequestRemoveInsuranceFundStake),
318 RemoveInsuranceFundStake(remove_insurance_fund_stake::RemoveInsuranceFundStake),
319 TransferProtocolIfShares(transfer_protocol_if_shares::TransferProtocolIfShares),
320 UpdatePythPullOracle(update_pyth_pull_oracle::UpdatePythPullOracle),
321 PostPythPullOracleUpdateAtomic(post_pyth_pull_oracle_update_atomic::PostPythPullOracleUpdateAtomic),
322 PostMultiPythPullOracleUpdatesAtomic(post_multi_pyth_pull_oracle_updates_atomic::PostMultiPythPullOracleUpdatesAtomic),
323 PauseSpotMarketDepositWithdraw(pause_spot_market_deposit_withdraw::PauseSpotMarketDepositWithdraw),
324 Initialize(initialize::Initialize),
325 InitializeSpotMarket(initialize_spot_market::InitializeSpotMarket),
326 DeleteInitializedSpotMarket(delete_initialized_spot_market::DeleteInitializedSpotMarket),
327 InitializeSerumFulfillmentConfig(initialize_serum_fulfillment_config::InitializeSerumFulfillmentConfig),
328 UpdateSerumFulfillmentConfigStatus(update_serum_fulfillment_config_status::UpdateSerumFulfillmentConfigStatus),
329 InitializeOpenbookV2FulfillmentConfig(initialize_openbook_v2_fulfillment_config::InitializeOpenbookV2FulfillmentConfig),
330 OpenbookV2FulfillmentConfigStatus(openbook_v2_fulfillment_config_status::OpenbookV2FulfillmentConfigStatus),
331 InitializePhoenixFulfillmentConfig(initialize_phoenix_fulfillment_config::InitializePhoenixFulfillmentConfig),
332 PhoenixFulfillmentConfigStatus(phoenix_fulfillment_config_status::PhoenixFulfillmentConfigStatus),
333 UpdateSerumVault(update_serum_vault::UpdateSerumVault),
334 InitializePerpMarket(initialize_perp_market::InitializePerpMarket),
335 InitializePredictionMarket(initialize_prediction_market::InitializePredictionMarket),
336 DeleteInitializedPerpMarket(delete_initialized_perp_market::DeleteInitializedPerpMarket),
337 MoveAmmPrice(move_amm_price::MoveAmmPrice),
338 RecenterPerpMarketAmm(recenter_perp_market_amm::RecenterPerpMarketAmm),
339 UpdatePerpMarketAmmSummaryStats(update_perp_market_amm_summary_stats::UpdatePerpMarketAmmSummaryStats),
340 UpdatePerpMarketExpiry(update_perp_market_expiry::UpdatePerpMarketExpiry),
341 SettleExpiredMarketPoolsToRevenuePool(settle_expired_market_pools_to_revenue_pool::SettleExpiredMarketPoolsToRevenuePool),
342 DepositIntoPerpMarketFeePool(deposit_into_perp_market_fee_pool::DepositIntoPerpMarketFeePool),
343 DepositIntoSpotMarketVault(deposit_into_spot_market_vault::DepositIntoSpotMarketVault),
344 DepositIntoSpotMarketRevenuePool(deposit_into_spot_market_revenue_pool::DepositIntoSpotMarketRevenuePool),
345 RepegAmmCurve(repeg_amm_curve::RepegAmmCurve),
346 UpdatePerpMarketAmmOracleTwap(update_perp_market_amm_oracle_twap::UpdatePerpMarketAmmOracleTwap),
347 ResetPerpMarketAmmOracleTwap(reset_perp_market_amm_oracle_twap::ResetPerpMarketAmmOracleTwap),
348 UpdateK(update_k::UpdateK),
349 UpdatePerpMarketMarginRatio(update_perp_market_margin_ratio::UpdatePerpMarketMarginRatio),
350 UpdatePerpMarketHighLeverageMarginRatio(update_perp_market_high_leverage_margin_ratio::UpdatePerpMarketHighLeverageMarginRatio),
351 UpdatePerpMarketFundingPeriod(update_perp_market_funding_period::UpdatePerpMarketFundingPeriod),
352 UpdatePerpMarketMaxImbalances(update_perp_market_max_imbalances::UpdatePerpMarketMaxImbalances),
353 UpdatePerpMarketLiquidationFee(update_perp_market_liquidation_fee::UpdatePerpMarketLiquidationFee),
354 UpdateInsuranceFundUnstakingPeriod(update_insurance_fund_unstaking_period::UpdateInsuranceFundUnstakingPeriod),
355 UpdateSpotMarketPoolId(update_spot_market_pool_id::UpdateSpotMarketPoolId),
356 UpdateSpotMarketLiquidationFee(update_spot_market_liquidation_fee::UpdateSpotMarketLiquidationFee),
357 UpdateWithdrawGuardThreshold(update_withdraw_guard_threshold::UpdateWithdrawGuardThreshold),
358 UpdateSpotMarketIfFactor(update_spot_market_if_factor::UpdateSpotMarketIfFactor),
359 UpdateSpotMarketRevenueSettlePeriod(update_spot_market_revenue_settle_period::UpdateSpotMarketRevenueSettlePeriod),
360 UpdateSpotMarketStatus(update_spot_market_status::UpdateSpotMarketStatus),
361 UpdateSpotMarketPausedOperations(update_spot_market_paused_operations::UpdateSpotMarketPausedOperations),
362 UpdateSpotMarketAssetTier(update_spot_market_asset_tier::UpdateSpotMarketAssetTier),
363 UpdateSpotMarketMarginWeights(update_spot_market_margin_weights::UpdateSpotMarketMarginWeights),
364 UpdateSpotMarketBorrowRate(update_spot_market_borrow_rate::UpdateSpotMarketBorrowRate),
365 UpdateSpotMarketMaxTokenDeposits(update_spot_market_max_token_deposits::UpdateSpotMarketMaxTokenDeposits),
366 UpdateSpotMarketMaxTokenBorrows(update_spot_market_max_token_borrows::UpdateSpotMarketMaxTokenBorrows),
367 UpdateSpotMarketScaleInitialAssetWeightStart(update_spot_market_scale_initial_asset_weight_start::UpdateSpotMarketScaleInitialAssetWeightStart),
368 UpdateSpotMarketOracle(update_spot_market_oracle::UpdateSpotMarketOracle),
369 UpdateSpotMarketStepSizeAndTickSize(update_spot_market_step_size_and_tick_size::UpdateSpotMarketStepSizeAndTickSize),
370 UpdateSpotMarketMinOrderSize(update_spot_market_min_order_size::UpdateSpotMarketMinOrderSize),
371 UpdateSpotMarketOrdersEnabled(update_spot_market_orders_enabled::UpdateSpotMarketOrdersEnabled),
372 UpdateSpotMarketIfPausedOperations(update_spot_market_if_paused_operations::UpdateSpotMarketIfPausedOperations),
373 UpdateSpotMarketName(update_spot_market_name::UpdateSpotMarketName),
374 UpdatePerpMarketStatus(update_perp_market_status::UpdatePerpMarketStatus),
375 UpdatePerpMarketPausedOperations(update_perp_market_paused_operations::UpdatePerpMarketPausedOperations),
376 UpdatePerpMarketContractTier(update_perp_market_contract_tier::UpdatePerpMarketContractTier),
377 UpdatePerpMarketImfFactor(update_perp_market_imf_factor::UpdatePerpMarketImfFactor),
378 UpdatePerpMarketUnrealizedAssetWeight(update_perp_market_unrealized_asset_weight::UpdatePerpMarketUnrealizedAssetWeight),
379 UpdatePerpMarketConcentrationCoef(update_perp_market_concentration_coef::UpdatePerpMarketConcentrationCoef),
380 UpdatePerpMarketCurveUpdateIntensity(update_perp_market_curve_update_intensity::UpdatePerpMarketCurveUpdateIntensity),
381 UpdatePerpMarketTargetBaseAssetAmountPerLp(update_perp_market_target_base_asset_amount_per_lp::UpdatePerpMarketTargetBaseAssetAmountPerLp),
382 UpdatePerpMarketPerLpBase(update_perp_market_per_lp_base::UpdatePerpMarketPerLpBase),
383 UpdateLpCooldownTime(update_lp_cooldown_time::UpdateLpCooldownTime),
384 UpdatePerpFeeStructure(update_perp_fee_structure::UpdatePerpFeeStructure),
385 UpdateSpotFeeStructure(update_spot_fee_structure::UpdateSpotFeeStructure),
386 UpdateInitialPctToLiquidate(update_initial_pct_to_liquidate::UpdateInitialPctToLiquidate),
387 UpdateLiquidationDuration(update_liquidation_duration::UpdateLiquidationDuration),
388 UpdateLiquidationMarginBufferRatio(update_liquidation_margin_buffer_ratio::UpdateLiquidationMarginBufferRatio),
389 UpdateOracleGuardRails(update_oracle_guard_rails::UpdateOracleGuardRails),
390 UpdateStateSettlementDuration(update_state_settlement_duration::UpdateStateSettlementDuration),
391 UpdateStateMaxNumberOfSubAccounts(update_state_max_number_of_sub_accounts::UpdateStateMaxNumberOfSubAccounts),
392 UpdateStateMaxInitializeUserFee(update_state_max_initialize_user_fee::UpdateStateMaxInitializeUserFee),
393 UpdatePerpMarketOracle(update_perp_market_oracle::UpdatePerpMarketOracle),
394 UpdatePerpMarketBaseSpread(update_perp_market_base_spread::UpdatePerpMarketBaseSpread),
395 UpdateAmmJitIntensity(update_amm_jit_intensity::UpdateAmmJitIntensity),
396 UpdatePerpMarketMaxSpread(update_perp_market_max_spread::UpdatePerpMarketMaxSpread),
397 UpdatePerpMarketStepSizeAndTickSize(update_perp_market_step_size_and_tick_size::UpdatePerpMarketStepSizeAndTickSize),
398 UpdatePerpMarketName(update_perp_market_name::UpdatePerpMarketName),
399 UpdatePerpMarketMinOrderSize(update_perp_market_min_order_size::UpdatePerpMarketMinOrderSize),
400 UpdatePerpMarketMaxSlippageRatio(update_perp_market_max_slippage_ratio::UpdatePerpMarketMaxSlippageRatio),
401 UpdatePerpMarketMaxFillReserveFraction(update_perp_market_max_fill_reserve_fraction::UpdatePerpMarketMaxFillReserveFraction),
402 UpdatePerpMarketMaxOpenInterest(update_perp_market_max_open_interest::UpdatePerpMarketMaxOpenInterest),
403 UpdatePerpMarketNumberOfUsers(update_perp_market_number_of_users::UpdatePerpMarketNumberOfUsers),
404 UpdatePerpMarketFeeAdjustment(update_perp_market_fee_adjustment::UpdatePerpMarketFeeAdjustment),
405 UpdateSpotMarketFeeAdjustment(update_spot_market_fee_adjustment::UpdateSpotMarketFeeAdjustment),
406 UpdatePerpMarketFuel(update_perp_market_fuel::UpdatePerpMarketFuel),
407 UpdateSpotMarketFuel(update_spot_market_fuel::UpdateSpotMarketFuel),
408 InitUserFuel(init_user_fuel::InitUserFuel),
409 UpdateAdmin(update_admin::UpdateAdmin),
410 UpdateWhitelistMint(update_whitelist_mint::UpdateWhitelistMint),
411 UpdateDiscountMint(update_discount_mint::UpdateDiscountMint),
412 UpdateExchangeStatus(update_exchange_status::UpdateExchangeStatus),
413 UpdatePerpAuctionDuration(update_perp_auction_duration::UpdatePerpAuctionDuration),
414 UpdateSpotAuctionDuration(update_spot_auction_duration::UpdateSpotAuctionDuration),
415 InitializeProtocolIfSharesTransferConfig(initialize_protocol_if_shares_transfer_config::InitializeProtocolIfSharesTransferConfig),
416 UpdateProtocolIfSharesTransferConfig(update_protocol_if_shares_transfer_config::UpdateProtocolIfSharesTransferConfig),
417 InitializePrelaunchOracle(initialize_prelaunch_oracle::InitializePrelaunchOracle),
418 UpdatePrelaunchOracleParams(update_prelaunch_oracle_params::UpdatePrelaunchOracleParams),
419 DeletePrelaunchOracle(delete_prelaunch_oracle::DeletePrelaunchOracle),
420 InitializePythPullOracle(initialize_pyth_pull_oracle::InitializePythPullOracle),
421 InitializePythLazerOracle(initialize_pyth_lazer_oracle::InitializePythLazerOracle),
422 PostPythLazerOracleUpdate(post_pyth_lazer_oracle_update::PostPythLazerOracleUpdate),
423 InitializeHighLeverageModeConfig(initialize_high_leverage_mode_config::InitializeHighLeverageModeConfig),
424 UpdateHighLeverageModeConfig(update_high_leverage_mode_config::UpdateHighLeverageModeConfig),
425 InitializeProtectedMakerModeConfig(initialize_protected_maker_mode_config::InitializeProtectedMakerModeConfig),
426 UpdateProtectedMakerModeConfig(update_protected_maker_mode_config::UpdateProtectedMakerModeConfig),
427 NewUserRecordEvent(new_user_record_event::NewUserRecordEvent),
428 DepositRecordEvent(deposit_record_event::DepositRecordEvent),
429 SpotInterestRecordEvent(spot_interest_record_event::SpotInterestRecordEvent),
430 FundingPaymentRecordEvent(funding_payment_record_event::FundingPaymentRecordEvent),
431 FundingRateRecordEvent(funding_rate_record_event::FundingRateRecordEvent),
432 CurveRecordEvent(curve_record_event::CurveRecordEvent),
433 SignedMsgOrderRecordEvent(signed_msg_order_record_event::SignedMsgOrderRecordEvent),
434 OrderRecordEvent(order_record_event::OrderRecordEvent),
435 OrderActionRecordEvent(order_action_record_event::OrderActionRecordEvent),
436 LpRecordEvent(lp_record_event::LpRecordEvent),
437 LiquidationRecordEvent(liquidation_record_event::LiquidationRecordEvent),
438 SettlePnlRecordEvent(settle_pnl_record_event::SettlePnlRecordEvent),
439 InsuranceFundRecordEvent(insurance_fund_record_event::InsuranceFundRecordEvent),
440 InsuranceFundStakeRecordEvent(insurance_fund_stake_record_event::InsuranceFundStakeRecordEvent),
441 SwapRecordEvent(swap_record_event::SwapRecordEvent),
442 SpotMarketVaultDepositRecordEvent(spot_market_vault_deposit_record_event::SpotMarketVaultDepositRecordEvent),
443 DeleteUserRecordEvent(delete_user_record_event::DeleteUserRecordEvent),
444 FuelSweepRecordEvent(fuel_sweep_record_event::FuelSweepRecordEvent),
445 FuelSeasonRecordEvent(fuel_season_record_event::FuelSeasonRecordEvent),
446}
447
448impl<'a> carbon_core::instruction::InstructionDecoder<'a> for DriftDecoder {
449 type InstructionType = DriftInstruction;
450
451 fn decode_instruction(
452 &self,
453 instruction: &solana_sdk::instruction::Instruction,
454 ) -> Option<carbon_core::instruction::DecodedInstruction<Self::InstructionType>> {
455 if !instruction.program_id.eq(&PROGRAM_ID) {
456 return None;
457 }
458
459 carbon_core::try_decode_instructions!(instruction,
460 DriftInstruction::InitializeUser => initialize_user::InitializeUser,
461 DriftInstruction::InitializeUserStats => initialize_user_stats::InitializeUserStats,
462 DriftInstruction::InitializeSignedMsgUserOrders => initialize_signed_msg_user_orders::InitializeSignedMsgUserOrders,
463 DriftInstruction::ResizeSignedMsgUserOrders => resize_signed_msg_user_orders::ResizeSignedMsgUserOrders,
464 DriftInstruction::InitializeFuelOverflow => initialize_fuel_overflow::InitializeFuelOverflow,
465 DriftInstruction::SweepFuel => sweep_fuel::SweepFuel,
466 DriftInstruction::ResetFuelSeason => reset_fuel_season::ResetFuelSeason,
467 DriftInstruction::InitializeReferrerName => initialize_referrer_name::InitializeReferrerName,
468 DriftInstruction::Deposit => deposit::Deposit,
469 DriftInstruction::Withdraw => withdraw::Withdraw,
470 DriftInstruction::TransferDeposit => transfer_deposit::TransferDeposit,
471 DriftInstruction::TransferPools => transfer_pools::TransferPools,
472 DriftInstruction::PlacePerpOrder => place_perp_order::PlacePerpOrder,
473 DriftInstruction::CancelOrder => cancel_order::CancelOrder,
474 DriftInstruction::CancelOrderByUserId => cancel_order_by_user_id::CancelOrderByUserId,
475 DriftInstruction::CancelOrders => cancel_orders::CancelOrders,
476 DriftInstruction::CancelOrdersByIds => cancel_orders_by_ids::CancelOrdersByIds,
477 DriftInstruction::ModifyOrder => modify_order::ModifyOrder,
478 DriftInstruction::ModifyOrderByUserId => modify_order_by_user_id::ModifyOrderByUserId,
479 DriftInstruction::PlaceAndTakePerpOrder => place_and_take_perp_order::PlaceAndTakePerpOrder,
480 DriftInstruction::PlaceAndMakePerpOrder => place_and_make_perp_order::PlaceAndMakePerpOrder,
481 DriftInstruction::PlaceAndMakeSignedMsgPerpOrder => place_and_make_signed_msg_perp_order::PlaceAndMakeSignedMsgPerpOrder,
482 DriftInstruction::PlaceSignedMsgTakerOrder => place_signed_msg_taker_order::PlaceSignedMsgTakerOrder,
483 DriftInstruction::PlaceSpotOrder => place_spot_order::PlaceSpotOrder,
484 DriftInstruction::PlaceAndTakeSpotOrder => place_and_take_spot_order::PlaceAndTakeSpotOrder,
485 DriftInstruction::PlaceAndMakeSpotOrder => place_and_make_spot_order::PlaceAndMakeSpotOrder,
486 DriftInstruction::PlaceOrders => place_orders::PlaceOrders,
487 DriftInstruction::BeginSwap => begin_swap::BeginSwap,
488 DriftInstruction::EndSwap => end_swap::EndSwap,
489 DriftInstruction::AddPerpLpShares => add_perp_lp_shares::AddPerpLpShares,
490 DriftInstruction::RemovePerpLpShares => remove_perp_lp_shares::RemovePerpLpShares,
491 DriftInstruction::RemovePerpLpSharesInExpiringMarket => remove_perp_lp_shares_in_expiring_market::RemovePerpLpSharesInExpiringMarket,
492 DriftInstruction::UpdateUserName => update_user_name::UpdateUserName,
493 DriftInstruction::UpdateUserCustomMarginRatio => update_user_custom_margin_ratio::UpdateUserCustomMarginRatio,
494 DriftInstruction::UpdateUserMarginTradingEnabled => update_user_margin_trading_enabled::UpdateUserMarginTradingEnabled,
495 DriftInstruction::UpdateUserPoolId => update_user_pool_id::UpdateUserPoolId,
496 DriftInstruction::UpdateUserDelegate => update_user_delegate::UpdateUserDelegate,
497 DriftInstruction::UpdateUserReduceOnly => update_user_reduce_only::UpdateUserReduceOnly,
498 DriftInstruction::UpdateUserAdvancedLp => update_user_advanced_lp::UpdateUserAdvancedLp,
499 DriftInstruction::UpdateUserProtectedMakerOrders => update_user_protected_maker_orders::UpdateUserProtectedMakerOrders,
500 DriftInstruction::DeleteUser => delete_user::DeleteUser,
501 DriftInstruction::ForceDeleteUser => force_delete_user::ForceDeleteUser,
502 DriftInstruction::DeleteSignedMsgUserOrders => delete_signed_msg_user_orders::DeleteSignedMsgUserOrders,
503 DriftInstruction::ReclaimRent => reclaim_rent::ReclaimRent,
504 DriftInstruction::EnableUserHighLeverageMode => enable_user_high_leverage_mode::EnableUserHighLeverageMode,
505 DriftInstruction::FillPerpOrder => fill_perp_order::FillPerpOrder,
506 DriftInstruction::RevertFill => revert_fill::RevertFill,
507 DriftInstruction::FillSpotOrder => fill_spot_order::FillSpotOrder,
508 DriftInstruction::TriggerOrder => trigger_order::TriggerOrder,
509 DriftInstruction::ForceCancelOrders => force_cancel_orders::ForceCancelOrders,
510 DriftInstruction::UpdateUserIdle => update_user_idle::UpdateUserIdle,
511 DriftInstruction::LogUserBalances => log_user_balances::LogUserBalances,
512 DriftInstruction::DisableUserHighLeverageMode => disable_user_high_leverage_mode::DisableUserHighLeverageMode,
513 DriftInstruction::UpdateUserFuelBonus => update_user_fuel_bonus::UpdateUserFuelBonus,
514 DriftInstruction::UpdateUserStatsReferrerStatus => update_user_stats_referrer_status::UpdateUserStatsReferrerStatus,
515 DriftInstruction::UpdateUserOpenOrdersCount => update_user_open_orders_count::UpdateUserOpenOrdersCount,
516 DriftInstruction::AdminDisableUpdatePerpBidAskTwap => admin_disable_update_perp_bid_ask_twap::AdminDisableUpdatePerpBidAskTwap,
517 DriftInstruction::SettlePnl => settle_pnl::SettlePnl,
518 DriftInstruction::SettleMultiplePnls => settle_multiple_pnls::SettleMultiplePnls,
519 DriftInstruction::SettleFundingPayment => settle_funding_payment::SettleFundingPayment,
520 DriftInstruction::SettleLp => settle_lp::SettleLp,
521 DriftInstruction::SettleExpiredMarket => settle_expired_market::SettleExpiredMarket,
522 DriftInstruction::LiquidatePerp => liquidate_perp::LiquidatePerp,
523 DriftInstruction::LiquidatePerpWithFill => liquidate_perp_with_fill::LiquidatePerpWithFill,
524 DriftInstruction::LiquidateSpot => liquidate_spot::LiquidateSpot,
525 DriftInstruction::LiquidateSpotWithSwapBegin => liquidate_spot_with_swap_begin::LiquidateSpotWithSwapBegin,
526 DriftInstruction::LiquidateSpotWithSwapEnd => liquidate_spot_with_swap_end::LiquidateSpotWithSwapEnd,
527 DriftInstruction::LiquidateBorrowForPerpPnl => liquidate_borrow_for_perp_pnl::LiquidateBorrowForPerpPnl,
528 DriftInstruction::LiquidatePerpPnlForDeposit => liquidate_perp_pnl_for_deposit::LiquidatePerpPnlForDeposit,
529 DriftInstruction::SetUserStatusToBeingLiquidated => set_user_status_to_being_liquidated::SetUserStatusToBeingLiquidated,
530 DriftInstruction::ResolvePerpPnlDeficit => resolve_perp_pnl_deficit::ResolvePerpPnlDeficit,
531 DriftInstruction::ResolvePerpBankruptcy => resolve_perp_bankruptcy::ResolvePerpBankruptcy,
532 DriftInstruction::ResolveSpotBankruptcy => resolve_spot_bankruptcy::ResolveSpotBankruptcy,
533 DriftInstruction::SettleRevenueToInsuranceFund => settle_revenue_to_insurance_fund::SettleRevenueToInsuranceFund,
534 DriftInstruction::UpdateFundingRate => update_funding_rate::UpdateFundingRate,
535 DriftInstruction::UpdatePrelaunchOracle => update_prelaunch_oracle::UpdatePrelaunchOracle,
536 DriftInstruction::UpdatePerpBidAskTwap => update_perp_bid_ask_twap::UpdatePerpBidAskTwap,
537 DriftInstruction::UpdateSpotMarketCumulativeInterest => update_spot_market_cumulative_interest::UpdateSpotMarketCumulativeInterest,
538 DriftInstruction::UpdateAmms => update_amms::UpdateAmms,
539 DriftInstruction::UpdateSpotMarketExpiry => update_spot_market_expiry::UpdateSpotMarketExpiry,
540 DriftInstruction::UpdateUserQuoteAssetInsuranceStake => update_user_quote_asset_insurance_stake::UpdateUserQuoteAssetInsuranceStake,
541 DriftInstruction::UpdateUserGovTokenInsuranceStake => update_user_gov_token_insurance_stake::UpdateUserGovTokenInsuranceStake,
542 DriftInstruction::UpdateUserGovTokenInsuranceStakeDevnet => update_user_gov_token_insurance_stake_devnet::UpdateUserGovTokenInsuranceStakeDevnet,
543 DriftInstruction::InitializeInsuranceFundStake => initialize_insurance_fund_stake::InitializeInsuranceFundStake,
544 DriftInstruction::AddInsuranceFundStake => add_insurance_fund_stake::AddInsuranceFundStake,
545 DriftInstruction::RequestRemoveInsuranceFundStake => request_remove_insurance_fund_stake::RequestRemoveInsuranceFundStake,
546 DriftInstruction::CancelRequestRemoveInsuranceFundStake => cancel_request_remove_insurance_fund_stake::CancelRequestRemoveInsuranceFundStake,
547 DriftInstruction::RemoveInsuranceFundStake => remove_insurance_fund_stake::RemoveInsuranceFundStake,
548 DriftInstruction::TransferProtocolIfShares => transfer_protocol_if_shares::TransferProtocolIfShares,
549 DriftInstruction::UpdatePythPullOracle => update_pyth_pull_oracle::UpdatePythPullOracle,
550 DriftInstruction::PostPythPullOracleUpdateAtomic => post_pyth_pull_oracle_update_atomic::PostPythPullOracleUpdateAtomic,
551 DriftInstruction::PostMultiPythPullOracleUpdatesAtomic => post_multi_pyth_pull_oracle_updates_atomic::PostMultiPythPullOracleUpdatesAtomic,
552 DriftInstruction::PauseSpotMarketDepositWithdraw => pause_spot_market_deposit_withdraw::PauseSpotMarketDepositWithdraw,
553 DriftInstruction::Initialize => initialize::Initialize,
554 DriftInstruction::InitializeSpotMarket => initialize_spot_market::InitializeSpotMarket,
555 DriftInstruction::DeleteInitializedSpotMarket => delete_initialized_spot_market::DeleteInitializedSpotMarket,
556 DriftInstruction::InitializeSerumFulfillmentConfig => initialize_serum_fulfillment_config::InitializeSerumFulfillmentConfig,
557 DriftInstruction::UpdateSerumFulfillmentConfigStatus => update_serum_fulfillment_config_status::UpdateSerumFulfillmentConfigStatus,
558 DriftInstruction::InitializeOpenbookV2FulfillmentConfig => initialize_openbook_v2_fulfillment_config::InitializeOpenbookV2FulfillmentConfig,
559 DriftInstruction::OpenbookV2FulfillmentConfigStatus => openbook_v2_fulfillment_config_status::OpenbookV2FulfillmentConfigStatus,
560 DriftInstruction::InitializePhoenixFulfillmentConfig => initialize_phoenix_fulfillment_config::InitializePhoenixFulfillmentConfig,
561 DriftInstruction::PhoenixFulfillmentConfigStatus => phoenix_fulfillment_config_status::PhoenixFulfillmentConfigStatus,
562 DriftInstruction::UpdateSerumVault => update_serum_vault::UpdateSerumVault,
563 DriftInstruction::InitializePerpMarket => initialize_perp_market::InitializePerpMarket,
564 DriftInstruction::InitializePredictionMarket => initialize_prediction_market::InitializePredictionMarket,
565 DriftInstruction::DeleteInitializedPerpMarket => delete_initialized_perp_market::DeleteInitializedPerpMarket,
566 DriftInstruction::MoveAmmPrice => move_amm_price::MoveAmmPrice,
567 DriftInstruction::RecenterPerpMarketAmm => recenter_perp_market_amm::RecenterPerpMarketAmm,
568 DriftInstruction::UpdatePerpMarketAmmSummaryStats => update_perp_market_amm_summary_stats::UpdatePerpMarketAmmSummaryStats,
569 DriftInstruction::UpdatePerpMarketExpiry => update_perp_market_expiry::UpdatePerpMarketExpiry,
570 DriftInstruction::SettleExpiredMarketPoolsToRevenuePool => settle_expired_market_pools_to_revenue_pool::SettleExpiredMarketPoolsToRevenuePool,
571 DriftInstruction::DepositIntoPerpMarketFeePool => deposit_into_perp_market_fee_pool::DepositIntoPerpMarketFeePool,
572 DriftInstruction::DepositIntoSpotMarketVault => deposit_into_spot_market_vault::DepositIntoSpotMarketVault,
573 DriftInstruction::DepositIntoSpotMarketRevenuePool => deposit_into_spot_market_revenue_pool::DepositIntoSpotMarketRevenuePool,
574 DriftInstruction::RepegAmmCurve => repeg_amm_curve::RepegAmmCurve,
575 DriftInstruction::UpdatePerpMarketAmmOracleTwap => update_perp_market_amm_oracle_twap::UpdatePerpMarketAmmOracleTwap,
576 DriftInstruction::ResetPerpMarketAmmOracleTwap => reset_perp_market_amm_oracle_twap::ResetPerpMarketAmmOracleTwap,
577 DriftInstruction::UpdateK => update_k::UpdateK,
578 DriftInstruction::UpdatePerpMarketMarginRatio => update_perp_market_margin_ratio::UpdatePerpMarketMarginRatio,
579 DriftInstruction::UpdatePerpMarketHighLeverageMarginRatio => update_perp_market_high_leverage_margin_ratio::UpdatePerpMarketHighLeverageMarginRatio,
580 DriftInstruction::UpdatePerpMarketFundingPeriod => update_perp_market_funding_period::UpdatePerpMarketFundingPeriod,
581 DriftInstruction::UpdatePerpMarketMaxImbalances => update_perp_market_max_imbalances::UpdatePerpMarketMaxImbalances,
582 DriftInstruction::UpdatePerpMarketLiquidationFee => update_perp_market_liquidation_fee::UpdatePerpMarketLiquidationFee,
583 DriftInstruction::UpdateInsuranceFundUnstakingPeriod => update_insurance_fund_unstaking_period::UpdateInsuranceFundUnstakingPeriod,
584 DriftInstruction::UpdateSpotMarketPoolId => update_spot_market_pool_id::UpdateSpotMarketPoolId,
585 DriftInstruction::UpdateSpotMarketLiquidationFee => update_spot_market_liquidation_fee::UpdateSpotMarketLiquidationFee,
586 DriftInstruction::UpdateWithdrawGuardThreshold => update_withdraw_guard_threshold::UpdateWithdrawGuardThreshold,
587 DriftInstruction::UpdateSpotMarketIfFactor => update_spot_market_if_factor::UpdateSpotMarketIfFactor,
588 DriftInstruction::UpdateSpotMarketRevenueSettlePeriod => update_spot_market_revenue_settle_period::UpdateSpotMarketRevenueSettlePeriod,
589 DriftInstruction::UpdateSpotMarketStatus => update_spot_market_status::UpdateSpotMarketStatus,
590 DriftInstruction::UpdateSpotMarketPausedOperations => update_spot_market_paused_operations::UpdateSpotMarketPausedOperations,
591 DriftInstruction::UpdateSpotMarketAssetTier => update_spot_market_asset_tier::UpdateSpotMarketAssetTier,
592 DriftInstruction::UpdateSpotMarketMarginWeights => update_spot_market_margin_weights::UpdateSpotMarketMarginWeights,
593 DriftInstruction::UpdateSpotMarketBorrowRate => update_spot_market_borrow_rate::UpdateSpotMarketBorrowRate,
594 DriftInstruction::UpdateSpotMarketMaxTokenDeposits => update_spot_market_max_token_deposits::UpdateSpotMarketMaxTokenDeposits,
595 DriftInstruction::UpdateSpotMarketMaxTokenBorrows => update_spot_market_max_token_borrows::UpdateSpotMarketMaxTokenBorrows,
596 DriftInstruction::UpdateSpotMarketScaleInitialAssetWeightStart => update_spot_market_scale_initial_asset_weight_start::UpdateSpotMarketScaleInitialAssetWeightStart,
597 DriftInstruction::UpdateSpotMarketOracle => update_spot_market_oracle::UpdateSpotMarketOracle,
598 DriftInstruction::UpdateSpotMarketStepSizeAndTickSize => update_spot_market_step_size_and_tick_size::UpdateSpotMarketStepSizeAndTickSize,
599 DriftInstruction::UpdateSpotMarketMinOrderSize => update_spot_market_min_order_size::UpdateSpotMarketMinOrderSize,
600 DriftInstruction::UpdateSpotMarketOrdersEnabled => update_spot_market_orders_enabled::UpdateSpotMarketOrdersEnabled,
601 DriftInstruction::UpdateSpotMarketIfPausedOperations => update_spot_market_if_paused_operations::UpdateSpotMarketIfPausedOperations,
602 DriftInstruction::UpdateSpotMarketName => update_spot_market_name::UpdateSpotMarketName,
603 DriftInstruction::UpdatePerpMarketStatus => update_perp_market_status::UpdatePerpMarketStatus,
604 DriftInstruction::UpdatePerpMarketPausedOperations => update_perp_market_paused_operations::UpdatePerpMarketPausedOperations,
605 DriftInstruction::UpdatePerpMarketContractTier => update_perp_market_contract_tier::UpdatePerpMarketContractTier,
606 DriftInstruction::UpdatePerpMarketImfFactor => update_perp_market_imf_factor::UpdatePerpMarketImfFactor,
607 DriftInstruction::UpdatePerpMarketUnrealizedAssetWeight => update_perp_market_unrealized_asset_weight::UpdatePerpMarketUnrealizedAssetWeight,
608 DriftInstruction::UpdatePerpMarketConcentrationCoef => update_perp_market_concentration_coef::UpdatePerpMarketConcentrationCoef,
609 DriftInstruction::UpdatePerpMarketCurveUpdateIntensity => update_perp_market_curve_update_intensity::UpdatePerpMarketCurveUpdateIntensity,
610 DriftInstruction::UpdatePerpMarketTargetBaseAssetAmountPerLp => update_perp_market_target_base_asset_amount_per_lp::UpdatePerpMarketTargetBaseAssetAmountPerLp,
611 DriftInstruction::UpdatePerpMarketPerLpBase => update_perp_market_per_lp_base::UpdatePerpMarketPerLpBase,
612 DriftInstruction::UpdateLpCooldownTime => update_lp_cooldown_time::UpdateLpCooldownTime,
613 DriftInstruction::UpdatePerpFeeStructure => update_perp_fee_structure::UpdatePerpFeeStructure,
614 DriftInstruction::UpdateSpotFeeStructure => update_spot_fee_structure::UpdateSpotFeeStructure,
615 DriftInstruction::UpdateInitialPctToLiquidate => update_initial_pct_to_liquidate::UpdateInitialPctToLiquidate,
616 DriftInstruction::UpdateLiquidationDuration => update_liquidation_duration::UpdateLiquidationDuration,
617 DriftInstruction::UpdateLiquidationMarginBufferRatio => update_liquidation_margin_buffer_ratio::UpdateLiquidationMarginBufferRatio,
618 DriftInstruction::UpdateOracleGuardRails => update_oracle_guard_rails::UpdateOracleGuardRails,
619 DriftInstruction::UpdateStateSettlementDuration => update_state_settlement_duration::UpdateStateSettlementDuration,
620 DriftInstruction::UpdateStateMaxNumberOfSubAccounts => update_state_max_number_of_sub_accounts::UpdateStateMaxNumberOfSubAccounts,
621 DriftInstruction::UpdateStateMaxInitializeUserFee => update_state_max_initialize_user_fee::UpdateStateMaxInitializeUserFee,
622 DriftInstruction::UpdatePerpMarketOracle => update_perp_market_oracle::UpdatePerpMarketOracle,
623 DriftInstruction::UpdatePerpMarketBaseSpread => update_perp_market_base_spread::UpdatePerpMarketBaseSpread,
624 DriftInstruction::UpdateAmmJitIntensity => update_amm_jit_intensity::UpdateAmmJitIntensity,
625 DriftInstruction::UpdatePerpMarketMaxSpread => update_perp_market_max_spread::UpdatePerpMarketMaxSpread,
626 DriftInstruction::UpdatePerpMarketStepSizeAndTickSize => update_perp_market_step_size_and_tick_size::UpdatePerpMarketStepSizeAndTickSize,
627 DriftInstruction::UpdatePerpMarketName => update_perp_market_name::UpdatePerpMarketName,
628 DriftInstruction::UpdatePerpMarketMinOrderSize => update_perp_market_min_order_size::UpdatePerpMarketMinOrderSize,
629 DriftInstruction::UpdatePerpMarketMaxSlippageRatio => update_perp_market_max_slippage_ratio::UpdatePerpMarketMaxSlippageRatio,
630 DriftInstruction::UpdatePerpMarketMaxFillReserveFraction => update_perp_market_max_fill_reserve_fraction::UpdatePerpMarketMaxFillReserveFraction,
631 DriftInstruction::UpdatePerpMarketMaxOpenInterest => update_perp_market_max_open_interest::UpdatePerpMarketMaxOpenInterest,
632 DriftInstruction::UpdatePerpMarketNumberOfUsers => update_perp_market_number_of_users::UpdatePerpMarketNumberOfUsers,
633 DriftInstruction::UpdatePerpMarketFeeAdjustment => update_perp_market_fee_adjustment::UpdatePerpMarketFeeAdjustment,
634 DriftInstruction::UpdateSpotMarketFeeAdjustment => update_spot_market_fee_adjustment::UpdateSpotMarketFeeAdjustment,
635 DriftInstruction::UpdatePerpMarketFuel => update_perp_market_fuel::UpdatePerpMarketFuel,
636 DriftInstruction::UpdateSpotMarketFuel => update_spot_market_fuel::UpdateSpotMarketFuel,
637 DriftInstruction::InitUserFuel => init_user_fuel::InitUserFuel,
638 DriftInstruction::UpdateAdmin => update_admin::UpdateAdmin,
639 DriftInstruction::UpdateWhitelistMint => update_whitelist_mint::UpdateWhitelistMint,
640 DriftInstruction::UpdateDiscountMint => update_discount_mint::UpdateDiscountMint,
641 DriftInstruction::UpdateExchangeStatus => update_exchange_status::UpdateExchangeStatus,
642 DriftInstruction::UpdatePerpAuctionDuration => update_perp_auction_duration::UpdatePerpAuctionDuration,
643 DriftInstruction::UpdateSpotAuctionDuration => update_spot_auction_duration::UpdateSpotAuctionDuration,
644 DriftInstruction::InitializeProtocolIfSharesTransferConfig => initialize_protocol_if_shares_transfer_config::InitializeProtocolIfSharesTransferConfig,
645 DriftInstruction::UpdateProtocolIfSharesTransferConfig => update_protocol_if_shares_transfer_config::UpdateProtocolIfSharesTransferConfig,
646 DriftInstruction::InitializePrelaunchOracle => initialize_prelaunch_oracle::InitializePrelaunchOracle,
647 DriftInstruction::UpdatePrelaunchOracleParams => update_prelaunch_oracle_params::UpdatePrelaunchOracleParams,
648 DriftInstruction::DeletePrelaunchOracle => delete_prelaunch_oracle::DeletePrelaunchOracle,
649 DriftInstruction::InitializePythPullOracle => initialize_pyth_pull_oracle::InitializePythPullOracle,
650 DriftInstruction::InitializePythLazerOracle => initialize_pyth_lazer_oracle::InitializePythLazerOracle,
651 DriftInstruction::PostPythLazerOracleUpdate => post_pyth_lazer_oracle_update::PostPythLazerOracleUpdate,
652 DriftInstruction::InitializeHighLeverageModeConfig => initialize_high_leverage_mode_config::InitializeHighLeverageModeConfig,
653 DriftInstruction::UpdateHighLeverageModeConfig => update_high_leverage_mode_config::UpdateHighLeverageModeConfig,
654 DriftInstruction::InitializeProtectedMakerModeConfig => initialize_protected_maker_mode_config::InitializeProtectedMakerModeConfig,
655 DriftInstruction::UpdateProtectedMakerModeConfig => update_protected_maker_mode_config::UpdateProtectedMakerModeConfig,
656 DriftInstruction::NewUserRecordEvent => new_user_record_event::NewUserRecordEvent,
657 DriftInstruction::DepositRecordEvent => deposit_record_event::DepositRecordEvent,
658 DriftInstruction::SpotInterestRecordEvent => spot_interest_record_event::SpotInterestRecordEvent,
659 DriftInstruction::FundingPaymentRecordEvent => funding_payment_record_event::FundingPaymentRecordEvent,
660 DriftInstruction::FundingRateRecordEvent => funding_rate_record_event::FundingRateRecordEvent,
661 DriftInstruction::CurveRecordEvent => curve_record_event::CurveRecordEvent,
662 DriftInstruction::SignedMsgOrderRecordEvent => signed_msg_order_record_event::SignedMsgOrderRecordEvent,
663 DriftInstruction::OrderRecordEvent => order_record_event::OrderRecordEvent,
664 DriftInstruction::OrderActionRecordEvent => order_action_record_event::OrderActionRecordEvent,
665 DriftInstruction::LpRecordEvent => lp_record_event::LpRecordEvent,
666 DriftInstruction::LiquidationRecordEvent => liquidation_record_event::LiquidationRecordEvent,
667 DriftInstruction::SettlePnlRecordEvent => settle_pnl_record_event::SettlePnlRecordEvent,
668 DriftInstruction::InsuranceFundRecordEvent => insurance_fund_record_event::InsuranceFundRecordEvent,
669 DriftInstruction::InsuranceFundStakeRecordEvent => insurance_fund_stake_record_event::InsuranceFundStakeRecordEvent,
670 DriftInstruction::SwapRecordEvent => swap_record_event::SwapRecordEvent,
671 DriftInstruction::SpotMarketVaultDepositRecordEvent => spot_market_vault_deposit_record_event::SpotMarketVaultDepositRecordEvent,
672 DriftInstruction::DeleteUserRecordEvent => delete_user_record_event::DeleteUserRecordEvent,
673 DriftInstruction::FuelSweepRecordEvent => fuel_sweep_record_event::FuelSweepRecordEvent,
674 DriftInstruction::FuelSeasonRecordEvent => fuel_season_record_event::FuelSeasonRecordEvent,
675 )
676 }
677}