diff --git a/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt b/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt index 42f82fe17c..1bfa9eee08 100644 --- a/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt @@ -3,7 +3,6 @@ package com.tangem.tap.domain import com.tangem.blockchain.common.* import com.tangem.common.services.Result import com.tangem.domain.common.ScanResponse -import com.tangem.domain.common.TapWorkarounds.derivationStyle import com.tangem.domain.common.TapWorkarounds.isStart2Coin import com.tangem.domain.common.TapWorkarounds.isTestCard import com.tangem.domain.common.ThrottlerWithValues @@ -144,7 +143,9 @@ class TapWalletManager { primaryWalletManager: WalletManager? ) { val primaryTokens = primaryWalletManager?.cardTokens?.toList() ?: emptyList() - val savedCurrencies = currenciesRepository.loadSavedCurrencies(scanResponse.card.cardId, scanResponse.card.derivationStyle) + val savedCurrencies = currenciesRepository.loadSavedCurrencies( + scanResponse.card.cardId, scanResponse.card.settings.isHDWalletAllowed + ) if (savedCurrencies.isEmpty()) { if (primaryBlockchain != null && primaryWalletManager != null) { diff --git a/app/src/main/java/com/tangem/tap/domain/tasks/product/ScanProductTask.kt b/app/src/main/java/com/tangem/tap/domain/tasks/product/ScanProductTask.kt index b22865b7ee..e843eab420 100644 --- a/app/src/main/java/com/tangem/tap/domain/tasks/product/ScanProductTask.kt +++ b/app/src/main/java/com/tangem/tap/domain/tasks/product/ScanProductTask.kt @@ -15,7 +15,6 @@ import com.tangem.common.extensions.toHexString import com.tangem.common.extensions.toMapKey import com.tangem.common.hdWallet.DerivationPath import com.tangem.domain.common.* -import com.tangem.domain.common.TapWorkarounds.derivationStyle import com.tangem.domain.common.TapWorkarounds.isExcluded import com.tangem.domain.common.TapWorkarounds.isNotSupportedInThatRelease import com.tangem.domain.common.TapWorkarounds.useOldStyleDerivation @@ -228,7 +227,7 @@ private class ScanWalletProcessor( private fun getBlockchainsToDerive(card: Card): List { val currenciesRepository = currenciesRepository ?: return emptyList() - val cardCurrencies = currenciesRepository.loadSavedCurrencies(card.cardId, card.derivationStyle).toMutableList() + val cardCurrencies = currenciesRepository.loadSavedCurrencies(card.cardId, card.settings.isHDWalletAllowed).toMutableList() val blockchainsToDerive = cardCurrencies.ifEmpty { mutableListOf( diff --git a/app/src/main/java/com/tangem/tap/domain/tokens/CurrenciesRepository.kt b/app/src/main/java/com/tangem/tap/domain/tokens/CurrenciesRepository.kt index e7fe342da5..01c51ceee4 100644 --- a/app/src/main/java/com/tangem/tap/domain/tokens/CurrenciesRepository.kt +++ b/app/src/main/java/com/tangem/tap/domain/tokens/CurrenciesRepository.kt @@ -100,7 +100,7 @@ class CurrenciesRepository(val context: Application) { fun loadSavedCurrencies( cardId: String, - derivationStyle: DerivationStyle? = null + isHdWalletSupported: Boolean = false ): List { if (DemoHelper.isDemoCardId(cardId)) { return loadDemoCurrencies(cardId) @@ -109,7 +109,7 @@ class CurrenciesRepository(val context: Application) { val json = context.readFileText(getFileNameForBlockchains(cardId)) blockchainNetworkAdapter.fromJson(json)?.distinct() ?: emptyList() } catch (exception: Exception) { - tryToLoadPreviousFormatAndMigrate(cardId, derivationStyle) + tryToLoadPreviousFormatAndMigrate(cardId, isHdWalletSupported) } } @@ -125,12 +125,12 @@ class CurrenciesRepository(val context: Application) { private fun tryToLoadPreviousFormatAndMigrate( cardId: String, - derivationStyle: DerivationStyle? + isHdWalletSupported: Boolean = false ): List { return try { loadSavedCurrenciesOldWay( cardId, - derivationStyle + isHdWalletSupported ) } catch (exception: Exception) { emptyList() @@ -138,11 +138,12 @@ class CurrenciesRepository(val context: Application) { } private fun loadSavedCurrenciesOldWay( - cardId: String, derivationStyle: DerivationStyle? + cardId: String, isHdWalletSupported: Boolean = false ): List { val blockchains = loadSavedBlockchains(cardId) val tokens = loadSavedTokens(cardId) val currencies = getSupportedTokens() + val derivationStyle = if (isHdWalletSupported) DerivationStyle.LEGACY else null val blockchainNetworks = blockchains.map { blockchain -> BlockchainNetwork( blockchain = blockchain, diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectMiddleware.kt b/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectMiddleware.kt index c5a6ae1c60..cb9b4061b5 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/walletconnect/WalletConnectMiddleware.kt @@ -257,7 +257,7 @@ class WalletConnectMiddleware { blockchainToMake, card.derivationStyle?.let { DerivationParams.Default(it) } ) - if (currenciesRepository.loadSavedCurrencies(card.cardId, card.derivationStyle) + if (currenciesRepository.loadSavedCurrencies(card.cardId, card.settings.isHDWalletAllowed) .find { it.blockchain == blockchainToMake } != null ) { walletManager?.let {