diff options
author | Florian Dold <florian@dold.me> | 2024-03-28 12:27:26 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2024-03-28 12:27:32 +0100 |
commit | 4b9cbe58025bf7082d0c79ee596200628b5d8c47 (patch) | |
tree | b60ed8a74b3066edc44570d4ba22745740d4c4fd /packages/taler-wallet-core/src/balance.ts | |
parent | 53faa440d146b4658fdad48ef545092325dda475 (diff) | |
download | wallet-core-4b9cbe58025bf7082d0c79ee596200628b5d8c47.tar.gz wallet-core-4b9cbe58025bf7082d0c79ee596200628b5d8c47.tar.bz2 wallet-core-4b9cbe58025bf7082d0c79ee596200628b5d8c47.zip |
wallet-core: count peer-push-debit towards pending outgoing balance
Also check balance in the integration test.
Diffstat (limited to 'packages/taler-wallet-core/src/balance.ts')
-rw-r--r-- | packages/taler-wallet-core/src/balance.ts | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/packages/taler-wallet-core/src/balance.ts b/packages/taler-wallet-core/src/balance.ts index 50996b8de..67ce73d41 100644 --- a/packages/taler-wallet-core/src/balance.ts +++ b/packages/taler-wallet-core/src/balance.ts @@ -70,6 +70,7 @@ import { ExchangeEntryDbRecordStatus, OPERATION_STATUS_ACTIVE_FIRST, OPERATION_STATUS_ACTIVE_LAST, + PeerPushDebitStatus, RefreshGroupRecord, RefreshOperationStatus, WalletDbReadOnlyTransaction, @@ -295,6 +296,7 @@ export async function getBalancesInsideTransaction( "withdrawalGroups", "globalCurrencyAuditors", "globalCurrencyExchanges", + "peerPushDebit", ] >, ): Promise<BalancesResponse> { @@ -399,6 +401,27 @@ export async function getBalancesInsideTransaction( ); }); + await tx.peerPushDebit.indexes.byStatus + .iter(keyRangeActive) + .forEachAsync(async (ppdRecord) => { + switch (ppdRecord.status) { + case PeerPushDebitStatus.AbortingDeletePurse: + case PeerPushDebitStatus.SuspendedAbortingDeletePurse: + case PeerPushDebitStatus.SuspendedReady: + case PeerPushDebitStatus.SuspendedReady: + case PeerPushDebitStatus.PendingCreatePurse: + case PeerPushDebitStatus.SuspendedCreatePurse: { + const currency = Amounts.currencyOf(ppdRecord.amount); + await balanceStore.addPendingOutgoing( + currency, + ppdRecord.exchangeBaseUrl, + ppdRecord.totalCost, + ); + break; + } + } + }); + await tx.depositGroups.indexes.byStatus .iter(keyRangeActive) .forEachAsync(async (dgRecord) => { @@ -460,6 +483,7 @@ export async function getBalances( "purchases", "refreshGroups", "withdrawalGroups", + "peerPushDebit", ], async (tx) => { return getBalancesInsideTransaction(wex, tx); |