Updated on 2026-08-14
This commit is contained in:
parent
94579f4af8
commit
f69ee8bece
5 changed files with 98 additions and 21 deletions
|
|
@ -23,6 +23,7 @@ internal object SwapAmountQuoteUtils {
|
|||
|
||||
private val PRICE_IMPACT_AMOUNT_MIN_THRESHOLD = 25.toBigDecimal() // in USD
|
||||
private val PRICE_IMPACT_AMOUNT_MAX_THRESHOLD = 5000.toBigDecimal() // in USD
|
||||
private val PRICE_IMPACT_AMOUNT_LOW_THRESHOLD = 100_000.toBigDecimal() // in USD
|
||||
private val PRICE_IMPACT_LOW_THRESHOLD = 0.1.toBigDecimal() // 10%
|
||||
private val PRICE_IMPACT_HIGH_THRESHOLD = 0.5.toBigDecimal() // 50%
|
||||
|
||||
|
|
@ -46,10 +47,10 @@ internal object SwapAmountQuoteUtils {
|
|||
secondaryCryptoCurrencyStatus?.value?.fiatRate to primaryCryptoCurrencyStatus.value.fiatRate
|
||||
}
|
||||
|
||||
val fromRateUsd = if (swapDirection == SwapDirection.Direct) {
|
||||
primaryFiatRateUSD
|
||||
val (fromRateUsd, toRateUsd) = if (swapDirection == SwapDirection.Direct) {
|
||||
primaryFiatRateUSD to secondaryFiatRateUSD
|
||||
} else {
|
||||
secondaryFiatRateUSD
|
||||
secondaryFiatRateUSD to primaryFiatRateUSD
|
||||
}
|
||||
|
||||
val fromTokenFiatValue = fromRate?.let { fromAmount.multiply(fromRate).orZero() }
|
||||
|
|
@ -65,12 +66,15 @@ internal object SwapAmountQuoteUtils {
|
|||
}
|
||||
|
||||
val fromAmountUSD = fromAmount.multiply(fromRateUsd.orZero())
|
||||
val toAmountUSD = toAmount.multiply(toRateUsd.orZero())
|
||||
val amountDiff = fromAmountUSD - toAmountUSD
|
||||
|
||||
val type = when {
|
||||
value == null -> PriceImpact.Type.NONE
|
||||
value < PRICE_IMPACT_LOW_THRESHOLD -> PriceImpact.Type.LOW
|
||||
value in PRICE_IMPACT_LOW_THRESHOLD..PRICE_IMPACT_HIGH_THRESHOLD -> PriceImpact.Type.MEDIUM
|
||||
else -> PriceImpact.Type.HIGH
|
||||
value < PRICE_IMPACT_LOW_THRESHOLD &&
|
||||
amountDiff <= PRICE_IMPACT_AMOUNT_LOW_THRESHOLD -> PriceImpact.Type.LOW
|
||||
value > PRICE_IMPACT_HIGH_THRESHOLD -> PriceImpact.Type.HIGH
|
||||
else -> PriceImpact.Type.MEDIUM
|
||||
}
|
||||
|
||||
val amountSignificance = when {
|
||||
|
|
|
|||
|
|
@ -7,11 +7,11 @@ import com.tangem.core.analytics.models.AnalyticsParam.Key.ACCOUNT_DERIVATION_TO
|
|||
import com.tangem.core.analytics.models.AnalyticsParam.Key.ERROR_MESSAGE
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.FEE_TYPE
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.PROVIDER
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.RATE_TYPE
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.RECEIVE_BLOCKCHAIN
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.RECEIVE_TOKEN
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.SEND_BLOCKCHAIN
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.SEND_TOKEN
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.RATE_TYPE
|
||||
import com.tangem.core.analytics.models.AppsFlyerIncludedEvent
|
||||
import com.tangem.domain.express.models.ExpressRateType
|
||||
import com.tangem.domain.models.currency.CryptoCurrency
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue