summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/balance.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2024-03-28 12:27:26 +0100
committerFlorian Dold <florian@dold.me>2024-03-28 12:27:32 +0100
commit4b9cbe58025bf7082d0c79ee596200628b5d8c47 (patch)
treeb60ed8a74b3066edc44570d4ba22745740d4c4fd /packages/taler-wallet-core/src/balance.ts
parent53faa440d146b4658fdad48ef545092325dda475 (diff)
downloadwallet-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.ts24
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);