Updated on 2026-08-14

This commit is contained in:
Tangem 2026-04-06 20:43:13 +07:00
commit b02359feb6
10 changed files with 43 additions and 11 deletions

View file

@ -75,5 +75,9 @@
{
"name": "TOKEN_SYNC_ENABLED",
"version": "undefined"
},
{
"name": "SOLANA_TX_HISTORY_ENABLED",
"version": "undefined"
}
]

View file

@ -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))

View file

@ -1922,6 +1922,7 @@ internal class SwapModel @Inject constructor(
toToken = toToken,
fromAccount = fromAccount,
toAccount = toAccount,
mainTokenId = initialCurrencyFrom.id.value,
)
return true
}

View file

@ -179,7 +179,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(
@ -195,7 +198,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(),
@ -213,7 +216,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(),

View file

@ -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,
),

View file

@ -0,0 +1,5 @@
package com.tangem.features.txhistory
interface TxHistoryFeatureToggles {
val isSolanaTxHistoryEnabled: Boolean
}

View file

@ -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)
}

View file

@ -5,7 +5,7 @@
# https://github.com/tangem/tangem-sdk-android/
# https://github.com/tangem/vico
tangemBlockchainSdk = "develop-1473"
tangemBlockchainSdk = "develop-1482"
#tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds
tangemCardSdk = "develop-602"
#tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^

View file

@ -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),

View file

@ -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,
),
)
}
}