diff --git a/domain/legacy/src/main/java/com/tangem/domain/common/extensions/Blockchain.kt b/domain/legacy/src/main/java/com/tangem/domain/common/extensions/Blockchain.kt index aca3f01cc2..db20fc08a4 100644 --- a/domain/legacy/src/main/java/com/tangem/domain/common/extensions/Blockchain.kt +++ b/domain/legacy/src/main/java/com/tangem/domain/common/extensions/Blockchain.kt @@ -261,4 +261,5 @@ private const val NODL_AMOUNT_TO_CREATE_ACCOUNT = 1.5 private val excludedBlockchains = listOf( Blockchain.Unknown, Blockchain.Playa3ull, + Blockchain.Hedera, ) \ No newline at end of file diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt index 53e3148278..5e8c386764 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt @@ -888,10 +888,10 @@ internal class StateBuilder( ) } - fun addAlert(uiState: SwapStateHolder, onClick: () -> Unit): SwapStateHolder { + fun addAlert(uiState: SwapStateHolder, message: TextReference? = null, onClick: () -> Unit): SwapStateHolder { return uiState.copy( alert = SwapWarning.GenericWarning( - message = null, + message = message, onClick = onClick, ), ) diff --git a/features/swap/presentation/src/main/java/com/tangem/feature/swap/viewmodels/SwapViewModel.kt b/features/swap/presentation/src/main/java/com/tangem/feature/swap/viewmodels/SwapViewModel.kt index d194494046..39ca0d7991 100644 --- a/features/swap/presentation/src/main/java/com/tangem/feature/swap/viewmodels/SwapViewModel.kt +++ b/features/swap/presentation/src/main/java/com/tangem/feature/swap/viewmodels/SwapViewModel.kt @@ -8,6 +8,7 @@ import arrow.core.getOrElse import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.models.AnalyticsParam import com.tangem.core.analytics.models.Basic +import com.tangem.core.ui.extensions.TextReference import com.tangem.core.ui.utils.InputNumberFormatter import com.tangem.domain.appcurrency.GetSelectedAppCurrencyUseCase import com.tangem.domain.appcurrency.model.AppCurrency @@ -113,7 +114,7 @@ internal class SwapViewModel @Inject constructor( val cryptoCurrencyStatus = getCryptoCurrencyStatusUseCase(it.walletId, initialCryptoCurrency.id).getOrNull() if (cryptoCurrencyStatus == null) { - uiState = stateBuilder.addAlert(uiState, swapRouter::back) + uiState = stateBuilder.addAlert(uiState = uiState, onClick = swapRouter::back) } else { initialCryptoCurrencyStatus = cryptoCurrencyStatus initTokens() @@ -459,7 +460,12 @@ internal class SwapViewModel @Inject constructor( return } val fromCurrency = requireNotNull(dataState.fromCryptoCurrency) - val fee = requireNotNull(dataState.selectedFee) + val fee = dataState.selectedFee + // TODO: unexpected crash for some users, this workaround to prevent app crash and follow to support + if (fee == null) { + makeDefaultAlert(TextReference.Str("Fee estimation error. Please send feedback to support.")) + return + } viewModelScope.launch(dispatchers.main) { runCatching(dispatchers.io) { swapInteractor.onSwap( @@ -749,6 +755,12 @@ internal class SwapViewModel @Inject constructor( } } + private fun makeDefaultAlert(message: TextReference) { + uiState = stateBuilder.addAlert(uiState, message) { + uiState = stateBuilder.clearAlert(uiState) + } + } + @Suppress("LongMethod", "CyclomaticComplexMethod") private fun createUiActions(): UiActions { return UiActions( diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index 9404d9c15c..08469f5c44 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -85,7 +85,7 @@ web3j = "4.10.1" # endregion Other libraries # region Tangem -tangemBlockchainSdk = "release-app_5.7-506" +tangemBlockchainSdk = "release-app_5.7-509" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds tangemCardSdk = "release-app_5.7-330" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^