From 3d85ac89ab06324febb9ac7e6eda01022eeeb4a3 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 16 Jan 2023 23:02:27 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../features/wallet/redux/middlewares/Mapper.kt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/Mapper.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/Mapper.kt index dbb030f67f..75b79e6a61 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/Mapper.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/Mapper.kt @@ -1,5 +1,6 @@ package com.tangem.tap.features.wallet.redux.middlewares +import com.tangem.blockchain.common.AmountType import com.tangem.common.extensions.isZero import com.tangem.tap.common.extensions.stripZeroPlainString import com.tangem.tap.common.extensions.toFiatRateString @@ -21,6 +22,7 @@ import com.tangem.tap.features.wallet.ui.BalanceStatus import com.tangem.tap.features.wallet.ui.BalanceWidgetData import com.tangem.tap.features.wallet.ui.TokenData import com.tangem.tap.store +import java.math.BigDecimal internal fun List.mapToReduxModels( isMultiWalletAllowed: Boolean, @@ -69,6 +71,7 @@ private fun List.mapToReduxModel( ?.takeIf { !status.isErrorStatus } ?.toFormattedFiatValue(appCurrency.symbol) val fiatRateFormatted = fiatRate?.toFiatRateString(appCurrency.symbol) + val blockchainAmountValue = getBlockchainAmount() WalletData( currency = currency, @@ -83,7 +86,9 @@ private fun List.mapToReduxModel( fiatRateString = fiatRateFormatted, pendingTransactions = status.pendingTransactions, mainButton = WalletMainButton.SendButton( - enabled = !status.amount.isZero() && status.pendingTransactions.isEmpty(), + enabled = !blockchainAmountValue.isZero() + && !status.amount.isZero() + && status.pendingTransactions.isEmpty(), ), walletRent = walletRent?.let { WalletRent( @@ -103,7 +108,7 @@ private fun List.mapToReduxModel( }, currency = currency.currencyName, currencySymbol = currency.currencySymbol, - blockchainAmount = status.amount, + blockchainAmount = blockchainAmountValue, amount = amount, amountFormatted = amountFormatted, fiatAmount = fiatAmount, @@ -130,4 +135,9 @@ private fun List.mapToReduxModel( ) } } +} + +private fun WalletDataModel.getBlockchainAmount(): BigDecimal { + val walletStore = store.state.walletState.getWalletStore(currency) ?: return BigDecimal.ZERO + return walletStore.walletManager?.wallet?.amounts?.get(AmountType.Coin)?.value ?: BigDecimal.ZERO } \ No newline at end of file