diff options
Diffstat (limited to 'src/operations/balance.ts')
-rw-r--r-- | src/operations/balance.ts | 47 |
1 files changed, 19 insertions, 28 deletions
diff --git a/src/operations/balance.ts b/src/operations/balance.ts index f5a51abec..15d8e52fa 100644 --- a/src/operations/balance.ts +++ b/src/operations/balance.ts @@ -74,7 +74,7 @@ export async function getBalances( }; await ws.db.runWithReadTransaction( - [Stores.coins, Stores.refresh, Stores.reserves, Stores.purchases, Stores.withdrawalSession], + [Stores.coins, Stores.refreshGroups, Stores.reserves, Stores.purchases, Stores.withdrawalSession], async tx => { await tx.iter(Stores.coins).forEach(c => { if (c.suspended) { @@ -83,39 +83,30 @@ export async function getBalances( if (c.status === CoinStatus.Fresh) { addTo(balanceStore, "available", c.currentAmount, c.exchangeBaseUrl); } - if (c.status === CoinStatus.Dirty) { - addTo( - balanceStore, - "pendingIncoming", - c.currentAmount, - c.exchangeBaseUrl, - ); - addTo( - balanceStore, - "pendingIncomingDirty", - c.currentAmount, - c.exchangeBaseUrl, - ); - } }); - await tx.iter(Stores.refresh).forEach(r => { + await tx.iter(Stores.refreshGroups).forEach(r => { // Don't count finished refreshes, since the refresh already resulted // in coins being added to the wallet. if (r.finishedTimestamp) { return; } - addTo( - balanceStore, - "pendingIncoming", - r.valueOutput, - r.exchangeBaseUrl, - ); - addTo( - balanceStore, - "pendingIncomingRefresh", - r.valueOutput, - r.exchangeBaseUrl, - ); + for (let i = 0; i < r.oldCoinPubs.length; i++) { + const session = r.refreshSessionPerCoin[i]; + if (session) { + addTo( + balanceStore, + "pendingIncoming", + session.valueOutput, + session.exchangeBaseUrl, + ); + addTo( + balanceStore, + "pendingIncomingRefresh", + session.valueOutput, + session.exchangeBaseUrl, + ); + } + } }); await tx.iter(Stores.withdrawalSession).forEach(wds => { |