taler-typescript-core

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

commit 49608f0bbb7c5d54cd64442f5d249710475cc1e5
parent c8336c8c2c8b0caaefa9e375108b73e2de2a1f60
Author: Florian Dold <florian@dold.me>
Date:   Fri, 10 Feb 2023 13:40:57 +0100

-only return coin indices for successfully withdrawn coins

Diffstat:
Mpackages/taler-wallet-core/src/operations/withdraw.ts | 18++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/packages/taler-wallet-core/src/operations/withdraw.ts b/packages/taler-wallet-core/src/operations/withdraw.ts @@ -492,7 +492,7 @@ async function processPlanchetExchangeBatchRequest( const batchReq: ExchangeBatchWithdrawRequest = { planchets: [] }; // Indices of coins that are included in the batch request - const coinIdxs: number[] = []; + const requestCoinIdxs: number[] = []; await ws.db .mktx((x) => [ @@ -537,7 +537,7 @@ async function processPlanchetExchangeBatchRequest( coin_ev: planchet.coinEv, }; batchReq.planchets.push(planchetReq); - coinIdxs.push(coinIdx); + requestCoinIdxs.push(coinIdx); } }); @@ -563,7 +563,7 @@ async function processPlanchetExchangeBatchRequest( for (let i = startIdx; i < coinIdxs.length; i++) { let planchet = await tx.planchets.indexes.byGroupAndIndex.get([ withdrawalGroup.withdrawalGroupId, - coinIdxs[i], + requestCoinIdxs[i], ]); if (!planchet) { continue; @@ -623,11 +623,11 @@ async function processPlanchetExchangeBatchRequest( codecForWithdrawBatchResponse(), ); return { - coinIdxs, + coinIdxs: requestCoinIdxs, batchResp: r, }; } catch (e) { - await storeCoinError(e, coinIdxs[0]); + await storeCoinError(e, requestCoinIdxs[0]); return { batchResp: { ev_sigs: [] }, coinIdxs: [], @@ -638,6 +638,7 @@ async function processPlanchetExchangeBatchRequest( const responses: ExchangeWithdrawBatchResponse = { ev_sigs: [], }; + const responseCoinIdxs: number[] = []; for (let i = 0; i < batchReq.planchets.length; i++) { try { const p = batchReq.planchets[i]; @@ -650,7 +651,7 @@ async function processPlanchetExchangeBatchRequest( await handleKycRequired(resp, i); // We still return blinded coins that we could actually withdraw. return { - coinIdxs, + coinIdxs: responseCoinIdxs, batchResp: responses, }; } @@ -659,12 +660,13 @@ async function processPlanchetExchangeBatchRequest( codecForWithdrawResponse(), ); responses.ev_sigs.push(r); + responseCoinIdxs.push(requestCoinIdxs[i]); } catch (e) { - await storeCoinError(e, coinIdxs[i]); + await storeCoinError(e, requestCoinIdxs[i]); } } return { - coinIdxs, + coinIdxs: responseCoinIdxs, batchResp: responses, }; }