[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-wallet-core] branch master updated: wallet-core: sort transaction
From: |
gnunet |
Subject: |
[taler-wallet-core] branch master updated: wallet-core: sort transactions ASC by default to not break tests |
Date: |
Mon, 16 Oct 2023 10:26:01 +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 529993da2 wallet-core: sort transactions ASC by default to not break
tests
529993da2 is described below
commit 529993da2f14934456b4083cb1f2a3fa69248ca4
Author: Florian Dold <florian@dold.me>
AuthorDate: Mon Oct 16 10:25:58 2023 +0200
wallet-core: sort transactions ASC by default to not break tests
---
packages/taler-util/src/taler-types.ts | 10 +++++-----
packages/taler-util/src/transactions-types.ts | 7 +++++++
packages/taler-wallet-core/src/operations/reward.ts | 6 +++---
packages/taler-wallet-core/src/operations/transactions.ts | 11 +++++++++--
4 files changed, 24 insertions(+), 10 deletions(-)
diff --git a/packages/taler-util/src/taler-types.ts
b/packages/taler-util/src/taler-types.ts
index 767adb799..551b0652f 100644
--- a/packages/taler-util/src/taler-types.ts
+++ b/packages/taler-util/src/taler-types.ts
@@ -1006,8 +1006,8 @@ export class WithdrawOperationStatusResponse {
/**
* Response from the merchant.
*/
-export class TipPickupGetResponse {
- tip_amount: string;
+export class RewardPickupGetResponse {
+ reward_amount: string;
exchange_url: string;
@@ -1566,9 +1566,9 @@ export const codecForWithdrawOperationStatusResponse =
.property("wire_types", codecForList(codecForString()))
.build("WithdrawOperationStatusResponse");
-export const codecForTipPickupGetResponse = (): Codec<TipPickupGetResponse> =>
- buildCodecForObject<TipPickupGetResponse>()
- .property("tip_amount", codecForString())
+export const codecForRewardPickupGetResponse = ():
Codec<RewardPickupGetResponse> =>
+ buildCodecForObject<RewardPickupGetResponse>()
+ .property("reward_amount", codecForString())
.property("exchange_url", codecForString())
.property("next_url", codecOptional(codecForString()))
.property("expiration", codecForTimestamp)
diff --git a/packages/taler-util/src/transactions-types.ts
b/packages/taler-util/src/transactions-types.ts
index 63db206bd..32d10a953 100644
--- a/packages/taler-util/src/transactions-types.ts
+++ b/packages/taler-util/src/transactions-types.ts
@@ -62,6 +62,13 @@ export interface TransactionsRequest {
*/
search?: string;
+ /**
+ * Sort order of the transaction items.
+ * By default, items are sorted ascending by their
+ * main timestamp.
+ */
+ sort?: "ascending" | "descending",
+
/**
* If true, include all refreshes in the transactions list.
*/
diff --git a/packages/taler-wallet-core/src/operations/reward.ts
b/packages/taler-wallet-core/src/operations/reward.ts
index 4e16d977d..ed9927bab 100644
--- a/packages/taler-wallet-core/src/operations/reward.ts
+++ b/packages/taler-wallet-core/src/operations/reward.ts
@@ -23,7 +23,7 @@ import {
Amounts,
BlindedDenominationSignature,
codecForMerchantTipResponseV2,
- codecForTipPickupGetResponse,
+ codecForRewardPickupGetResponse,
CoinStatus,
DenomKeyType,
encodeCrock,
@@ -168,11 +168,11 @@ export async function prepareTip(
const merchantResp = await ws.http.fetch(tipStatusUrl.href);
const tipPickupStatus = await readSuccessResponseJsonOrThrow(
merchantResp,
- codecForTipPickupGetResponse(),
+ codecForRewardPickupGetResponse(),
);
logger.trace(`status ${j2s(tipPickupStatus)}`);
- const amount = Amounts.parseOrThrow(tipPickupStatus.tip_amount);
+ const amount = Amounts.parseOrThrow(tipPickupStatus.reward_amount);
logger.trace("new tip, creating tip record");
await updateExchangeFromUrl(ws, tipPickupStatus.exchange_url);
diff --git a/packages/taler-wallet-core/src/operations/transactions.ts
b/packages/taler-wallet-core/src/operations/transactions.ts
index 72c67b153..bebb3d60b 100644
--- a/packages/taler-wallet-core/src/operations/transactions.ts
+++ b/packages/taler-wallet-core/src/operations/transactions.ts
@@ -1290,9 +1290,16 @@ export async function getTransactions(
const txPending = transactions.filter((x) => isPending(x));
const txNotPending = transactions.filter((x) => !isPending(x));
+ let sortSign: number;
+ if (transactionsRequest?.sort == "descending") {
+ sortSign = -1;
+ } else {
+ sortSign = 1;
+ }
+
const txCmp = (h1: Transaction, h2: Transaction) => {
// Order transactions by timestamp. Newest transactions come first.
- const tsCmp = -AbsoluteTime.cmp(
+ const tsCmp = AbsoluteTime.cmp(
AbsoluteTime.fromPreciseTimestamp(h1.timestamp),
AbsoluteTime.fromPreciseTimestamp(h2.timestamp),
);
@@ -1300,7 +1307,7 @@ export async function getTransactions(
if (tsCmp === 0) {
return Math.sign(txOrder[h1.type] - txOrder[h2.type]);
}
- return tsCmp;
+ return sortSign * tsCmp;
};
txPending.sort(txCmp);
--
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: sort transactions ASC by default to not break tests,
gnunet <=