gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-wallet-core] branch master updated (f0ab1449 -> 4414f738)


From: gnunet
Subject: [taler-wallet-core] branch master updated (f0ab1449 -> 4414f738)
Date: Fri, 21 May 2021 11:47:28 +0200

This is an automated email from the git hooks/post-receive script.

dold pushed a change to branch master
in repository wallet-core.

    from f0ab1449 fixed width for popup, fixed url redirect on manual taler 
link lookup, fixed uncontrolled checkbox handling
     new 6b1aea42 tombstone processing in backup import
     new 4414f738 tag tests

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../src/integrationtests/test-pay-abort.ts         |  2 +
 .../src/integrationtests/test-pay-paid.ts          |  2 +
 .../src/integrationtests/test-payment-claim.ts     |  6 +-
 .../src/integrationtests/test-payment-fault.ts     |  2 +
 .../integrationtests/test-payment-idempotency.ts   |  2 +
 .../src/integrationtests/test-payment-multiple.ts  |  2 +
 .../src/integrationtests/test-payment-transient.ts | 10 ++-
 .../src/integrationtests/test-payment.ts           |  2 +
 .../src/integrationtests/test-paywall-flow.ts      |  2 +
 .../src/integrationtests/test-refund-auto.ts       |  2 +
 .../src/integrationtests/test-refund-gone.ts       |  2 +
 .../integrationtests/test-refund-incremental.ts    |  2 +
 .../src/integrationtests/test-refund.ts            |  2 +
 .../src/integrationtests/test-revocation.ts        |  1 +
 .../test-timetravel-autorefresh.ts                 |  2 +
 .../integrationtests/test-timetravel-withdraw.ts   |  2 +
 .../src/integrationtests/test-tipping.ts           |  2 +
 .../integrationtests/test-wallet-backup-basic.ts   |  2 +
 .../test-wallet-backup-doublespend.ts              |  2 +
 .../src/integrationtests/test-wallettesting.ts     |  2 +
 .../integrationtests/test-withdrawal-abort-bank.ts |  2 +
 .../test-withdrawal-bank-integrated.ts             |  2 +
 .../src/integrationtests/test-withdrawal-manual.ts |  2 +
 packages/taler-wallet-core/src/db.ts               |  5 ++
 .../src/operations/backup/import.ts                | 78 ++++++++++++++++++++++
 .../src/operations/backup/state.ts                 |  3 -
 .../src/operations/transactions.ts                 |  2 +-
 27 files changed, 137 insertions(+), 8 deletions(-)

diff --git a/packages/taler-wallet-cli/src/integrationtests/test-pay-abort.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-pay-abort.ts
index 1a4219a9..4d0ea489 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-pay-abort.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-pay-abort.ts
@@ -151,3 +151,5 @@ export async function runPayAbortTest(t: GlobalTestState) {
 
   t.assertDeepEqual(txTypes, ["withdrawal", "payment", "refund"]);
 }
+
+runPayAbortTest.suites = ["wallet"];
\ No newline at end of file
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-pay-paid.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-pay-paid.ts
index 575228a8..a4f09855 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-pay-paid.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-pay-paid.ts
@@ -209,3 +209,5 @@ export async function runPayPaidTest(t: GlobalTestState) {
   t.assertTrue(numPaidRequested == 1);
   t.assertTrue(numPayRequested == 0);
 }
+
+runPayPaidTest.suites = ["wallet"];
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-payment-claim.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-payment-claim.ts
index a26b6724..5a8adc96 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-payment-claim.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-payment-claim.ts
@@ -19,9 +19,7 @@
  */
 import { GlobalTestState, MerchantPrivateApi, WalletCli } from "./harness";
 import { createSimpleTestkudosEnvironment, withdrawViaBank } from "./helpers";
-import {
-  PreparePayResultType,
-} from "@gnu-taler/taler-util";
+import { PreparePayResultType } from "@gnu-taler/taler-util";
 import { TalerErrorCode } from "@gnu-taler/taler-util";
 
 /**
@@ -105,3 +103,5 @@ export async function runPaymentClaimTest(t: 
GlobalTestState) {
 
   await t.shutdown();
 }
+
+runPaymentClaimTest.suites = ["wallet"];
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-payment-fault.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-payment-fault.ts
index d467eb66..18ae72a6 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-payment-fault.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-payment-fault.ts
@@ -208,3 +208,5 @@ export async function runPaymentFaultTest(t: 
GlobalTestState) {
 
   t.assertTrue(orderStatus.order_status === "paid");
 }
+
+runPaymentFaultTest.suites = ["wallet"];
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-payment-idempotency.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-payment-idempotency.ts
index 4d7d5f95..061fe511 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-payment-idempotency.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-payment-idempotency.ts
@@ -101,3 +101,5 @@ export async function runPaymentIdempotencyTest(t: 
GlobalTestState) {
 
   await t.shutdown();
 }
+
+runPaymentIdempotencyTest.suites = ["wallet"];
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-payment-multiple.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-payment-multiple.ts
index 6d05df33..1dfbe4db 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-payment-multiple.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-payment-multiple.ts
@@ -158,3 +158,5 @@ export async function runPaymentMultipleTest(t: 
GlobalTestState) {
 
   await t.shutdown();
 }
+
+runPaymentMultipleTest.suites = ["wallet"];
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-payment-transient.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-payment-transient.ts
index 8825def7..0733cd03 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-payment-transient.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-payment-transient.ts
@@ -27,7 +27,13 @@ import {
   FaultInjectionRequestContext,
   FaultInjectionResponseContext,
 } from "./faultInjection";
-import { codecForMerchantOrderStatusUnpaid, ConfirmPayResultType, 
PreparePayResultType, TalerErrorCode, TalerErrorDetails } from 
"@gnu-taler/taler-util";
+import {
+  codecForMerchantOrderStatusUnpaid,
+  ConfirmPayResultType,
+  PreparePayResultType,
+  TalerErrorCode,
+  TalerErrorDetails,
+} from "@gnu-taler/taler-util";
 import { URL } from "@gnu-taler/taler-wallet-core";
 
 /**
@@ -163,3 +169,5 @@ export async function runPaymentTransientTest(t: 
GlobalTestState) {
     );
   }
 }
+
+runPaymentTransientTest.suites = ["wallet"];
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-payment.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-payment.ts
index 68713fd9..3512ff04 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-payment.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-payment.ts
@@ -51,3 +51,5 @@ export async function runPaymentTest(t: GlobalTestState) {
 
   await wallet.runUntilDone();
 }
+
+runPaymentTest.suites = ["wallet"];
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-paywall-flow.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-paywall-flow.ts
index 85bcbfd0..ba4ef291 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-paywall-flow.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-paywall-flow.ts
@@ -231,3 +231,5 @@ export async function runPaywallFlowTest(t: 
GlobalTestState) {
 
   t.assertTrue(pubUnpaidStatus.already_paid_order_id === firstOrderId);
 }
+
+runPaywallFlowTest.suites = ["wallet"];
\ No newline at end of file
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-refund-auto.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-refund-auto.ts
index 1b3fb285..36bdfac2 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-refund-auto.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-refund-auto.ts
@@ -98,3 +98,5 @@ export async function runRefundAutoTest(t: GlobalTestState) {
 
   await t.shutdown();
 }
+
+runRefundAutoTest.suites = ["wallet"];
\ No newline at end of file
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-refund-gone.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-refund-gone.ts
index 7158a40a..abaa10f7 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-refund-gone.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-refund-gone.ts
@@ -125,3 +125,5 @@ export async function runRefundGoneTest(t: GlobalTestState) 
{
 
   await t.shutdown();
 }
+
+runRefundGoneTest.suites = ["wallet"];
\ No newline at end of file
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-refund-incremental.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-refund-incremental.ts
index 9f961b2b..4c046cbe 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-refund-incremental.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-refund-incremental.ts
@@ -188,3 +188,5 @@ export async function runRefundIncrementalTest(t: 
GlobalTestState) {
 
   await t.shutdown();
 }
+
+runRefundIncrementalTest.suites = ["wallet"];
\ No newline at end of file
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-refund.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-refund.ts
index b97b21b3..4c7d478b 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-refund.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-refund.ts
@@ -101,3 +101,5 @@ export async function runRefundTest(t: GlobalTestState) {
 
   await t.shutdown();
 }
+
+runRefundTest.suites = ["wallet"];
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-revocation.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-revocation.ts
index 6cd4174a..f6aad31c 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-revocation.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-revocation.ts
@@ -202,3 +202,4 @@ export async function runRevocationTest(t: GlobalTestState) 
{
 }
 
 runRevocationTest.timeoutMs = 120000;
+runRevocationTest.suites = ["wallet"];
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-timetravel-autorefresh.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-timetravel-autorefresh.ts
index c54f667a..a1a0defb 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-timetravel-autorefresh.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-timetravel-autorefresh.ts
@@ -201,3 +201,5 @@ export async function runTimetravelAutorefreshTest(t: 
GlobalTestState) {
 
   t.assertTrue(cpr.type === ConfirmPayResultType.Done);
 }
+
+runTimetravelAutorefreshTest.suites = ["wallet"];
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-timetravel-withdraw.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-timetravel-withdraw.ts
index 4af85585..0ddc6ab0 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-timetravel-withdraw.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-timetravel-withdraw.ts
@@ -88,3 +88,5 @@ export async function runTimetravelWithdrawTest(t: 
GlobalTestState) {
 
   // await wallet.runUntilDone({ maxRetries: 5 });
 }
+
+runTimetravelWithdrawTest.suites = ["wallet"];
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-tipping.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-tipping.ts
index a8947331..fbd7709e 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-tipping.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-tipping.ts
@@ -121,3 +121,5 @@ export async function runTippingTest(t: GlobalTestState) {
   await doTip();
   await doTip();
 }
+
+runTippingTest.suites = ["wallet", "wallet-tipping"];
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-basic.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-basic.ts
index dd448c87..3793a5d1 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-basic.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-basic.ts
@@ -139,3 +139,5 @@ export async function runWalletBackupBasicTest(t: 
GlobalTestState) {
     t.assertAmountEquals(bal2.balances[0].available, "TESTKUDOS:23.82");
   }
 }
+
+runWalletBackupBasicTest.suites = ["wallet", "wallet-backup"];
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-doublespend.ts
 
b/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-doublespend.ts
index b9bc30a9..c5d59077 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-doublespend.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-wallet-backup-doublespend.ts
@@ -145,3 +145,5 @@ export async function runWalletBackupDoublespendTest(t: 
GlobalTestState) {
     await wallet2.runUntilDone();
   }
 }
+
+runWalletBackupDoublespendTest.suites = ["wallet", "wallet-backup"];
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-wallettesting.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-wallettesting.ts
index 65d8aea2..68d2c726 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-wallettesting.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-wallettesting.ts
@@ -163,3 +163,5 @@ export async function runWallettestingTest(t: 
GlobalTestState) {
 
   await t.shutdown();
 }
+
+runWallettestingTest.suites = ["wallet"];
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-abort-bank.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-abort-bank.ts
index 6cd508b2..bfffa23b 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-abort-bank.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-abort-bank.ts
@@ -65,3 +65,5 @@ export async function runWithdrawalAbortBankTest(t: 
GlobalTestState) {
 
   await t.shutdown();
 }
+
+runWithdrawalAbortBankTest.suites = ["wallet"];
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-bank-integrated.ts
 
b/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-bank-integrated.ts
index 1a3268ad..12e594c4 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-bank-integrated.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-bank-integrated.ts
@@ -69,3 +69,5 @@ export async function runWithdrawalBankIntegratedTest(t: 
GlobalTestState) {
 
   await t.shutdown();
 }
+
+runWithdrawalBankIntegratedTest.suites = ["wallet"];
diff --git 
a/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-manual.ts 
b/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-manual.ts
index 5921510b..97ea6892 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-manual.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-withdrawal-manual.ts
@@ -76,3 +76,5 @@ export async function runTestWithdrawalManualTest(t: 
GlobalTestState) {
 
   await t.shutdown();
 }
+
+runTestWithdrawalManualTest.suites = ["wallet"];
diff --git a/packages/taler-wallet-core/src/db.ts 
b/packages/taler-wallet-core/src/db.ts
index 609f43ea..0ff34d3c 100644
--- a/packages/taler-wallet-core/src/db.ts
+++ b/packages/taler-wallet-core/src/db.ts
@@ -1546,6 +1546,11 @@ export interface BackupProviderTerms {
 }
 
 export interface BackupProviderRecord {
+  /**
+   * Base URL of the provider.
+   * 
+   * Primary key for the record.
+   */
   baseUrl: string;
 
   /**
diff --git a/packages/taler-wallet-core/src/operations/backup/import.ts 
b/packages/taler-wallet-core/src/operations/backup/import.ts
index 931e6f92..1bbba6e2 100644
--- a/packages/taler-wallet-core/src/operations/backup/import.ts
+++ b/packages/taler-wallet-core/src/operations/backup/import.ts
@@ -55,6 +55,7 @@ import { Logger } from "../../util/logging";
 import { initRetryInfo } from "../../util/retries";
 import { InternalWalletState } from "../state";
 import { provideBackupState } from "./state";
+import { makeEventId, TombstoneTag } from "../transactions.js";
 
 const logger = new Logger("operations/backup/import.ts");
 
@@ -121,6 +122,7 @@ async function recoverPayCoinSelection(
       if (wireFee) {
         totalWireFee = Amounts.add(totalWireFee, wireFee).amount;
       }
+      coveredExchanges.add(coinRecord.exchangeBaseUrl);
     }
   }
 
@@ -226,6 +228,8 @@ export async function importBackup(
       Stores.recoupGroups,
       Stores.reserves,
       Stores.withdrawalGroups,
+      Stores.tombstones,
+      Stores.depositGroups,
     ],
     async (tx) => {
       // FIXME: validate schema!
@@ -233,6 +237,14 @@ export async function importBackup(
 
       // FIXME: validate version
 
+      for (const tombstone of backupBlob.tombstones) {
+        await tx.put(Stores.tombstones, {
+          id: tombstone,
+        });
+      }
+
+      const tombstoneSet = new Set(backupBlob.tombstones);
+
       for (const backupExchange of backupBlob.exchanges) {
         const existingExchange = await tx.get(
           Stores.exchanges,
@@ -381,6 +393,10 @@ export async function importBackup(
         for (const backupReserve of backupExchange.reserves) {
           const reservePub =
             cryptoComp.reservePrivToPub[backupReserve.reserve_priv];
+          const ts = makeEventId(TombstoneTag.DeleteReserve, reservePub);
+          if (tombstoneSet.has(ts)) {
+            continue;
+          }
           checkLogicInvariant(!!reservePub);
           const existingReserve = await tx.get(Stores.reserves, reservePub);
           const instructedAmount = Amounts.parseOrThrow(
@@ -426,6 +442,13 @@ export async function importBackup(
             });
           }
           for (const backupWg of backupReserve.withdrawal_groups) {
+            const ts = makeEventId(
+              TombstoneTag.DeleteWithdrawalGroup,
+              backupWg.withdrawal_group_id,
+            );
+            if (tombstoneSet.has(ts)) {
+              continue;
+            }
             const existingWg = await tx.get(
               Stores.withdrawalGroups,
               backupWg.withdrawal_group_id,
@@ -456,6 +479,13 @@ export async function importBackup(
       }
 
       for (const backupProposal of backupBlob.proposals) {
+        const ts = makeEventId(
+          TombstoneTag.DeletePayment,
+          backupProposal.proposal_id,
+        );
+        if (tombstoneSet.has(ts)) {
+          continue;
+        }
         const existingProposal = await tx.get(
           Stores.proposals,
           backupProposal.proposal_id,
@@ -555,6 +585,13 @@ export async function importBackup(
       }
 
       for (const backupPurchase of backupBlob.purchases) {
+        const ts = makeEventId(
+          TombstoneTag.DeletePayment,
+          backupPurchase.proposal_id,
+        );
+        if (tombstoneSet.has(ts)) {
+          continue;
+        }
         const existingPurchase = await tx.get(
           Stores.purchases,
           backupPurchase.proposal_id,
@@ -704,6 +741,13 @@ export async function importBackup(
       }
 
       for (const backupRefreshGroup of backupBlob.refresh_groups) {
+        const ts = makeEventId(
+          TombstoneTag.DeleteRefreshGroup,
+          backupRefreshGroup.refresh_group_id,
+        );
+        if (tombstoneSet.has(ts)) {
+          continue;
+        }
         const existingRg = await tx.get(
           Stores.refreshGroups,
           backupRefreshGroup.refresh_group_id,
@@ -783,6 +827,10 @@ export async function importBackup(
       }
 
       for (const backupTip of backupBlob.tips) {
+        const ts = makeEventId(TombstoneTag.DeleteTip, 
backupTip.wallet_tip_id);
+        if (tombstoneSet.has(ts)) {
+          continue;
+        }
         const existingTip = await tx.get(Stores.tips, backupTip.wallet_tip_id);
         if (!existingTip) {
           const denomsSel = await getDenomSelStateFromBackup(
@@ -809,6 +857,36 @@ export async function importBackup(
           });
         }
       }
+
+      // We now process tombstones.
+      // The import code above should already prevent
+      // importing things that are tombstoned,
+      // but we do tombstone processing last just to be sure.
+
+      for (const tombstone of backupBlob.tombstones) {
+        const [type, ...rest] = tombstone.split(":");
+        if (type === TombstoneTag.DeleteDepositGroup) {
+          await tx.delete(Stores.depositGroups, rest[0]);
+        } else if (type === TombstoneTag.DeletePayment) {
+          await tx.delete(Stores.purchases, rest[0]);
+          await tx.delete(Stores.proposals, rest[0]);
+        } else if (type === TombstoneTag.DeleteRefreshGroup) {
+          await tx.delete(Stores.refreshGroups, rest[0]);
+        } else if (type === TombstoneTag.DeleteRefund) {
+          // Nothing required, will just prevent display
+          // in the transactions list
+        } else if (type === TombstoneTag.DeleteReserve) {
+          // FIXME:  Once we also have account (=kyc) reserves,
+          // we need to check if the reserve is an account before deleting here
+          await tx.delete(Stores.reserves, rest[0]);
+        } else if (type === TombstoneTag.DeleteTip) {
+          await tx.delete(Stores.tips, rest[0]);
+        } else if (type === TombstoneTag.DeleteWithdrawalGroup) {
+          await tx.delete(Stores.withdrawalGroups, rest[0]);
+        } else {
+          logger.warn(`unable to process tombstone of type '${type}'`);
+        }
+      }
     },
   );
 }
diff --git a/packages/taler-wallet-core/src/operations/backup/state.ts 
b/packages/taler-wallet-core/src/operations/backup/state.ts
index 686c307a..e2a0f4cf 100644
--- a/packages/taler-wallet-core/src/operations/backup/state.ts
+++ b/packages/taler-wallet-core/src/operations/backup/state.ts
@@ -28,9 +28,6 @@ export interface WalletBackupConfState {
 
   /**
    * Last hash of the canonicalized plain-text backup.
-   *
-   * Used to determine whether the wallet's content changed
-   * and we need to bump the clock.
    */
   lastBackupPlainHash?: string;
 
diff --git a/packages/taler-wallet-core/src/operations/transactions.ts 
b/packages/taler-wallet-core/src/operations/transactions.ts
index 02550a11..70cd7496 100644
--- a/packages/taler-wallet-core/src/operations/transactions.ts
+++ b/packages/taler-wallet-core/src/operations/transactions.ts
@@ -42,7 +42,7 @@ import { getFundingPaytoUris } from "./reserves";
 /**
  * Create an event ID from the type and the primary key for the event.
  */
-function makeEventId(
+export function makeEventId(
   type: TransactionType | TombstoneTag,
   ...args: string[]
 ): string {

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]