Add market index to Serum3OpenOrdersBalanceLog (#429)

This commit is contained in:
Nicholas Clarke 2023-02-02 01:01:19 -08:00 committed by GitHub
parent df1f7418af
commit 4c93a2740a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 140 additions and 10 deletions

View File

@ -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<Serum3CancelAllOrders>, 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(),

View File

@ -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(),

View File

@ -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(),

View File

@ -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,

View File

@ -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<Serum3SettleFunds>) -> 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(),

View File

@ -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 {

View File

@ -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": [