Updated on 2026-08-14

This commit is contained in:
Tangem 2025-10-15 14:00:32 +03:00
parent 400ffe7215
commit 6b16af9f8b
2 changed files with 19 additions and 6 deletions

View file

@ -16,12 +16,16 @@ import com.tangem.core.analytics.api.ParamsInterceptorHolder
import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer
import com.tangem.core.decompose.ui.UiMessageSender
import com.tangem.core.navigation.share.ShareManager
import com.tangem.core.navigation.url.UrlOpener
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.format.bigdecimal.crypto
import com.tangem.core.ui.format.bigdecimal.format
import com.tangem.core.ui.haptic.TangemHapticEffect
import com.tangem.core.ui.haptic.VibratorHapticManager
import com.tangem.core.ui.message.DialogMessage
import com.tangem.features.staking.impl.R
import com.tangem.domain.appcurrency.GetSelectedAppCurrencyUseCase
import com.tangem.domain.appcurrency.model.AppCurrency
import com.tangem.domain.balancehiding.GetBalanceHidingSettingsUseCase
@ -140,6 +144,7 @@ internal class StakingModel @Inject constructor(
private val urlOpener: UrlOpener,
@DelayedWork private val coroutineScope: CoroutineScope,
private val innerRouter: InnerStakingRouter,
private val messageSender: UiMessageSender,
appRouter: AppRouter,
) : Model(), StakingClickIntents {
@ -999,7 +1004,12 @@ internal class StakingModel @Inject constructor(
network = cryptoCurrencyStatus.currency.network,
).fold(
ifLeft = {
stateController.update(DismissBottomSheetStateTransformer)
messageSender.send(
DialogMessage(
title = resourceReference(id = R.string.send_alert_transaction_failed_title),
message = resourceReference(id = R.string.common_unknown_error),
),
)
},
ifRight = {
stateController.update(CompleteInitializeBottomSheetTransformer(

View file

@ -10,6 +10,7 @@ import com.tangem.features.staking.impl.presentation.state.StakingUiState
import com.tangem.features.staking.impl.presentation.state.bottomsheet.TonInitializeAccountBottomSheetConfig
import com.tangem.utils.transformer.Transformer
import java.math.BigDecimal
import java.math.RoundingMode
internal class CompleteInitializeBottomSheetTransformer(
private val cryptoCurrencyStatus: CryptoCurrencyStatus,
@ -21,8 +22,10 @@ internal class CompleteInitializeBottomSheetTransformer(
val prevBottomSheetConfigContent =
prevBottomSheetConfig.content as? TonInitializeAccountBottomSheetConfig ?: return prevState
val feeAmount = (prevBottomSheetConfigContent.feeState as? FeeState.Content)
?.fee?.amount?.value?.multiply(BigDecimal(FEE_MULTIPLIER)) ?: return prevState
val feeAmount = (prevBottomSheetConfigContent.feeState as? FeeState.Content)?.fee?.amount ?: return prevState
val multipliedFeeAmount = feeAmount.value?.multiply(BigDecimal(FEE_MULTIPLIER))
?.setScale(feeAmount.decimals, RoundingMode.HALF_DOWN) ?: return prevState
val confirmationState = prevState.confirmationState as? StakingStates.ConfirmationState.Data ?: return prevState
@ -31,12 +34,12 @@ internal class CompleteInitializeBottomSheetTransformer(
cryptoCurrencyStatus = cryptoCurrencyStatus,
minimumTransactionAmount = minimumTransactionAmount,
value = ReduceByData(
feeAmount,
feeAmount,
multipliedFeeAmount,
multipliedFeeAmount,
),
).transform(prevState.amountState),
confirmationState = confirmationState.copy(
reduceAmountBy = feeAmount,
reduceAmountBy = multipliedFeeAmount,
),
bottomSheetConfig = prevBottomSheetConfig.copy(
content = prevBottomSheetConfigContent.copy(