diff options
author | Florian Dold <florian@dold.me> | 2024-01-29 22:20:57 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2024-01-29 22:20:57 +0100 |
commit | 95e87d8f4863f3db37504e78913381f775f8f73a (patch) | |
tree | 0d5f1527ba9cbb596b99e5256b0aaeac9f204cab /packages/taler-wallet-core/src/dev-experiments.ts | |
parent | 2c9c3d4cdf3f59eabbb47327f78966b781d77256 (diff) | |
download | wallet-core-95e87d8f4863f3db37504e78913381f775f8f73a.tar.xz |
wallet-core: create dev experiment for pending refresh
Diffstat (limited to 'packages/taler-wallet-core/src/dev-experiments.ts')
-rw-r--r-- | packages/taler-wallet-core/src/dev-experiments.ts | 39 |
1 files changed, 37 insertions, 2 deletions
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}`); } |