Updated on 2026-08-14
This commit is contained in:
parent
9424928e3e
commit
2ed66a5049
7 changed files with 264 additions and 5 deletions
|
|
@ -78,6 +78,23 @@ internal class DefaultAssetsDiscoveryRepository(
|
|||
assetsDiscoveryStore.clear()
|
||||
}
|
||||
|
||||
override suspend fun removeAppliedCurrencies(userWalletId: UserWalletId, currencies: List<CryptoCurrency>) {
|
||||
if (currencies.isEmpty()) return
|
||||
|
||||
val appliedIds = currencies.mapTo(hashSetOf(), CryptoCurrency::id)
|
||||
val userWallet = userWalletsListRepository.getSyncStrict(userWalletId)
|
||||
val assetsDiscoveryStore = assetsDiscoveryStoreFactory.provide(userWalletId)
|
||||
|
||||
assetsDiscoveryStore.removeMatching { token ->
|
||||
val currency = responseCryptoCurrenciesFactory.createCurrency(
|
||||
responseToken = token,
|
||||
userWallet = userWallet,
|
||||
accountIndex = DerivationIndex.Main,
|
||||
)
|
||||
currency != null && currency.id in appliedIds
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun clearPendingFlag(userWalletId: UserWalletId) {
|
||||
setPendingFlag(userWalletId, value = false)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,5 +8,7 @@ interface AssetsDiscoveryStore {
|
|||
|
||||
suspend fun append(tokens: List<UserTokensResponse.Token>)
|
||||
|
||||
suspend fun removeMatching(predicate: (UserTokensResponse.Token) -> Boolean)
|
||||
|
||||
suspend fun clear()
|
||||
}
|
||||
|
|
@ -18,6 +18,12 @@ internal class DefaultAssetsDiscoveryStore(
|
|||
}
|
||||
}
|
||||
|
||||
override suspend fun removeMatching(predicate: (UserTokensResponse.Token) -> Boolean) {
|
||||
persistenceStore.updateData { existing ->
|
||||
existing.filterNot(predicate)
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun clear() {
|
||||
persistenceStore.updateData { emptyList() }
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue