From f48ccded7c5bd3371a384ab9138334191699aa52 Mon Sep 17 00:00:00 2001 From: 0xbigz <83473873+0xbigz@users.noreply.github.com> Date: Tue, 8 Jul 2025 09:39:06 -0400 Subject: [PATCH 1/2] program: disable-hlm-on-custom-max-leverage-check --- programs/drift/src/instructions/keeper.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/programs/drift/src/instructions/keeper.rs b/programs/drift/src/instructions/keeper.rs index 3c2f7852ad..c5a68811f6 100644 --- a/programs/drift/src/instructions/keeper.rs +++ b/programs/drift/src/instructions/keeper.rs @@ -26,6 +26,7 @@ use crate::instructions::constraints::*; use crate::instructions::optional_accounts::{load_maps, AccountMaps}; use crate::math::casting::Cast; use crate::math::constants::QUOTE_SPOT_MARKET_INDEX; +use crate::math::margin; use crate::math::margin::{calculate_user_equity, meets_settle_pnl_maintenance_margin_requirement}; use crate::math::orders::{estimate_price_from_side, find_bids_and_asks_from_users}; use crate::math::position::calculate_base_asset_value_and_pnl_with_oracle_price; @@ -2664,7 +2665,7 @@ pub fn handle_disable_user_high_leverage_mode<'c: 'info, 'info>( for position in user.perp_positions.iter().filter(|p| !p.is_available()) { let perp_market = perp_market_map.get_ref(&position.market_index)?; - if perp_market.is_high_leverage_mode_enabled() { + if perp_market.is_high_leverage_mode_enabled() && user.max_margin_ratio < perp_market.margin_ratio_initial { requires_invariant_check = true; break; // Exit early if invariant check is required } From 872fe867b0d98f147c65515e264e4c0d06037b49 Mon Sep 17 00:00:00 2001 From: 0xbigz <83473873+0xbigz@users.noreply.github.com> Date: Tue, 8 Jul 2025 09:48:05 -0400 Subject: [PATCH 2/2] cleanup --- programs/drift/src/instructions/keeper.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/programs/drift/src/instructions/keeper.rs b/programs/drift/src/instructions/keeper.rs index c5a68811f6..8014eb62b5 100644 --- a/programs/drift/src/instructions/keeper.rs +++ b/programs/drift/src/instructions/keeper.rs @@ -26,7 +26,6 @@ use crate::instructions::constraints::*; use crate::instructions::optional_accounts::{load_maps, AccountMaps}; use crate::math::casting::Cast; use crate::math::constants::QUOTE_SPOT_MARKET_INDEX; -use crate::math::margin; use crate::math::margin::{calculate_user_equity, meets_settle_pnl_maintenance_margin_requirement}; use crate::math::orders::{estimate_price_from_side, find_bids_and_asks_from_users}; use crate::math::position::calculate_base_asset_value_and_pnl_with_oracle_price;