[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-typescript-core] branch master updated: wallet-core: handle kyc-a
From: |
Admin |
Subject: |
[taler-typescript-core] branch master updated: wallet-core: handle kyc-auth response in initial kyc-check response |
Date: |
Tue, 03 Jun 2025 16:21:06 +0200 |
This is an automated email from the git hooks/post-receive script.
dold pushed a commit to branch master
in repository taler-typescript-core.
The following commit(s) were added to refs/heads/master by this push:
new bf34cedb5 wallet-core: handle kyc-auth response in initial kyc-check
response
bf34cedb5 is described below
commit bf34cedb5cdb3a9033a3b2b93103544418133773
Author: Florian Dold <florian@dold.me>
AuthorDate: Tue Jun 3 16:21:02 2025 +0200
wallet-core: handle kyc-auth response in initial kyc-check response
---
packages/taler-wallet-core/src/deposits.ts | 106 ++++++++++++++++-------------
1 file changed, 60 insertions(+), 46 deletions(-)
diff --git a/packages/taler-wallet-core/src/deposits.ts
b/packages/taler-wallet-core/src/deposits.ts
index e55251187..f21d91e9e 100644
--- a/packages/taler-wallet-core/src/deposits.ts
+++ b/packages/taler-wallet-core/src/deposits.ts
@@ -1273,7 +1273,8 @@ async function transitionToKycRequired(
});
const url = new URL(`kyc-check/${kycPaytoHash}`, exchangeUrl);
- logger.info(`kyc url ${url.href}`);
+ logger.info(`kyc-check url ${url.href}`);
+ logger.info(`account owner pub: ${depositGroup.merchantPub}`);
const kycStatusResp = await cancelableFetch(wex, url, {
headers: {
["Account-Owner-Signature"]: sigResp.sig,
@@ -1281,51 +1282,64 @@ async function transitionToKycRequired(
},
});
logger.trace(`response status of initial kyc-check:
${kycStatusResp.status}`);
- if (kycStatusResp.status === HttpStatusCode.Ok) {
- logger.warn("kyc requested, but already fulfilled");
- return TaskRunResult.backoff();
- } else if (kycStatusResp.status === HttpStatusCode.Accepted) {
- const statusResp = await readResponseJsonOrThrow(
- kycStatusResp,
- codecForAccountKycStatus(),
- );
- const transitionInfo = await wex.db.runReadWriteTx(
- { storeNames: ["depositGroups", "transactionsMeta"] },
- async (tx) => {
- const dg = await tx.depositGroups.get(depositGroupId);
- if (!dg) {
- return undefined;
- }
- const oldTxState = computeDepositTransactionStatus(dg);
- switch (dg.operationStatus) {
- case DepositOperationStatus.LegacyPendingTrack:
- case DepositOperationStatus.FinalizingTrack:
- dg.operationStatus = DepositOperationStatus.PendingAggregateKyc;
- break;
- case DepositOperationStatus.PendingDeposit:
- dg.operationStatus = DepositOperationStatus.PendingDepositKyc;
- break;
- default:
- return;
- }
- dg.kycInfo = {
- exchangeBaseUrl: exchangeUrl,
- paytoHash: kycPaytoHash,
- accessToken: statusResp.access_token,
- };
- await tx.depositGroups.put(dg);
- await ctx.updateTransactionMeta(tx);
- const newTxState = computeDepositTransactionStatus(dg);
- return { oldTxState, newTxState, balanceEffect: BalanceEffect.Any };
- },
- );
- notifyTransition(wex, ctx.transactionId, transitionInfo);
- return TaskRunResult.progress();
- } else {
- throwUnexpectedRequestError(
- kycStatusResp,
- await readTalerErrorResponse(kycStatusResp),
- );
+
+ switch (kycStatusResp.status) {
+ case HttpStatusCode.Ok: {
+ logger.warn("kyc requested, but already fulfilled");
+ return TaskRunResult.backoff();
+ }
+ case HttpStatusCode.Conflict: {
+ return await transitionToKycAuthRequired(
+ wex,
+ depositGroup,
+ kycPaytoHash,
+ exchangeUrl,
+ );
+ }
+ case HttpStatusCode.Accepted: {
+ const statusResp = await readResponseJsonOrThrow(
+ kycStatusResp,
+ codecForAccountKycStatus(),
+ );
+ const transitionInfo = await wex.db.runReadWriteTx(
+ { storeNames: ["depositGroups", "transactionsMeta"] },
+ async (tx) => {
+ const dg = await tx.depositGroups.get(depositGroupId);
+ if (!dg) {
+ return undefined;
+ }
+ const oldTxState = computeDepositTransactionStatus(dg);
+ switch (dg.operationStatus) {
+ case DepositOperationStatus.LegacyPendingTrack:
+ case DepositOperationStatus.FinalizingTrack:
+ dg.operationStatus = DepositOperationStatus.PendingAggregateKyc;
+ break;
+ case DepositOperationStatus.PendingDeposit:
+ dg.operationStatus = DepositOperationStatus.PendingDepositKyc;
+ break;
+ default:
+ return;
+ }
+ dg.kycInfo = {
+ exchangeBaseUrl: exchangeUrl,
+ paytoHash: kycPaytoHash,
+ accessToken: statusResp.access_token,
+ };
+ await tx.depositGroups.put(dg);
+ await ctx.updateTransactionMeta(tx);
+ const newTxState = computeDepositTransactionStatus(dg);
+ return { oldTxState, newTxState, balanceEffect: BalanceEffect.Any };
+ },
+ );
+ notifyTransition(wex, ctx.transactionId, transitionInfo);
+ return TaskRunResult.progress();
+ }
+ default: {
+ throwUnexpectedRequestError(
+ kycStatusResp,
+ await readTalerErrorResponse(kycStatusResp),
+ );
+ }
}
}
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-typescript-core] branch master updated: wallet-core: handle kyc-auth response in initial kyc-check response,
Admin <=