taler-typescript-core

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

commit 9280cc305ba16e9ba63385afaa388e1259e0ecb8
parent f62468177cbe23a91bc9465073a7050174881eb5
Author: Florian Dold <dold@taler.net>
Date:   Wed, 22 Jul 2026 01:01:58 +0200

wallet: leave the balance-KYC init state once the balance is legal

The transition after a successful balance check only covered the state
that already had an access token, so a transaction still in the initial
state kept its status and was rescheduled as having made progress, which
turned into a busy loop that never reached the merge.

Diffstat:
Mpackages/taler-wallet-core/src/pay-peer-pull-credit.ts | 3+++
Mpackages/taler-wallet-core/src/pay-peer-push-credit.ts | 3+++
2 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/packages/taler-wallet-core/src/pay-peer-pull-credit.ts b/packages/taler-wallet-core/src/pay-peer-pull-credit.ts @@ -993,6 +993,9 @@ async function processPeerPullCreditBalanceKyc( return; } switch (rec.status) { + // The balance increase is legal, so no wallet KYC is needed and + // the initial state is left behind together with the required one. + case PeerPullPaymentCreditStatus.PendingBalanceKycInit: case PeerPullPaymentCreditStatus.PendingBalanceKycRequired: rec.status = PeerPullPaymentCreditStatus.PendingCreatePurse; break; diff --git a/packages/taler-wallet-core/src/pay-peer-push-credit.ts b/packages/taler-wallet-core/src/pay-peer-push-credit.ts @@ -1191,6 +1191,9 @@ async function processPeerPushCreditBalanceKyc( return; } switch (rec.status) { + // The balance increase is legal, so no wallet KYC is needed and + // the initial state is left behind together with the required one. + case PeerPushCreditStatus.PendingBalanceKycInit: case PeerPushCreditStatus.PendingBalanceKycRequired: { rec.status = PeerPushCreditStatus.PendingMerge; await h.update(rec);