diff options
Diffstat (limited to 'packages/taler-wallet-core/src/balance.ts')
-rw-r--r-- | packages/taler-wallet-core/src/balance.ts | 60 |
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; } |