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#[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}