Updated on 2026-08-14

This commit is contained in:
Tangem 2025-03-03 16:45:50 +04:00
parent ca286232ba
commit a10b94fa45
6 changed files with 75 additions and 16 deletions

View file

@ -15,6 +15,7 @@ dependencies {
api(projects.domain.core)
implementation(projects.domain.wallets.models)
implementation(projects.domain.tokens.models)
implementation(projects.domain.staking)
implementation(projects.domain.tokens)
implementation(projects.domain.card)
implementation(projects.domain.legacy)

View file

@ -5,6 +5,7 @@ import arrow.core.flatten
import com.tangem.domain.card.repository.DerivationsRepository
import com.tangem.domain.managetokens.model.ManagedCryptoCurrency
import com.tangem.domain.managetokens.repository.CustomTokensRepository
import com.tangem.domain.staking.repositories.StakingRepository
import com.tangem.domain.tokens.model.CryptoCurrency
import com.tangem.domain.tokens.model.Network
import com.tangem.domain.tokens.repository.CurrenciesRepository
@ -18,6 +19,7 @@ class SaveManagedTokensUseCase(
private val currenciesRepository: CurrenciesRepository,
private val networksRepository: NetworksRepository,
private val derivationsRepository: DerivationsRepository,
private val stakingRepository: StakingRepository,
) {
suspend operator fun invoke(
@ -50,6 +52,8 @@ class SaveManagedTokensUseCase(
existingCurrencies = existingCurrencies,
currenciesToAdd = addingCurrencies,
)
refreshUpdatedYieldBalances(userWalletId, existingCurrencies)
}
private suspend fun removeCurrenciesFromWalletManager(
@ -90,6 +94,17 @@ class SaveManagedTokensUseCase(
)
}
private suspend fun refreshUpdatedYieldBalances(
userWalletId: UserWalletId,
existingCurrencies: List<CryptoCurrency>,
) {
stakingRepository.fetchMultiYieldBalance(
userWalletId = userWalletId,
cryptoCurrencies = existingCurrencies,
refresh = true,
)
}
/**
* Determines if the [existingCurrencies] list contains a coin that corresponds
* to the given [network].