From 95e87d8f4863f3db37504e78913381f775f8f73a Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 29 Jan 2024 22:20:57 +0100 Subject: wallet-core: create dev experiment for pending refresh --- packages/taler-wallet-core/src/dev-experiments.ts | 39 +++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) (limited to 'packages/taler-wallet-core/src/dev-experiments.ts') diff --git a/packages/taler-wallet-core/src/dev-experiments.ts b/packages/taler-wallet-core/src/dev-experiments.ts index cb8f7aa19..be42557e5 100644 --- a/packages/taler-wallet-core/src/dev-experiments.ts +++ b/packages/taler-wallet-core/src/dev-experiments.ts @@ -25,8 +25,20 @@ * Imports. */ -import { Logger, parseDevExperimentUri } from "@gnu-taler/taler-util"; -import { ConfigRecordKey } from "./db.js"; +import { + Logger, + RefreshReason, + TalerPreciseTimestamp, + encodeCrock, + getRandomBytes, + parseDevExperimentUri, +} from "@gnu-taler/taler-util"; +import { + ConfigRecordKey, + RefreshGroupRecord, + RefreshOperationStatus, + timestampPreciseToDb, +} from "./db.js"; import { InternalWalletState } from "./internal-wallet-state.js"; import { HttpRequestLibrary, @@ -54,6 +66,29 @@ export async function applyDevExperiment( "can't handle devmode URI (other than enable-devmode) unless devmode is active", ); } + + if (parsedUri.devExperimentId == "insert-pending-refresh") { + await ws.db.runReadWriteTx(["refreshGroups"], async (tx) => { + const refreshGroupId = encodeCrock(getRandomBytes(32)); + const newRg: RefreshGroupRecord = { + currency: "DEVKUDOS", + expectedOutputPerCoin: [], + inputPerCoin: [], + oldCoinPubs: [], + operationStatus: RefreshOperationStatus.Pending, + reason: RefreshReason.Manual, + refreshGroupId, + statusPerCoin: [], + timestampCreated: timestampPreciseToDb(TalerPreciseTimestamp.now()), + timestampFinished: undefined, + originatingTransactionId: undefined, + infoPerExchange: {}, + }; + await tx.refreshGroups.put(newRg); + }); + return; + } + throw Error(`dev-experiment id not understood ${parsedUri.devExperimentId}`); } -- cgit v1.2.3