gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] 02/04: wallet-core: long-polling


From: gnunet
Subject: [taler-wallet-core] 02/04: wallet-core: long-polling
Date: Tue, 20 Feb 2024 19:57:15 +0100

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

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

commit ba3e64470ae035c431ca8107ed547269e7307c4a
Author: Florian Dold <florian@dold.me>
AuthorDate: Tue Feb 20 16:15:18 2024 +0100

    wallet-core: long-polling
---
 packages/taler-harness/src/integrationtests/test-deposit.ts | 1 +
 packages/taler-wallet-core/src/deposits.ts                  | 7 +++++--
 packages/taler-wallet-core/src/pay-peer-pull-credit.ts      | 9 +++++----
 packages/taler-wallet-core/src/pay-peer-push-credit.ts      | 5 +++--
 packages/taler-wallet-core/src/pay-peer-push-debit.ts       | 4 ++--
 5 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/packages/taler-harness/src/integrationtests/test-deposit.ts 
b/packages/taler-harness/src/integrationtests/test-deposit.ts
index fa5750d0c..84b693eae 100644
--- a/packages/taler-harness/src/integrationtests/test-deposit.ts
+++ b/packages/taler-harness/src/integrationtests/test-deposit.ts
@@ -90,6 +90,7 @@ export async function runDepositTest(t: GlobalTestState) {
 
   await depositTrack;
 
+  t.logStep("before-aggregator");
   await exchange.runAggregatorOnceWithTimetravel({
     timetravelMicroseconds: 1000 * 1000 * 60 * 60 * 3,
   });
diff --git a/packages/taler-wallet-core/src/deposits.ts 
b/packages/taler-wallet-core/src/deposits.ts
index f532dc136..38e8f04bb 100644
--- a/packages/taler-wallet-core/src/deposits.ts
+++ b/packages/taler-wallet-core/src/deposits.ts
@@ -889,7 +889,9 @@ async function processDepositGroupPendingTrack(
     });
     return TaskRunResult.finished();
   } else {
-    return TaskRunResult.longpollReturnedPending();
+    // Backing off until deposit long-polling works in the exchange.
+    return TaskRunResult.backoff();
+    // return TaskRunResult.longpollReturnedPending();
   }
 }
 
@@ -1134,7 +1136,8 @@ async function trackDeposit(
     wireHash,
   });
   url.searchParams.set("merchant_sig", sigResp.sig);
-  url.searchParams.set("timeout_ms", "30000");
+  // Not doing long-polling yet as it looks like it's broken in the exchange 
(2024-02-20)
+  // url.searchParams.set("timeout_ms", "30000");
   const httpResp = await ws.http.fetch(url.href, {
     method: "GET",
     cancellationToken,
diff --git a/packages/taler-wallet-core/src/pay-peer-pull-credit.ts 
b/packages/taler-wallet-core/src/pay-peer-pull-credit.ts
index d862a3b3a..6e4c2df70 100644
--- a/packages/taler-wallet-core/src/pay-peer-pull-credit.ts
+++ b/packages/taler-wallet-core/src/pay-peer-pull-credit.ts
@@ -409,7 +409,8 @@ async function queryPurseForPeerPullCredit(
       return TaskRunResult.backoff();
     }
     case HttpStatusCode.NotFound:
-      return TaskRunResult.backoff();
+      // FIXME: Maybe check error code? 404 could also mean something else.
+      return TaskRunResult.longpollReturnedPending();
   }
 
   const result = await readSuccessResponseJsonOrThrow(
@@ -493,7 +494,7 @@ async function longpollKycStatus(
   });
   if (
     kycStatusRes.status === HttpStatusCode.Ok ||
-    //FIXME: NoContent is not expected 
https://docs.taler.net/core/api-exchange.html#post--purses-$PURSE_PUB-merge
+    // FIXME: NoContent is not expected 
https://docs.taler.net/core/api-exchange.html#post--purses-$PURSE_PUB-merge
     // remove after the exchange is fixed or clarified
     kycStatusRes.status === HttpStatusCode.NoContent
   ) {
@@ -517,12 +518,12 @@ async function longpollKycStatus(
       },
     );
     notifyTransition(ws, transactionId, transitionInfo);
+    return TaskRunResult.progress();
   } else if (kycStatusRes.status === HttpStatusCode.Accepted) {
-    // FIXME: Do we have to update the URL here?
+    return TaskRunResult.longpollReturnedPending();
   } else {
     throw Error(`unexpected response from kyc-check (${kycStatusRes.status})`);
   }
-  return TaskRunResult.backoff();
 }
 
 async function processPeerPullCreditAbortingDeletePurse(
diff --git a/packages/taler-wallet-core/src/pay-peer-push-credit.ts 
b/packages/taler-wallet-core/src/pay-peer-push-credit.ts
index ed1e09495..b574be36b 100644
--- a/packages/taler-wallet-core/src/pay-peer-push-credit.ts
+++ b/packages/taler-wallet-core/src/pay-peer-push-credit.ts
@@ -532,7 +532,7 @@ async function longpollKycStatus(
     `kyc-check/${kycInfo.requirementRow}/${kycInfo.paytoHash}/${userType}`,
     exchangeUrl,
   );
-  url.searchParams.set("timeout_ms", "10000");
+  url.searchParams.set("timeout_ms", "30000");
   logger.info(`kyc url ${url.href}`);
   const kycStatusRes = await ws.http.fetch(url.href, {
     method: "GET",
@@ -562,12 +562,13 @@ async function longpollKycStatus(
       },
     );
     notifyTransition(ws, transactionId, transitionInfo);
+    return TaskRunResult.progress();
   } else if (kycStatusRes.status === HttpStatusCode.Accepted) {
     // FIXME: Do we have to update the URL here?
+    return TaskRunResult.longpollReturnedPending();
   } else {
     throw Error(`unexpected response from kyc-check (${kycStatusRes.status})`);
   }
-  return TaskRunResult.backoff();
 }
 
 async function processPeerPushCreditKycRequired(
diff --git a/packages/taler-wallet-core/src/pay-peer-push-debit.ts 
b/packages/taler-wallet-core/src/pay-peer-push-debit.ts
index 355418601..9cfbe25c4 100644
--- a/packages/taler-wallet-core/src/pay-peer-push-debit.ts
+++ b/packages/taler-wallet-core/src/pay-peer-push-debit.ts
@@ -812,7 +812,7 @@ async function processPeerPushDebitReady(
           stTo: PeerPushDebitStatus.Done,
         },
       );
-      return TaskRunResult.finished();
+      return TaskRunResult.progress();
     }
   } else if (resp.status === HttpStatusCode.Gone) {
     logger.info(`purse ${pursePub} is gone, aborting peer-push-debit`);
@@ -865,7 +865,7 @@ async function processPeerPushDebitReady(
     return TaskRunResult.backoff();
   } else {
     logger.warn(`unexpected HTTP status for purse: ${resp.status}`);
-    return TaskRunResult.backoff();
+    return TaskRunResult.longpollReturnedPending();
   }
 }
 

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