From 952c83621092deb06992ea2b398cddc8f18a643d Mon Sep 17 00:00:00 2001 From: skrrb Date: Mon, 19 Jun 2023 13:57:43 +0300 Subject: [PATCH] record take volume after matching --- .../src/state/open_orders_account.rs | 39 ++++--------------- .../openbook-v2/src/state/orderbook/book.rs | 4 -- 2 files changed, 8 insertions(+), 35 deletions(-) diff --git a/programs/openbook-v2/src/state/open_orders_account.rs b/programs/openbook-v2/src/state/open_orders_account.rs index 090e2d22..66ee0355 100644 --- a/programs/openbook-v2/src/state/open_orders_account.rs +++ b/programs/openbook-v2/src/state/open_orders_account.rs @@ -446,32 +446,6 @@ impl< Ok(()) } - pub fn execute_taker(&mut self, market: &mut Market, fill: &FillEvent) -> Result<()> { - let pa = &mut self.fixed_mut().position; - - // Replicate the base_quote_change function but subtracting the fees for an Ask - // let (base_change, quote_change) = fill.base_quote_change(fill.taker_side()); - let _base_change: i64; - let quote_change: i64; - match fill.taker_side() { - Side::Bid => { - _base_change = fill.quantity; - quote_change = -fill.price * fill.quantity; - } - Side::Ask => { - // remove fee from quote_change - _base_change = -fill.quantity; - quote_change = fill.price * fill.quantity * (1 - market.taker_fee.to_num::()); - } - }; - - // fees are assessed at time of trade; no need to assess fees here - let quote_change_native = I80F48::from(market.quote_lot_size) * I80F48::from(quote_change); - pa.taker_volume += quote_change_native.abs().to_num::(); - - Ok(()) - } - /// Release funds and apply taker fees to the taker account. Account fees for referrer pub fn release_funds_apply_fees( &mut self, @@ -482,18 +456,21 @@ impl< taker_fees: u64, ) -> Result<()> { let pa = &mut self.fixed_mut().position; - // Update free_native match taker_side { - Side::Bid => pa.base_free_native += base_native, - Side::Ask => pa.quote_free_native += quote_native - taker_fees, + Side::Bid => { + pa.base_free_native += base_native; + pa.taker_volume += quote_native + taker_fees; + } + Side::Ask => { + pa.quote_free_native += quote_native - taker_fees; + pa.taker_volume += quote_native; + } }; // Referrer rebates pa.referrer_rebates_accrued += market.referrer_taker_rebate(quote_native); market.referrer_rebates_accrued += market.referrer_taker_rebate(quote_native); - pa.taker_volume += taker_fees; - Ok(()) } diff --git a/programs/openbook-v2/src/state/orderbook/book.rs b/programs/openbook-v2/src/state/orderbook/book.rs index cf78bc1b..6c890518 100644 --- a/programs/openbook-v2/src/state/orderbook/book.rs +++ b/programs/openbook-v2/src/state/orderbook/book.rs @@ -226,10 +226,6 @@ impl<'a> Orderbook<'a> { process_fill_event(fill, market, event_queue, remaining_accs)?; limit -= 1; - - if let Some(open_orders_acc) = open_orders_acc.as_mut() { - open_orders_acc.execute_taker(market, &fill)? - } } let total_quote_lots_taken = order_max_quote_lots - remaining_quote_lots;