From cd8f76db61f4a1ab1a8a8a4d29b2f3e863b59854 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Fri, 26 May 2023 12:19:32 +0200 Subject: taler-util,wallet-core: implement TalerPreciseTimestamp Fixes #7703 --- .../src/operations/backup/export.ts | 5 +++-- .../src/operations/backup/import.ts | 5 +++-- .../src/operations/backup/index.ts | 21 +++++++++++---------- 3 files changed, 17 insertions(+), 14 deletions(-) (limited to 'packages/taler-wallet-core/src/operations/backup') diff --git a/packages/taler-wallet-core/src/operations/backup/export.ts b/packages/taler-wallet-core/src/operations/backup/export.ts index 7b245a4eb..ff5f1e177 100644 --- a/packages/taler-wallet-core/src/operations/backup/export.ts +++ b/packages/taler-wallet-core/src/operations/backup/export.ts @@ -62,6 +62,7 @@ import { Logger, stringToBytes, WalletBackupContentV1, + TalerPreciseTimestamp, } from "@gnu-taler/taler-util"; import { CoinSourceType, @@ -521,7 +522,7 @@ export async function exportBackup( }); }); - const ts = AbsoluteTime.toTimestamp(AbsoluteTime.now()); + const ts = TalerPreciseTimestamp.now(); if (!bs.lastBackupTimestamp) { bs.lastBackupTimestamp = ts; @@ -565,7 +566,7 @@ export async function exportBackup( bs.lastBackupNonce = encodeCrock(getRandomBytes(32)); logger.trace( `setting timestamp to ${AbsoluteTime.toIsoString( - AbsoluteTime.fromTimestamp(ts), + AbsoluteTime.fromPreciseTimestamp(ts), )} and nonce to ${bs.lastBackupNonce}`, ); await tx.config.put({ diff --git a/packages/taler-wallet-core/src/operations/backup/import.ts b/packages/taler-wallet-core/src/operations/backup/import.ts index 5375a58bb..6d78b2be0 100644 --- a/packages/taler-wallet-core/src/operations/backup/import.ts +++ b/packages/taler-wallet-core/src/operations/backup/import.ts @@ -35,6 +35,7 @@ import { PayCoinSelection, RefreshReason, TalerProtocolTimestamp, + TalerPreciseTimestamp, WalletBackupContentV1, WireInfo, } from "@gnu-taler/taler-util"; @@ -349,8 +350,8 @@ export async function importBackup( }, permanent: true, lastUpdate: undefined, - nextUpdate: TalerProtocolTimestamp.now(), - nextRefreshCheck: TalerProtocolTimestamp.now(), + nextUpdate: TalerPreciseTimestamp.now(), + nextRefreshCheck: TalerPreciseTimestamp.now(), lastKeysEtag: undefined, lastWireEtag: undefined, }); diff --git a/packages/taler-wallet-core/src/operations/backup/index.ts b/packages/taler-wallet-core/src/operations/backup/index.ts index 59e99b505..f726167da 100644 --- a/packages/taler-wallet-core/src/operations/backup/index.ts +++ b/packages/taler-wallet-core/src/operations/backup/index.ts @@ -71,6 +71,7 @@ import { TalerErrorCode, TalerErrorDetail, TalerProtocolTimestamp, + TalerPreciseTimestamp, URL, WalletBackupContentV1, } from "@gnu-taler/taler-util"; @@ -246,9 +247,9 @@ interface BackupForProviderArgs { backupProviderBaseUrl: string; } -function getNextBackupTimestamp(): TalerProtocolTimestamp { +function getNextBackupTimestamp(): TalerPreciseTimestamp { // FIXME: Randomize! - return AbsoluteTime.toTimestamp( + return AbsoluteTime.toPreciseTimestamp( AbsoluteTime.addDuration( AbsoluteTime.now(), durationFromSpec({ minutes: 5 }), @@ -329,7 +330,7 @@ async function runBackupCycleForProvider( if (!prov) { return; } - prov.lastBackupCycleTimestamp = TalerProtocolTimestamp.now(); + prov.lastBackupCycleTimestamp = TalerPreciseTimestamp.now(); prov.state = { tag: BackupProviderStateTag.Ready, nextBackupTimestamp: getNextBackupTimestamp(), @@ -442,7 +443,7 @@ async function runBackupCycleForProvider( return; } prov.lastBackupHash = encodeCrock(currentBackupHash); - prov.lastBackupCycleTimestamp = TalerProtocolTimestamp.now(); + prov.lastBackupCycleTimestamp = TalerPreciseTimestamp.now(); prov.state = { tag: BackupProviderStateTag.Ready, nextBackupTimestamp: getNextBackupTimestamp(), @@ -676,7 +677,7 @@ export async function addBackupProvider( if (req.activate) { oldProv.state = { tag: BackupProviderStateTag.Ready, - nextBackupTimestamp: TalerProtocolTimestamp.now(), + nextBackupTimestamp: TalerPreciseTimestamp.now(), }; logger.info("setting existing backup provider to active"); await tx.backupProviders.put(oldProv); @@ -698,7 +699,7 @@ export async function addBackupProvider( if (req.activate) { state = { tag: BackupProviderStateTag.Ready, - nextBackupTimestamp: TalerProtocolTimestamp.now(), + nextBackupTimestamp: TalerPreciseTimestamp.now(), }; } else { state = { @@ -773,8 +774,8 @@ export interface ProviderInfo { * Last communication issue with the provider. */ lastError?: TalerErrorDetail; - lastSuccessfulBackupTimestamp?: TalerProtocolTimestamp; - lastAttemptedBackupTimestamp?: TalerProtocolTimestamp; + lastSuccessfulBackupTimestamp?: TalerPreciseTimestamp; + lastAttemptedBackupTimestamp?: TalerPreciseTimestamp; paymentProposalIds: string[]; backupProblem?: BackupProblem; paymentStatus: ProviderPaymentStatus; @@ -894,7 +895,7 @@ async function getProviderPaymentInfo( return { type: ProviderPaymentType.Paid, paidUntil: AbsoluteTime.addDuration( - AbsoluteTime.fromTimestamp(status.contractTerms.timestamp), + AbsoluteTime.fromProtocolTimestamp(status.contractTerms.timestamp), durationFromSpec({ years: 1 }), //FIXME: take this from the contract term ), }; @@ -1010,7 +1011,7 @@ async function backupRecoveryTheirs( shouldRetryFreshProposal: false, state: { tag: BackupProviderStateTag.Ready, - nextBackupTimestamp: TalerProtocolTimestamp.now(), + nextBackupTimestamp: TalerPreciseTimestamp.now(), }, uids: [encodeCrock(getRandomBytes(32))], }); -- cgit v1.2.3