diff options
author | Florian Dold <florian@dold.me> | 2024-03-07 11:10:52 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2024-03-07 11:10:52 +0100 |
commit | 466e2b7643692aa6b7f76a193b84775008e17350 (patch) | |
tree | dd3f9a0b67765e2c7ea6b97c2a7acbbcac71d4b7 /packages/taler-util | |
parent | 8eb3e505be967afde0053d5a392e8c6877d8f1dd (diff) | |
download | wallet-core-466e2b7643692aa6b7f76a193b84775008e17350.tar.gz wallet-core-466e2b7643692aa6b7f76a193b84775008e17350.tar.bz2 wallet-core-466e2b7643692aa6b7f76a193b84775008e17350.zip |
wallet-core: improve insufficient balance reporting
Diffstat (limited to 'packages/taler-util')
-rw-r--r-- | packages/taler-util/src/errors.ts | 6 | ||||
-rw-r--r-- | packages/taler-util/src/wallet-types.ts | 14 |
2 files changed, 13 insertions, 7 deletions
diff --git a/packages/taler-util/src/errors.ts b/packages/taler-util/src/errors.ts index c4733a194..3ada34d63 100644 --- a/packages/taler-util/src/errors.ts +++ b/packages/taler-util/src/errors.ts @@ -25,7 +25,7 @@ */ import { AbsoluteTime, - PayMerchantInsufficientBalanceDetails, + PaymentInsufficientBalanceDetails, TalerErrorCode, TalerErrorDetail, TransactionType, @@ -132,10 +132,10 @@ export interface DetailsMap { kycUrl: string; }; [TalerErrorCode.WALLET_DEPOSIT_GROUP_INSUFFICIENT_BALANCE]: { - insufficientBalanceDetails: PayMerchantInsufficientBalanceDetails; + insufficientBalanceDetails: PaymentInsufficientBalanceDetails; }; [TalerErrorCode.WALLET_PEER_PUSH_PAYMENT_INSUFFICIENT_BALANCE]: { - insufficientBalanceDetails: PayMerchantInsufficientBalanceDetails; + insufficientBalanceDetails: PaymentInsufficientBalanceDetails; }; [TalerErrorCode.WALLET_REFRESH_GROUP_INCOMPLETE]: { numErrors: number; diff --git a/packages/taler-util/src/wallet-types.ts b/packages/taler-util/src/wallet-types.ts index cb4374648..8be8fc4a0 100644 --- a/packages/taler-util/src/wallet-types.ts +++ b/packages/taler-util/src/wallet-types.ts @@ -833,10 +833,12 @@ export const codecForPreparePayResultPaymentPossible = ) .build("PreparePayResultPaymentPossible"); +export interface BalanceDetails {} + /** * Detailed reason for why the wallet's balance is insufficient. */ -export interface PayMerchantInsufficientBalanceDetails { +export interface PaymentInsufficientBalanceDetails { /** * Amount requested by the merchant. */ @@ -867,6 +869,8 @@ export interface PayMerchantInsufficientBalanceDetails { */ balanceMerchantDepositable: AmountString; + balanceExchangeDepositable: AmountString; + /** * Maximum effective amount that the wallet can spend, * when all fees are paid by the wallet. @@ -877,19 +881,21 @@ export interface PayMerchantInsufficientBalanceDetails { [url: string]: { balanceAvailable: AmountString; balanceMaterial: AmountString; + balanceExchangeDepositable: AmountString; }; }; } export const codecForPayMerchantInsufficientBalanceDetails = - (): Codec<PayMerchantInsufficientBalanceDetails> => - buildCodecForObject<PayMerchantInsufficientBalanceDetails>() + (): Codec<PaymentInsufficientBalanceDetails> => + buildCodecForObject<PaymentInsufficientBalanceDetails>() .property("amountRequested", codecForAmountString()) .property("balanceAgeAcceptable", codecForAmountString()) .property("balanceAvailable", codecForAmountString()) .property("balanceMaterial", codecForAmountString()) .property("balanceMerchantAcceptable", codecForAmountString()) .property("balanceMerchantDepositable", codecForAmountString()) + .property("balanceExchangeDepositable", codecForAmountString()) .property("perExchange", codecForAny()) .property("maxEffectiveSpendAmount", codecForAmountString()) .build("PayMerchantInsufficientBalanceDetails"); @@ -981,7 +987,7 @@ export interface PreparePayResultInsufficientBalance { contractTerms: MerchantContractTerms; amountRaw: AmountString; talerUri: string; - balanceDetails: PayMerchantInsufficientBalanceDetails; + balanceDetails: PaymentInsufficientBalanceDetails; } export interface PreparePayResultAlreadyConfirmed { |