aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/util
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2022-01-24 21:14:21 +0100
committerFlorian Dold <florian@dold.me>2022-01-24 21:14:28 +0100
commit26ee8e3c717701be9170d45da94c46ae850e1f21 (patch)
tree38875f6538f7dfa489feed08b187a3a1084b254a /packages/taler-wallet-core/src/util
parent1374b37d2650ab428c9c2b07422afd6083697dfd (diff)
downloadwallet-core-26ee8e3c717701be9170d45da94c46ae850e1f21.tar.xz
fix exchange-timetravel test case with latest exchange version
Diffstat (limited to 'packages/taler-wallet-core/src/util')
-rw-r--r--packages/taler-wallet-core/src/util/coinSelection.ts32
1 files changed, 4 insertions, 28 deletions
diff --git a/packages/taler-wallet-core/src/util/coinSelection.ts b/packages/taler-wallet-core/src/util/coinSelection.ts
index 9a122a8fa..4f8a01d19 100644
--- a/packages/taler-wallet-core/src/util/coinSelection.ts
+++ b/packages/taler-wallet-core/src/util/coinSelection.ts
@@ -27,7 +27,9 @@ import {
AmountJson,
Amounts,
DenominationPubKey,
- DenomKeyType, Logger, strcmp
+ DenomKeyType,
+ Logger,
+ strcmp,
} from "@gnu-taler/taler-util";
const logger = new Logger("coinSelection.ts");
@@ -210,32 +212,6 @@ function tallyFees(
};
}
-function denomPubCmp(
- p1: DenominationPubKey,
- p2: DenominationPubKey,
-): -1 | 0 | 1 {
- if (p1.cipher < p2.cipher) {
- return -1;
- } else if (p1.cipher > p2.cipher) {
- return +1;
- }
- if (
- p1.cipher === DenomKeyType.LegacyRsa &&
- p2.cipher === DenomKeyType.LegacyRsa
- ) {
- return strcmp(p1.rsa_public_key, p2.rsa_public_key);
- } else if (p1.cipher === DenomKeyType.Rsa && p2.cipher === DenomKeyType.Rsa) {
- if ((p1.age_mask ?? 0) < (p2.age_mask ?? 0)) {
- return -1;
- } else if ((p1.age_mask ?? 0) > (p2.age_mask ?? 0)) {
- return 1;
- }
- return strcmp(p1.rsa_public_key, p2.rsa_public_key);
- } else {
- throw Error("unsupported cipher");
- }
-}
-
/**
* Given a list of candidate coins, select coins to spend under the merchant's
* constraints.
@@ -302,7 +278,7 @@ export function selectPayCoins(
(o1, o2) =>
-Amounts.cmp(o1.availableAmount, o2.availableAmount) ||
Amounts.cmp(o1.feeDeposit, o2.feeDeposit) ||
- denomPubCmp(o1.denomPub, o2.denomPub),
+ DenominationPubKey.cmp(o1.denomPub, o2.denomPub),
);
// FIXME: Here, we should select coins in a smarter way.