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 ":" + */ +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 ":". + */ + 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", {