use anchor_lang::prelude::*; use crate::accounts_ix::*; use crate::error::MangoError; use crate::state::*; pub fn perp_cancel_all_orders_by_side( ctx: Context, side_option: Option, limit: u8, ) -> Result<()> { let mut account = ctx.accounts.account.load_full_mut()?; // account constraint #1 require!( account.fixed.is_owner_or_delegate(ctx.accounts.owner.key()), MangoError::SomeError ); let mut perp_market = ctx.accounts.perp_market.load_mut()?; let mut book = Orderbook { bids: ctx.accounts.bids.load_mut()?, asks: ctx.accounts.asks.load_mut()?, }; book.cancel_all_orders( &mut account.borrow_mut(), &mut perp_market, limit, side_option, )?; Ok(()) }