[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.