[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-wallet-core] branch master updated: wallet-core: remove legacy no
From: |
gnunet |
Subject: |
[taler-wallet-core] branch master updated: wallet-core: remove legacy non-DD37 tx status fields |
Date: |
Wed, 24 May 2023 14:46:07 +0200 |
This is an automated email from the git hooks/post-receive script.
dold pushed a commit to branch master
in repository wallet-core.
The following commit(s) were added to refs/heads/master by this push:
new a2ef2e391 wallet-core: remove legacy non-DD37 tx status fields
a2ef2e391 is described below
commit a2ef2e391a8f030857d0f9cd56c6157cffb33659
Author: Florian Dold <florian@dold.me>
AuthorDate: Wed May 24 14:46:03 2023 +0200
wallet-core: remove legacy non-DD37 tx status fields
---
.../src/integrationtests/test-payment-zero.ts | 3 +-
.../integrationtests/test-timetravel-withdraw.ts | 4 +-
.../src/integrationtests/test-tipping.ts | 3 +-
packages/taler-util/src/transaction-test-data.ts | 3 -
packages/taler-util/src/transactions-types.ts | 37 -------
.../src/operations/transactions.ts | 111 ++-------------------
.../src/components/TransactionItem.tsx | 23 +++++
.../src/wallet/History.stories.tsx | 1 -
.../src/wallet/Transaction.tsx | 5 +-
9 files changed, 40 insertions(+), 150 deletions(-)
diff --git a/packages/taler-harness/src/integrationtests/test-payment-zero.ts
b/packages/taler-harness/src/integrationtests/test-payment-zero.ts
index 6c28da30c..264cffd06 100644
--- a/packages/taler-harness/src/integrationtests/test-payment-zero.ts
+++ b/packages/taler-harness/src/integrationtests/test-payment-zero.ts
@@ -24,6 +24,7 @@ import {
withdrawViaBank,
makeTestPayment,
} from "../harness/helpers.js";
+import { TransactionMajorState } from "@gnu-taler/taler-util";
/**
* Run test for a payment for a "free" order with
@@ -61,7 +62,7 @@ export async function runPaymentZeroTest(t: GlobalTestState) {
);
for (const tr of transactions.transactions) {
- t.assertDeepEqual(tr.pending, false);
+ t.assertDeepEqual(tr.txState.major, TransactionMajorState.Done);
}
}
diff --git
a/packages/taler-harness/src/integrationtests/test-timetravel-withdraw.ts
b/packages/taler-harness/src/integrationtests/test-timetravel-withdraw.ts
index 9335af9f5..ca3e67647 100644
--- a/packages/taler-harness/src/integrationtests/test-timetravel-withdraw.ts
+++ b/packages/taler-harness/src/integrationtests/test-timetravel-withdraw.ts
@@ -17,7 +17,7 @@
/**
* Imports.
*/
-import { Duration, TransactionType } from "@gnu-taler/taler-util";
+import { Duration, TransactionMajorState, TransactionType } from
"@gnu-taler/taler-util";
import { WalletApiOperation } from "@gnu-taler/taler-wallet-core";
import { GlobalTestState } from "../harness/harness.js";
import {
@@ -83,7 +83,7 @@ export async function runTimetravelWithdrawTest(t:
GlobalTestState) {
t.assertDeepEqual(types, ["withdrawal", "withdrawal"]);
const wtrans = transactions.transactions[1];
t.assertTrue(wtrans.type === TransactionType.Withdrawal);
- t.assertTrue(wtrans.pending);
+ t.assertTrue(wtrans.txState.major === TransactionMajorState.Pending);
}
// Now we also let the wallet time travel
diff --git a/packages/taler-harness/src/integrationtests/test-tipping.ts
b/packages/taler-harness/src/integrationtests/test-tipping.ts
index bbf729420..ff6fc9ceb 100644
--- a/packages/taler-harness/src/integrationtests/test-tipping.ts
+++ b/packages/taler-harness/src/integrationtests/test-tipping.ts
@@ -29,6 +29,7 @@ import {
getWireMethodForTest,
} from "../harness/harness.js";
import { createSimpleTestkudosEnvironment } from "../harness/helpers.js";
+import { TransactionMajorState } from "@gnu-taler/taler-util";
/**
* Run test for basic, bank-integrated withdrawal.
@@ -127,7 +128,7 @@ export async function runTippingTest(t: GlobalTestState) {
console.log("Transactions:", JSON.stringify(txns, undefined, 2));
t.assertDeepEqual(txns.transactions[0].type, "tip");
- t.assertDeepEqual(txns.transactions[0].pending, false);
+ t.assertDeepEqual(txns.transactions[0].txState.major,
TransactionMajorState.Done);
t.assertAmountEquals(
txns.transactions[0].amountEffective,
"TESTKUDOS:4.85",
diff --git a/packages/taler-util/src/transaction-test-data.ts
b/packages/taler-util/src/transaction-test-data.ts
index dc0903f53..378028144 100644
--- a/packages/taler-util/src/transaction-test-data.ts
+++ b/packages/taler-util/src/transaction-test-data.ts
@@ -17,7 +17,6 @@
import {
TransactionType,
PaymentStatus,
- ExtendedStatus,
TransactionMajorState,
} from "./transactions-types.js";
import { RefreshReason } from "./wallet-types.js";
@@ -36,7 +35,6 @@ export const sampleWalletCoreTransactions = [
totalRefundRaw: "KUDOS:0",
totalRefundEffective: "KUDOS:0",
status: PaymentStatus.Paid,
- extendedStatus: ExtendedStatus.Done,
refundPending: undefined,
posConfirmation: undefined,
pending: false,
@@ -85,7 +83,6 @@ export const sampleWalletCoreTransactions = [
refreshOutputAmount: "KUDOS:1.4",
originatingTransactionId:
"txn:proposal:ZCGBZFE8KZ1CBYYGSC3ZC8E40KVJWV16VYCTHGC8FFSVZ5HD24BG",
- extendedStatus: ExtendedStatus.Pending,
pending: true,
timestamp: {
t_s: 1681376214,
diff --git a/packages/taler-util/src/transactions-types.ts
b/packages/taler-util/src/transactions-types.ts
index 30178b7c7..84c60a847 100644
--- a/packages/taler-util/src/transactions-types.ts
+++ b/packages/taler-util/src/transactions-types.ts
@@ -50,14 +50,6 @@ import {
TransactionIdStr,
} from "./wallet-types.js";
-export enum ExtendedStatus {
- Pending = "pending",
- Done = "done",
- Aborting = "aborting",
- Aborted = "aborted",
- Failed = "failed",
- KycRequired = "kyc-required",
-}
export interface TransactionsRequest {
/**
@@ -158,28 +150,6 @@ export interface TransactionCommon {
*/
txState: TransactionState;
- /**
- * @deprecated in favor of statusMajor and statusMinor
- */
- extendedStatus: ExtendedStatus;
-
- /**
- * true if the transaction is still pending, false otherwise
- * If a transaction is not longer pending, its timestamp will be updated,
- * but its transactionId will remain unchanged
- *
- * @deprecated show extendedStatus
- */
- pending: boolean;
-
- /**
- * True if the transaction encountered a problem that might be
- * permanent. A frozen transaction won't be automatically retried.
- *
- * @deprecated show extendedStatus
- */
- frozen: boolean;
-
/**
* Raw amount of the transaction (exclusive of fees or other extra costs).
*/
@@ -468,13 +438,6 @@ export interface TransactionPayment extends
TransactionCommon {
*/
proposalId: string;
- /**
- * How far did the wallet get with processing the payment?
- *
- * @deprecated use extendedStatus
- */
- status: PaymentStatus;
-
/**
* Amount that must be paid for the contract
*/
diff --git a/packages/taler-wallet-core/src/operations/transactions.ts
b/packages/taler-wallet-core/src/operations/transactions.ts
index b5a6ba74e..41c74f4d1 100644
--- a/packages/taler-wallet-core/src/operations/transactions.ts
+++ b/packages/taler-wallet-core/src/operations/transactions.ts
@@ -20,9 +20,6 @@
import {
AbsoluteTime,
Amounts,
- constructPayPullUri,
- constructPayPushUri,
- ExtendedStatus,
j2s,
Logger,
NotificationType,
@@ -413,12 +410,6 @@ function buildTransactionForPushPaymentDebit(
expiration: contractTerms.purse_expiration,
summary: contractTerms.summary,
},
- frozen: false,
- extendedStatus:
- pi.status != PeerPushPaymentInitiationStatus.Done
- ? ExtendedStatus.Pending
- : ExtendedStatus.Done,
- pending: pi.status != PeerPushPaymentInitiationStatus.Done,
timestamp: pi.timestampCreated,
talerUri: stringifyPayPushUri({
exchangeBaseUrl: pi.exchangeBaseUrl,
@@ -444,9 +435,6 @@ function buildTransactionForPullPaymentDebit(
: Amounts.stringify(pi.contractTerms.amount),
amountRaw: Amounts.stringify(pi.contractTerms.amount),
exchangeBaseUrl: pi.exchangeBaseUrl,
- frozen: false,
- pending: false,
- extendedStatus: ExtendedStatus.Done,
info: {
expiration: pi.contractTerms.purse_expiration,
summary: pi.contractTerms.summary,
@@ -492,10 +480,6 @@ function buildTransactionForPeerPullCredit(
amountEffective: Amounts.stringify(wsr.denomsSel.totalCoinValue),
amountRaw: Amounts.stringify(wsr.instructedAmount),
exchangeBaseUrl: wsr.exchangeBaseUrl,
- extendedStatus: wsr.timestampFinish
- ? ExtendedStatus.Done
- : ExtendedStatus.Pending,
- pending: !wsr.timestampFinish,
// Old transactions don't have it!
timestamp: pullCredit.mergeTimestamp ?? TalerProtocolTimestamp.now(),
info: {
@@ -510,7 +494,6 @@ function buildTransactionForPeerPullCredit(
tag: TransactionType.PeerPullCredit,
pursePub: pullCredit.pursePub,
}),
- frozen: false,
...(wsrOrt?.lastError
? {
error: silentWithdrawalErrorForInvoice
@@ -527,8 +510,6 @@ function buildTransactionForPeerPullCredit(
amountEffective: Amounts.stringify(pullCredit.estimatedAmountEffective),
amountRaw: Amounts.stringify(peerContractTerms.amount),
exchangeBaseUrl: pullCredit.exchangeBaseUrl,
- extendedStatus: ExtendedStatus.Pending,
- pending: true,
// Old transactions don't have it!
timestamp: pullCredit.mergeTimestamp ?? TalerProtocolTimestamp.now(),
info: {
@@ -543,7 +524,6 @@ function buildTransactionForPeerPullCredit(
tag: TransactionType.PeerPullCredit,
pursePub: pullCredit.pursePub,
}),
- frozen: false,
...(pullCreditOrt?.lastError ? { error: pullCreditOrt.lastError } : {}),
};
}
@@ -570,16 +550,11 @@ function buildTransactionForPeerPushCredit(
expiration: wsr.wgInfo.contractTerms.purse_expiration,
summary: wsr.wgInfo.contractTerms.summary,
},
- extendedStatus: wsr.timestampFinish
- ? ExtendedStatus.Done
- : ExtendedStatus.Pending,
- pending: !wsr.timestampFinish,
timestamp: wsr.timestampStart,
transactionId: constructTransactionIdentifier({
tag: TransactionType.PeerPushCredit,
peerPushPaymentIncomingId: pushInc.peerPushPaymentIncomingId,
}),
- frozen: false,
...(wsrOrt?.lastError ? { error: wsrOrt.lastError } : {}),
};
}
@@ -595,14 +570,11 @@ function buildTransactionForPeerPushCredit(
expiration: peerContractTerms.purse_expiration,
summary: peerContractTerms.summary,
},
- extendedStatus: ExtendedStatus.Pending,
- pending: true,
timestamp: pushInc.timestamp,
transactionId: constructTransactionIdentifier({
tag: TransactionType.PeerPushCredit,
peerPushPaymentIncomingId: pushInc.peerPushPaymentIncomingId,
}),
- frozen: false,
...(pushOrt?.lastError ? { error: pushOrt.lastError } : {}),
};
}
@@ -629,16 +601,11 @@ function buildTransactionForBankIntegratedWithdraw(
wgRecord.status === WithdrawalGroupStatus.PendingReady,
},
exchangeBaseUrl: wgRecord.exchangeBaseUrl,
- extendedStatus: wgRecord.timestampFinish
- ? ExtendedStatus.Done
- : ExtendedStatus.Pending,
- pending: !wgRecord.timestampFinish,
timestamp: wgRecord.timestampStart,
transactionId: constructTransactionIdentifier({
tag: TransactionType.Withdrawal,
withdrawalGroupId: wgRecord.withdrawalGroupId,
}),
- frozen: false,
...(ort?.lastError ? { error: ort.lastError } : {}),
};
}
@@ -676,16 +643,11 @@ function buildTransactionForManualWithdraw(
withdrawalGroup.status === WithdrawalGroupStatus.PendingReady,
},
exchangeBaseUrl: withdrawalGroup.exchangeBaseUrl,
- extendedStatus: withdrawalGroup.timestampFinish
- ? ExtendedStatus.Done
- : ExtendedStatus.Pending,
- pending: !withdrawalGroup.timestampFinish,
timestamp: withdrawalGroup.timestampStart,
transactionId: constructTransactionIdentifier({
tag: TransactionType.Withdrawal,
withdrawalGroupId: withdrawalGroup.withdrawalGroupId,
}),
- frozen: false,
...(ort?.lastError ? { error: ort.lastError } : {}),
};
}
@@ -718,9 +680,6 @@ function buildTransactionForRefund(
refundGroupId: refundRecord.refundGroupId,
}),
txState: computeRefundTransactionState(refundRecord),
- extendedStatus: ExtendedStatus.Done,
- frozen: false,
- pending: false,
paymentInfo,
};
}
@@ -729,15 +688,6 @@ function buildTransactionForRefresh(
refreshGroupRecord: RefreshGroupRecord,
ort?: OperationRetryRecord,
): Transaction {
- let extendedStatus: ExtendedStatus;
- switch (refreshGroupRecord.operationStatus) {
- case RefreshOperationStatus.Finished:
- case RefreshOperationStatus.FinishedWithError:
- extendedStatus = ExtendedStatus.Done;
- break;
- default:
- extendedStatus = ExtendedStatus.Pending;
- }
const inputAmount = Amounts.sumOrZero(
refreshGroupRecord.currency,
refreshGroupRecord.inputPerCoin,
@@ -760,19 +710,11 @@ function buildTransactionForRefresh(
refreshOutputAmount: Amounts.stringify(outputAmount),
originatingTransactionId:
refreshGroupRecord.reasonDetails?.originatingTransactionId,
- extendedStatus:
- refreshGroupRecord.operationStatus === RefreshOperationStatus.Finished ||
- refreshGroupRecord.operationStatus ===
- RefreshOperationStatus.FinishedWithError
- ? ExtendedStatus.Done
- : ExtendedStatus.Pending,
- pending: extendedStatus == ExtendedStatus.Pending,
timestamp: refreshGroupRecord.timestampCreated,
transactionId: constructTransactionIdentifier({
tag: TransactionType.Refresh,
refreshGroupId: refreshGroupRecord.refreshGroupId,
}),
- frozen: false,
...(ort?.lastError ? { error: ort.lastError } : {}),
};
}
@@ -793,11 +735,6 @@ function buildTransactionForDeposit(
txState: computeDepositTransactionStatus(dg),
amountRaw: Amounts.stringify(dg.effectiveDepositAmount),
amountEffective: Amounts.stringify(dg.totalPayCost),
- extendedStatus: dg.timestampFinished
- ? ExtendedStatus.Done
- : ExtendedStatus.Pending,
- pending: !dg.timestampFinished,
- frozen: false,
timestamp: dg.timestampCreated,
targetPaytoUri: dg.wire.payto_uri,
wireTransferDeadline: dg.contractTermsRaw.wire_transfer_deadline,
@@ -830,11 +767,6 @@ function buildTransactionForTip(
txState: computeTipTransactionStatus(tipRecord),
amountEffective: Amounts.stringify(tipRecord.tipAmountEffective),
amountRaw: Amounts.stringify(tipRecord.tipAmountRaw),
- extendedStatus: tipRecord.pickedUpTimestamp
- ? ExtendedStatus.Done
- : ExtendedStatus.Pending,
- pending: !tipRecord.pickedUpTimestamp,
- frozen: false,
timestamp: tipRecord.acceptedTimestamp,
transactionId: constructTransactionIdentifier({
tag: TransactionType.Tip,
@@ -899,32 +831,6 @@ async function buildTransactionForPurchase(
checkDbInvariant(!!timestamp);
checkDbInvariant(!!purchaseRecord.payInfo);
- let status: ExtendedStatus;
- switch (purchaseRecord.purchaseStatus) {
- case PurchaseStatus.AbortingWithRefund:
- status = ExtendedStatus.Aborting;
- break;
- case PurchaseStatus.Done:
- case PurchaseStatus.RepurchaseDetected:
- status = ExtendedStatus.Done;
- break;
- case PurchaseStatus.DownloadingProposal:
- case PurchaseStatus.QueryingRefund:
- case PurchaseStatus.Proposed:
- case PurchaseStatus.Paying:
- status = ExtendedStatus.Pending;
- break;
- case PurchaseStatus.FailedClaim:
- status = ExtendedStatus.Failed;
- break;
- case PurchaseStatus.AbortedIncompletePayment:
- status = ExtendedStatus.Aborted;
- break;
- default:
- // FIXME: Should we have some unknown status?
- status = ExtendedStatus.Pending;
- }
-
return {
type: TransactionType.Payment,
txState: computePayMerchantTransactionState(purchaseRecord),
@@ -936,11 +842,6 @@ async function buildTransactionForPurchase(
purchaseRecord.refundAmountAwaiting === undefined
? undefined
: Amounts.stringify(purchaseRecord.refundAmountAwaiting),
- status: purchaseRecord.timestampFirstSuccessfulPay
- ? PaymentStatus.Paid
- : PaymentStatus.Accepted,
- extendedStatus: status,
- pending: purchaseRecord.purchaseStatus === PurchaseStatus.Paying,
refunds,
posConfirmation: purchaseRecord.posConfirmation,
timestamp,
@@ -952,9 +853,6 @@ async function buildTransactionForPurchase(
info,
refundQueryActive:
purchaseRecord.purchaseStatus === PurchaseStatus.QueryingRefund,
- frozen:
- purchaseRecord.purchaseStatus ===
- PurchaseStatus.AbortedIncompletePayment ?? false,
...(ort?.lastError ? { error: ort.lastError } : {}),
};
}
@@ -1272,8 +1170,13 @@ export async function getTransactions(
}
}
- const txPending = transactions.filter((x) => x.pending);
- const txNotPending = transactions.filter((x) => !x.pending);
+ const isPending = (x: Transaction) =>
+ x.txState.major === TransactionMajorState.Pending ||
+ x.txState.major === TransactionMajorState.Aborting ||
+ x.txState.major === TransactionMajorState.Dialog;
+
+ const txPending = transactions.filter((x) => isPending(x));
+ const txNotPending = transactions.filter((x) => !isPending(x));
const txCmp = (h1: Transaction, h2: Transaction) => {
const tsCmp = AbsoluteTime.cmp(
diff --git
a/packages/taler-wallet-webextension/src/components/TransactionItem.tsx
b/packages/taler-wallet-webextension/src/components/TransactionItem.tsx
index dc11c4b7e..124729349 100644
--- a/packages/taler-wallet-webextension/src/components/TransactionItem.tsx
+++ b/packages/taler-wallet-webextension/src/components/TransactionItem.tsx
@@ -69,6 +69,29 @@ export function TransactionItem(props: { tx: Transaction }):
VNode {
}
/>
);
+ case TransactionType.InternalWithdrawal:
+ return (
+ <TransactionLayout
+ id={tx.transactionId}
+ amount={tx.amountEffective}
+ debitCreditIndicator={"credit"}
+ title={new URL(tx.exchangeBaseUrl).hostname}
+ timestamp={AbsoluteTime.fromTimestamp(tx.timestamp)}
+ iconPath={"I"}
+ pending={
+ tx.txState.major === TransactionMajorState.Pending
+ ? tx.withdrawalDetails.type ===
+ WithdrawalType.TalerBankIntegrationApi
+ ? !tx.withdrawalDetails.confirmed
+ ? i18n.str`Need approval in the Bank`
+ : i18n.str`Exchange is waiting the wire transfer`
+ : tx.withdrawalDetails.type === WithdrawalType.ManualTransfer
+ ? i18n.str`Exchange is waiting the wire transfer`
+ : "" //pending but no message
+ : undefined
+ }
+ />
+ );
case TransactionType.Payment:
return (
<TransactionLayout
diff --git a/packages/taler-wallet-webextension/src/wallet/History.stories.tsx
b/packages/taler-wallet-webextension/src/wallet/History.stories.tsx
index 93d61ba2b..b9c408fe1 100644
--- a/packages/taler-wallet-webextension/src/wallet/History.stories.tsx
+++ b/packages/taler-wallet-webextension/src/wallet/History.stories.tsx
@@ -52,7 +52,6 @@ const commonTransaction = (): TransactionCommon =>
({
amountRaw: "USD:10",
amountEffective: "USD:9",
- pending: false,
txState: {
major: TransactionMajorState.Done,
},
diff --git a/packages/taler-wallet-webextension/src/wallet/Transaction.tsx
b/packages/taler-wallet-webextension/src/wallet/Transaction.tsx
index f4c50a8d5..9541cc33f 100644
--- a/packages/taler-wallet-webextension/src/wallet/Transaction.tsx
+++ b/packages/taler-wallet-webextension/src/wallet/Transaction.tsx
@@ -398,7 +398,10 @@ export function TransactionView({
const raw = Amounts.parseOrThrow(transaction.amountRaw);
const effective = Amounts.parseOrThrow(transaction.amountEffective);
- if (transaction.type === TransactionType.Withdrawal) {
+ if (
+ transaction.type === TransactionType.Withdrawal ||
+ transaction.type === TransactionType.InternalWithdrawal
+ ) {
return (
<TransactionTemplate
transaction={transaction}
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [taler-wallet-core] branch master updated: wallet-core: remove legacy non-DD37 tx status fields,
gnunet <=