taler-typescript-core

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

commit fe23834e46951259d9b8d06d4381fa75d5785f45
parent cf4440abd7c947d9113fd005585a70a5104174a2
Author: Florian Dold <florian@dold.me>
Date:   Fri, 27 Feb 2026 16:52:06 +0100

wallet-core: mitigation for buggy denominationFamilySerial when updating exchange entries

Diffstat:
Mpackages/taler-wallet-core/src/exchanges.ts | 12+++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/packages/taler-wallet-core/src/exchanges.ts b/packages/taler-wallet-core/src/exchanges.ts @@ -2112,13 +2112,23 @@ export async function updateExchangeFromUrlHandler( // FIXME: Do consistency check, report to auditor if necessary. // See https://bugs.taler.net/n/8594 + let changed = false; // Mark lost denominations as lost. if (currentDenom.isLost && !oldDenom.isLost) { logger.warn( `marking denomination ${currentDenom.denomPubHash} of ${exchangeBaseUrl} as lost`, ); oldDenom.isLost = true; - await tx.denominations.put(denomRec); + changed = true; + } + if (oldDenom.denominationFamilySerial != denominationFamilySerial) { + // Can happen in some wallet versions where denominations + // were not deleted properly when adding an exchange. + oldDenom.denominationFamilySerial = denominationFamilySerial; + changed = true; + } + if (changed) { + await tx.denominations.put(oldDenom); } } else { await tx.denominations.put(denomRec);