diff --git a/package.json b/package.json index 7fab9772..d382bd63 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "scripts": { "build": "rm -rf lib && tsc -p tsconfig.build.json", "lint": "eslint src", + "lint:fix": "eslint src --fix", "tsc": "tsc -w" }, "type": "module", diff --git a/src/pools/mixins/depositBalancedAmountsMixins.ts b/src/pools/mixins/depositBalancedAmountsMixins.ts index f6b4ca54..4805c380 100644 --- a/src/pools/mixins/depositBalancedAmountsMixins.ts +++ b/src/pools/mixins/depositBalancedAmountsMixins.ts @@ -16,9 +16,12 @@ function _depositBalancedAmounts(poolBalances: string[], walletBalances: string[ )) )); const firstCoinBalanceForEachScenarioBN = balancedAmountsForEachScenarioBN.map(([a]) => a); - const scenarioWithLowestBalancesBN = firstCoinBalanceForEachScenarioBN.map(String).indexOf(BigNumber.min(...firstCoinBalanceForEachScenarioBN).toString()); - return balancedAmountsForEachScenarioBN[scenarioWithLowestBalancesBN].map((a, i) => a.toFixed(decimals[i])) + // get the scenario with the lowest balances, ignoring scenarios where the wallet balance is zero + const min = BigNumber.min(...firstCoinBalanceForEachScenarioBN.filter((b) => !b.isZero())); + const scenarioWithLowestBalancesBN = firstCoinBalanceForEachScenarioBN.map(String).indexOf(min.toString()); + const bestScenario = balancedAmountsForEachScenarioBN[scenarioWithLowestBalancesBN]; + return bestScenario.map((a, i) => walletBalancesBN[i].isZero() ? "0" : a.toFixed(decimals[i])) } // @ts-ignore