taler-typescript-core

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

commit 78fa0849c06a6ab996419b49ca741f3a50f445f6
parent 4144609f2619c558f642a1e4c847f6ceae1235f4
Author: Florian Dold <florian@dold.me>
Date:   Thu, 11 Dec 2025 12:57:09 +0100

wallet-core: allow forcing update in dev experiment

Diffstat:
Mpackages/taler-wallet-core/src/dev-experiments.ts | 34+++++++++++++++++++++++++++++++++-
1 file changed, 33 insertions(+), 1 deletion(-)

diff --git a/packages/taler-wallet-core/src/dev-experiments.ts b/packages/taler-wallet-core/src/dev-experiments.ts @@ -37,6 +37,7 @@ import { MerchantContractVersion, PeerContractTerms, RefreshReason, + TalerError, TalerErrorCode, TalerPreciseTimestamp, encodeCrock, @@ -63,7 +64,10 @@ import { timestampPreciseToDb, timestampProtocolToDb, } from "./db.js"; -import { DenomLossTransactionContext } from "./exchanges.js"; +import { + DenomLossTransactionContext, + fetchFreshExchange, +} from "./exchanges.js"; import { PayMerchantTransactionContext } from "./pay-merchant.js"; import { PeerPushCreditTransactionContext } from "./pay-peer-push-credit.js"; import { PeerPushDebitTransactionContext } from "./pay-peer-push-debit.js"; @@ -186,6 +190,20 @@ export async function applyDevExperiment( fakeSt.set(baseUrl, { fakeVer, }); + const fup = parsedUri.query?.get("fup"); + if (fup) { + try { + await fetchFreshExchange(wex, baseUrl, { + forceUpdate: true, + }); + } catch (e) { + logger.error( + `forcing exchange update failed: ${j2s( + TalerError.fromException(e), + )}`, + ); + } + } return; } case "start-fakemasterpub": { @@ -204,6 +222,20 @@ export async function applyDevExperiment( fakeSt.set(baseUrl, { fakeMasterPub: fakePub, }); + const fup = parsedUri.query?.get("fup"); + if (fup) { + try { + await fetchFreshExchange(wex, baseUrl, { + forceUpdate: true, + }); + } catch (e) { + logger.error( + `forcing exchange update failed: ${j2s( + TalerError.fromException(e), + )}`, + ); + } + } return; } case "rebuild-transactions": {