From f8a1e3f2fe1f274062d6165e686c4d2324c70542 Mon Sep 17 00:00:00 2001 From: Tangem Date: Sun, 20 Sep 2020 00:03:29 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../features/send/redux/middlewares/AmountMiddleware.kt | 9 +++------ .../features/send/redux/middlewares/SendMiddleware.kt | 2 +- .../tangem/tap/features/send/redux/states/SendState.kt | 5 +++++ 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/AmountMiddleware.kt b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/AmountMiddleware.kt index c68901c350..083f9f2852 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/AmountMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/AmountMiddleware.kt @@ -31,13 +31,10 @@ class AmountMiddleware { if (inputValue.isZero() && sendState.amountState.amountToSendCrypto.isZero()) return val inputCrypto = sendState.convertInputValueToCrypto(inputValue) - val fee = sendState.feeState.getCurrentFee() + val feeCrypto = sendState.feeState.getCurrentFee() - val needToExtractFee = sendState.amountState.isCoinAmount() && sendState.feeState.feeIsIncluded - val totalToSend = if (needToExtractFee) inputCrypto.minus(fee) else inputCrypto - - val feeAmount = Amount(fee, walletManager.wallet.blockchain) - val totalAmount = Amount(totalToSend, walletManager.wallet.blockchain) + val feeAmount = Amount(feeCrypto, walletManager.wallet.blockchain) + val totalAmount = Amount(sendState.getTotalAmountToSend(inputCrypto), walletManager.wallet.blockchain) val transactionErrors = walletManager.validateTransaction(totalAmount, feeAmount) if (transactionErrors.isEmpty()) { diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt index 3f55dfddd5..d0504ce882 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt @@ -59,7 +59,7 @@ private fun verifyAndSendTransaction(appState: AppState?, dispatch: (Action) -> val recipientAddress = sendState.addressPayIdState.recipientWalletAddress!! val feeAmount = Amount(sendState.feeState.getCurrentFee(), blockchain) - val amountToSend = Amount(sendState.amountState.amountToSendCrypto, blockchain, recipientAddress) + val amountToSend = Amount(sendState.getTotalAmountToSend(), blockchain, recipientAddress) val txSender = walletManager as TransactionSender diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/states/SendState.kt b/app/src/main/java/com/tangem/tap/features/send/redux/states/SendState.kt index 578cda3497..a33dab9035 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/states/SendState.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/states/SendState.kt @@ -74,6 +74,11 @@ data class SendState( } fun getButtonState(): SendButtonState = if (isReadyToSend()) SendButtonState.ENABLED else SendButtonState.DISABLED + + fun getTotalAmountToSend(value: BigDecimal = amountState.amountToSendCrypto): BigDecimal { + val needToExtractFee = amountState.isCoinAmount() && feeState.feeIsIncluded + return if (needToExtractFee) value.minus(feeState.getCurrentFee()) else value + } } enum class SendButtonState {