Updated on 2026-08-14

This commit is contained in:
Tangem 2026-06-16 16:26:46 +05:00
parent 9424928e3e
commit 2ed66a5049
7 changed files with 264 additions and 5 deletions

View file

@ -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)
}

View file

@ -8,5 +8,7 @@ interface AssetsDiscoveryStore {
suspend fun append(tokens: List<UserTokensResponse.Token>)
suspend fun removeMatching(predicate: (UserTokensResponse.Token) -> Boolean)
suspend fun clear()
}

View file

@ -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() }
}