taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

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:
Mpackages/taler-harness/src/integrationtests/test-kyc-deposit-aggregate.ts | 4----
Mpackages/taler-wallet-core/src/deposits.ts | 7++++++-
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: {