gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] 01/02: run pending operations at least once, style f


From: gnunet
Subject: [taler-wallet-core] 01/02: run pending operations at least once, style fixes
Date: Thu, 19 Aug 2021 16:06:16 +0200

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

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

commit c0e6b6d0f66508ebc8d33502d1281cb48a1c9cc6
Author: Florian Dold <florian@dold.me>
AuthorDate: Thu Aug 19 15:12:33 2021 +0200

    run pending operations at least once, style fixes
---
 packages/taler-wallet-cli/src/index.ts                 |  1 +
 .../taler-wallet-cli/src/integrationtests/harness.ts   |  1 +
 .../integrationtests/test-timetravel-autorefresh.ts    |  3 +++
 packages/taler-wallet-core/src/operations/refresh.ts   | 12 +++++++++++-
 packages/taler-wallet-core/src/operations/withdraw.ts  | 18 +++++++++---------
 packages/taler-wallet-core/src/wallet.ts               |  8 ++------
 packages/taler-wallet-embedded/src/index.ts            |  2 +-
 packages/taler-wallet-webextension/src/wxBackend.ts    | 12 +++++++-----
 8 files changed, 35 insertions(+), 22 deletions(-)

diff --git a/packages/taler-wallet-cli/src/index.ts 
b/packages/taler-wallet-cli/src/index.ts
index 796b6ae1..68e42bd0 100644
--- a/packages/taler-wallet-cli/src/index.ts
+++ b/packages/taler-wallet-cli/src/index.ts
@@ -1065,5 +1065,6 @@ export function main() {
     logger.warn("Allowing withdrawal of late denominations for debugging");
     walletCoreDebugFlags.denomselAllowLate = true;
   }
+  logger.trace(`running wallet-cli with`, process.argv);
   walletCli.run();
 }
diff --git a/packages/taler-wallet-cli/src/integrationtests/harness.ts 
b/packages/taler-wallet-cli/src/integrationtests/harness.ts
index c9c576eb..305e46e5 100644
--- a/packages/taler-wallet-cli/src/integrationtests/harness.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/harness.ts
@@ -1620,6 +1620,7 @@ export class WalletCli {
     const self = this;
     this._client = {
       async call(op: any, payload: any): Promise<any> {
+        console.log("calling wallet with timetravel arg", self.timetravelArg);
         const resp = await sh(
           self.globalTestState,
           `wallet-${self.name}`,
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 bee7581b..bad82119 100644
--- 
a/packages/taler-wallet-cli/src/integrationtests/test-timetravel-autorefresh.ts
+++ 
b/packages/taler-wallet-cli/src/integrationtests/test-timetravel-autorefresh.ts
@@ -62,6 +62,7 @@ async function applyTimeTravel(
   }
 
   if (s.wallet) {
+    console.log("setting wallet time travel to", timetravelDuration);
     s.wallet.setTimetravel(timetravelDuration);
   }
 }
@@ -139,6 +140,7 @@ export async function runTimetravelAutorefreshTest(t: 
GlobalTestState) {
 
   // Travel into the future, the deposit expiration is two years
   // into the future.
+  console.log("applying first time travel");
   await applyTimeTravel(durationFromSpec({ days: 400 }), {
     wallet,
     exchange,
@@ -164,6 +166,7 @@ export async function runTimetravelAutorefreshTest(t: 
GlobalTestState) {
 
   // Travel into the future, the deposit expiration is two years
   // into the future.
+  console.log("applying second time travel");
   await applyTimeTravel(durationFromSpec({ years: 2, months: 6 }), {
     wallet,
     exchange,
diff --git a/packages/taler-wallet-core/src/operations/refresh.ts 
b/packages/taler-wallet-core/src/operations/refresh.ts
index 2549b140..20b07d44 100644
--- a/packages/taler-wallet-core/src/operations/refresh.ts
+++ b/packages/taler-wallet-core/src/operations/refresh.ts
@@ -147,6 +147,7 @@ async function refreshCreateSession(
     throw Error("db inconsistent: exchange of coin not found");
   }
 
+
   const { availableAmount, availableDenoms } = await ws.db
     .mktx((x) => ({
       denominations: x.denominations,
@@ -161,6 +162,7 @@ async function refreshCreateSession(
         throw Error("db inconsistent: denomination for coin not found");
       }
 
+      // FIXME: use an index here, based on the withdrawal expiration time.
       const availableDenoms: DenominationRecord[] = await 
tx.denominations.indexes.byExchangeBaseUrl
         .iter(exchange.baseUrl)
         .toArray();
@@ -913,7 +915,15 @@ export async function autoRefresh(
         }
       }
       if (refreshCoins.length > 0) {
-        await createRefreshGroup(ws, tx, refreshCoins, 
RefreshReason.Scheduled);
+        const res = await createRefreshGroup(
+          ws,
+          tx,
+          refreshCoins,
+          RefreshReason.Scheduled,
+        );
+        logger.info(
+          `created refresh group for auto-refresh (${res.refreshGroupId})`,
+        );
       }
       logger.info(
         `current wallet time: ${timestampToIsoString(getTimestampNow())}`,
diff --git a/packages/taler-wallet-core/src/operations/withdraw.ts 
b/packages/taler-wallet-core/src/operations/withdraw.ts
index 44e62611..81c35c17 100644
--- a/packages/taler-wallet-core/src/operations/withdraw.ts
+++ b/packages/taler-wallet-core/src/operations/withdraw.ts
@@ -17,7 +17,6 @@
 /**
  * Imports.
  */
-import * as LibtoolVersion from "@gnu-taler/taler-util";
 import {
   AmountJson,
   Amounts,
@@ -41,6 +40,7 @@ import {
   WithdrawResponse,
   URL,
   WithdrawUriInfoResponse,
+  VersionMatchResult,
 } from "@gnu-taler/taler-util";
 import {
   CoinRecord,
@@ -143,7 +143,7 @@ interface ExchangeWithdrawDetails {
    *
    * Older exchanges don't return version information.
    */
-  versionMatch: LibtoolVersion.VersionMatchResult | undefined;
+  versionMatch: VersionMatchResult | undefined;
 
   /**
    * Libtool-style version string for the exchange or "unknown"
@@ -693,15 +693,15 @@ export async function updateWithdrawalDenoms(
   while (current < denominations.length) {
     const updatedDenominations: DenominationRecord[] = [];
     // Do a batch of batchSize
-    for (let batchIdx = 0; batchIdx < batchSize; batchIdx++) {
-      current++;
-      if (current >= denominations.length) {
-        break;
-      }
+    for (
+      let batchIdx = 0;
+      batchIdx < batchSize && current < denominations.length;
+      batchIdx++, current++
+    ) {
       const denom = denominations[current];
       if (denom.status === DenominationStatus.Unverified) {
         logger.trace(
-          `Validation denomination (${current + 1}/${
+          `Validating denomination (${current + 1}/${
             denominations.length
           }) signature of ${denom.denomPubHash}`,
         );
@@ -939,7 +939,7 @@ export async function getExchangeWithdrawalInfo(
 
   let versionMatch;
   if (exchangeDetails.protocolVersion) {
-    versionMatch = LibtoolVersion.compare(
+    versionMatch = compare(
       WALLET_EXCHANGE_PROTOCOL_VERSION,
       exchangeDetails.protocolVersion,
     );
diff --git a/packages/taler-wallet-core/src/wallet.ts 
b/packages/taler-wallet-core/src/wallet.ts
index 3c3da3ce..fec7e615 100644
--- a/packages/taler-wallet-core/src/wallet.ts
+++ b/packages/taler-wallet-core/src/wallet.ts
@@ -333,7 +333,7 @@ async function runTaskLoop(
       }
     }
 
-    if (opts.stopWhenDone && numGivingLiveness === 0) {
+    if (opts.stopWhenDone && numGivingLiveness === 0 && iteration !== 0) {
       logger.warn(`stopping, as no pending operations have lifeness`);
       return;
     }
@@ -970,15 +970,11 @@ export class Wallet {
     this.ws.stop();
   }
 
-  runRetryLoop(): Promise<void> {
-    return runTaskLoop(this.ws);
-  }
-
   runPending(forceNow: boolean = false) {
     return runPending(this.ws, forceNow);
   }
 
-  runTaskLoop(opts: RetryLoopOpts) {
+  runTaskLoop(opts?: RetryLoopOpts) {
     return runTaskLoop(this.ws, opts);
   }
 
diff --git a/packages/taler-wallet-embedded/src/index.ts 
b/packages/taler-wallet-embedded/src/index.ts
index 0dcfaad6..604375c7 100644
--- a/packages/taler-wallet-embedded/src/index.ts
+++ b/packages/taler-wallet-embedded/src/index.ts
@@ -179,7 +179,7 @@ class NativeWalletMessageHandler {
       const w = await getDefaultNodeWallet(this.walletArgs);
       this.maybeWallet = w;
       await w.handleCoreApiRequest("initWallet", "native-init", {});
-      w.runRetryLoop().catch((e) => {
+      w.runTaskLoop().catch((e) => {
         console.error("Error during wallet retry loop", e);
       });
       this.wp.resolve(w);
diff --git a/packages/taler-wallet-webextension/src/wxBackend.ts 
b/packages/taler-wallet-webextension/src/wxBackend.ts
index c41dd4fb..4004f04f 100644
--- a/packages/taler-wallet-webextension/src/wxBackend.ts
+++ b/packages/taler-wallet-webextension/src/wxBackend.ts
@@ -49,7 +49,7 @@ import { BrowserCryptoWorkerFactory } from 
"./browserCryptoWorkerFactory";
 /**
  * Currently active wallet instance.  Might be unloaded and
  * re-instantiated when the database is reset.
- * 
+ *
  * FIXME:  Maybe move the wallet resetting into the Wallet class?
  */
 let currentWallet: Wallet | undefined;
@@ -215,8 +215,10 @@ function makeSyncWalletRedirect(
 ): Record<string, unknown> {
   const innerUrl = new URL(chrome.extension.getURL(url));
   if (params) {
-    const hParams = Object.keys(params).map(k => `${k}=${params[k]}`).join('&')
-    innerUrl.hash = innerUrl.hash + '?' + hParams
+    const hParams = Object.keys(params)
+      .map((k) => `${k}=${params[k]}`)
+      .join("&");
+    innerUrl.hash = innerUrl.hash + "?" + hParams;
   }
   if (isFirefox()) {
     // Some platforms don't support the sync redirect (yet), so fall back to
@@ -272,8 +274,8 @@ async function reinitWallet(): Promise<void> {
       }
     }
   });
-  wallet.runRetryLoop().catch((e) => {
-    console.log("error during wallet retry loop", e);
+  wallet.runTaskLoop().catch((e) => {
+    console.log("error during wallet task loop", e);
   });
   // Useful for debugging in the background page.
   (window as any).talerWallet = wallet;

-- 
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]