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