commit bcc864d5dc871cbe264ed7b4a000160873d018e2
parent d424216e5cacef7640c0a8b982071236578b2d61
Author: Florian Dold <florian@dold.me>
Date: Thu, 12 Sep 2024 03:09:05 +0200
wallet-core: add lpt param to deposit tracking longpoller
Diffstat:
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/packages/taler-harness/src/integrationtests/test-kyc-deposit-aggregate.ts b/packages/taler-harness/src/integrationtests/test-kyc-deposit-aggregate.ts
@@ -244,10 +244,6 @@ export async function runKycDepositAggregateTest(t: GlobalTestState) {
timetravelMicroseconds: 1000 * 1000 * 60 * 60 * 3,
});
- await exchange.runTransferOnceWithTimetravel({
- timetravelMicroseconds: 1000 * 1000 * 60 * 60 * 3,
- });
-
console.log("waiting for kyc-required");
await walletClient.call(WalletApiOperation.TestingWaitTransactionState, {
diff --git a/packages/taler-wallet-core/src/deposits.ts b/packages/taler-wallet-core/src/deposits.ts
@@ -962,7 +962,8 @@ async function processDepositGroupPendingKycAuth(
kycInfo.exchangeBaseUrl,
);
- url.searchParams.set("await_auth", "YES");
+ // lpt=1 => wait for the KYC auth transfer (access token available)
+ url.searchParams.set("lpt", "1");
const kycStatusRes = await wex.ws.runLongpollQueueing(
wex,
@@ -1202,6 +1203,7 @@ async function processDepositGroupPendingTrack(
"unable to refund deposit group without coin selection (selection missing)",
);
}
+ logger.trace(`tracking deposit group, status ${j2s(statusPerCoin)}`);
const { depositGroupId } = depositGroup;
const ctx = new DepositTransactionContext(wex, depositGroupId);
for (let i = 0; i < statusPerCoin.length; i++) {
@@ -1686,6 +1688,8 @@ async function trackDeposit(
url.hostname,
async (timeoutMs) => {
url.searchParams.set("timeout_ms", `${timeoutMs}`);
+ // wait for the a 202 state where kyc_ok is false or a 200 OK response
+ url.searchParams.set("lpt", `1`);
return await wex.http.fetch(url.href, {
method: "GET",
cancellationToken: wex.cancellationToken,
@@ -1699,6 +1703,7 @@ async function trackDeposit(
httpResp,
codecForTackTransactionAccepted(),
);
+ logger.trace(`deposits response: ${j2s(accepted)}`);
return { type: "accepted", ...accepted };
}
case HttpStatusCode.Ok: {