diff --git a/app/src/main/java/com/tangem/tap/proxy/DerivationManagerImpl.kt b/app/src/main/java/com/tangem/tap/proxy/DerivationManagerImpl.kt index 763768d7ad..02d7f1c86e 100644 --- a/app/src/main/java/com/tangem/tap/proxy/DerivationManagerImpl.kt +++ b/app/src/main/java/com/tangem/tap/proxy/DerivationManagerImpl.kt @@ -233,7 +233,7 @@ class DerivationManagerImpl( } scope.launch { - val selectedUserWallet = appStateHolder.userWalletsListManager?.selectedUserWalletSync + val selectedUserWallet = userWalletsListManager.selectedUserWalletSync val result = appStateHolder.tangemSdkManager?.derivePublicKeys( cardId = null, // always ignore cardId in derive task @@ -255,12 +255,10 @@ class DerivationManagerImpl( derivedKeys = updatedDerivedKeys, ) if (selectedUserWallet != null) { - val userWallet = selectedUserWallet.copy( - scanResponse = updatedScanResponse, + userWalletsListManager.update( + userWalletId = selectedUserWallet.walletId, + update = { it.copy(scanResponse = updatedScanResponse) }, ) - - appStateHolder.userWalletsListManager?.save(userWallet, canOverride = true) - appStateHolder.walletStoresManager?.fetch(userWallet, true) } appStateHolder.mainStore?.dispatchOnMain(GlobalAction.SaveScanResponse(updatedScanResponse)) delay(DELAY_SDK_DIALOG_CLOSE) diff --git a/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt b/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt index cfce94b52b..b05033931a 100644 --- a/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt +++ b/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt @@ -27,6 +27,7 @@ import com.tangem.tap.common.analytics.events.Basic import com.tangem.tap.common.analytics.events.Basic.TransactionSent.MemoType import com.tangem.tap.common.redux.global.GlobalAction import com.tangem.tap.domain.TangemSigner +import com.tangem.tap.userWalletsListManager import java.math.BigDecimal import java.math.BigInteger import java.math.MathContext @@ -416,7 +417,7 @@ class TransactionManagerImpl( private suspend fun getActualWalletManager(blockchain: Blockchain, derivationPath: String?): WalletManager { val walletManager = if (walletFeatureToggles.isRedesignedScreenEnabled) { val selectedUserWallet = requireNotNull( - appStateHolder.userWalletsListManager?.selectedUserWalletSync, + userWalletsListManager.selectedUserWalletSync, ) { "userWallet or userWalletsListManager is null" } walletManagersFacade.getOrCreateWalletManager( selectedUserWallet.walletId, diff --git a/app/src/main/java/com/tangem/tap/proxy/UserWalletManagerImpl.kt b/app/src/main/java/com/tangem/tap/proxy/UserWalletManagerImpl.kt index 3640c46412..6a9a2abf90 100644 --- a/app/src/main/java/com/tangem/tap/proxy/UserWalletManagerImpl.kt +++ b/app/src/main/java/com/tangem/tap/proxy/UserWalletManagerImpl.kt @@ -10,7 +10,6 @@ import com.tangem.domain.common.BlockchainNetwork import com.tangem.domain.common.extensions.fromNetworkId import com.tangem.domain.common.extensions.toCoinId import com.tangem.domain.common.extensions.toNetworkId -import com.tangem.domain.userwallets.UserWalletIdBuilder import com.tangem.domain.walletmanager.WalletManagersFacade import com.tangem.features.wallet.featuretoggles.WalletFeatureToggles import com.tangem.lib.crypto.UserWalletManager @@ -90,11 +89,10 @@ class UserWalletManagerImpl( } override fun getWalletId(): String { - return appStateHolder.getActualCard()?.let { - UserWalletIdBuilder.card(it) - .build() - ?.stringValue - } ?: "" + val selectedUserWallet = requireNotNull( + userWalletsListManager.selectedUserWalletSync, + ) { "selectedUserWallet shouldn't be null" } + return selectedUserWallet.walletId.stringValue } override suspend fun isTokenAdded(currency: Currency, derivationPath: String?): Boolean { @@ -227,7 +225,7 @@ class UserWalletManagerImpl( private suspend fun getActualWalletManager(blockchain: Blockchain, derivationPath: String?): WalletManager { val walletManager = if (walletFeatureToggles.isRedesignedScreenEnabled) { val selectedUserWallet = requireNotNull( - appStateHolder.userWalletsListManager?.selectedUserWalletSync, + userWalletsListManager.selectedUserWalletSync, ) { "userWallet or userWalletsListManager is null" } walletManagersFacade.getOrCreateWalletManager( selectedUserWallet.walletId, diff --git a/features/referral/domain/src/main/java/com/tangem/feature/referral/domain/ReferralInteractorImpl.kt b/features/referral/domain/src/main/java/com/tangem/feature/referral/domain/ReferralInteractorImpl.kt index 5beacce884..ecdb5989e3 100644 --- a/features/referral/domain/src/main/java/com/tangem/feature/referral/domain/ReferralInteractorImpl.kt +++ b/features/referral/domain/src/main/java/com/tangem/feature/referral/domain/ReferralInteractorImpl.kt @@ -3,17 +3,14 @@ package com.tangem.feature.referral.domain import com.tangem.feature.referral.domain.converter.TokensConverter import com.tangem.feature.referral.domain.models.ReferralData import com.tangem.feature.referral.domain.models.TokenData -import com.tangem.features.wallet.featuretoggles.WalletFeatureToggles import com.tangem.lib.crypto.DerivationManager import com.tangem.lib.crypto.UserWalletManager -import com.tangem.lib.crypto.models.Currency internal class ReferralInteractorImpl( private val repository: ReferralRepository, private val derivationManager: DerivationManager, private val userWalletManager: UserWalletManager, private val tokensConverter: TokensConverter, - private val walletFeatureToggles: WalletFeatureToggles, ) : ReferralInteractor { private val tokensForReferral = mutableListOf() @@ -32,11 +29,7 @@ internal class ReferralInteractorImpl( override suspend fun startReferral(): ReferralData { if (tokensForReferral.isNotEmpty()) { val currency = tokensConverter.convert(tokensForReferral.first()) - val derivationPath = if (walletFeatureToggles.isRedesignedScreenEnabled) { - derivationManager.deriveAndAddTokens(currency) - } else { - deriveAndAddTokens(currency) - } + val derivationPath = derivationManager.deriveAndAddTokens(currency) val publicAddress = userWalletManager.getWalletAddress(currency.networkId, derivationPath) return repository.startReferral( walletId = userWalletManager.getWalletId(), @@ -49,18 +42,6 @@ internal class ReferralInteractorImpl( } } - private suspend fun deriveAndAddTokens(currency: Currency): String { - val derivationPath = derivationManager.getDerivationPathForBlockchain(currency.networkId) - if (derivationPath.isNullOrEmpty()) error("derivationPath shouldn't be empty") - if (!derivationManager.hasDerivation(currency.networkId, derivationPath)) { - derivationManager.deriveMissingBlockchains(currency) - } - if (!userWalletManager.isTokenAdded(currency, derivationPath)) { - userWalletManager.addToken(currency, derivationPath) - } - return derivationPath - } - private fun saveReferralTokens(tokens: List) { tokensForReferral.clear() tokensForReferral.addAll(tokens) diff --git a/features/referral/domain/src/main/java/com/tangem/feature/referral/domain/di/ReferralDomainModule.kt b/features/referral/domain/src/main/java/com/tangem/feature/referral/domain/di/ReferralDomainModule.kt index 8e6b9fbe88..f991068cd5 100644 --- a/features/referral/domain/src/main/java/com/tangem/feature/referral/domain/di/ReferralDomainModule.kt +++ b/features/referral/domain/src/main/java/com/tangem/feature/referral/domain/di/ReferralDomainModule.kt @@ -4,7 +4,6 @@ import com.tangem.feature.referral.domain.ReferralInteractor import com.tangem.feature.referral.domain.ReferralInteractorImpl import com.tangem.feature.referral.domain.ReferralRepository import com.tangem.feature.referral.domain.converter.TokensConverter -import com.tangem.features.wallet.featuretoggles.WalletFeatureToggles import com.tangem.lib.crypto.DerivationManager import com.tangem.lib.crypto.UserWalletManager import dagger.Module @@ -24,14 +23,12 @@ class ReferralDomainModule { derivationManager: DerivationManager, userWalletManager: UserWalletManager, tokensConverter: TokensConverter, - walletFeatureToggles: WalletFeatureToggles, ): ReferralInteractor { return ReferralInteractorImpl( repository = referralRepository, derivationManager = derivationManager, userWalletManager = userWalletManager, tokensConverter = tokensConverter, - walletFeatureToggles = walletFeatureToggles, ) } } \ No newline at end of file