taler-typescript-core

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

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:
Mpackages/taler-wallet-core/src/deposits.ts | 12++++++++++++
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 });