gnunet-svn
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]