From 4c93a2740a69642a3fbd694a238754399ca7286b Mon Sep 17 00:00:00 2001 From: Nicholas Clarke Date: Thu, 2 Feb 2023 01:01:19 -0800 Subject: [PATCH] Add market index to Serum3OpenOrdersBalanceLog (#429) --- .../instructions/serum3_cancel_all_orders.rs | 5 +- .../src/instructions/serum3_cancel_order.rs | 5 +- .../serum3_liq_force_cancel_orders.rs | 5 +- .../src/instructions/serum3_place_order.rs | 5 +- .../src/instructions/serum3_settle_funds.rs | 5 +- programs/mango-v4/src/logs.rs | 15 +++ ts/client/src/mango_v4.ts | 110 ++++++++++++++++++ 7 files changed, 140 insertions(+), 10 deletions(-) diff --git a/programs/mango-v4/src/instructions/serum3_cancel_all_orders.rs b/programs/mango-v4/src/instructions/serum3_cancel_all_orders.rs index 998c92ae9..ae610eda6 100644 --- a/programs/mango-v4/src/instructions/serum3_cancel_all_orders.rs +++ b/programs/mango-v4/src/instructions/serum3_cancel_all_orders.rs @@ -2,7 +2,7 @@ use anchor_lang::prelude::*; use super::{OpenOrdersAmounts, OpenOrdersSlim}; use crate::error::*; -use crate::logs::Serum3OpenOrdersBalanceLog; +use crate::logs::Serum3OpenOrdersBalanceLogV2; use crate::serum3_cpi::load_open_orders_ref; use crate::state::*; @@ -83,9 +83,10 @@ pub fn serum3_cancel_all_orders(ctx: Context, limit: u8) let oo_ai = &ctx.accounts.open_orders.as_ref(); let open_orders = load_open_orders_ref(oo_ai)?; let after_oo = OpenOrdersSlim::from_oo(&open_orders); - emit!(Serum3OpenOrdersBalanceLog { + emit!(Serum3OpenOrdersBalanceLogV2 { mango_group: ctx.accounts.group.key(), mango_account: ctx.accounts.account.key(), + market_index: serum_market.market_index, base_token_index: serum_market.base_token_index, quote_token_index: serum_market.quote_token_index, base_total: after_oo.native_base_total(), diff --git a/programs/mango-v4/src/instructions/serum3_cancel_order.rs b/programs/mango-v4/src/instructions/serum3_cancel_order.rs index 0020498df..08f93c947 100644 --- a/programs/mango-v4/src/instructions/serum3_cancel_order.rs +++ b/programs/mango-v4/src/instructions/serum3_cancel_order.rs @@ -8,7 +8,7 @@ use crate::state::*; use super::Serum3Side; use super::{OpenOrdersAmounts, OpenOrdersSlim}; -use crate::logs::Serum3OpenOrdersBalanceLog; +use crate::logs::Serum3OpenOrdersBalanceLogV2; use crate::serum3_cpi::load_open_orders_ref; #[derive(Accounts)] @@ -96,9 +96,10 @@ pub fn serum3_cancel_order( let oo_ai = &ctx.accounts.open_orders.as_ref(); let open_orders = load_open_orders_ref(oo_ai)?; let after_oo = OpenOrdersSlim::from_oo(&open_orders); - emit!(Serum3OpenOrdersBalanceLog { + emit!(Serum3OpenOrdersBalanceLogV2 { mango_group: ctx.accounts.group.key(), mango_account: ctx.accounts.account.key(), + market_index: serum_market.market_index, base_token_index: serum_market.base_token_index, quote_token_index: serum_market.quote_token_index, base_total: after_oo.native_base_total(), diff --git a/programs/mango-v4/src/instructions/serum3_liq_force_cancel_orders.rs b/programs/mango-v4/src/instructions/serum3_liq_force_cancel_orders.rs index 671b171f0..00ff62222 100644 --- a/programs/mango-v4/src/instructions/serum3_liq_force_cancel_orders.rs +++ b/programs/mango-v4/src/instructions/serum3_liq_force_cancel_orders.rs @@ -7,7 +7,7 @@ use crate::instructions::{ apply_vault_difference, charge_loan_origination_fees, OODifference, OpenOrdersAmounts, OpenOrdersSlim, }; -use crate::logs::Serum3OpenOrdersBalanceLog; +use crate::logs::Serum3OpenOrdersBalanceLogV2; use crate::serum3_cpi::load_open_orders_ref; use crate::state::*; @@ -187,9 +187,10 @@ pub fn serum3_liq_force_cancel_orders( let open_orders = load_open_orders_ref(oo_ai)?; let after_oo = OpenOrdersSlim::from_oo(&open_orders); - emit!(Serum3OpenOrdersBalanceLog { + emit!(Serum3OpenOrdersBalanceLogV2 { mango_group: ctx.accounts.group.key(), mango_account: ctx.accounts.account.key(), + market_index: serum_market.market_index, base_token_index: serum_market.base_token_index, quote_token_index: serum_market.quote_token_index, base_total: after_oo.native_base_total(), diff --git a/programs/mango-v4/src/instructions/serum3_place_order.rs b/programs/mango-v4/src/instructions/serum3_place_order.rs index 580ac9fde..4ac7d8d49 100644 --- a/programs/mango-v4/src/instructions/serum3_place_order.rs +++ b/programs/mango-v4/src/instructions/serum3_place_order.rs @@ -3,7 +3,7 @@ use crate::error::*; use crate::health::*; use crate::state::*; -use crate::logs::{Serum3OpenOrdersBalanceLog, TokenBalanceLog}; +use crate::logs::{Serum3OpenOrdersBalanceLogV2, TokenBalanceLog}; use crate::serum3_cpi::{load_market_state, load_open_orders_ref}; use anchor_lang::prelude::*; use anchor_spl::token::{Token, TokenAccount}; @@ -328,9 +328,10 @@ pub fn serum3_place_order( let open_orders = load_open_orders_ref(oo_ai)?; let after_oo = OpenOrdersSlim::from_oo(&open_orders); - emit!(Serum3OpenOrdersBalanceLog { + emit!(Serum3OpenOrdersBalanceLogV2 { mango_group: ctx.accounts.group.key(), mango_account: ctx.accounts.account.key(), + market_index: serum_market.market_index, base_token_index: serum_market.base_token_index, quote_token_index: serum_market.quote_token_index, base_total: after_oo.native_coin_total, diff --git a/programs/mango-v4/src/instructions/serum3_settle_funds.rs b/programs/mango-v4/src/instructions/serum3_settle_funds.rs index e4e871ddb..75e1b2e0f 100644 --- a/programs/mango-v4/src/instructions/serum3_settle_funds.rs +++ b/programs/mango-v4/src/instructions/serum3_settle_funds.rs @@ -8,7 +8,7 @@ use crate::serum3_cpi::load_open_orders_ref; use crate::state::*; use super::{apply_vault_difference, OpenOrdersAmounts, OpenOrdersSlim}; -use crate::logs::Serum3OpenOrdersBalanceLog; +use crate::logs::Serum3OpenOrdersBalanceLogV2; use crate::logs::{LoanOriginationFeeInstruction, WithdrawLoanOriginationFeeLog}; #[derive(Accounts)] @@ -188,9 +188,10 @@ pub fn serum3_settle_funds(ctx: Context) -> Result<()> { let oo_ai = &ctx.accounts.open_orders.as_ref(); let open_orders = load_open_orders_ref(oo_ai)?; let after_oo = OpenOrdersSlim::from_oo(&open_orders); - emit!(Serum3OpenOrdersBalanceLog { + emit!(Serum3OpenOrdersBalanceLogV2 { mango_group: ctx.accounts.group.key(), mango_account: ctx.accounts.account.key(), + market_index: serum_market.market_index, base_token_index: serum_market.base_token_index, quote_token_index: serum_market.quote_token_index, base_total: after_oo.native_base_total(), diff --git a/programs/mango-v4/src/logs.rs b/programs/mango-v4/src/logs.rs index c9c4849e8..e13ef5f61 100644 --- a/programs/mango-v4/src/logs.rs +++ b/programs/mango-v4/src/logs.rs @@ -204,6 +204,21 @@ pub struct Serum3OpenOrdersBalanceLog { pub referrer_rebates_accrued: u64, } +#[event] +pub struct Serum3OpenOrdersBalanceLogV2 { + pub mango_group: Pubkey, + pub mango_account: Pubkey, + pub market_index: u16, + pub base_token_index: u16, + pub quote_token_index: u16, + pub base_total: u64, + pub base_free: u64, + /// this field does not include the referrer_rebates; need to add that in to get true total + pub quote_total: u64, + pub quote_free: u64, + pub referrer_rebates_accrued: u64, +} + #[derive(PartialEq, Copy, Clone, Debug, AnchorSerialize, AnchorDeserialize)] #[repr(u8)] pub enum LoanOriginationFeeInstruction { diff --git a/ts/client/src/mango_v4.ts b/ts/client/src/mango_v4.ts index 3d52f77da..4473fc9ee 100644 --- a/ts/client/src/mango_v4.ts +++ b/ts/client/src/mango_v4.ts @@ -7580,6 +7580,61 @@ export type MangoV4 = { } ] }, + { + "name": "Serum3OpenOrdersBalanceLogV2", + "fields": [ + { + "name": "mangoGroup", + "type": "publicKey", + "index": false + }, + { + "name": "mangoAccount", + "type": "publicKey", + "index": false + }, + { + "name": "marketIndex", + "type": "u16", + "index": false + }, + { + "name": "baseTokenIndex", + "type": "u16", + "index": false + }, + { + "name": "quoteTokenIndex", + "type": "u16", + "index": false + }, + { + "name": "baseTotal", + "type": "u64", + "index": false + }, + { + "name": "baseFree", + "type": "u64", + "index": false + }, + { + "name": "quoteTotal", + "type": "u64", + "index": false + }, + { + "name": "quoteFree", + "type": "u64", + "index": false + }, + { + "name": "referrerRebatesAccrued", + "type": "u64", + "index": false + } + ] + }, { "name": "WithdrawLoanOriginationFeeLog", "fields": [ @@ -15869,6 +15924,61 @@ export const IDL: MangoV4 = { } ] }, + { + "name": "Serum3OpenOrdersBalanceLogV2", + "fields": [ + { + "name": "mangoGroup", + "type": "publicKey", + "index": false + }, + { + "name": "mangoAccount", + "type": "publicKey", + "index": false + }, + { + "name": "marketIndex", + "type": "u16", + "index": false + }, + { + "name": "baseTokenIndex", + "type": "u16", + "index": false + }, + { + "name": "quoteTokenIndex", + "type": "u16", + "index": false + }, + { + "name": "baseTotal", + "type": "u64", + "index": false + }, + { + "name": "baseFree", + "type": "u64", + "index": false + }, + { + "name": "quoteTotal", + "type": "u64", + "index": false + }, + { + "name": "quoteFree", + "type": "u64", + "index": false + }, + { + "name": "referrerRebatesAccrued", + "type": "u64", + "index": false + } + ] + }, { "name": "WithdrawLoanOriginationFeeLog", "fields": [