summaryrefslogtreecommitdiff
path: root/packages
diff options
context:
space:
mode:
Diffstat (limited to 'packages')
-rw-r--r--packages/taler-util/src/wallet-types.ts7
-rw-r--r--packages/taler-wallet-core/src/wallet.ts5
2 files changed, 12 insertions, 0 deletions
diff --git a/packages/taler-util/src/wallet-types.ts b/packages/taler-util/src/wallet-types.ts
index 41b0d5574..d20eb5173 100644
--- a/packages/taler-util/src/wallet-types.ts
+++ b/packages/taler-util/src/wallet-types.ts
@@ -1135,6 +1135,13 @@ export interface ManualWithdrawalDetails {
amountEffective: AmountString;
/**
+ * Number of coins that would be used for withdrawal.
+ *
+ * The UIs should warn if this number is too high (rougly at >100).
+ */
+ numCoins: number;
+
+ /**
* Ways to pay the exchange.
*/
paytoUris: string[];
diff --git a/packages/taler-wallet-core/src/wallet.ts b/packages/taler-wallet-core/src/wallet.ts
index 6009ff096..da9445602 100644
--- a/packages/taler-wallet-core/src/wallet.ts
+++ b/packages/taler-wallet-core/src/wallet.ts
@@ -1107,12 +1107,17 @@ async function dispatchRequestInternal<Op extends WalletApiOperation>(
Amounts.parseOrThrow(req.amount),
req.restrictAge,
);
+ let numCoins = 0;
+ for (const x of wi.selectedDenoms.selectedDenoms) {
+ numCoins += x.count;
+ }
const resp: ManualWithdrawalDetails = {
amountRaw: req.amount,
amountEffective: Amounts.stringify(wi.selectedDenoms.totalCoinValue),
paytoUris: wi.exchangePaytoUris,
tosAccepted: wi.termsOfServiceAccepted,
ageRestrictionOptions: wi.ageRestrictionOptions,
+ numCoins,
};
return resp;
}