aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/operations/backup
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2023-05-26 12:19:32 +0200
committerFlorian Dold <florian@dold.me>2023-05-26 12:19:32 +0200
commitcd8f76db61f4a1ab1a8a8a4d29b2f3e863b59854 (patch)
tree423ed7c6fc42ec5e05f655eb093b3b4bdc885996 /packages/taler-wallet-core/src/operations/backup
parent557dcec30db6573c5d11ca26432008ac6621642e (diff)
downloadwallet-core-cd8f76db61f4a1ab1a8a8a4d29b2f3e863b59854.tar.xz
taler-util,wallet-core: implement TalerPreciseTimestamp
Fixes #7703
Diffstat (limited to 'packages/taler-wallet-core/src/operations/backup')
-rw-r--r--packages/taler-wallet-core/src/operations/backup/export.ts5
-rw-r--r--packages/taler-wallet-core/src/operations/backup/import.ts5
-rw-r--r--packages/taler-wallet-core/src/operations/backup/index.ts21
3 files changed, 17 insertions, 14 deletions
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))],
});