aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/taler-util/src/backupTypes.ts15
-rw-r--r--packages/taler-wallet-core/src/db.ts14
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",
{