From 60ab5d1b0388f25fb5cfdb06eae272c5e98cb66b Mon Sep 17 00:00:00 2001 From: dd Date: Tue, 22 Jun 2021 08:53:51 -0400 Subject: [PATCH] added shuffling of margin accounts --- src/partial.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/partial.ts b/src/partial.ts index d97b740..63042cc 100644 --- a/src/partial.ts +++ b/src/partial.ts @@ -179,6 +179,13 @@ async function balanceWallets( } } +function shuffleArray(array) { + for (let i = array.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + [array[i], array[j]] = [array[j], array[i]]; + } +} + async function runPartialLiquidator() { const client = new MangoClient(); const cluster = process.env.CLUSTER || 'mainnet-beta'; @@ -265,6 +272,7 @@ async function runPartialLiquidator() { ) : await client.getAllMarginAccounts(connection, programId, mangoGroup); + shuffleArray(marginAccounts); let [prices, vaultAccs, liqorAccs] = await Promise.all([ mangoGroup.getPrices(connection), getMultipleAccounts(connection, mangoGroup.vaults), @@ -305,6 +313,7 @@ async function runPartialLiquidator() { let maxBorrVal = 0; let minCollAcc: MarginAccount | undefined = undefined; let minCollVal = 99999; + for (let ma of marginAccounts) { // parallelize this if possible