diff --git a/programs/mango-v4/src/instructions/perp_liq_base_position.rs b/programs/mango-v4/src/instructions/perp_liq_base_position.rs index dbae1470c..fe6c63358 100644 --- a/programs/mango-v4/src/instructions/perp_liq_base_position.rs +++ b/programs/mango-v4/src/instructions/perp_liq_base_position.rs @@ -45,6 +45,7 @@ pub fn perp_liq_base_position( ) -> Result<()> { let group_pk = &ctx.accounts.group.key(); + require_keys_neq!(ctx.accounts.liqor.key(), ctx.accounts.liqee.key()); let mut liqor = ctx.accounts.liqor.load_full_mut()?; // account constraint #1 require!( diff --git a/programs/mango-v4/src/instructions/perp_liq_quote_and_bankruptcy.rs b/programs/mango-v4/src/instructions/perp_liq_quote_and_bankruptcy.rs index e539eada5..c543dea56 100644 --- a/programs/mango-v4/src/instructions/perp_liq_quote_and_bankruptcy.rs +++ b/programs/mango-v4/src/instructions/perp_liq_quote_and_bankruptcy.rs @@ -84,12 +84,6 @@ pub fn perp_liq_quote_and_bankruptcy( ) -> Result<()> { let mango_group = ctx.accounts.group.key(); - // Cannot settle with yourself - require!( - ctx.accounts.liqor.key() != ctx.accounts.liqee.key(), - MangoError::SomeError - ); - let (perp_market_index, settle_token_index) = { let perp_market = ctx.accounts.perp_market.load()?; ( @@ -98,6 +92,7 @@ pub fn perp_liq_quote_and_bankruptcy( ) }; + require_keys_neq!(ctx.accounts.liqor.key(), ctx.accounts.liqee.key()); let mut liqee = ctx.accounts.liqee.load_full_mut()?; let mut liqor = ctx.accounts.liqor.load_full_mut()?; // account constraint #1 diff --git a/programs/mango-v4/src/instructions/perp_settle_pnl.rs b/programs/mango-v4/src/instructions/perp_settle_pnl.rs index ae032f37e..7abbd593e 100644 --- a/programs/mango-v4/src/instructions/perp_settle_pnl.rs +++ b/programs/mango-v4/src/instructions/perp_settle_pnl.rs @@ -57,8 +57,9 @@ pub struct PerpSettlePnl<'info> { pub fn perp_settle_pnl(ctx: Context) -> Result<()> { // Cannot settle with yourself - require!( - ctx.accounts.account_a.key() != ctx.accounts.account_b.key(), + require_keys_neq!( + ctx.accounts.account_a.key(), + ctx.accounts.account_b.key(), MangoError::CannotSettleWithSelf ); diff --git a/programs/mango-v4/src/instructions/token_liq_bankruptcy.rs b/programs/mango-v4/src/instructions/token_liq_bankruptcy.rs index 70a5a463e..534e9fb3e 100644 --- a/programs/mango-v4/src/instructions/token_liq_bankruptcy.rs +++ b/programs/mango-v4/src/instructions/token_liq_bankruptcy.rs @@ -84,6 +84,8 @@ pub fn token_liq_bankruptcy( let (bank_ais, health_ais) = &ctx.remaining_accounts.split_at(liab_mint_info.num_banks()); liab_mint_info.verify_banks_ais(bank_ais)?; + require_keys_neq!(ctx.accounts.liqor.key(), ctx.accounts.liqee.key()); + let mut liqor = ctx.accounts.liqor.load_full_mut()?; // account constraint #1 require!( diff --git a/programs/mango-v4/src/instructions/token_liq_with_token.rs b/programs/mango-v4/src/instructions/token_liq_with_token.rs index 851b62e03..446ff3800 100644 --- a/programs/mango-v4/src/instructions/token_liq_with_token.rs +++ b/programs/mango-v4/src/instructions/token_liq_with_token.rs @@ -47,6 +47,7 @@ pub fn token_liq_with_token( let mut account_retriever = ScanningAccountRetriever::new(ctx.remaining_accounts, group_pk) .context("create account retriever")?; + require_keys_neq!(ctx.accounts.liqor.key(), ctx.accounts.liqee.key()); let mut liqor = ctx.accounts.liqor.load_full_mut()?; // account constraint #1 require!(