commit 7c44ca8644c80770ec049e0c50b65801125e8553
parent 9c5bfb3f9417c7fb8177285c65ad05909dd46aaa
Author: Florian Dold <florian@dold.me>
Date: Thu, 5 Jun 2025 01:53:05 +0200
wallet-core: fall back to pending withdrawals for deposit account pub
Issue: https://bugs.taler.net/n/10053
Diffstat:
1 file changed, 38 insertions(+), 0 deletions(-)
diff --git a/packages/taler-wallet-core/src/deposits.ts b/packages/taler-wallet-core/src/deposits.ts
@@ -106,6 +106,7 @@ import {
RefreshOperationStatus,
WalletDbAllStoresReadOnlyTransaction,
WalletDbReadWriteTransaction,
+ WithdrawalGroupStatus,
timestampAbsoluteFromDb,
timestampPreciseFromDb,
timestampPreciseToDb,
@@ -1270,6 +1271,43 @@ async function getLastWithdrawalKeyPair(
};
}
}
+
+ if (candidateRes) {
+ // We already found a good candidate.
+ return;
+ }
+
+ // No good candidate, try finding a withdrawal group that's at
+ // least currently pending, so it might be completed in the future.
+ for (const rec of withdrawalRecs) {
+ switch (rec.status) {
+ case WithdrawalGroupStatus.PendingBalanceKyc:
+ case WithdrawalGroupStatus.PendingBalanceKycInit:
+ case WithdrawalGroupStatus.PendingKyc:
+ case WithdrawalGroupStatus.PendingQueryingStatus:
+ case WithdrawalGroupStatus.PendingReady:
+ case WithdrawalGroupStatus.PendingRegisteringBank:
+ case WithdrawalGroupStatus.PendingWaitConfirmBank:
+ case WithdrawalGroupStatus.SuspendedBalanceKyc:
+ case WithdrawalGroupStatus.SuspendedBalanceKycInit:
+ case WithdrawalGroupStatus.SuspendedKyc:
+ case WithdrawalGroupStatus.SuspendedQueryingStatus:
+ case WithdrawalGroupStatus.SuspendedReady:
+ case WithdrawalGroupStatus.SuspendedRegisteringBank:
+ case WithdrawalGroupStatus.SuspendedWaitConfirmBank:
+ }
+ const currTimestamp = timestampAbsoluteFromDb(rec.timestampStart);
+ if (
+ candidateTimestamp == null ||
+ AbsoluteTime.cmp(currTimestamp, candidateTimestamp) > 0
+ ) {
+ candidateTimestamp = currTimestamp;
+ candidateRes = {
+ priv: rec.reservePriv,
+ pub: rec.reservePub,
+ };
+ }
+ }
});
return candidateRes;
}