carbon_drift_v2_decoder/instructions/
mod.rs

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}