[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-wallet-core] branch master updated: rename insufficient balance f
From: |
gnunet |
Subject: |
[taler-wallet-core] branch master updated: rename insufficient balance fields to work for both merchant and p2p payments |
Date: |
Thu, 07 Mar 2024 11:46:35 +0100 |
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 53120dfc3 rename insufficient balance fields to work for both merchant
and p2p payments
53120dfc3 is described below
commit 53120dfc3ec05d49fc6f94bb498c66238225dd6b
Author: Florian Dold <florian@dold.me>
AuthorDate: Thu Mar 7 11:46:31 2024 +0100
rename insufficient balance fields to work for both merchant and p2p
payments
---
.../src/integrationtests/test-wallet-balance.ts | 4 +--
packages/taler-util/src/wallet-types.ts | 12 ++++-----
packages/taler-wallet-core/src/balance.ts | 30 ++++++++++------------
packages/taler-wallet-core/src/coinSelection.ts | 18 ++++++-------
.../src/components/PaymentButtons.tsx | 8 +++---
.../src/cta/Payment/stories.tsx | 24 ++++++++---------
6 files changed, 46 insertions(+), 50 deletions(-)
diff --git a/packages/taler-harness/src/integrationtests/test-wallet-balance.ts
b/packages/taler-harness/src/integrationtests/test-wallet-balance.ts
index 0e4452892..eb7359781 100644
--- a/packages/taler-harness/src/integrationtests/test-wallet-balance.ts
+++ b/packages/taler-harness/src/integrationtests/test-wallet-balance.ts
@@ -113,12 +113,12 @@ export async function runWalletBalanceTest(t:
GlobalTestState) {
t.assertTrue(
Amounts.isNonZero(
- preparePayResult.balanceDetails.balanceMerchantAcceptable,
+ preparePayResult.balanceDetails.balanceReceiverAcceptable,
),
);
t.assertTrue(
- Amounts.isZero(preparePayResult.balanceDetails.balanceMerchantDepositable),
+ Amounts.isZero(preparePayResult.balanceDetails.balanceReceiverDepositable),
);
console.log("waiting for transactions to finalize");
diff --git a/packages/taler-util/src/wallet-types.ts
b/packages/taler-util/src/wallet-types.ts
index cfbed04dc..69811969c 100644
--- a/packages/taler-util/src/wallet-types.ts
+++ b/packages/taler-util/src/wallet-types.ts
@@ -862,12 +862,12 @@ export interface PaymentInsufficientBalanceDetails {
/**
* Balance of type "merchant-acceptable" (see balance.ts for definition).
*/
- balanceMerchantAcceptable: AmountString;
+ balanceReceiverAcceptable: AmountString;
/**
* Balance of type "merchant-depositable" (see balance.ts for definition).
*/
- balanceMerchantDepositable: AmountString;
+ balanceReceiverDepositable: AmountString;
balanceExchangeDepositable: AmountString;
@@ -883,8 +883,8 @@ export interface PaymentInsufficientBalanceDetails {
balanceMaterial: AmountString;
balanceExchangeDepositable: AmountString;
balanceAgeAcceptable: AmountString;
- balanceMerchantAcceptable: AmountString;
- balanceMerchantDepositable: AmountString;
+ balanceReceiverAcceptable: AmountString;
+ balanceReceiverDepositable: AmountString;
maxEffectiveSpendAmount: AmountString;
};
};
@@ -897,8 +897,8 @@ export const codecForPayMerchantInsufficientBalanceDetails =
.property("balanceAgeAcceptable", codecForAmountString())
.property("balanceAvailable", codecForAmountString())
.property("balanceMaterial", codecForAmountString())
- .property("balanceMerchantAcceptable", codecForAmountString())
- .property("balanceMerchantDepositable", codecForAmountString())
+ .property("balanceReceiverAcceptable", codecForAmountString())
+ .property("balanceReceiverDepositable", codecForAmountString())
.property("balanceExchangeDepositable", codecForAmountString())
.property("perExchange", codecForAny())
.property("maxEffectiveSpendAmount", codecForAmountString())
diff --git a/packages/taler-wallet-core/src/balance.ts
b/packages/taler-wallet-core/src/balance.ts
index 26d348b39..5e3562ba2 100644
--- a/packages/taler-wallet-core/src/balance.ts
+++ b/packages/taler-wallet-core/src/balance.ts
@@ -51,8 +51,6 @@
*/
import { GlobalIDB } from "@gnu-taler/idb-bridge";
import {
- AllowedAuditorInfo,
- AllowedExchangeInfo,
AmountJson,
AmountLike,
Amounts,
@@ -60,12 +58,13 @@ import {
BalanceFlag,
BalancesResponse,
GetBalanceDetailRequest,
+ j2s,
Logger,
parsePaytoUri,
ScopeInfo,
ScopeType,
} from "@gnu-taler/taler-util";
-import { findMatchingWire } from "./coinSelection.js";
+import { ExchangeRestrictionSpec, findMatchingWire } from "./coinSelection.js";
import {
DepositOperationStatus,
OPERATION_STATUS_ACTIVE_FIRST,
@@ -462,12 +461,7 @@ export async function getBalances(
export interface PaymentRestrictionsForBalance {
currency: string;
minAge: number;
- restrictExchanges:
- | {
- exchanges: AllowedExchangeInfo[];
- auditors: AllowedAuditorInfo[];
- }
- | undefined;
+ restrictExchanges: ExchangeRestrictionSpec | undefined;
restrictWireMethods: string[] | undefined;
depositPaytoUri: string | undefined;
}
@@ -504,12 +498,12 @@ export interface PaymentBalanceDetails {
/**
* Balance of type "merchant-acceptable" (see balance.ts for definition).
*/
- balanceMerchantAcceptable: AmountJson;
+ balanceReceiverAcceptable: AmountJson;
/**
* Balance of type "merchant-depositable" (see balance.ts for definition).
*/
- balanceMerchantDepositable: AmountJson;
+ balanceReceiverDepositable: AmountJson;
/**
* Balance that's depositable with the exchange.
@@ -556,12 +550,14 @@ export async function getPaymentBalanceDetailsInTx(
balanceAvailable: Amounts.zeroOfCurrency(req.currency),
balanceMaterial: Amounts.zeroOfCurrency(req.currency),
balanceAgeAcceptable: Amounts.zeroOfCurrency(req.currency),
- balanceMerchantAcceptable: Amounts.zeroOfCurrency(req.currency),
- balanceMerchantDepositable: Amounts.zeroOfCurrency(req.currency),
+ balanceReceiverAcceptable: Amounts.zeroOfCurrency(req.currency),
+ balanceReceiverDepositable: Amounts.zeroOfCurrency(req.currency),
maxEffectiveSpendAmount: Amounts.zeroOfCurrency(req.currency),
balanceExchangeDepositable: Amounts.zeroOfCurrency(req.currency),
};
+ logger.info(`computing balance details for ${j2s(req)}`);
+
const availableCoins = await tx.coinAvailability.getAll();
for (const ca of availableCoins) {
@@ -646,13 +642,13 @@ export async function getPaymentBalanceDetailsInTx(
coinAmount,
).amount;
if (merchantExchangeAcceptable) {
- d.balanceMerchantAcceptable = Amounts.add(
- d.balanceMerchantAcceptable,
+ d.balanceReceiverAcceptable = Amounts.add(
+ d.balanceReceiverAcceptable,
coinAmount,
).amount;
if (merchantExchangeDepositable) {
- d.balanceMerchantDepositable = Amounts.add(
- d.balanceMerchantDepositable,
+ d.balanceReceiverDepositable = Amounts.add(
+ d.balanceReceiverDepositable,
coinAmount,
).amount;
}
diff --git a/packages/taler-wallet-core/src/coinSelection.ts
b/packages/taler-wallet-core/src/coinSelection.ts
index 98fd0dec1..50965fd6c 100644
--- a/packages/taler-wallet-core/src/coinSelection.ts
+++ b/packages/taler-wallet-core/src/coinSelection.ts
@@ -392,7 +392,7 @@ export async function reportInsufficientBalanceDetails(
): Promise<PaymentInsufficientBalanceDetails> {
const details = await getPaymentBalanceDetailsInTx(wex, tx, {
restrictExchanges: req.restrictExchanges,
- restrictWireMethods: req.wireMethod ? [req.wireMethod] : [],
+ restrictWireMethods: req.wireMethod ? [req.wireMethod] : undefined,
currency: Amounts.currencyOf(req.instructedAmount),
minAge: req.requiredMinimumAge ?? 0,
depositPaytoUri: req.depositPaytoUri,
@@ -426,11 +426,11 @@ export async function reportInsufficientBalanceDetails(
exchDet.balanceExchangeDepositable,
),
balanceAgeAcceptable: Amounts.stringify(exchDet.balanceAgeAcceptable),
- balanceMerchantAcceptable: Amounts.stringify(
- exchDet.balanceMerchantAcceptable,
+ balanceReceiverAcceptable: Amounts.stringify(
+ exchDet.balanceReceiverAcceptable,
),
- balanceMerchantDepositable: Amounts.stringify(
- exchDet.balanceMerchantDepositable,
+ balanceReceiverDepositable: Amounts.stringify(
+ exchDet.balanceReceiverDepositable,
),
maxEffectiveSpendAmount: Amounts.stringify(
exchDet.maxEffectiveSpendAmount,
@@ -443,14 +443,14 @@ export async function reportInsufficientBalanceDetails(
balanceAgeAcceptable: Amounts.stringify(details.balanceAgeAcceptable),
balanceAvailable: Amounts.stringify(details.balanceAvailable),
balanceMaterial: Amounts.stringify(details.balanceMaterial),
- balanceMerchantAcceptable: Amounts.stringify(
- details.balanceMerchantAcceptable,
+ balanceReceiverAcceptable: Amounts.stringify(
+ details.balanceReceiverAcceptable,
),
balanceExchangeDepositable: Amounts.stringify(
details.balanceExchangeDepositable,
),
- balanceMerchantDepositable: Amounts.stringify(
- details.balanceMerchantDepositable,
+ balanceReceiverDepositable: Amounts.stringify(
+ details.balanceReceiverDepositable,
),
maxEffectiveSpendAmount:
Amounts.stringify(details.maxEffectiveSpendAmount),
perExchange,
diff --git
a/packages/taler-wallet-webextension/src/components/PaymentButtons.tsx
b/packages/taler-wallet-webextension/src/components/PaymentButtons.tsx
index e7c4fbba4..21ee4d3d2 100644
--- a/packages/taler-wallet-webextension/src/components/PaymentButtons.tsx
+++ b/packages/taler-wallet-webextension/src/components/PaymentButtons.tsx
@@ -93,7 +93,7 @@ export function PaymentButtons({
}
case "merchant-acceptable": {
BalanceMessage = i18n.str`Balance is not enough because merchant will
just accept ${Amounts.stringifyValue(
- payStatus.balanceDetails.balanceMerchantAcceptable,
+ payStatus.balanceDetails.balanceReceiverAcceptable,
)} ${
amount.currency
} . To know more you can check which exchange and auditors the
merchant trust.`;
@@ -101,7 +101,7 @@ export function PaymentButtons({
}
case "merchant-depositable": {
BalanceMessage = i18n.str`Balance is not enough because merchant will
just accept ${Amounts.stringifyValue(
- payStatus.balanceDetails.balanceMerchantDepositable,
+ payStatus.balanceDetails.balanceReceiverDepositable,
)} ${
amount.currency
} . To know more you can check which wire methods the merchant
accepts.`;
@@ -232,10 +232,10 @@ function getReason(
if (Amounts.cmp(info.amountRequested, info.balanceAgeAcceptable) > 0) {
return "age-acceptable";
}
- if (Amounts.cmp(info.amountRequested, info.balanceMerchantAcceptable) > 0) {
+ if (Amounts.cmp(info.amountRequested, info.balanceReceiverAcceptable) > 0) {
return "merchant-acceptable";
}
- if (Amounts.cmp(info.amountRequested, info.balanceMerchantDepositable) > 0) {
+ if (Amounts.cmp(info.amountRequested, info.balanceReceiverDepositable) > 0) {
return "merchant-depositable";
}
return "fee-gap";
diff --git a/packages/taler-wallet-webextension/src/cta/Payment/stories.tsx
b/packages/taler-wallet-webextension/src/cta/Payment/stories.tsx
index 93b96c836..d03f48746 100644
--- a/packages/taler-wallet-webextension/src/cta/Payment/stories.tsx
+++ b/packages/taler-wallet-webextension/src/cta/Payment/stories.tsx
@@ -57,8 +57,8 @@ export const NoEnoughBalanceAvailable =
tests.createExample(BaseView, {
balanceAvailable: "USD:9" as AmountString,
balanceMaterial: "USD:9" as AmountString,
balanceAgeAcceptable: "USD:9" as AmountString,
- balanceMerchantAcceptable: "USD:9" as AmountString,
- balanceMerchantDepositable: "USD:9" as AmountString,
+ balanceReceiverAcceptable: "USD:9" as AmountString,
+ balanceReceiverDepositable: "USD:9" as AmountString,
maxEffectiveSpendAmount: "USD:9.5" as AmountString,
balanceExchangeDepositable: "USD:9.5" as AmountString,
perExchange: {},
@@ -99,8 +99,8 @@ export const NoEnoughBalanceMaterial =
tests.createExample(BaseView, {
balanceAvailable: "USD:10" as AmountString,
balanceMaterial: "USD:9" as AmountString,
balanceAgeAcceptable: "USD:9" as AmountString,
- balanceMerchantAcceptable: "USD:9" as AmountString,
- balanceMerchantDepositable: "USD:0" as AmountString,
+ balanceReceiverAcceptable: "USD:9" as AmountString,
+ balanceReceiverDepositable: "USD:0" as AmountString,
maxEffectiveSpendAmount: "USD:9.5" as AmountString,
balanceExchangeDepositable: "USD:9.5" as AmountString,
perExchange: {},
@@ -141,8 +141,8 @@ export const NoEnoughBalanceAgeAcceptable =
tests.createExample(BaseView, {
balanceAvailable: "USD:10" as AmountString,
balanceMaterial: "USD:10" as AmountString,
balanceAgeAcceptable: "USD:9" as AmountString,
- balanceMerchantAcceptable: "USD:9" as AmountString,
- balanceMerchantDepositable: "USD:9" as AmountString,
+ balanceReceiverAcceptable: "USD:9" as AmountString,
+ balanceReceiverDepositable: "USD:9" as AmountString,
maxEffectiveSpendAmount: "USD:9.5" as AmountString,
balanceExchangeDepositable: "USD:9.5" as AmountString,
perExchange: {},
@@ -184,8 +184,8 @@ export const NoEnoughBalanceMerchantAcceptable =
tests.createExample(BaseView, {
balanceAvailable: "USD:10" as AmountString,
balanceMaterial: "USD:10" as AmountString,
balanceAgeAcceptable: "USD:10" as AmountString,
- balanceMerchantAcceptable: "USD:9" as AmountString,
- balanceMerchantDepositable: "USD:9" as AmountString,
+ balanceReceiverAcceptable: "USD:9" as AmountString,
+ balanceReceiverDepositable: "USD:9" as AmountString,
maxEffectiveSpendAmount: "USD:9.5" as AmountString,
balanceExchangeDepositable: "USD:9.5" as AmountString,
perExchange: {},
@@ -228,8 +228,8 @@ export const NoEnoughBalanceMerchantDepositable =
tests.createExample(
balanceAvailable: "USD:10" as AmountString,
balanceMaterial: "USD:10" as AmountString,
balanceAgeAcceptable: "USD:10" as AmountString,
- balanceMerchantAcceptable: "USD:10" as AmountString,
- balanceMerchantDepositable: "USD:9" as AmountString,
+ balanceReceiverAcceptable: "USD:10" as AmountString,
+ balanceReceiverDepositable: "USD:9" as AmountString,
maxEffectiveSpendAmount: "USD:9.5" as AmountString,
balanceExchangeDepositable: "USD:9.5" as AmountString,
perExchange: {},
@@ -271,8 +271,8 @@ export const NoEnoughBalanceFeeGap =
tests.createExample(BaseView, {
balanceAvailable: "USD:10" as AmountString,
balanceMaterial: "USD:10" as AmountString,
balanceAgeAcceptable: "USD:10" as AmountString,
- balanceMerchantAcceptable: "USD:10" as AmountString,
- balanceMerchantDepositable: "USD:10" as AmountString,
+ balanceReceiverAcceptable: "USD:10" as AmountString,
+ balanceReceiverDepositable: "USD:10" as AmountString,
maxEffectiveSpendAmount: "USD:9.5" as AmountString,
balanceExchangeDepositable: "USD:9.5" as AmountString,
perExchange: {},
--
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: rename insufficient balance fields to work for both merchant and p2p payments,
gnunet <=