diff options
author | Florian Dold <florian@dold.me> | 2021-05-12 13:34:49 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2021-05-12 13:35:04 +0200 |
commit | debc2254fdf1cf748a846e429e32c2e92d557080 (patch) | |
tree | 2387fbb74977b5c58786332703c8d61189214c00 /packages/taler-wallet-core/src/operations/backup | |
parent | 83b02069c931306c72c470e0285693719f65d0ca (diff) | |
download | wallet-core-debc2254fdf1cf748a846e429e32c2e92d557080.tar.xz |
towards backup based on add/remove set instead of clocks
Diffstat (limited to 'packages/taler-wallet-core/src/operations/backup')
3 files changed, 10 insertions, 8 deletions
diff --git a/packages/taler-wallet-core/src/operations/backup/export.ts b/packages/taler-wallet-core/src/operations/backup/export.ts index 07c7b9ece..4ccaf8f42 100644 --- a/packages/taler-wallet-core/src/operations/backup/export.ts +++ b/packages/taler-wallet-core/src/operations/backup/export.ts @@ -118,6 +118,7 @@ export async function exportBackup( timestamp_finish: wg.timestampFinish, withdrawal_group_id: wg.withdrawalGroupId, secret_seed: wg.secretSeed, + selected_denoms_id: wg.denomSelUid, }); }); @@ -160,6 +161,7 @@ export async function exportBackup( timestamp_created: tip.createdTimestamp, timestamp_expiration: tip.tipExpiration, tip_amount_raw: Amounts.stringify(tip.tipAmountRaw), + selected_denoms_uid: tip.denomSelUid, }); }); @@ -363,6 +365,7 @@ export async function exportBackup( nonce_priv: purch.noncePriv, merchant_sig: purch.download.contractData.merchantSig, total_pay_cost: Amounts.stringify(purch.totalPayCost), + pay_coins_uid: purch.payCoinSelectionUid, }); }); @@ -446,13 +449,11 @@ export async function exportBackup( const backupBlob: WalletBackupContentV1 = { schema_id: "gnu-taler-wallet-backup-content", schema_version: 1, - clocks: bs.clocks, exchanges: backupExchanges, wallet_root_pub: bs.walletRootPub, backup_providers: backupBackupProviders, current_device_id: bs.deviceId, proposals: backupProposals, - purchase_tombstones: [], purchases: backupPurchases, recoup_groups: backupRecoupGroups, refresh_groups: backupRefreshGroups, @@ -462,13 +463,13 @@ export async function exportBackup( trusted_exchanges: {}, intern_table: {}, error_reports: [], + tombstones: [], }; // If the backup changed, we increment our clock. let h = encodeCrock(hash(stringToBytes(canonicalJson(backupBlob)))); if (h != bs.lastBackupPlainHash) { - backupBlob.clocks[bs.deviceId] = ++bs.clocks[bs.deviceId]; bs.lastBackupPlainHash = encodeCrock( hash(stringToBytes(canonicalJson(backupBlob))), ); diff --git a/packages/taler-wallet-core/src/operations/backup/import.ts b/packages/taler-wallet-core/src/operations/backup/import.ts index e0ae379ab..931e6f92b 100644 --- a/packages/taler-wallet-core/src/operations/backup/import.ts +++ b/packages/taler-wallet-core/src/operations/backup/import.ts @@ -302,7 +302,9 @@ export async function importBackup( denomPubHash, ]); if (!existingDenom) { - logger.info(`importing backup denomination: ${j2s(backupDenomination)}`); + logger.info( + `importing backup denomination: ${j2s(backupDenomination)}`, + ); await tx.put(Stores.denominations, { denomPub: backupDenomination.denom_pub, @@ -446,6 +448,7 @@ export async function importBackup( timestampStart: backupWg.timestamp_created, timestampFinish: backupWg.timestamp_finish, withdrawalGroupId: backupWg.withdrawal_group_id, + denomSelUid: backupWg.selected_denoms_id, }); } } @@ -695,6 +698,7 @@ export async function importBackup( coinDepositPermissions: undefined, totalPayCost: Amounts.parseOrThrow(backupPurchase.total_pay_cost), refunds, + payCoinSelectionUid: backupPurchase.pay_coins_uid, }); } } @@ -801,6 +805,7 @@ export async function importBackup( tipAmountRaw: Amounts.parseOrThrow(backupTip.tip_amount_raw), tipExpiration: backupTip.timestamp_expiration, walletTipId: backupTip.wallet_tip_id, + denomSelUid: backupTip.selected_denoms_uid, }); } } diff --git a/packages/taler-wallet-core/src/operations/backup/index.ts b/packages/taler-wallet-core/src/operations/backup/index.ts index 49129d7de..b4c1a6c92 100644 --- a/packages/taler-wallet-core/src/operations/backup/index.ts +++ b/packages/taler-wallet-core/src/operations/backup/index.ts @@ -349,7 +349,6 @@ async function runBackupCycleForProvider( } prov.lastBackupHash = encodeCrock(currentBackupHash); prov.lastBackupTimestamp = getTimestampNow(); - prov.lastBackupClock = backupJson.clocks[backupJson.current_device_id]; prov.lastError = undefined; await tx.put(Stores.backupProviders, prov); }, @@ -372,7 +371,6 @@ async function runBackupCycleForProvider( return; } prov.lastBackupHash = encodeCrock(hash(backupEnc)); - prov.lastBackupClock = blob.clocks[blob.current_device_id]; prov.lastBackupTimestamp = getTimestampNow(); prov.lastError = undefined; await tx.put(Stores.backupProviders, prov); @@ -624,7 +622,6 @@ export async function getBackupInfo( for (const x of providerRecords) { providers.push({ active: x.active, - lastRemoteClock: x.lastBackupClock, syncProviderBaseUrl: x.baseUrl, lastBackupTimestamp: x.lastBackupTimestamp, paymentProposalIds: x.paymentProposalIds, @@ -696,7 +693,6 @@ async function backupRecoveryTheirs( for (const prov of providers) { prov.lastBackupTimestamp = undefined; prov.lastBackupHash = undefined; - prov.lastBackupClock = undefined; await tx.put(Stores.backupProviders, prov); } }, |