taler-typescript-core

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

commit c7793c49ade230f0552a837a23ecf6ae8ba3ee2f
parent b12966591fba77ebd76d5eeccd608dac379df890
Author: Florian Dold <dold@taler.net>
Date:   Wed, 22 Jul 2026 00:30:35 +0200

wallet: release the old refresh session when redenominating

initRefreshSession raises pendingRefreshOutputCount for the denominations
it picks, and only destroyRefreshSession lowers it again.  The
redenomination branch dropped the session record and started a new one
without that call, so the count kept the outputs of a session that no
longer exists.  The melt-conflict branch already does this.

Diffstat:
Mpackages/taler-wallet-core/src/refresh.ts | 3+++
1 file changed, 3 insertions(+), 0 deletions(-)

diff --git a/packages/taler-wallet-core/src/refresh.ts b/packages/taler-wallet-core/src/refresh.ts @@ -1422,6 +1422,9 @@ async function processRefreshSession( rg != null && rg.statusPerCoin[coinIndex] === RefreshCoinStatus.PendingRedenominate ) { + if (rs != null) { + await destroyRefreshSession(wex, tx, rg, rs); + } await tx.deleteRefreshSession(refreshGroupId, coinIndex); await initRefreshSession(wex, tx, rg, coinIndex); rg.statusPerCoin[coinIndex] = RefreshCoinStatus.Pending;