Updated on 2026-08-14
This commit is contained in:
parent
49d8e8f51c
commit
cfd237fc30
6 changed files with 92 additions and 36 deletions
|
|
@ -13,6 +13,7 @@ import com.tangem.datasource.local.userwallet.UserWalletsStore
|
|||
import com.tangem.domain.common.extensions.toCoinId
|
||||
import com.tangem.domain.common.extensions.toNetworkId
|
||||
import com.tangem.domain.common.util.derivationStyleProvider
|
||||
import com.tangem.domain.common.util.hasDerivation
|
||||
import com.tangem.domain.core.error.DataError
|
||||
import com.tangem.domain.demo.DemoConfig
|
||||
import com.tangem.domain.tokens.model.CryptoCurrency
|
||||
|
|
@ -274,6 +275,24 @@ internal class DefaultCurrenciesRepository(
|
|||
}.cancellable()
|
||||
}
|
||||
|
||||
override fun getMissedAddressesCryptoCurrencies(userWalletId: UserWalletId): Flow<List<CryptoCurrency>> {
|
||||
return channelFlow {
|
||||
ensureIsCorrectUserWallet(userWalletId, isMultiCurrencyWalletExpected = true)
|
||||
|
||||
val userWallet = getUserWallet(userWalletId = userWalletId)
|
||||
getMultiCurrencyWalletCurrencies(userWallet = userWallet)
|
||||
.map {
|
||||
it.filter { currency ->
|
||||
val blockchain = Blockchain.fromId(id = currency.network.id.value)
|
||||
val derivationPath = currency.network.derivationPath.value
|
||||
|
||||
derivationPath != null && !userWallet.scanResponse.hasDerivation(blockchain, derivationPath)
|
||||
}
|
||||
}
|
||||
.collectLatest(::send)
|
||||
}
|
||||
}
|
||||
|
||||
private fun getMultiCurrencyWalletCurrencies(userWallet: UserWallet): Flow<List<CryptoCurrency>> {
|
||||
return userTokensStore.get(userWallet.walletId).map { storedTokens ->
|
||||
responseCurrenciesFactory.createCurrencies(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue