Updated on 2026-08-14

This commit is contained in:
Tangem 2025-10-06 07:33:08 +02:00
parent e7a2a07ed8
commit 4407663b8b
7 changed files with 32 additions and 16 deletions

View file

@ -546,7 +546,7 @@ internal class StakingModel @Inject constructor(
val rewardBlockType = yieldBalance?.reward?.rewardBlockType
val rewardPendingActionConstraints = yieldBalance?.reward?.rewardConstraints
if (rewardBlockType == RewardBlockType.RewardsRequirementsError) {
if (rewardBlockType is RewardBlockType.RewardsRequirementsError) {
val minimumAmount = rewardPendingActionConstraints?.amountArg?.minimum
// Temporary fix, until StakeKit adds minimum requirement amount to balance response
val minimumAmountValue = if (minimumAmount == null && yieldBalance.integrationId != null) {

View file

@ -15,6 +15,7 @@ import com.tangem.domain.staking.model.stakekit.Yield
import com.tangem.domain.staking.utils.getRewardStakingBalance
import com.tangem.features.staking.impl.presentation.state.InnerYieldBalanceState
import com.tangem.features.staking.impl.presentation.state.YieldReward
import com.tangem.lib.crypto.BlockchainUtils
import com.tangem.lib.crypto.BlockchainUtils.isStakingRewardUnavailable
import com.tangem.utils.Provider
import com.tangem.utils.converter.Converter
@ -91,7 +92,13 @@ internal class YieldBalancesConverter(
val isRewardsClaimable = rewards?.isNotEmpty() == true
return when {
isStakingRewardUnavailable(blockchainId) -> RewardBlockType.RewardUnavailable
isStakingRewardUnavailable(blockchainId) -> {
if (BlockchainUtils.isSolana(blockchainId)) {
RewardBlockType.RewardUnavailable.SolanaRewardUnavailable
} else {
RewardBlockType.RewardUnavailable.DefaultRewardUnavailable
}
}
isRewardsClaimable && isActionable -> RewardBlockType.Rewards
isRewardsClaimable && !isActionable -> RewardBlockType.RewardsRequirementsError
else -> RewardBlockType.NoRewards

View file

@ -68,7 +68,7 @@ internal object InitialStakingStatePreview {
reward = YieldReward(
rewardsFiat = "100 $",
rewardsCrypto = "100 SOL",
rewardBlockType = RewardBlockType.RewardUnavailable,
rewardBlockType = RewardBlockType.RewardUnavailable.DefaultRewardUnavailable,
rewardConstraints = null,
),
isActionable = true,

View file

@ -233,10 +233,14 @@ private fun StakingRewardBlock(
append(reward.rewardsCrypto.orMaskWithStars(isBalanceHidden))
} to TangemTheme.colors.text.primary1
}
RewardBlockType.RewardUnavailable -> {
RewardBlockType.RewardUnavailable.DefaultRewardUnavailable -> {
resourceReference(R.string.staking_details_auto_claiming_rewards_daily_text) to
TangemTheme.colors.text.tertiary
}
RewardBlockType.RewardUnavailable.SolanaRewardUnavailable -> {
resourceReference(R.string.staking_soloana_details_auto_claiming_rewards_daily_text) to
TangemTheme.colors.text.tertiary
}
RewardBlockType.NoRewards -> {
resourceReference(R.string.staking_details_no_rewards_to_claim) to TangemTheme.colors.text.tertiary
}