diff options
author | Florian Dold <florian@dold.me> | 2023-05-24 12:58:33 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2023-05-24 12:58:33 +0200 |
commit | 4627c0781c982421585e4adf9e3320b56f644965 (patch) | |
tree | c2e490facc3dcd5b716e046aeaf2cafb549ba94b | |
parent | ea953f2b772b07780b94daecdefde6cd253a7e90 (diff) |
wallet-core: report number of coins in withdrawal details
-rw-r--r-- | packages/taler-util/src/wallet-types.ts | 7 | ||||
-rw-r--r-- | packages/taler-wallet-core/src/wallet.ts | 5 |
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; } |