diff options
author | Florian Dold <florian@dold.me> | 2023-05-24 12:54:07 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2023-05-24 12:54:07 +0200 |
commit | ea953f2b772b07780b94daecdefde6cd253a7e90 (patch) | |
tree | 7d2e5b36d224a3d2b07ece0a4b39d2e7607e3df9 /packages/taler-wallet-core | |
parent | da87ce41a6b6a6b66af7b99098e015e74ae27b67 (diff) | |
download | wallet-core-ea953f2b772b07780b94daecdefde6cd253a7e90.tar.xz |
wallet-core: use division for withdrawal coin selection
Diffstat (limited to 'packages/taler-wallet-core')
-rw-r--r-- | packages/taler-wallet-core/src/util/coinSelection.ts | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/packages/taler-wallet-core/src/util/coinSelection.ts b/packages/taler-wallet-core/src/util/coinSelection.ts index 3b986d72b..af6dab2bb 100644 --- a/packages/taler-wallet-core/src/util/coinSelection.ts +++ b/packages/taler-wallet-core/src/util/coinSelection.ts @@ -689,18 +689,13 @@ export function selectWithdrawalDenominations( ); for (const d of denoms) { - let count = 0; const cost = Amounts.add( DenominationRecord.getValue(d), d.fees.feeWithdraw, ).amount; - for (;;) { - if (Amounts.cmp(remaining, cost) < 0) { - break; - } - remaining = Amounts.sub(remaining, cost).amount; - count++; - } + const res = Amounts.divmod(remaining, cost); + const count = res.quotient; + remaining = Amounts.sub(remaining, Amounts.mult(cost, count).amount).amount; if (count > 0) { totalCoinValue = Amounts.add( totalCoinValue, |