aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/balance.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-core/src/balance.ts')
-rw-r--r--packages/taler-wallet-core/src/balance.ts60
1 files changed, 20 insertions, 40 deletions
diff --git a/packages/taler-wallet-core/src/balance.ts b/packages/taler-wallet-core/src/balance.ts
index 381028906..20eb71a7f 100644
--- a/packages/taler-wallet-core/src/balance.ts
+++ b/packages/taler-wallet-core/src/balance.ts
@@ -94,7 +94,6 @@ interface WalletBalance {
pendingIncoming: AmountJson;
pendingOutgoing: AmountJson;
flagIncomingKyc: boolean;
- flagIncomingAml: boolean;
flagIncomingConfirmation: boolean;
flagOutgoingKyc: boolean;
}
@@ -170,7 +169,6 @@ class BalancesStore {
available: zero,
pendingIncoming: zero,
pendingOutgoing: zero,
- flagIncomingAml: false,
flagIncomingConfirmation: false,
flagIncomingKyc: false,
flagOutgoingKyc: false,
@@ -210,14 +208,6 @@ class BalancesStore {
b.pendingOutgoing = Amounts.add(b.pendingOutgoing, amount).amount;
}
- async setFlagIncomingAml(
- currency: string,
- exchangeBaseUrl: string,
- ): Promise<void> {
- const b = await this.initBalance(currency, exchangeBaseUrl);
- b.flagIncomingAml = true;
- }
-
async setFlagIncomingKyc(
currency: string,
exchangeBaseUrl: string,
@@ -254,9 +244,6 @@ class BalancesStore {
.forEach((c) => {
const v = balanceStore[c];
const flags: BalanceFlag[] = [];
- if (v.flagIncomingAml) {
- flags.push(BalanceFlag.IncomingAml);
- }
if (v.flagIncomingKyc) {
flags.push(BalanceFlag.IncomingKyc);
}
@@ -373,7 +360,11 @@ export async function getBalancesInsideTransaction(
case WithdrawalGroupStatus.SuspendedQueryingStatus:
// Pending, but no special flag.
break;
+ case WithdrawalGroupStatus.PendingBalanceKyc:
+ case WithdrawalGroupStatus.SuspendedBalanceKyc:
case WithdrawalGroupStatus.SuspendedKyc:
+ case WithdrawalGroupStatus.PendingBalanceKycInit:
+ case WithdrawalGroupStatus.SuspendedBalanceKycInit:
case WithdrawalGroupStatus.PendingKyc: {
checkDbInvariant(
wg.denomsSel !== undefined,
@@ -387,20 +378,6 @@ export async function getBalancesInsideTransaction(
await balanceStore.setFlagIncomingKyc(currency, wg.exchangeBaseUrl);
break;
}
- case WithdrawalGroupStatus.PendingAml:
- case WithdrawalGroupStatus.SuspendedAml: {
- checkDbInvariant(
- wg.denomsSel !== undefined,
- "wg in aml state should have been initialized",
- );
- checkDbInvariant(
- wg.exchangeBaseUrl !== undefined,
- "wg in kyc state should have been initialized",
- );
- const currency = Amounts.currencyOf(wg.denomsSel.totalCoinValue);
- await balanceStore.setFlagIncomingAml(currency, wg.exchangeBaseUrl);
- break;
- }
case WithdrawalGroupStatus.PendingRegisteringBank: {
if (wg.denomsSel && wg.exchangeBaseUrl) {
const currency = Amounts.currencyOf(wg.denomsSel.totalCoinValue);
@@ -472,14 +449,13 @@ export async function getBalancesInsideTransaction(
for (const [e, x] of Object.entries(perExchange)) {
const currency = Amounts.currencyOf(dgRecord.amount);
switch (dgRecord.operationStatus) {
- case DepositOperationStatus.SuspendedKyc:
- case DepositOperationStatus.PendingKyc:
+ case DepositOperationStatus.SuspendedAggregateKyc:
+ case DepositOperationStatus.PendingAggregateKyc:
await balanceStore.setFlagOutgoingKyc(currency, e);
}
-
switch (dgRecord.operationStatus) {
- case DepositOperationStatus.SuspendedKyc:
- case DepositOperationStatus.PendingKyc:
+ case DepositOperationStatus.SuspendedAggregateKyc:
+ case DepositOperationStatus.PendingAggregateKyc:
case DepositOperationStatus.PendingTrack:
case DepositOperationStatus.SuspendedAborting:
case DepositOperationStatus.SuspendedDeposit:
@@ -575,12 +551,12 @@ export interface PaymentBalanceDetails {
balanceAgeAcceptable: AmountJson;
/**
- * Balance of type "merchant-acceptable" (see balance.ts for definition).
+ * Balance of type "receiver-acceptable" (see balance.ts for definition).
*/
balanceReceiverAcceptable: AmountJson;
/**
- * Balance of type "merchant-depositable" (see balance.ts for definition).
+ * Balance of type "receiver-depositable" (see balance.ts for definition).
*/
balanceReceiverDepositable: AmountJson;
@@ -591,7 +567,11 @@ export interface PaymentBalanceDetails {
*/
balanceExchangeDepositable: AmountJson;
- maxEffectiveSpendAmount: AmountJson;
+ /**
+ * Estimated maximum amount that the wallet could pay for, under the assumption
+ * that the merchant pays absolutely no fees.
+ */
+ maxMerchantEffectiveDepositAmount: AmountJson;
}
export async function getPaymentBalanceDetails(
@@ -633,7 +613,7 @@ export async function getPaymentBalanceDetailsInTx(
balanceAgeAcceptable: Amounts.zeroOfCurrency(req.currency),
balanceReceiverAcceptable: Amounts.zeroOfCurrency(req.currency),
balanceReceiverDepositable: Amounts.zeroOfCurrency(req.currency),
- maxEffectiveSpendAmount: Amounts.zeroOfCurrency(req.currency),
+ maxMerchantEffectiveDepositAmount: Amounts.zeroOfCurrency(req.currency),
balanceExchangeDepositable: Amounts.zeroOfCurrency(req.currency),
};
@@ -742,13 +722,13 @@ export async function getPaymentBalanceDetailsInTx(
merchantExchangeAcceptable &&
merchantExchangeDepositable
) {
- d.maxEffectiveSpendAmount = Amounts.add(
- d.maxEffectiveSpendAmount,
+ d.maxMerchantEffectiveDepositAmount = Amounts.add(
+ d.maxMerchantEffectiveDepositAmount,
Amounts.mult(ca.value, ca.freshCoinCount).amount,
).amount;
- d.maxEffectiveSpendAmount = Amounts.sub(
- d.maxEffectiveSpendAmount,
+ d.maxMerchantEffectiveDepositAmount = Amounts.sub(
+ d.maxMerchantEffectiveDepositAmount,
Amounts.mult(denom.feeDeposit, ca.freshCoinCount).amount,
).amount;
}