taler-typescript-core

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

commit bfb20bef36e159a2a233d21c2c071162216373cc
parent c99b21725e3b6f3fd2bd2f103994a72e2e5977b4
Author: Florian Dold <florian@dold.me>
Date:   Tue,  2 Apr 2024 19:47:38 +0200

wallet-core: make refresh work again

Diffstat:
Mpackages/taler-wallet-core/src/refresh.ts | 13+++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/packages/taler-wallet-core/src/refresh.ts b/packages/taler-wallet-core/src/refresh.ts @@ -989,12 +989,20 @@ async function refreshReveal( logger.warn("no refresh session found"); return; } + if (rg.statusPerCoin[coinIndex] !== RefreshCoinStatus.Pending) { + return; + } const rs = await tx.refreshSessions.get([refreshGroupId, coinIndex]); if (!rs) { return; } rg.statusPerCoin[coinIndex] = RefreshCoinStatus.Finished; for (const coin of coins) { + const existingCoin = await tx.coins.get(coin.coinPub); + if (existingCoin) { + continue; + } + await tx.coins.add(coin); const denomInfo = await getDenomInfo( wex, tx, @@ -1111,8 +1119,6 @@ export async function processRefreshGroup( ); rg.operationStatus = RefreshOperationStatus.Finished; } - } - if (allFinal) { await makeCoinsVisible(wex, tx, ctx.transactionId); await tx.refreshGroups.put(rg); const newTxState = computeRefreshTransactionState(rg); @@ -1120,9 +1126,8 @@ export async function processRefreshGroup( oldTxState, newTxState, }; - } else { - return undefined; } + return undefined; }, );