aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/util/coinSelection.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-core/src/util/coinSelection.ts')
-rw-r--r--packages/taler-wallet-core/src/util/coinSelection.ts14
1 files changed, 7 insertions, 7 deletions
diff --git a/packages/taler-wallet-core/src/util/coinSelection.ts b/packages/taler-wallet-core/src/util/coinSelection.ts
index b8ce5e0f2..0885215dd 100644
--- a/packages/taler-wallet-core/src/util/coinSelection.ts
+++ b/packages/taler-wallet-core/src/util/coinSelection.ts
@@ -918,19 +918,19 @@ function greedySelectPeer(
instructedAmount,
tally.amountAcc,
).amount;
- const coinSpend = Amounts.max(
- Amounts.min(amountPayRemaining, denom.value),
- denom.feeDeposit,
- );
+ const coinContrib = Amounts.sub(denom.value, denom.feeDeposit).amount
+
+ const coinSpend = Amounts.min(amountPayRemaining, coinContrib)
+
tally.amountAcc = Amounts.add(tally.amountAcc, coinSpend).amount;
- // Since this is a peer payment, there is no merchant to
- // potentially cover the deposit fees.
- tally.amountAcc = Amounts.sub(tally.amountAcc, denom.feeDeposit).amount;
+
tally.depositFeesAcc = Amounts.add(
tally.depositFeesAcc,
denom.feeDeposit,
).amount;
+
tally.lastDepositFee = Amounts.parseOrThrow(denom.feeDeposit);
+
contributions.push(coinSpend);
}
if (contributions.length > 0) {