Updated on 2026-08-14

This commit is contained in:
Tangem 2023-10-16 13:33:15 +03:00
parent b1c2f8d6e3
commit 4ed210cd90
16 changed files with 65 additions and 39 deletions

View file

@ -2,6 +2,7 @@ package com.tangem.feature.swap.domain
import com.tangem.domain.tokens.model.Network
import com.tangem.domain.tokens.repository.CurrenciesRepository
import com.tangem.domain.tokens.repository.NetworksRepository
import com.tangem.domain.wallets.models.UserWallet
import com.tangem.domain.wallets.usecase.GetSelectedWalletSyncUseCase
import com.tangem.feature.swap.domain.cache.SwapDataCache
@ -30,6 +31,7 @@ internal class SwapInteractorImpl @Inject constructor(
private val cache: SwapDataCache,
private val allowPermissionsHandler: AllowPermissionsHandler,
private val currenciesRepository: CurrenciesRepository,
private val networksRepository: NetworksRepository,
private val walletFeatureToggles: WalletFeatureToggles,
private val getSelectedWalletSyncUseCase: GetSelectedWalletSyncUseCase,
) : SwapInteractor {
@ -279,10 +281,15 @@ internal class SwapInteractorImpl @Inject constructor(
}
private suspend fun getAndAddCryptoCurrency(userWallet: UserWallet, currency: Currency, network: Network) {
repository.getCryptoCurrency(userWallet, currency, network)?.let {
repository.getCryptoCurrency(userWallet, currency, network)?.let { cryptoCurrency ->
currenciesRepository.addCurrencies(
userWallet.walletId,
listOf(it),
listOf(cryptoCurrency),
)
networksRepository.getNetworkStatusesSync(
userWalletId = userWallet.walletId,
networks = setOf(cryptoCurrency.network),
refresh = true,
)
}
}

View file

@ -1,6 +1,7 @@
package com.tangem.feature.swap.domain.di
import com.tangem.domain.tokens.repository.CurrenciesRepository
import com.tangem.domain.tokens.repository.NetworksRepository
import com.tangem.domain.wallets.legacy.WalletsStateHolder
import com.tangem.domain.wallets.usecase.GetSelectedWalletSyncUseCase
import com.tangem.feature.swap.domain.*
@ -26,6 +27,7 @@ class SwapDomainModule {
userWalletManager: UserWalletManager,
transactionManager: TransactionManager,
currenciesRepository: CurrenciesRepository,
networksRepository: NetworksRepository,
walletFeatureToggles: WalletFeatureToggles,
@SwapScope getSelectedWalletSyncUseCase: GetSelectedWalletSyncUseCase,
): SwapInteractor {
@ -36,6 +38,7 @@ class SwapDomainModule {
cache = SwapDataCacheImpl(),
allowPermissionsHandler = AllowPermissionsHandlerImpl(),
currenciesRepository = currenciesRepository,
networksRepository = networksRepository,
walletFeatureToggles = walletFeatureToggles,
getSelectedWalletSyncUseCase = getSelectedWalletSyncUseCase,
)

View file

@ -74,7 +74,6 @@ internal class TokenDetailsLoadedBalanceConverter(
is CryptoCurrencyStatus.Loading -> TokenDetailsBalanceBlockState.Loading(currentState.actionButtons)
is CryptoCurrencyStatus.MissedDerivation,
is CryptoCurrencyStatus.Custom,
is CryptoCurrencyStatus.NoAmount,
is CryptoCurrencyStatus.Unreachable,
-> TokenDetailsBalanceBlockState.Error(currentState.actionButtons)
}
@ -91,7 +90,6 @@ internal class TokenDetailsLoadedBalanceConverter(
is CryptoCurrencyStatus.Custom,
is CryptoCurrencyStatus.MissedDerivation,
is CryptoCurrencyStatus.NoAccount,
is CryptoCurrencyStatus.NoAmount,
is CryptoCurrencyStatus.Unreachable,
-> MarketPriceBlockState.Content(
currencySymbol = currencySymbol,

View file

@ -71,7 +71,6 @@ internal class WalletSingleCurrencyLoadedBalanceConverter(
is CryptoCurrencyStatus.MissedDerivation,
is CryptoCurrencyStatus.NoAccount,
is CryptoCurrencyStatus.Unreachable,
is CryptoCurrencyStatus.NoAmount,
-> MarketPriceBlockState.Error(currencyName)
}
}
@ -113,7 +112,6 @@ internal class WalletSingleCurrencyLoadedBalanceConverter(
is CryptoCurrencyStatus.NoAccount,
is CryptoCurrencyStatus.Custom,
is CryptoCurrencyStatus.Unreachable,
is CryptoCurrencyStatus.NoAmount,
-> {
WalletCardState.Error(
id = selectedWallet.id,

View file

@ -28,7 +28,6 @@ internal class CryptoCurrencyStatusToTokenItemConverter(
-> value.mapToTokenItemState()
is CryptoCurrencyStatus.MissedDerivation -> value.mapToNoAddressTokenItemState()
is CryptoCurrencyStatus.Unreachable,
is CryptoCurrencyStatus.NoAmount,
-> value.mapToUnreachableTokenItemState()
}
}