diff --git a/package-lock.json b/package-lock.json index dd56b076..c872ef67 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@curvefi/api", - "version": "2.66.27", + "version": "2.66.28", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@curvefi/api", - "version": "2.66.27", + "version": "2.66.28", "license": "MIT", "dependencies": { "@curvefi/ethcall": "^6.0.13", diff --git a/package.json b/package.json index 0fd921f1..7f95f4b3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@curvefi/api", - "version": "2.66.27", + "version": "2.66.28", "description": "JavaScript library for curve.finance", "main": "lib/index.js", "author": "Macket", diff --git a/src/pools/mixins/depositBalancedAmountsMixins.ts b/src/pools/mixins/depositBalancedAmountsMixins.ts index 4805c380..121e7376 100644 --- a/src/pools/mixins/depositBalancedAmountsMixins.ts +++ b/src/pools/mixins/depositBalancedAmountsMixins.ts @@ -18,8 +18,13 @@ function _depositBalancedAmounts(poolBalances: string[], walletBalances: string[ const firstCoinBalanceForEachScenarioBN = balancedAmountsForEachScenarioBN.map(([a]) => a); // 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 nonZeroBalances = firstCoinBalanceForEachScenarioBN.filter((b) => !b.isZero()); + if (nonZeroBalances.length === 0) { + return poolBalances.map(() => "0") // no balances at all, return zeroes + } + const min = BigNumber.min(...nonZeroBalances); 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])) }