From 0568cc7675085c08a9211f542cb04385866d1736 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 2 Apr 2026 14:55:26 +0400 Subject: [PATCH 1/6] Updated on 2026-08-14 --- .../assets/configs/feature_toggles_config.json | 4 ++++ .../features/txhistory/TxHistoryFeatureToggles.kt | 5 +++++ .../txhistory/di/DefaultTxHistoryFeatureToggles.kt | 14 ++++++++++++++ gradle/tangem_dependencies.toml | 2 +- .../blockchainsdk/WalletManagerFactoryCreator.kt | 2 ++ .../blockchainsdk/di/BlockchainSDKFactoryModule.kt | 6 ++++++ 6 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 features/txhistory/api/src/main/kotlin/com/tangem/features/txhistory/TxHistoryFeatureToggles.kt create mode 100644 features/txhistory/impl/src/main/kotlin/com/tangem/features/txhistory/di/DefaultTxHistoryFeatureToggles.kt diff --git a/core/config-toggles/src/main/assets/configs/feature_toggles_config.json b/core/config-toggles/src/main/assets/configs/feature_toggles_config.json index 5144c3702b..9ac6b78ca9 100644 --- a/core/config-toggles/src/main/assets/configs/feature_toggles_config.json +++ b/core/config-toggles/src/main/assets/configs/feature_toggles_config.json @@ -75,5 +75,9 @@ { "name": "TOKEN_SYNC_ENABLED", "version": "undefined" + }, + { + "name": "SOLANA_TX_HISTORY_ENABLED", + "version": "undefined" } ] diff --git a/features/txhistory/api/src/main/kotlin/com/tangem/features/txhistory/TxHistoryFeatureToggles.kt b/features/txhistory/api/src/main/kotlin/com/tangem/features/txhistory/TxHistoryFeatureToggles.kt new file mode 100644 index 0000000000..b56fa60857 --- /dev/null +++ b/features/txhistory/api/src/main/kotlin/com/tangem/features/txhistory/TxHistoryFeatureToggles.kt @@ -0,0 +1,5 @@ +package com.tangem.features.txhistory + +interface TxHistoryFeatureToggles { + val isSolanaTxHistoryEnabled: Boolean +} \ No newline at end of file diff --git a/features/txhistory/impl/src/main/kotlin/com/tangem/features/txhistory/di/DefaultTxHistoryFeatureToggles.kt b/features/txhistory/impl/src/main/kotlin/com/tangem/features/txhistory/di/DefaultTxHistoryFeatureToggles.kt new file mode 100644 index 0000000000..f20da20c71 --- /dev/null +++ b/features/txhistory/impl/src/main/kotlin/com/tangem/features/txhistory/di/DefaultTxHistoryFeatureToggles.kt @@ -0,0 +1,14 @@ +package com.tangem.features.txhistory.di + +import com.tangem.core.configtoggle.FeatureToggles +import com.tangem.core.configtoggle.feature.FeatureTogglesManager +import com.tangem.features.txhistory.TxHistoryFeatureToggles +import javax.inject.Inject + +internal class DefaultTxHistoryFeatureToggles @Inject constructor( + private val featureTogglesManager: FeatureTogglesManager, +) : TxHistoryFeatureToggles { + + override val isSolanaTxHistoryEnabled: Boolean + get() = featureTogglesManager.isFeatureEnabled(FeatureToggles.SOLANA_TX_HISTORY_ENABLED) +} \ No newline at end of file diff --git a/gradle/tangem_dependencies.toml b/gradle/tangem_dependencies.toml index 08ab7327d8..8bcfb69733 100644 --- a/gradle/tangem_dependencies.toml +++ b/gradle/tangem_dependencies.toml @@ -5,7 +5,7 @@ # https://github.com/tangem/tangem-sdk-android/ # https://github.com/tangem/vico -tangemBlockchainSdk = "releases-5.36-1470" +tangemBlockchainSdk = "releases-5.36-1478" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds tangemCardSdk = "releases-5.36-600" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ diff --git a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/WalletManagerFactoryCreator.kt b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/WalletManagerFactoryCreator.kt index 6c0fb03aca..b9df6ad1bd 100644 --- a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/WalletManagerFactoryCreator.kt +++ b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/WalletManagerFactoryCreator.kt @@ -23,6 +23,7 @@ internal class WalletManagerFactoryCreator @Inject constructor( private val accountCreator: AccountCreator, private val blockchainDataStorage: BlockchainDataStorage, private val blockchainSDKLogger: BlockchainSDKLogger, + private val isSolanaTxHistoryEnabled: Boolean, ) { fun create(config: BlockchainSdkConfig, blockchainProviderTypes: BlockchainProviderTypes): WalletManagerFactory { @@ -35,6 +36,7 @@ internal class WalletManagerFactoryCreator @Inject constructor( featureToggles = BlockchainFeatureToggles( isYieldSupplyEnabled = true, isPendingTransactionsEnabled = true, + isSolanaTxHistoryEnabled = isSolanaTxHistoryEnabled, ), blockchainDataStorage = blockchainDataStorage, loggers = listOf(blockchainSDKLogger), diff --git a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/di/BlockchainSDKFactoryModule.kt b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/di/BlockchainSDKFactoryModule.kt index 4a6d0d0c5a..fbcf86e62b 100644 --- a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/di/BlockchainSDKFactoryModule.kt +++ b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/di/BlockchainSDKFactoryModule.kt @@ -17,6 +17,8 @@ import com.tangem.blockchainsdk.providers.BlockchainProvidersTypesManager import com.tangem.blockchainsdk.providers.DevBlockchainProvidersTypesManager import com.tangem.blockchainsdk.providers.ProdBlockchainProvidersTypesManager import com.tangem.blockchainsdk.providers.dev.BlockchainProvidersResponseSerializer +import com.tangem.core.configtoggle.FeatureToggles +import com.tangem.core.configtoggle.feature.FeatureTogglesManager import com.tangem.datasource.api.tangemTech.TangemTechApi import com.tangem.datasource.di.NetworkMoshi import com.tangem.datasource.local.config.environment.EnvironmentConfig @@ -89,11 +91,15 @@ internal object BlockchainSDKFactoryModule { tangemTechApi: TangemTechApi, appPreferencesStore: AppPreferencesStore, blockchainSDKLogger: BlockchainSDKLogger, + featureTogglesManager: FeatureTogglesManager, ): WalletManagerFactoryCreator { return WalletManagerFactoryCreator( accountCreator = DefaultAccountCreator(tangemTechApi), blockchainDataStorage = DefaultBlockchainDataStorage(appPreferencesStore), blockchainSDKLogger = blockchainSDKLogger, + isSolanaTxHistoryEnabled = featureTogglesManager.isFeatureEnabled( + FeatureToggles.SOLANA_TX_HISTORY_ENABLED, + ), ) } } \ No newline at end of file From 9f6d605f85ef267f782e6943210fd4e577167d77 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 2 Apr 2026 14:09:23 +0300 Subject: [PATCH 2/6] Updated on 2026-08-14 --- .../notifications/AddStakingNotificationsTransformer.kt | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/notifications/AddStakingNotificationsTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/notifications/AddStakingNotificationsTransformer.kt index 5a13a69a4b..7bb3f0630d 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/notifications/AddStakingNotificationsTransformer.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/notifications/AddStakingNotificationsTransformer.kt @@ -17,7 +17,6 @@ import com.tangem.domain.models.currency.CryptoCurrency import com.tangem.domain.models.currency.CryptoCurrencyStatus import com.tangem.domain.staking.model.StakingIntegration import com.tangem.domain.staking.model.stakekit.StakingError -import com.tangem.domain.staking.model.stakekit.StakingErrors import com.tangem.domain.staking.model.stakekit.action.StakingActionCommonType import com.tangem.domain.tokens.model.warnings.CryptoCurrencyCheck import com.tangem.domain.tokens.model.warnings.CryptoCurrencyWarning @@ -192,11 +191,9 @@ internal class AddStakingNotificationsTransformer( ) { when (stakingError) { is StakingError.StakeKitApiError -> { - if (stakingError.message != StakingErrors.MinimumAmountNotReachedError.message) { - add( - StakingNotification.Error.Common(subtitle = stringReference(stakingError.toString())), - ) - } + add( + StakingNotification.Error.Common(subtitle = stringReference(stakingError.toString())), + ) } null -> Unit else -> add(NotificationUM.Warning.NetworkFeeUnreachable(onReload)) From 8fb1107d23dde3c94011083bbeb1994ee58bedd4 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 2 Apr 2026 17:56:43 +0400 Subject: [PATCH 3/6] Updated on 2026-08-14 --- .../tangem/features/tangempay/model/TangemPayDetailsModel.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayDetailsModel.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayDetailsModel.kt index 4ada6b4b01..90623c27a3 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayDetailsModel.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayDetailsModel.kt @@ -263,8 +263,8 @@ internal class TangemPayDetailsModel @Inject constructor( bottomSheetNavigation.activate( TangemPayDetailsNavigation.AddFunds( walletId = params.userWalletId, - fiatBalance = currentBalance.fiatBalance, - cryptoBalance = currentBalance.cryptoBalance, + fiatBalance = currentBalance.availableForWithdrawal, + cryptoBalance = currentBalance.availableForWithdrawal, depositAddress = depositAddress, chainId = params.config.chainId, ), From c4c9faa491e19aadb6fcac116cda51d6d6b9c07b Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 2 Apr 2026 21:40:39 +0700 Subject: [PATCH 4/6] Updated on 2026-08-14 --- .../main/java/com/tangem/feature/swap/model/SwapModel.kt | 1 + .../main/java/com/tangem/feature/swap/ui/StateBuilder.kt | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/features/swap/impl/src/main/java/com/tangem/feature/swap/model/SwapModel.kt b/features/swap/impl/src/main/java/com/tangem/feature/swap/model/SwapModel.kt index 2d207ea99c..62107e8c99 100644 --- a/features/swap/impl/src/main/java/com/tangem/feature/swap/model/SwapModel.kt +++ b/features/swap/impl/src/main/java/com/tangem/feature/swap/model/SwapModel.kt @@ -2039,6 +2039,7 @@ internal class SwapModel @Inject constructor( toToken = toToken, fromAccount = fromAccount, toAccount = toAccount, + mainTokenId = initialCurrencyFrom.id.value, ) return true } diff --git a/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt b/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt index 7dbe528a91..fd57cccc2f 100644 --- a/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt +++ b/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/StateBuilder.kt @@ -180,7 +180,10 @@ internal class StateBuilder( toToken: CryptoCurrencyStatus, fromAccount: Account.CryptoPortfolio?, toAccount: Account.CryptoPortfolio?, + mainTokenId: String, ): SwapStateHolder { + val canSelectSendToken = mainTokenId != fromToken.currency.id.value + val canSelectReceiveToken = mainTokenId != toToken.currency.id.value if (uiStateHolder.sendCardData !is SwapCardState.SwapCardData) return uiStateHolder return uiStateHolder.copy( sendCardData = SwapCardState.SwapCardData( @@ -196,7 +199,7 @@ internal class StateBuilder( coinId = fromToken.currency.network.backendId, isNotNativeToken = fromToken.currency is CryptoCurrency.Token, tokenCurrency = fromToken.currency.symbol, - canSelectAnotherToken = uiStateHolder.sendCardData.canSelectAnotherToken, + canSelectAnotherToken = canSelectSendToken, balance = fromToken.getFormattedAmount(isNeedSymbol = false), networkIconRes = getActiveIconRes(fromToken.currency.network.rawId), isBalanceHidden = isBalanceHiddenProvider(), @@ -214,7 +217,7 @@ internal class StateBuilder( coinId = toToken.currency.network.backendId, isNotNativeToken = toToken.currency is CryptoCurrency.Token, tokenCurrency = toToken.currency.symbol, - canSelectAnotherToken = true, + canSelectAnotherToken = canSelectReceiveToken, balance = toToken.getFormattedAmount(isNeedSymbol = false), networkIconRes = getActiveIconRes(toToken.currency.network.rawId), isBalanceHidden = isBalanceHiddenProvider(), From 4c5d0f32f05358d0b5ea62a5c5a2424a2b337d4f Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 3 Apr 2026 14:23:22 +0300 Subject: [PATCH 5/6] Updated on 2026-08-14 --- gradle/tangem_dependencies.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/tangem_dependencies.toml b/gradle/tangem_dependencies.toml index 8bcfb69733..edd3e5f352 100644 --- a/gradle/tangem_dependencies.toml +++ b/gradle/tangem_dependencies.toml @@ -5,7 +5,7 @@ # https://github.com/tangem/tangem-sdk-android/ # https://github.com/tangem/vico -tangemBlockchainSdk = "releases-5.36-1478" +tangemBlockchainSdk = "releases-5.36-1480" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds tangemCardSdk = "releases-5.36-600" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ From 8a1b0bd37a31bd7a2bc6f494bee997a3cbdd1391 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 3 Apr 2026 11:23:47 +0000 Subject: [PATCH 6/6] Updated on 2026-08-14 --- gradle/tangem_dependencies.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gradle/tangem_dependencies.toml b/gradle/tangem_dependencies.toml index edd3e5f352..165d042410 100644 --- a/gradle/tangem_dependencies.toml +++ b/gradle/tangem_dependencies.toml @@ -5,13 +5,13 @@ # https://github.com/tangem/tangem-sdk-android/ # https://github.com/tangem/vico -tangemBlockchainSdk = "releases-5.36-1480" +tangemBlockchainSdk = "develop-1482" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds -tangemCardSdk = "releases-5.36-600" +tangemCardSdk = "develop-602" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ -tangemVico = "2.0.0-alpha.25-tangem12" +tangemVico = "tangem-master-21" #tangemVico = "0.0.1" # Keep it! - used for local builds ^ -tangemHotSdk = "develop-549" +tangemHotSdk = "develop-550" #tangemHotSdk = "0.0.1" # Keep it! - used for local builds ^