summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/balance.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2024-02-20 02:19:41 +0100
committerFlorian Dold <florian@dold.me>2024-02-20 02:19:41 +0100
commitdf6f50028339c033982b94662e8ab465383095b3 (patch)
treef2963e5bee0dbe9552b0978ab59f7d384be5f64a /packages/taler-wallet-core/src/balance.ts
parent578bd4b1ed12049800556460359cb55a1e8545a2 (diff)
downloadwallet-core-df6f50028339c033982b94662e8ab465383095b3.tar.gz
wallet-core-df6f50028339c033982b94662e8ab465383095b3.tar.bz2
wallet-core-df6f50028339c033982b94662e8ab465383095b3.zip
wallet-core: count deposits towards pendingOutgoing
Diffstat (limited to 'packages/taler-wallet-core/src/balance.ts')
-rw-r--r--packages/taler-wallet-core/src/balance.ts30
1 files changed, 30 insertions, 0 deletions
diff --git a/packages/taler-wallet-core/src/balance.ts b/packages/taler-wallet-core/src/balance.ts
index e63ea6641..94a500384 100644
--- a/packages/taler-wallet-core/src/balance.ts
+++ b/packages/taler-wallet-core/src/balance.ts
@@ -196,6 +196,15 @@ class BalancesStore {
b.pendingIncoming = Amounts.add(b.pendingIncoming, amount).amount;
}
+ async addPendingOutgoing(
+ currency: string,
+ exchangeBaseUrl: string,
+ amount: AmountLike,
+ ): Promise<void> {
+ const b = await this.initBalance(currency, exchangeBaseUrl);
+ b.pendingOutgoing = Amounts.add(b.pendingOutgoing, amount).amount;
+ }
+
async setFlagIncomingAml(
currency: string,
exchangeBaseUrl: string,
@@ -388,6 +397,27 @@ export async function getBalancesInsideTransaction(
case DepositOperationStatus.PendingKyc:
await balanceStore.setFlagOutgoingKyc(currency, e);
}
+
+ switch (dgRecord.operationStatus) {
+ case DepositOperationStatus.SuspendedKyc:
+ case DepositOperationStatus.PendingKyc:
+ case DepositOperationStatus.PendingTrack:
+ case DepositOperationStatus.SuspendedAborting:
+ case DepositOperationStatus.SuspendedDeposit:
+ case DepositOperationStatus.SuspendedTrack:
+ case DepositOperationStatus.PendingDeposit: {
+ const perExchange = dgRecord.infoPerExchange;
+ if (perExchange) {
+ for (const [e, v] of Object.entries(perExchange)) {
+ await balanceStore.addPendingOutgoing(
+ currency,
+ e,
+ v.amountEffective,
+ );
+ }
+ }
+ }
+ }
}
});