Updated on 2026-08-14

This commit is contained in:
Tangem 2024-03-02 13:25:45 +00:00
commit 95feb58f24
4 changed files with 18 additions and 5 deletions

View file

@ -261,4 +261,5 @@ private const val NODL_AMOUNT_TO_CREATE_ACCOUNT = 1.5
private val excludedBlockchains = listOf(
Blockchain.Unknown,
Blockchain.Playa3ull,
Blockchain.Hedera,
)

View file

@ -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,
),
)

View file

@ -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(

View file

@ -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 ^