diff options
author | Florian Dold <florian@dold.me> | 2021-05-12 15:26:15 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2021-05-12 15:26:15 +0200 |
commit | b1500241f7672c8f73047014c55ff723595c3d13 (patch) | |
tree | 24e3adc1593385a8059eee2a27431f0b1cca2b3d | |
parent | 4fdcaab6325289fd8525fc9e63c8c86b07131376 (diff) |
tombstones
-rw-r--r-- | packages/taler-util/src/backupTypes.ts | 15 | ||||
-rw-r--r-- | packages/taler-wallet-core/src/db.ts | 14 |
2 files changed, 22 insertions, 7 deletions
diff --git a/packages/taler-util/src/backupTypes.ts b/packages/taler-util/src/backupTypes.ts index 1980bfb4e..e0b12a064 100644 --- a/packages/taler-util/src/backupTypes.ts +++ b/packages/taler-util/src/backupTypes.ts @@ -155,7 +155,8 @@ export interface WalletBackupContentV1 { purchases: BackupPurchase[]; /** - * All backup providers. + * All backup providers. Backup providers + * in this list should be considered "active". * * Sorted by the provider base URL. */ @@ -195,16 +196,16 @@ export interface WalletBackupContentV1 { error_reports: BackupErrorReport[]; /** - * Deletion tombstones. Sorted by (type, id) - * in ascending order. + * Deletion tombstones. Lexically sorted. */ tombstones: Tombstone[]; } -export interface Tombstone { - type: string; - id: string; -} + +/** + * Tombstone in the format "<type>:<key>" + */ +export type Tombstone = string; /** * Detailed error report. diff --git a/packages/taler-wallet-core/src/db.ts b/packages/taler-wallet-core/src/db.ts index 946e71e10..7a7c36561 100644 --- a/packages/taler-wallet-core/src/db.ts +++ b/packages/taler-wallet-core/src/db.ts @@ -1695,6 +1695,13 @@ export interface GhostDepositGroupRecord { }[]; } +export interface TombstoneRecord { + /** + * Tombstone ID, with the syntax "<type>:<key>". + */ + id: string; +} + class ExchangesStore extends Store<"exchanges", ExchangeRecord> { constructor() { super("exchanges", { keyPath: "baseUrl" }); @@ -1877,6 +1884,12 @@ class DepositGroupsStore extends Store<"depositGroups", DepositGroupRecord> { } } +class TombstonesStore extends Store<"tombstones", TombstoneRecord> { + constructor() { + super("tombstones", { keyPath: "id" }); + } +} + /** * The stores and indices for the wallet database. */ @@ -1904,6 +1917,7 @@ export const Stores = { bankWithdrawUris: new BankWithdrawUrisStore(), backupProviders: new BackupProvidersStore(), depositGroups: new DepositGroupsStore(), + tombstones: new TombstonesStore(), ghostDepositGroups: new Store<"ghostDepositGroups", GhostDepositGroupRecord>( "ghostDepositGroups", { |