Updated on 2026-08-14
This commit is contained in:
parent
a7566d6c42
commit
dcb3f101a4
3 changed files with 26 additions and 13 deletions
|
|
@ -3,7 +3,6 @@ package com.tangem.tap.features.send.redux.reducers
|
|||
import com.tangem.blockchain.common.Amount
|
||||
import com.tangem.blockchain.common.AmountType
|
||||
import com.tangem.blockchain.common.Blockchain
|
||||
import com.tangem.tap.common.extensions.fullNameWithoutTestnet
|
||||
import com.tangem.tap.features.send.redux.FeeAction
|
||||
import com.tangem.tap.features.send.redux.FeeActionUi
|
||||
import com.tangem.tap.features.send.redux.SendScreenAction
|
||||
|
|
@ -106,12 +105,17 @@ class FeeReducer : SendInternalReducer {
|
|||
|
||||
private fun getFeePrecision(sendState: SendState): FeePrecision {
|
||||
val blockchain = sendState.walletManager?.wallet?.blockchain
|
||||
return if (
|
||||
(blockchain?.fullNameWithoutTestnet == Blockchain.Arbitrum.fullName ||
|
||||
blockchain?.fullNameWithoutTestnet == Blockchain.Tron.fullName ||
|
||||
blockchain?.fullNameWithoutTestnet == Blockchain.Gnosis.fullName) &&
|
||||
sendState.amountState.typeOfAmount is AmountType.Token
|
||||
) {
|
||||
val amountType = sendState.amountState.typeOfAmount
|
||||
|
||||
val canBeLower = when (blockchain) {
|
||||
Blockchain.Tron, Blockchain.TronTestnet -> amountType is AmountType.Token
|
||||
Blockchain.Fantom, Blockchain.FantomTestnet -> amountType is AmountType.Token
|
||||
Blockchain.Arbitrum, Blockchain.ArbitrumTestnet -> true
|
||||
Blockchain.Stellar, Blockchain.StellarTestnet -> true
|
||||
else -> false
|
||||
}
|
||||
|
||||
return if (canBeLower) {
|
||||
FeePrecision.CAN_BE_LOWER
|
||||
} else {
|
||||
FeePrecision.PRECISE
|
||||
|
|
|
|||
|
|
@ -6,7 +6,17 @@ import com.tangem.tap.common.extensions.scaleToFiat
|
|||
import com.tangem.tap.common.extensions.stripZeroPlainString
|
||||
import com.tangem.tap.features.send.redux.ReceiptAction.RefreshReceipt
|
||||
import com.tangem.tap.features.send.redux.SendScreenAction
|
||||
import com.tangem.tap.features.send.redux.states.*
|
||||
import com.tangem.tap.features.send.redux.states.AmountState
|
||||
import com.tangem.tap.features.send.redux.states.FeeState
|
||||
import com.tangem.tap.features.send.redux.states.MainCurrencyType
|
||||
import com.tangem.tap.features.send.redux.states.ReceiptCrypto
|
||||
import com.tangem.tap.features.send.redux.states.ReceiptFiat
|
||||
import com.tangem.tap.features.send.redux.states.ReceiptLayoutType
|
||||
import com.tangem.tap.features.send.redux.states.ReceiptState
|
||||
import com.tangem.tap.features.send.redux.states.ReceiptSymbols
|
||||
import com.tangem.tap.features.send.redux.states.ReceiptTokenCrypto
|
||||
import com.tangem.tap.features.send.redux.states.ReceiptTokenFiat
|
||||
import com.tangem.tap.features.send.redux.states.SendState
|
||||
import com.tangem.tap.features.wallet.redux.WalletState.Companion.UNKNOWN_AMOUNT_SIGN
|
||||
import com.tangem.tap.store
|
||||
import java.math.BigDecimal
|
||||
|
|
@ -91,7 +101,7 @@ class ReceiptReducer : SendInternalReducer {
|
|||
if (feeState.feeIsIncluded) {
|
||||
return ReceiptCrypto(
|
||||
amountCrypto = amountState.amountToSendCrypto.minus(feeCrypto).stripZeroPlainString(),
|
||||
feeCrypto = feeCrypto.stripZeroPlainString(),
|
||||
feeCrypto = feeCrypto.stripZeroPlainString().addPrecisionSign(),
|
||||
totalCrypto = amountState.amountToSendCrypto.stripZeroPlainString(),
|
||||
feeFiat = feeFiat,
|
||||
willSentFiat = convertToFiatPrecision(amountState.amountToSendCrypto),
|
||||
|
|
@ -101,7 +111,7 @@ class ReceiptReducer : SendInternalReducer {
|
|||
val totalCrypto = amountState.amountToSendCrypto.plus(feeCrypto)
|
||||
return ReceiptCrypto(
|
||||
amountCrypto = amountState.amountToSendCrypto.stripZeroPlainString(),
|
||||
feeCrypto = feeCrypto.stripZeroPlainString(),
|
||||
feeCrypto = feeCrypto.stripZeroPlainString().addPrecisionSign(),
|
||||
totalCrypto = totalCrypto.stripZeroPlainString(),
|
||||
feeFiat = feeFiat,
|
||||
willSentFiat = convertToFiatPrecision(totalCrypto),
|
||||
|
|
@ -125,8 +135,7 @@ class ReceiptReducer : SendInternalReducer {
|
|||
val totalFiat = amountFiat.plus(feeFiat)
|
||||
ReceiptTokenFiat(
|
||||
amountFiat = amountFiat.scaleToFiat(true).stripZeroPlainString(),
|
||||
feeFiat = feeFiat.scaleToFiat(true)
|
||||
.stripZeroPlainString().addPrecisionSign(),
|
||||
feeFiat = feeFiat.scaleToFiat(true).stripZeroPlainString().addPrecisionSign(),
|
||||
totalFiat = totalFiat.scaleToFiat(true).stripZeroPlainString(),
|
||||
willSentToken = tokensToSend.stripZeroPlainString(),
|
||||
willSentFeeCoin = feeCoin.stripZeroPlainString(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue