commit c91b5eae8adc0a42cfa81a7e6c442174e0ad8fb2
parent 08fe0b5b0c80d029fe60c47f08937e93fe5e7cb1
Author: Florian Dold <dold@taler.net>
Date: Thu, 3 Sep 2026 15:52:32 +0200
wallet-core: back off while a deposit waits for aggregate KYC
The tracking answer had no transition for that state and re-ran at
once, polling the exchange in a tight loop for the whole KYC wait.
Diffstat:
1 file changed, 12 insertions(+), 0 deletions(-)
diff --git a/packages/taler-wallet-core/src/deposits.ts b/packages/taler-wallet-core/src/deposits.ts
@@ -1907,6 +1907,9 @@ function applyKycRequiredTransition(
}
dg.operationStatus = DepositOperationStatus.PendingAggregateKyc;
break;
+ case DepositOperationStatus.PendingAggregateKyc:
+ // Still waiting; only the denial timestamp moves.
+ break;
case DepositOperationStatus.PendingDeposit:
if (args.badKycAuth) {
dg.operationStatus = DepositOperationStatus.PendingDepositKycAuth;
@@ -2132,6 +2135,15 @@ async function processDepositGroupTrack(
kycPaytoHash: paytoHash,
badKycAuth: false,
});
+ if (
+ depositGroup.operationStatus ===
+ DepositOperationStatus.PendingAggregateKyc
+ ) {
+ // Nothing changed: the exchange still wants KYC before it
+ // aggregates. Running again at once would only repeat the
+ // same request.
+ return TaskRunResult.backoff();
+ }
return TaskRunResult.progress();
}
progress.push({ index: i, status: DepositElementStatus.Tracking });