Updated on 2026-08-14
This commit is contained in:
parent
d839a616ef
commit
d808a3ddb2
2 changed files with 9 additions and 8 deletions
|
|
@ -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) }
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue