From e4013d2cd9240cbf9cd096fb84679af71352adc9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 24 May 2022 14:51:03 +0000 Subject: [PATCH 1/3] chore: push cu test logs --- cu-per-ix-clean.log | 184 +++++++++++++++++++++++--------------------- 1 file changed, 97 insertions(+), 87 deletions(-) diff --git a/cu-per-ix-clean.log b/cu-per-ix-clean.log index 86df1a06c..da964ff6d 100644 --- a/cu-per-ix-clean.log +++ b/cu-per-ix-clean.log @@ -1,87 +1,97 @@ -2022-05-18,Benchmark,16939 -2022-05-18,CloseAccount,5377 -2022-05-18,CreateAccount,22630 -2022-05-18,CreateAccount,26733 -2022-05-18,CreateGroup,16068 -2022-05-18,CreateGroup,20568 -2022-05-18,CreateStubOracle,22836 -2022-05-18,CreateStubOracle,24336 -2022-05-18,CreateStubOracle,56130 -2022-05-18,CreateStubOracle,5740 -2022-05-18,Deposit,21130 -2022-05-18,Deposit,30837 -2022-05-18,InitializeAccount,18130 -2022-05-18,InitializeAccount,19836 -2022-05-18,InitializeAccount,22836 -2022-05-18,InitializeAccount,32804 -2022-05-18,InitializeAccount,34747 -2022-05-18,InitializeAccount,42806 -2022-05-18,InitializeAccount,46877 -2022-05-18,InitializeAccount,48814 -2022-05-18,InitializeAccount,65139 -2022-05-18,InitializeAccount,66630 -2022-05-18,InitializeAccount,71130 -2022-05-18,LiqTokenWithToken,58665 -2022-05-18,LiqTokenWithToken,58784 -2022-05-18,LiqTokenWithToken,62550 -2022-05-18,PerpCancelAllOrders,12163 -2022-05-18,PerpCancelOrder,8994 -2022-05-18,PerpCancelOrderByClientOrderId,9001 -2022-05-18,PerpConsumeEvents,7079 -2022-05-18,PerpCreateMarket,28425 -2022-05-18,PerpPlaceOrder,20871 -2022-05-18,PerpPlaceOrder,21704 -2022-05-18,PerpPlaceOrder,22344 -2022-05-18,PerpPlaceOrder,23542 -2022-05-18,RegisterToken,19836 -2022-05-18,RegisterToken,56130 -2022-05-18,RegisterToken,65130 -2022-05-18,Serum3CancelOrder,24452 -2022-05-18,Serum3CreateOpenOrders,26641 -2022-05-18,Serum3CreateOpenOrders,26738 -2022-05-18,Serum3CreateOpenOrders,26755 -2022-05-18,Serum3CreateOpenOrders,26768 -2022-05-18,Serum3CreateOpenOrders,29743 -2022-05-18,Serum3CreateOpenOrders,29749 -2022-05-18,Serum3CreateOpenOrders,29826 -2022-05-18,Serum3CreateOpenOrders,31261 -2022-05-18,Serum3RegisterMarket,30702 -2022-05-18,SetStubOracle,18336 -2022-05-18,Transfer,27326 -2022-05-18,Transfer,27367 -2022-05-18,Transfer,30876 -2022-05-18,Transfer,30924 -2022-05-18,Transfer,31411 -2022-05-18,Transfer,31492 -2022-05-18,Transfer,32408 -2022-05-18,Transfer,32606 -2022-05-18,Transfer,32627 -2022-05-18,Transfer,32800 -2022-05-18,Transfer,33331 -2022-05-18,Transfer,33472 -2022-05-18,Transfer,33775 -2022-05-18,Transfer,34312 -2022-05-18,Transfer,34653 -2022-05-18,Transfer,34964 -2022-05-18,Transfer,35269 -2022-05-18,Transfer,35402 -2022-05-18,Transfer,36388 -2022-05-18,Transfer,36690 -2022-05-18,Transfer,37207 -2022-05-18,Transfer,38816 -2022-05-18,Transfer,39605 -2022-05-18,Transfer,40351 -2022-05-18,Transfer,40760 -2022-05-18,Transfer,44751 -2022-05-18,Transfer,45298 -2022-05-18,Transfer,50432 -2022-05-18,Transfer,54839 -2022-05-18,Transfer,55395 -2022-05-18,Transfer,60364 -2022-05-18,Transfer,65343 -2022-05-18,Transfer,82688 -2022-05-18,Transfer,96282 -2022-05-18,Transfer,96959 -2022-05-18,UpdateIndex,20921 -2022-05-18,Withdraw,60667 -2022-05-18,Withdraw,95953 +2022-05-24,Benchmark,9227 +2022-05-24,CloseAccount,4758 +2022-05-24,CreateAccount,18436 +2022-05-24,CreateAccount,19936 +2022-05-24,CreateAccount,21436 +2022-05-24,CreateAccount,24436 +2022-05-24,CreateGroup,15147 +2022-05-24,CreateGroup,18147 +2022-05-24,CreateStubOracle,16647 +2022-05-24,CreateStubOracle,23310 +2022-05-24,CreateStubOracle,27810 +2022-05-24,CreateStubOracle,51702 +2022-05-24,CreateStubOracle,53193 +2022-05-24,InitializeAccount,18436 +2022-05-24,InitializeAccount,26053 +2022-05-24,InitializeAccount,34110 +2022-05-24,InitializeAccount,38114 +2022-05-24,InitializeAccount,42249 +2022-05-24,InitializeAccount,56202 +2022-05-24,InitializeAccount,59193 +2022-05-24,InitializeAccount,59202 +2022-05-24,InitializeAccount,60693 +2022-05-24,InitializeAccount,62193 +2022-05-24,InitializeAccount,62202 +2022-05-24,LiqTokenWithToken,57875 +2022-05-24,LiqTokenWithToken,57999 +2022-05-24,LiqTokenWithToken,59885 +2022-05-24,LiqTokenWithToken,61768 +2022-05-24,PerpCancelAllOrders,11415 +2022-05-24,PerpCancelOrder,8951 +2022-05-24,PerpCancelOrderByClientOrderId,8958 +2022-05-24,PerpConsumeEvents,6388 +2022-05-24,PerpCreateMarket,26251 +2022-05-24,PerpPlaceOrder,20751 +2022-05-24,PerpPlaceOrder,20884 +2022-05-24,PerpPlaceOrder,21451 +2022-05-24,PerpPlaceOrder,22082 +2022-05-24,PerpPlaceOrder,23137 +2022-05-24,RegisterToken,5129 +2022-05-24,RegisterToken,57693 +2022-05-24,Revoke,93207 +2022-05-24,Revoke,97260 +2022-05-24,Revoke,97669 +2022-05-24,Serum3CancelOrder,24472 +2022-05-24,Serum3CreateOpenOrders,26487 +2022-05-24,Serum3CreateOpenOrders,26493 +2022-05-24,Serum3CreateOpenOrders,26500 +2022-05-24,Serum3CreateOpenOrders,27975 +2022-05-24,Serum3CreateOpenOrders,29373 +2022-05-24,Serum3CreateOpenOrders,29481 +2022-05-24,Serum3CreateOpenOrders,29558 +2022-05-24,Serum3CreateOpenOrders,30970 +2022-05-24,Serum3RegisterMarket,19781 +2022-05-24,Serum3RegisterMarket,22781 +2022-05-24,Serum3RegisterMarket,25781 +2022-05-24,SetStubOracle,16936 +2022-05-24,SetStubOracle,26380 +2022-05-24,Transfer,22297 +2022-05-24,Transfer,22338 +2022-05-24,Transfer,25862 +2022-05-24,Transfer,25910 +2022-05-24,Transfer,26380 +2022-05-24,Transfer,26390 +2022-05-24,Transfer,26708 +2022-05-24,Transfer,27631 +2022-05-24,Transfer,27793 +2022-05-24,Transfer,27829 +2022-05-24,Transfer,27850 +2022-05-24,Transfer,28554 +2022-05-24,Transfer,28695 +2022-05-24,Transfer,28761 +2022-05-24,Transfer,29298 +2022-05-24,Transfer,29883 +2022-05-24,Transfer,29977 +2022-05-24,Transfer,30194 +2022-05-24,Transfer,30492 +2022-05-24,Transfer,30632 +2022-05-24,Transfer,30851 +2022-05-24,Transfer,31374 +2022-05-24,Transfer,31927 +2022-05-24,Transfer,32444 +2022-05-24,Transfer,33238 +2022-05-24,Transfer,35581 +2022-05-24,Transfer,36061 +2022-05-24,Transfer,40066 +2022-05-24,Transfer,40535 +2022-05-24,Transfer,44193 +2022-05-24,Transfer,45726 +2022-05-24,Transfer,48659 +2022-05-24,Transfer,50696 +2022-05-24,Transfer,55672 +2022-05-24,Transfer,60658 +2022-05-24,Transfer,65977 +2022-05-24,Transfer,76337 +2022-05-24,Transfer,89560 +2022-05-24,Transfer,89889 +2022-05-24,UpdateIndex,20940 From e7d5b7cff9aa83fe7b370fc1853b5d4ac932973a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 24 May 2022 15:16:58 +0000 Subject: [PATCH 2/3] chore: push cu test logs --- cu-per-ix-clean.log | 78 ++++++++++++++++++++++----------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/cu-per-ix-clean.log b/cu-per-ix-clean.log index da964ff6d..aea8c957a 100644 --- a/cu-per-ix-clean.log +++ b/cu-per-ix-clean.log @@ -1,29 +1,27 @@ 2022-05-24,Benchmark,9227 2022-05-24,CloseAccount,4758 -2022-05-24,CreateAccount,18436 -2022-05-24,CreateAccount,19936 -2022-05-24,CreateAccount,21436 -2022-05-24,CreateAccount,24436 +2022-05-24,CreateAccount,25781 2022-05-24,CreateGroup,15147 -2022-05-24,CreateGroup,18147 -2022-05-24,CreateStubOracle,16647 -2022-05-24,CreateStubOracle,23310 -2022-05-24,CreateStubOracle,27810 -2022-05-24,CreateStubOracle,51702 -2022-05-24,CreateStubOracle,53193 -2022-05-24,InitializeAccount,18436 -2022-05-24,InitializeAccount,26053 +2022-05-24,CreateGroup,16647 +2022-05-24,CreateStubOracle,21810 +2022-05-24,CreateStubOracle,24810 +2022-05-24,CreateStubOracle,5129 +2022-05-24,CreateStubOracle,51734 +2022-05-24,CreateStubOracle,56202 +2022-05-24,CreateStubOracle,59202 +2022-05-24,Deposit,20310 +2022-05-24,Deposit,26053 +2022-05-24,Deposit,26565 +2022-05-24,InitializeAccount,16936 2022-05-24,InitializeAccount,34110 +2022-05-24,InitializeAccount,36061 2022-05-24,InitializeAccount,38114 -2022-05-24,InitializeAccount,42249 +2022-05-24,InitializeAccount,44193 2022-05-24,InitializeAccount,56202 -2022-05-24,InitializeAccount,59193 -2022-05-24,InitializeAccount,59202 -2022-05-24,InitializeAccount,60693 -2022-05-24,InitializeAccount,62193 -2022-05-24,InitializeAccount,62202 +2022-05-24,InitializeAccount,57693 +2022-05-24,InitializeAccount,63702 +2022-05-24,InitializeAccount,66693 2022-05-24,LiqTokenWithToken,57875 -2022-05-24,LiqTokenWithToken,57999 2022-05-24,LiqTokenWithToken,59885 2022-05-24,LiqTokenWithToken,61768 2022-05-24,PerpCancelAllOrders,11415 @@ -36,31 +34,33 @@ 2022-05-24,PerpPlaceOrder,21451 2022-05-24,PerpPlaceOrder,22082 2022-05-24,PerpPlaceOrder,23137 +2022-05-24,RegisterToken,17310 2022-05-24,RegisterToken,5129 -2022-05-24,RegisterToken,57693 -2022-05-24,Revoke,93207 -2022-05-24,Revoke,97260 -2022-05-24,Revoke,97669 +2022-05-24,RegisterToken,53193 +2022-05-24,RegisterToken,53202 +2022-05-24,RegisterToken,54693 +2022-05-24,Revoke,93216 +2022-05-24,Revoke,97269 +2022-05-24,Revoke,97678 2022-05-24,Serum3CancelOrder,24472 -2022-05-24,Serum3CreateOpenOrders,26487 +2022-05-24,Serum3CreateOpenOrders,26470 2022-05-24,Serum3CreateOpenOrders,26493 -2022-05-24,Serum3CreateOpenOrders,26500 +2022-05-24,Serum3CreateOpenOrders,26558 +2022-05-24,Serum3CreateOpenOrders,27873 +2022-05-24,Serum3CreateOpenOrders,27965 2022-05-24,Serum3CreateOpenOrders,27975 -2022-05-24,Serum3CreateOpenOrders,29373 +2022-05-24,Serum3CreateOpenOrders,27987 2022-05-24,Serum3CreateOpenOrders,29481 -2022-05-24,Serum3CreateOpenOrders,29558 -2022-05-24,Serum3CreateOpenOrders,30970 -2022-05-24,Serum3RegisterMarket,19781 -2022-05-24,Serum3RegisterMarket,22781 -2022-05-24,Serum3RegisterMarket,25781 -2022-05-24,SetStubOracle,16936 -2022-05-24,SetStubOracle,26380 +2022-05-24,Serum3CreateOpenOrders,29500 +2022-05-24,Serum3RegisterMarket,24281 +2022-05-24,Serum3RegisterMarket,27281 +2022-05-24,SetStubOracle,17310 2022-05-24,Transfer,22297 -2022-05-24,Transfer,22338 +2022-05-24,Transfer,22347 2022-05-24,Transfer,25862 2022-05-24,Transfer,25910 -2022-05-24,Transfer,26380 2022-05-24,Transfer,26390 +2022-05-24,Transfer,26565 2022-05-24,Transfer,26708 2022-05-24,Transfer,27631 2022-05-24,Transfer,27793 @@ -79,19 +79,19 @@ 2022-05-24,Transfer,31374 2022-05-24,Transfer,31927 2022-05-24,Transfer,32444 -2022-05-24,Transfer,33238 +2022-05-24,Transfer,32708 2022-05-24,Transfer,35581 -2022-05-24,Transfer,36061 2022-05-24,Transfer,40066 2022-05-24,Transfer,40535 -2022-05-24,Transfer,44193 +2022-05-24,Transfer,42249 2022-05-24,Transfer,45726 2022-05-24,Transfer,48659 2022-05-24,Transfer,50696 2022-05-24,Transfer,55672 2022-05-24,Transfer,60658 -2022-05-24,Transfer,65977 +2022-05-24,Transfer,65986 2022-05-24,Transfer,76337 2022-05-24,Transfer,89560 2022-05-24,Transfer,89889 2022-05-24,UpdateIndex,20940 +2022-05-24,Withdraw,33238 From ed4e63a82f83af4cc7040c298c20cc42abec198f Mon Sep 17 00:00:00 2001 From: microwavedcola1 Date: Tue, 24 May 2022 22:03:35 +0200 Subject: [PATCH 3/3] Change tuple to a struct, seemingly anchor ts doesnt support tuples Signed-off-by: microwavedcola1 --- .../mango-v4/src/instructions/margin_trade.rs | 13 +++++-- programs/mango-v4/src/instructions/mod.rs | 2 +- programs/mango-v4/src/lib.rs | 2 +- .../tests/program_test/mango_client.rs | 7 ++-- ts/client/src/mango_v4.ts | 36 +++++++++++++++++-- 5 files changed, 51 insertions(+), 9 deletions(-) diff --git a/programs/mango-v4/src/instructions/margin_trade.rs b/programs/mango-v4/src/instructions/margin_trade.rs index 24aac8820..f57045ae8 100644 --- a/programs/mango-v4/src/instructions/margin_trade.rs +++ b/programs/mango-v4/src/instructions/margin_trade.rs @@ -50,6 +50,12 @@ struct AllowedVault { loan_amount: I80F48, } +#[derive(AnchorDeserialize, AnchorSerialize, Clone, Copy)] +pub struct MarginTradeWithdraw { + pub index: u8, + pub amount: u64, +} + /// - `num_health_accounts` is the number of health accounts that remaining_accounts starts with. /// - `withdraws` is a list of tuples containing the index to a vault in target_accounts and the /// amount that the target program shall be allowed to withdraw @@ -57,7 +63,7 @@ struct AllowedVault { pub fn margin_trade<'key, 'accounts, 'remaining, 'info>( ctx: Context<'key, 'accounts, 'remaining, 'info, MarginTrade<'info>>, num_health_accounts: usize, - withdraws: Vec<(u8, u64)>, + withdraws: Vec, cpi_data: Vec, ) -> Result<()> { let group = ctx.accounts.group.load()?; @@ -155,8 +161,9 @@ pub fn margin_trade<'key, 'accounts, 'remaining, 'info>( if let Some(vault_info) = used_vaults.get_mut(&bank.vault) { let withdraw_amount = withdraws .iter() - .find_map(|&(index, amount)| { - (index as usize == vault_info.vault_cpi_ai_index).then(|| amount) + .find_map(|&withdraw| { + (withdraw.index as usize == vault_info.vault_cpi_ai_index) + .then(|| withdraw.amount) }) // Even if we don't withdraw from a vault we still need to track it: // Possibly the invoked program will deposit funds into it. diff --git a/programs/mango-v4/src/instructions/mod.rs b/programs/mango-v4/src/instructions/mod.rs index aa21e474e..9ff423538 100644 --- a/programs/mango-v4/src/instructions/mod.rs +++ b/programs/mango-v4/src/instructions/mod.rs @@ -32,7 +32,7 @@ mod create_group; mod create_stub_oracle; mod deposit; mod liq_token_with_token; -mod margin_trade; +pub mod margin_trade; mod perp_cancel_all_orders; mod perp_cancel_all_orders_by_side; mod perp_cancel_order; diff --git a/programs/mango-v4/src/lib.rs b/programs/mango-v4/src/lib.rs index bbd5cd257..6e0413a9a 100644 --- a/programs/mango-v4/src/lib.rs +++ b/programs/mango-v4/src/lib.rs @@ -100,7 +100,7 @@ pub mod mango_v4 { pub fn margin_trade<'key, 'accounts, 'remaining, 'info>( ctx: Context<'key, 'accounts, 'remaining, 'info, MarginTrade<'info>>, num_health_accounts: usize, - withdraws: Vec<(u8, u64)>, + withdraws: Vec, cpi_data: Vec, ) -> Result<()> { instructions::margin_trade(ctx, num_health_accounts, withdraws, cpi_data) diff --git a/programs/mango-v4/tests/program_test/mango_client.rs b/programs/mango-v4/tests/program_test/mango_client.rs index 5d49ffbc5..8187c2c05 100644 --- a/programs/mango-v4/tests/program_test/mango_client.rs +++ b/programs/mango-v4/tests/program_test/mango_client.rs @@ -6,7 +6,7 @@ use anchor_spl::token::{Token, TokenAccount}; use fixed::types::I80F48; use itertools::Itertools; use mango_v4::instructions::{ - InterestRateParams, Serum3OrderType, Serum3SelfTradeBehavior, Serum3Side, + InterestRateParams, MarginTradeWithdraw, Serum3OrderType, Serum3SelfTradeBehavior, Serum3Side, }; use solana_program::instruction::Instruction; use solana_sdk::instruction; @@ -295,7 +295,10 @@ impl<'keypair> ClientInstruction for MarginTradeInstruction<'keypair> { let instruction = Self::Instruction { num_health_accounts: health_check_metas.len(), - withdraws: vec![(1, self.withdraw_amount)], + withdraws: vec![MarginTradeWithdraw { + index: 1, + amount: self.withdraw_amount, + }], cpi_data: self.margin_trade_program_ix_cpi_data.clone(), }; diff --git a/ts/client/src/mango_v4.ts b/ts/client/src/mango_v4.ts index 1a07a6150..fe1502b76 100644 --- a/ts/client/src/mango_v4.ts +++ b/ts/client/src/mango_v4.ts @@ -530,7 +530,7 @@ export type MangoV4 = { "name": "withdraws", "type": { "vec": { - "defined": "(u8,u64)" + "defined": "MarginTradeWithdraw" } } }, @@ -2201,6 +2201,22 @@ export type MangoV4 = { } ], "types": [ + { + "name": "MarginTradeWithdraw", + "type": { + "kind": "struct", + "fields": [ + { + "name": "index", + "type": "u8" + }, + { + "name": "amount", + "type": "u64" + } + ] + } + }, { "name": "InterestRateParams", "type": { @@ -3387,7 +3403,7 @@ export const IDL: MangoV4 = { "name": "withdraws", "type": { "vec": { - "defined": "(u8,u64)" + "defined": "MarginTradeWithdraw" } } }, @@ -5058,6 +5074,22 @@ export const IDL: MangoV4 = { } ], "types": [ + { + "name": "MarginTradeWithdraw", + "type": { + "kind": "struct", + "fields": [ + { + "name": "index", + "type": "u8" + }, + { + "name": "amount", + "type": "u64" + } + ] + } + }, { "name": "InterestRateParams", "type": {