taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit cc795f350a8827b97b792e09a031f950e84e426a
parent 6e11b69cf5beb25fec1dfdff281877a76bf195a4
Author: Florian Dold <florian@dold.me>
Date:   Mon, 14 Jun 2021 11:45:05 +0200

store ToS acceptance timestamp, remove unused backup attributes

Diffstat:
Mpackages/taler-util/src/backupTypes.ts | 14+++-----------
Mpackages/taler-wallet-core/src/db.ts | 9++++++++-
Mpackages/taler-wallet-core/src/operations/backup/export.ts | 4++--
Mpackages/taler-wallet-core/src/operations/backup/import.ts | 6++++--
Mpackages/taler-wallet-core/src/operations/exchanges.ts | 1+
5 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/packages/taler-util/src/backupTypes.ts b/packages/taler-util/src/backupTypes.ts @@ -807,12 +807,6 @@ export interface BackupPurchase { refunds: BackupRefundItem[]; /** - * Is the purchase considered defunct (either during payment - * or during abort if abort_status is set). - */ - defunct?: boolean; - - /** * Abort status of the payment. */ abort_status?: "abort-refund" | "abort-finished"; @@ -1006,8 +1000,6 @@ export interface BackupReserve { * Groups of withdrawal operations for this reserve. Typically just one. */ withdrawal_groups: BackupWithdrawalGroup[]; - - defective?: boolean; } /** @@ -1179,12 +1171,12 @@ export interface BackupExchangeDetails { /** * ETag for last terms of service download. */ - tos_etag_last: string | undefined; + tos_accepted_etag: string | undefined; /** - * ETag for last terms of service download. + * Timestamp when the ToS has been accepted. */ - tos_etag_accepted: string | undefined; + tos_accepted_timestamp: Timestamp | undefined; } export enum BackupProposalStatus { diff --git a/packages/taler-wallet-core/src/db.ts b/packages/taler-wallet-core/src/db.ts @@ -570,10 +570,17 @@ export interface ExchangeDetailsRecord { termsOfServiceLastEtag: string | undefined; /** - * ETag for last terms of service download. + * ETag for last terms of service accepted. */ termsOfServiceAcceptedEtag: string | undefined; + /** + * Timestamp when the ToS was accepted. + * + * Used during backup merging. + */ + termsOfServiceAcceptedTimestamp: Timestamp | undefined; + wireInfo: WireInfo; } diff --git a/packages/taler-wallet-core/src/operations/backup/export.ts b/packages/taler-wallet-core/src/operations/backup/export.ts @@ -311,8 +311,8 @@ export async function exportBackup( stamp_expire: x.stamp_expire, stamp_start: x.stamp_start, })), - tos_etag_accepted: ex.termsOfServiceAcceptedEtag, - tos_etag_last: ex.termsOfServiceLastEtag, + tos_accepted_etag: ex.termsOfServiceAcceptedEtag, + tos_accepted_timestamp: ex.termsOfServiceAcceptedTimestamp, denominations: backupDenominationsByExchange[ex.exchangeBaseUrl] ?? [], reserves: backupReservesByExchange[ex.exchangeBaseUrl] ?? [], diff --git a/packages/taler-wallet-core/src/operations/backup/import.ts b/packages/taler-wallet-core/src/operations/backup/import.ts @@ -297,9 +297,11 @@ export async function importBackup( } await tx.exchangeDetails.put({ exchangeBaseUrl: backupExchangeDetails.base_url, - termsOfServiceAcceptedEtag: backupExchangeDetails.tos_etag_accepted, + termsOfServiceAcceptedEtag: backupExchangeDetails.tos_accepted_etag, termsOfServiceText: undefined, - termsOfServiceLastEtag: backupExchangeDetails.tos_etag_last, + termsOfServiceLastEtag: undefined, + termsOfServiceAcceptedTimestamp: + backupExchangeDetails.tos_accepted_timestamp, wireInfo, currency: backupExchangeDetails.currency, auditors: backupExchangeDetails.auditors.map((x) => ({ diff --git a/packages/taler-wallet-core/src/operations/exchanges.ts b/packages/taler-wallet-core/src/operations/exchanges.ts @@ -496,6 +496,7 @@ async function updateExchangeFromUrlImpl( termsOfServiceText: tosDownload.tosText, termsOfServiceAcceptedEtag: undefined, termsOfServiceLastEtag: tosDownload.tosEtag, + termsOfServiceAcceptedTimestamp: getTimestampNow(), }; // FIXME: only update if pointer got updated r.lastError = undefined;