commit 243d1cd35f8c2d1a8a4f58d92bf5c253aa4e6061
parent 6f07e1d0a05365e071e6f788abd24b89943a5c99
Author: Florian Dold <florian@dold.me>
Date: Mon, 26 May 2025 12:37:51 +0200
wallet-core: report pending outgoing for deposit in KYC
Diffstat:
2 files changed, 22 insertions(+), 4 deletions(-)
diff --git a/packages/taler-harness/src/integrationtests/test-kyc-wallet-deposit-abort.ts b/packages/taler-harness/src/integrationtests/test-kyc-wallet-deposit-abort.ts
@@ -122,6 +122,13 @@ export async function runKycWalletDepositAbortTest(t: GlobalTestState) {
},
});
+ {
+ const bal = await walletClient.call(WalletApiOperation.GetBalances, {});
+ console.log(`balance in kyc: ${j2s(bal)}`);
+ t.assertAmountEquals(bal.balances[0].pendingOutgoing, "TESTKUDOS:5");
+ t.assertAmountEquals(bal.balances[0].pendingIncoming, "TESTKUDOS:0");
+ }
+
await walletClient.call(WalletApiOperation.AbortTransaction, {
transactionId: depositResp.transactionId,
});
diff --git a/packages/taler-wallet-core/src/balance.ts b/packages/taler-wallet-core/src/balance.ts
@@ -133,9 +133,12 @@ function getBalanceKey(scopeInfo: ScopeInfo): string {
function getScopeSortingOrder(scopeInfo: ScopeInfo): number {
switch (scopeInfo.type) {
- case ScopeType.Global: return 0;
- case ScopeType.Auditor: return 1;
- case ScopeType.Exchange: return 2;
+ case ScopeType.Global:
+ return 0;
+ case ScopeType.Auditor:
+ return 1;
+ case ScopeType.Exchange:
+ return 2;
default:
assertUnreachable(scopeInfo);
}
@@ -260,7 +263,7 @@ class BalancesStore {
const balanceB = balanceStore[b];
const scopeA = getScopeSortingOrder(balanceA.scopeInfo);
const scopeB = getScopeSortingOrder(balanceB.scopeInfo);
- if (scopeA !== scopeB) return (scopeA - scopeB);
+ if (scopeA !== scopeB) return scopeA - scopeB;
return a.localeCompare(b);
})
.forEach((c) => {
@@ -588,6 +591,10 @@ export async function getBalancesInsideTransaction(
switch (dgRecord.operationStatus) {
case DepositOperationStatus.SuspendedAggregateKyc:
case DepositOperationStatus.PendingAggregateKyc:
+ case DepositOperationStatus.PendingDepositKyc:
+ case DepositOperationStatus.PendingDepositKycAuth:
+ case DepositOperationStatus.SuspendedDepositKyc:
+ case DepositOperationStatus.SuspendedDepositKycAuth:
await balanceStore.setFlagOutgoingKyc(currency, e);
}
switch (dgRecord.operationStatus) {
@@ -597,6 +604,10 @@ export async function getBalancesInsideTransaction(
case DepositOperationStatus.SuspendedAborting:
case DepositOperationStatus.SuspendedDeposit:
case DepositOperationStatus.LegacySuspendedTrack:
+ case DepositOperationStatus.PendingDepositKyc:
+ case DepositOperationStatus.PendingDepositKycAuth:
+ case DepositOperationStatus.SuspendedDepositKyc:
+ case DepositOperationStatus.SuspendedDepositKycAuth:
case DepositOperationStatus.PendingDeposit: {
const perExchange = dgRecord.infoPerExchange;
if (perExchange) {