Updated on 2026-08-14

This commit is contained in:
Tangem 2025-05-21 15:27:35 +03:00
parent df3d24237f
commit 92f2c8fcf0
3 changed files with 8 additions and 6 deletions

View file

@ -11,8 +11,7 @@ import com.tangem.domain.staking.utils.getRewardStakingBalance
import com.tangem.domain.tokens.model.CryptoCurrencyStatus
import com.tangem.features.staking.impl.presentation.state.InnerYieldBalanceState
import com.tangem.features.staking.impl.presentation.state.YieldReward
import com.tangem.lib.crypto.BlockchainUtils.isBSC
import com.tangem.lib.crypto.BlockchainUtils.isSolana
import com.tangem.lib.crypto.BlockchainUtils.isStakingRewardUnavailable
import com.tangem.utils.Provider
import com.tangem.utils.converter.Converter
import kotlinx.collections.immutable.toPersistentList
@ -87,7 +86,7 @@ internal class YieldBalancesConverter(
val isRewardsClaimable = rewards?.isNotEmpty() == true
return when {
isSolana(blockchainId) || isBSC(blockchainId) -> RewardBlockType.RewardUnavailable
isStakingRewardUnavailable(blockchainId) -> RewardBlockType.RewardUnavailable
isRewardsClaimable && isActionable -> RewardBlockType.Rewards
isRewardsClaimable && !isActionable -> RewardBlockType.RewardsRequirementsError
else -> RewardBlockType.NoRewards

View file

@ -20,8 +20,7 @@ import com.tangem.feature.tokendetails.presentation.tokendetails.state.IconState
import com.tangem.feature.tokendetails.presentation.tokendetails.state.StakingBlockUM
import com.tangem.feature.tokendetails.presentation.tokendetails.state.TokenDetailsState
import com.tangem.features.tokendetails.impl.R
import com.tangem.lib.crypto.BlockchainUtils.isBSC
import com.tangem.lib.crypto.BlockchainUtils.isSolana
import com.tangem.lib.crypto.BlockchainUtils.isStakingRewardUnavailable
import com.tangem.utils.Provider
import com.tangem.utils.converter.Converter
import com.tangem.utils.isNullOrZero
@ -146,7 +145,7 @@ internal class TokenDetailsStakingInfoConverter(
private fun getRewardText(status: CryptoCurrencyStatus, stakingRewardAmount: BigDecimal?): TextReference {
val blockchainId = status.currency.network.id.value
val rewardBlockType = when {
isSolana(blockchainId) || isBSC(blockchainId) -> RewardBlockType.RewardUnavailable
isStakingRewardUnavailable(blockchainId) -> RewardBlockType.RewardUnavailable
stakingRewardAmount.isNullOrZero() -> RewardBlockType.NoRewards
else -> RewardBlockType.Rewards
}

View file

@ -148,6 +148,10 @@ object BlockchainUtils {
return blockchain != Blockchain.Cardano
}
fun isStakingRewardUnavailable(blockchainId: String): Boolean {
return isSolana(blockchainId) || isBSC(blockchainId) || isTon(blockchainId)
}
private fun getNetworkStandardName(blockchain: Blockchain): String {
return when (blockchain) {
Blockchain.Ethereum, Blockchain.EthereumTestnet -> "ERC20"