diff options
author | Florian Dold <florian@dold.me> | 2023-02-10 13:40:57 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2023-02-10 19:23:08 +0100 |
commit | 49608f0bbb7c5d54cd64442f5d249710475cc1e5 (patch) | |
tree | d3622ca47fce38be7ee7ea7ec2312822f69af404 /packages | |
parent | c8336c8c2c8b0caaefa9e375108b73e2de2a1f60 (diff) |
-only return coin indices for successfully withdrawn coins
Diffstat (limited to 'packages')
-rw-r--r-- | packages/taler-wallet-core/src/operations/withdraw.ts | 18 |
1 files 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 index c2fcf05e8..c741f7703 100644 --- 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, }; } |