From f7479822af817cc1fbe96cd7849736d79730c22c Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 27 Sep 2024 09:59:37 +0300 Subject: [PATCH 1/6] Updated on 2026-08-14 --- gradle/dependencies.toml | 4 ++-- .../main/java/com/tangem/blockchainsdk/utils/Blockchain.kt | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index aaf2b34885..d4c53abc59 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -89,9 +89,9 @@ markdownComposeView = "0.5.4" # endregion Other libraries # region Tangem -tangemBlockchainSdk = "release-app_5.15-796" +tangemBlockchainSdk = "release-app_5.16-800" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds -tangemCardSdk = "release-app_5.15-384" +tangemCardSdk = "release-app_5.16-386" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ tangemVico = "2.0.0-alpha.25-tangem16" #tangemVico = "0.0.1" # Keep it! - used for local builds ^ diff --git a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/utils/Blockchain.kt b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/utils/Blockchain.kt index cddafe6527..6c71737687 100644 --- a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/utils/Blockchain.kt +++ b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/utils/Blockchain.kt @@ -367,6 +367,4 @@ private val excludedBlockchains = listOf( Blockchain.Unknown, Blockchain.Nexa, Blockchain.NexaTestnet, - Blockchain.Sei, - Blockchain.InternetComputer, ) \ No newline at end of file From 9264825e2cc95230efe384609cc62f118eab6409 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 27 Sep 2024 10:36:37 +0300 Subject: [PATCH 2/6] Updated on 2026-08-14 --- gradle/dependencies.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index d4c53abc59..ec34fe2a7d 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -89,7 +89,7 @@ markdownComposeView = "0.5.4" # endregion Other libraries # region Tangem -tangemBlockchainSdk = "release-app_5.16-800" +tangemBlockchainSdk = "release-app_5.16-801" #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 ^ From dd77e51465a295b562eec247a08bc1cf2716c061 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 27 Sep 2024 13:08:25 +0500 Subject: [PATCH 3/6] Updated on 2026-08-14 --- .../com/tangem/data/transaction/DefaultTransactionRepository.kt | 1 + .../state/recipient/SendRecipientMemoFieldConverter.kt | 1 + gradle/dependencies.toml | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/data/transaction/src/main/java/com/tangem/data/transaction/DefaultTransactionRepository.kt b/data/transaction/src/main/java/com/tangem/data/transaction/DefaultTransactionRepository.kt index 0452da5a7c..f2b213583f 100644 --- a/data/transaction/src/main/java/com/tangem/data/transaction/DefaultTransactionRepository.kt +++ b/data/transaction/src/main/java/com/tangem/data/transaction/DefaultTransactionRepository.kt @@ -263,6 +263,7 @@ internal class DefaultTransactionRepository( Blockchain.Binance -> BinanceTransactionExtras(memo) Blockchain.XRP -> memo.toLongOrNull()?.let { XrpTransactionBuilder.XrpTransactionExtras(it) } Blockchain.Cosmos, + Blockchain.Sei, Blockchain.TerraV1, Blockchain.TerraV2, -> CosmosTransactionExtras(memo) diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/recipient/SendRecipientMemoFieldConverter.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/recipient/SendRecipientMemoFieldConverter.kt index 1525d0d6ab..8ea7d24d6d 100644 --- a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/recipient/SendRecipientMemoFieldConverter.kt +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/recipient/SendRecipientMemoFieldConverter.kt @@ -36,6 +36,7 @@ internal class SendRecipientMemoFieldConverter( Blockchain.Stellar.id, Blockchain.Hedera.id, Blockchain.Algorand.id, + Blockchain.Sei.id, -> { convert( value = Data(memo = memo, label = R.string.send_extras_hint_memo), diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index ec34fe2a7d..8f9ec08516 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -89,7 +89,7 @@ markdownComposeView = "0.5.4" # endregion Other libraries # region Tangem -tangemBlockchainSdk = "release-app_5.16-801" +tangemBlockchainSdk = "release-app_5.16-802" #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 ^ From 0f9a5e4dad5134720319ac41cf92b6dd283a4533 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 27 Sep 2024 12:22:36 +0300 Subject: [PATCH 4/6] Updated on 2026-08-14 --- .../tangem/data/staking/DefaultStakingRepository.kt | 3 +-- .../staking/converters/YieldBalanceListConverter.kt | 10 ++++------ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/data/staking/src/main/java/com/tangem/data/staking/DefaultStakingRepository.kt b/data/staking/src/main/java/com/tangem/data/staking/DefaultStakingRepository.kt index 2ccac4081b..a1fe27bb29 100644 --- a/data/staking/src/main/java/com/tangem/data/staking/DefaultStakingRepository.kt +++ b/data/staking/src/main/java/com/tangem/data/staking/DefaultStakingRepository.kt @@ -98,8 +98,7 @@ internal class DefaultStakingRepository( ) private val yieldBalanceConverter = YieldBalanceConverter() - - private val yieldBalanceListConverter = YieldBalanceListConverter() + private val yieldBalanceListConverter = YieldBalanceListConverter(yieldBalanceConverter) private val isYieldBalanceFetching = MutableStateFlow( value = emptyMap(), diff --git a/data/staking/src/main/java/com/tangem/data/staking/converters/YieldBalanceListConverter.kt b/data/staking/src/main/java/com/tangem/data/staking/converters/YieldBalanceListConverter.kt index 6a3f3c793a..0f3d08a7c1 100644 --- a/data/staking/src/main/java/com/tangem/data/staking/converters/YieldBalanceListConverter.kt +++ b/data/staking/src/main/java/com/tangem/data/staking/converters/YieldBalanceListConverter.kt @@ -4,18 +4,16 @@ import com.tangem.datasource.api.stakekit.models.response.model.YieldBalanceWrap import com.tangem.domain.staking.model.stakekit.YieldBalanceList import com.tangem.utils.converter.Converter -internal class YieldBalanceListConverter : Converter, YieldBalanceList> { - - internal val converter by lazy(LazyThreadSafetyMode.NONE) { - YieldBalanceConverter() - } +internal class YieldBalanceListConverter( + private val yieldBalanceConverter: YieldBalanceConverter, +) : Converter, YieldBalanceList> { override fun convert(value: Set): YieldBalanceList { return if (value.isEmpty()) { YieldBalanceList.Empty } else { YieldBalanceList.Data( - balances = value.map(converter::convert), + balances = value.map(yieldBalanceConverter::convert), ) } } From 9ebefa77adba9eac4040749b905d302f376ba37b Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 27 Sep 2024 13:35:43 +0300 Subject: [PATCH 5/6] Updated on 2026-08-14 --- gradle/dependencies.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index 8f9ec08516..c555bbf340 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -93,7 +93,7 @@ tangemBlockchainSdk = "release-app_5.16-802" #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 From a601f1d76d28c44ec6b5980ad121343b0ed0caf3 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 27 Sep 2024 13:40:20 +0300 Subject: [PATCH 6/6] Updated on 2026-08-14 --- .../models/response/model/YieldDTO.kt | 2 +- .../data/staking/converters/YieldConverter.kt | 2 +- .../domain/staking/model/stakekit/Yield.kt | 2 +- .../state/converters/BalanceItemConverter.kt | 4 +- .../AddStakingNotificationsTransformer.kt | 47 +++++++++++-------- .../SetInitialDataStateTransformer.kt | 5 +- 6 files changed, 35 insertions(+), 27 deletions(-) diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/stakekit/models/response/model/YieldDTO.kt b/core/datasource/src/main/java/com/tangem/datasource/api/stakekit/models/response/model/YieldDTO.kt index 614184aee4..330df3c666 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/stakekit/models/response/model/YieldDTO.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/stakekit/models/response/model/YieldDTO.kt @@ -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") diff --git a/data/staking/src/main/java/com/tangem/data/staking/converters/YieldConverter.kt b/data/staking/src/main/java/com/tangem/data/staking/converters/YieldConverter.kt index c08359c098..8c54ddbf4a 100644 --- a/data/staking/src/main/java/com/tangem/data/staking/converters/YieldConverter.kt +++ b/data/staking/src/main/java/com/tangem/data/staking/converters/YieldConverter.kt @@ -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, diff --git a/domain/staking/models/src/main/kotlin/com/tangem/domain/staking/model/stakekit/Yield.kt b/domain/staking/models/src/main/kotlin/com/tangem/domain/staking/model/stakekit/Yield.kt index 4be9bad438..c65303fd35 100644 --- a/domain/staking/models/src/main/kotlin/com/tangem/domain/staking/model/stakekit/Yield.kt +++ b/domain/staking/models/src/main/kotlin/com/tangem/domain/staking/model/stakekit/Yield.kt @@ -84,7 +84,7 @@ data class Yield( val tokens: List, val type: String, val rewardSchedule: RewardSchedule, - val cooldownPeriod: Period, + val cooldownPeriod: Period?, val warmupPeriod: Period, val rewardClaiming: RewardClaiming, val defaultValidator: String?, diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/BalanceItemConverter.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/BalanceItemConverter.kt index 141759adfb..584fafdd1f 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/BalanceItemConverter.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/converters/BalanceItemConverter.kt @@ -100,8 +100,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), diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/AddStakingNotificationsTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/AddStakingNotificationsTransformer.kt index bd7988cd8f..30877033e3 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/AddStakingNotificationsTransformer.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/AddStakingNotificationsTransformer.kt @@ -257,16 +257,19 @@ internal class AddStakingNotificationsTransformer( } private fun MutableList.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.addEnterInfoNotifications() { @@ -300,17 +303,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 + } } else -> null to null } diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetInitialDataStateTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetInitialDataStateTransformer.kt index 66b56ea7aa..8c7194ad53 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetInitialDataStateTransformer.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetInitialDataStateTransformer.kt @@ -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),