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:
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).