commit 35cbcce79e22d7c3cd9ac1c676ad9b3480bd3fe1
parent 82cea86785fc9ab6aa5440cc077e8f2024b33c13
Author: Florian Dold <florian@dold.me>
Date: Mon, 8 Jan 2024 15:03:15 +0100
wallet-core: fix query for nonfinal payment transactions
Diffstat:
3 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/packages/taler-harness/src/integrationtests/test-payment-abort.ts b/packages/taler-harness/src/integrationtests/test-payment-abort.ts
@@ -98,8 +98,6 @@ export async function runPaymentAbortTest(t: GlobalTestState) {
t.assertTrue(preparePayResp.status === PreparePayResultType.PaymentPossible);
- const proposalId = preparePayResp.proposalId;
-
publicOrderStatusResp = await harnessHttpLib.fetch(publicOrderStatusUrl);
if (publicOrderStatusResp.status != 402) {
@@ -132,7 +130,7 @@ export async function runPaymentAbortTest(t: GlobalTestState) {
const confirmPayResp = await walletClient.call(
WalletApiOperation.ConfirmPay,
{
- proposalId,
+ transactionId: preparePayResp.transactionId,
},
);
diff --git a/packages/taler-wallet-core/src/db.ts b/packages/taler-wallet-core/src/db.ts
@@ -255,6 +255,16 @@ export function timestampOptionalAbsoluteFromDb(
*/
/**
+ * First possible operation status in the active range (inclusive).
+ */
+export const OPERATION_STATUS_ACTIVE_FIRST = 0x0100_0000;
+
+/**
+ * LAST possible operation status in the active range (inclusive).
+ */
+export const OPERATION_STATUS_ACTIVE_LAST = 0x0113_FFFF;
+
+/**
* Status of a withdrawal.
*/
export enum WithdrawalGroupStatus {
diff --git a/packages/taler-wallet-core/src/operations/pending.ts b/packages/taler-wallet-core/src/operations/pending.ts
@@ -34,6 +34,8 @@ import {
DepositElementStatus,
DepositGroupRecord,
ExchangeEntryDbUpdateStatus,
+ OPERATION_STATUS_ACTIVE_FIRST,
+ OPERATION_STATUS_ACTIVE_LAST,
PeerPullCreditRecord,
PeerPullDebitRecordStatus,
PeerPullPaymentCreditStatus,
@@ -418,8 +420,8 @@ export async function iterRecordsForPurchase(
): Promise<void> {
if (filter.onlyState === "nonfinal") {
const keyRange = GlobalIDB.KeyRange.bound(
- PurchaseStatus.PendingDownloadingProposal,
- PurchaseStatus.PendingAcceptRefund,
+ OPERATION_STATUS_ACTIVE_FIRST,
+ OPERATION_STATUS_ACTIVE_LAST,
);
await tx.purchases.indexes.byStatus.iter(keyRange).forEachAsync(f);
} else {