taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit f2ef2d571bc75485941199fd33293ee53288b3b7
parent ea74482200c5c837f27d8b582709d66ae33207bb
Author: Florian Dold <dold@taler.net>
Date:   Sun, 20 Sep 2026 00:27:50 +0200

taler-util: define permanent transaction failure reasons

Diffstat:
Mpackages/taler-util/src/errors.ts | 22++++++++++++++++++++++
Mpackages/taler-util/src/taler-error-codes.ts | 42++++++++++++++++++++++++++++++++++++++++++
2 files changed, 64 insertions(+), 0 deletions(-)

diff --git a/packages/taler-util/src/errors.ts b/packages/taler-util/src/errors.ts @@ -196,6 +196,28 @@ export interface DetailsMap { [TalerErrorCode.WALLET_PAY_MERCHANT_INSUFFICIENT_BALANCE]: { insufficientBalanceDetails: PaymentInsufficientBalanceDetails; }; + [TalerErrorCode.WALLET_TRANSACTION_COMPLETED_BY_OTHER_WALLET]: empty; + [TalerErrorCode.WALLET_REFRESH_GROUP_FAILED]: { + errorsPerCoin: Record<string, TalerErrorDetail>; + }; + [TalerErrorCode.WALLET_RECOUP_GROUP_FAILED]: { + errorsPerCoin: Record<string, TalerErrorDetail>; + }; + [TalerErrorCode.WALLET_REFUND_GROUP_FAILED]: { + errors: { + coinPub: string; + rtransactionId: number; + error: TalerErrorDetail; + }[]; + }; + [TalerErrorCode.WALLET_TRANSACTION_RECOVERY_FAILED]: { + transactionId: string; + innerError?: TalerErrorDetail; + }; + [TalerErrorCode.WALLET_TRANSACTION_DEPENDENCY_FAILED]: { + transactionId: string; + innerError?: TalerErrorDetail; + }; [TalerErrorCode.WALLET_REFRESH_GROUP_INCOMPLETE]: { numErrors: number; /** diff --git a/packages/taler-util/src/taler-error-codes.ts b/packages/taler-util/src/taler-error-codes.ts @@ -4650,6 +4650,48 @@ export enum TalerErrorCode { WALLET_PEER_PUSH_PAYMENT_QUOTE_CHANGED = 7069, /** + * The operation was completed or taken over by another wallet. + * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0). + * (A value of 0 indicates that the error is generated client-side). + */ + WALLET_TRANSACTION_COMPLETED_BY_OTHER_WALLET = 7070, + + /** + * Refreshing one or more coins failed permanently. + * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0). + * (A value of 0 indicates that the error is generated client-side). + */ + WALLET_REFRESH_GROUP_FAILED = 7071, + + /** + * Recouping one or more revoked coins failed permanently. + * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0). + * (A value of 0 indicates that the error is generated client-side). + */ + WALLET_RECOUP_GROUP_FAILED = 7072, + + /** + * One or more refunds were permanently rejected by the exchange. + * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0). + * (A value of 0 indicates that the error is generated client-side). + */ + WALLET_REFUND_GROUP_FAILED = 7073, + + /** + * Recovery of the transaction inputs failed or the recovery operation is missing. + * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0). + * (A value of 0 indicates that the error is generated client-side). + */ + WALLET_TRANSACTION_RECOVERY_FAILED = 7074, + + /** + * An operation required to complete the transaction failed or is missing. + * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0). + * (A value of 0 indicates that the error is generated client-side). + */ + WALLET_TRANSACTION_DEPENDENCY_FAILED = 7075, + + /** * The service encountered a timeout with its payment backend. * Returned with an HTTP status code of #MHD_HTTP_GATEWAY_TIMEOUT (504). * (A value of 0 indicates that the error is generated client-side).