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:
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": {