Updated on 2026-08-14

This commit is contained in:
Tangem 2026-01-19 16:52:33 +03:00
parent d839a616ef
commit d808a3ddb2
2 changed files with 9 additions and 8 deletions

View file

@ -17,6 +17,7 @@ import com.tangem.domain.transaction.error.GetFeeError
import com.tangem.domain.transaction.models.TransactionFeeExtended
import com.tangem.domain.transaction.usecase.IsFeeApproximateUseCase
import com.tangem.domain.transaction.usecase.gasless.GetAvailableFeeTokensUseCase
import com.tangem.domain.transaction.usecase.gasless.IsGaslessFeeSupportedForNetwork
import com.tangem.domain.wallets.usecase.GetUserWalletUseCase
import com.tangem.features.send.v2.api.SendFeatureToggles
import com.tangem.features.send.v2.api.analytics.CommonSendAnalyticEvents.NonceInserted
@ -55,11 +56,17 @@ internal class FeeSelectorLogic @AssistedInject constructor(
private val getSingleCryptoCurrencyStatusUseCase: GetSingleCryptoCurrencyStatusUseCase,
private val getUserWalletUseCase: GetUserWalletUseCase,
private val getAvailableFeeTokensUseCase: GetAvailableFeeTokensUseCase,
private val isGaslessFeeSupportedForNetwork: IsGaslessFeeSupportedForNetwork,
) : FeeSelectorIntents {
private var appCurrency: AppCurrency = AppCurrency.Default
val uiState = MutableStateFlow<FeeSelectorUM>(params.state)
val isGaslessEnabled = sendFeatureToggles.isGaslessTransactionsEnabled &&
params.onLoadFeeExtended != null &&
isGaslessFeeSupportedForNetwork(params.feeCryptoCurrencyStatus.currency.network) &&
params.cryptoCurrencyStatus.currency is CryptoCurrency.Token
init {
initAppCurrency()
subscribeOnFeeReloadTriggerUpdates()
@ -216,7 +223,7 @@ internal class FeeSelectorLogic @AssistedInject constructor(
@Suppress("UnreachableCode")
private suspend fun callLoadFee(): Either<GetFeeError, LoadedFeeResult> {
val extended = params.onLoadFeeExtended
if (extended == null || !sendFeatureToggles.isGaslessTransactionsEnabled) {
if (extended == null || !isGaslessEnabled) {
return params.onLoadFee().map { LoadedFeeResult.Basic(it) }
}

View file

@ -8,8 +8,6 @@ import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.decompose.utils.stack
import com.tangem.domain.models.currency.CryptoCurrencyStatus
import com.tangem.domain.transaction.usecase.gasless.IsGaslessFeeSupportedForNetwork
import com.tangem.features.send.v2.api.SendFeatureToggles
import com.tangem.features.send.v2.api.entity.FeeItem
import com.tangem.features.send.v2.api.entity.FeeSelectorUM
import com.tangem.features.send.v2.api.params.FeeSelectorParams
@ -25,8 +23,6 @@ internal class FeeSelectorModel @Inject constructor(
paramsContainer: ParamsContainer,
feeSelectorLogicFactory: FeeSelectorLogic.Factory,
override val dispatchers: CoroutineDispatcherProvider,
private val sendFeatureToggles: SendFeatureToggles,
private val isGaslessFeeSupportedForNetwork: IsGaslessFeeSupportedForNetwork,
) : Model(), FeeSelectorIntents {
private val params = paramsContainer.require<FeeSelectorParams.FeeSelectorDetailsParams>()
@ -90,9 +86,7 @@ internal class FeeSelectorModel @Inject constructor(
fun getInitialRoute(): FeeSelectorRoute {
return when {
sendFeatureToggles.isGaslessTransactionsEnabled && params.onLoadFeeExtended != null &&
isGaslessFeeSupportedForNetwork(params.feeCryptoCurrencyStatus.currency.network) ->
FeeSelectorRoute.NetworkFee
feeSelectorLogic.isGaslessEnabled -> FeeSelectorRoute.NetworkFee
else -> FeeSelectorRoute.ChooseSpeed
}
}