Updated on 2026-08-14

This commit is contained in:
Tangem 2024-10-01 17:28:39 +03:00
commit c870f8386d
12 changed files with 45 additions and 33 deletions

View file

@ -124,7 +124,7 @@ data class YieldDTO(
@Json(name = "rewardSchedule")
val rewardSchedule: RewardScheduleDTO,
@Json(name = "cooldownPeriod")
val cooldownPeriod: PeriodDTO,
val cooldownPeriod: PeriodDTO?,
@Json(name = "warmupPeriod")
val warmupPeriod: PeriodDTO,
@Json(name = "rewardClaiming")

View file

@ -37,6 +37,6 @@
},
{
"name": "IS_ETHEREUM_EIP_1559_ENABLED",
"version": "5.16.0"
"version": "5.17.0"
}
]

View file

@ -53,8 +53,8 @@ internal class DefaultCustomTokensRepository(
Blockchain.Binance,
Blockchain.BinanceTestnet,
-> true
Blockchain.Cardano -> blockchain.validateContractAddress(contractAddress.lowercase())
else -> blockchain.validateAddress(contractAddress.lowercase())
Blockchain.Cardano -> blockchain.validateContractAddress(contractAddress)
else -> blockchain.validateAddress(contractAddress)
}
}

View file

@ -88,7 +88,7 @@ class YieldConverter(
tokens = metadataDTO.tokensDTO.map { tokenConverter.convert(it) },
type = metadataDTO.type,
rewardSchedule = convertRewardSchedule(metadataDTO.rewardSchedule),
cooldownPeriod = convertPeriod(metadataDTO.cooldownPeriod),
cooldownPeriod = metadataDTO.cooldownPeriod?.let { convertPeriod(it) },
warmupPeriod = convertPeriod(metadataDTO.warmupPeriod),
rewardClaiming = convertRewardClaiming(metadataDTO.rewardClaiming),
defaultValidator = metadataDTO.defaultValidator,

View file

@ -6,6 +6,7 @@ import com.tangem.blockchain.blockchains.binance.BinanceTransactionExtras
import com.tangem.blockchain.blockchains.cosmos.CosmosTransactionExtras
import com.tangem.blockchain.blockchains.ethereum.EthereumTransactionExtras
import com.tangem.blockchain.blockchains.hedera.HederaTransactionExtras
import com.tangem.blockchain.blockchains.icp.ICPTransactionExtras
import com.tangem.blockchain.blockchains.stellar.StellarMemo
import com.tangem.blockchain.blockchains.stellar.StellarTransactionExtras
import com.tangem.blockchain.blockchains.ton.TonTransactionExtras
@ -249,6 +250,7 @@ internal class DefaultTransactionRepository(
)
}
@Suppress("CyclomaticComplexMethod")
private fun getMemoExtras(networkId: String, memo: String?): TransactionExtras? {
val blockchain = Blockchain.fromId(networkId)
if (memo == null) return null
@ -270,6 +272,7 @@ internal class DefaultTransactionRepository(
Blockchain.TON -> TonTransactionExtras(memo)
Blockchain.Hedera -> HederaTransactionExtras(memo)
Blockchain.Algorand -> AlgorandTransactionExtras(memo)
Blockchain.InternetComputer -> memo.toLongOrNull()?.let { ICPTransactionExtras(it) }
else -> null
}
}

View file

@ -84,7 +84,7 @@ data class Yield(
val tokens: List<Token>,
val type: String,
val rewardSchedule: RewardSchedule,
val cooldownPeriod: Period,
val cooldownPeriod: Period?,
val warmupPeriod: Period,
val rewardClaiming: RewardClaiming,
val defaultValidator: String?,

View file

@ -37,6 +37,7 @@ internal class SendRecipientMemoFieldConverter(
Blockchain.Hedera.id,
Blockchain.Algorand.id,
Blockchain.Sei.id,
Blockchain.InternetComputer.id,
-> {
convert(
value = Data(memo = memo, label = R.string.send_extras_hint_memo),

View file

@ -105,8 +105,8 @@ internal class BalanceItemConverter(
-> null
}
private fun getUnbondingDate(date: DateTime?): TextReference {
val unbondingPeriod = yield.metadata.cooldownPeriod.days
private fun getUnbondingDate(date: DateTime?): TextReference? {
val unbondingPeriod = yield.metadata.cooldownPeriod?.days ?: return null
if (date == null) {
return combinedReference(
resourceReference(R.string.staking_details_unbonding_period),

View file

@ -257,16 +257,19 @@ internal class AddStakingNotificationsTransformer(
}
private fun MutableList<NotificationUM>.addExitInfoNotifications() {
add(
StakingNotification.Info.Unstake(
cooldownPeriodDays = yield.metadata.cooldownPeriod.days,
subtitleRes = if (isCosmos(cryptoCurrencyStatusProvider().currency.network.id.value)) {
R.string.staking_notification_unstake_cosmos_text
} else {
R.string.staking_notification_unstake_text
},
),
)
val cooldownPeriodDays = yield.metadata.cooldownPeriod?.days
if (cooldownPeriodDays != null) {
add(
StakingNotification.Info.Unstake(
cooldownPeriodDays = cooldownPeriodDays,
subtitleRes = if (isCosmos(cryptoCurrencyStatusProvider().currency.network.id.value)) {
R.string.staking_notification_unstake_cosmos_text
} else {
R.string.staking_notification_unstake_text
},
),
)
}
}
private fun MutableList<NotificationUM>.addEnterInfoNotifications() {
@ -290,17 +293,21 @@ internal class AddStakingNotificationsTransformer(
resourceReference(R.string.staking_notification_withdraw_text)
}
StakingActionType.UNLOCK_LOCKED -> {
val cooldownPeriodDays = yield.metadata.cooldownPeriod.days
resourceReference(R.string.staking_unlocked_locked) to resourceReference(
R.string.staking_notification_unlock_text,
wrappedList(
pluralReference(
id = R.plurals.common_days,
count = cooldownPeriodDays,
formatArgs = wrappedList(cooldownPeriodDays),
val cooldownPeriodDays = yield.metadata.cooldownPeriod?.days
if (cooldownPeriodDays != null) {
resourceReference(R.string.staking_unlocked_locked) to resourceReference(
R.string.staking_notification_unlock_text,
wrappedList(
pluralReference(
id = R.plurals.common_days,
count = cooldownPeriodDays,
formatArgs = wrappedList(cooldownPeriodDays),
),
),
),
)
)
} else {
null to null
}
}
StakingActionType.VOTE_LOCKED -> {
resourceReference(R.string.staking_revote) to

View file

@ -104,7 +104,7 @@ internal class SetInitialDataStateTransformer(
return listOfNotNull(
createAnnualPercentageRateItem(yield.validators),
createAvailableItem(cryptoCurrencyStatus),
createUnbondingPeriodItem(yield.metadata.cooldownPeriod.days),
createUnbondingPeriodItem(yield.metadata.cooldownPeriod?.days),
createMinimumRequirementItem(
cryptoCurrencyStatus = cryptoCurrencyStatus,
minimumCryptoAmount = yield.args.enter.args[Yield.Args.ArgType.AMOUNT]?.minimum,
@ -140,7 +140,8 @@ internal class SetInitialDataStateTransformer(
)
}
private fun createUnbondingPeriodItem(cooldownPeriodDays: Int): RoundedListWithDividersItemData {
private fun createUnbondingPeriodItem(cooldownPeriodDays: Int?): RoundedListWithDividersItemData? {
cooldownPeriodDays ?: return null
return RoundedListWithDividersItemData(
id = R.string.staking_details_unbonding_period,
startText = TextReference.Res(R.string.staking_details_unbonding_period),

View file

@ -89,11 +89,11 @@ markdownComposeView = "0.5.4"
# endregion Other libraries
# region Tangem
tangemBlockchainSdk = "release-app_5.16-802"
tangemBlockchainSdk = "release-app_5.16-803"
#tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds
tangemCardSdk = "release-app_5.16-386"
#tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^
tangemVico = "2.0.0-alpha.25-tangem16"
tangemVico = "2.0.0-alpha.25-tangem17"
#tangemVico = "0.0.1" # Keep it! - used for local builds ^
# endregion Tangem

View file

@ -1 +1 @@
versionName=5.15.0
versionName=5.16.0