diff --git a/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/feeselector/model/FeeSelectorLogic.kt b/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/feeselector/model/FeeSelectorLogic.kt index 87fcceafc2..a6efb1b2dd 100644 --- a/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/feeselector/model/FeeSelectorLogic.kt +++ b/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/feeselector/model/FeeSelectorLogic.kt @@ -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(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 { val extended = params.onLoadFeeExtended - if (extended == null || !sendFeatureToggles.isGaslessTransactionsEnabled) { + if (extended == null || !isGaslessEnabled) { return params.onLoadFee().map { LoadedFeeResult.Basic(it) } } diff --git a/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/feeselector/model/FeeSelectorModel.kt b/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/feeselector/model/FeeSelectorModel.kt index 96ee2a20ad..39db4c6f51 100644 --- a/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/feeselector/model/FeeSelectorModel.kt +++ b/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/feeselector/model/FeeSelectorModel.kt @@ -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() @@ -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 } }