Updated on 2026-08-14

This commit is contained in:
Tangem 2023-10-25 17:03:24 +04:00
parent 504d0276f9
commit d6fbc592c3
11 changed files with 120 additions and 18 deletions

View file

@ -6,6 +6,7 @@ import com.tangem.datasource.local.datastore.core.StringKeyDataStore
import com.tangem.datasource.local.datastore.core.StringKeyDataStoreDecorator
import com.tangem.domain.wallets.models.UserWalletId
import com.tangem.utils.extensions.addOrReplace
import com.tangem.utils.extensions.removeBy
import kotlinx.coroutines.flow.Flow
internal class DefaultWalletManagersStore(
@ -43,10 +44,18 @@ internal class DefaultWalletManagersStore(
val updatedWalletManagers = walletManagers
?.addOrReplace(walletManager) {
it.wallet.blockchain == walletManager.wallet.blockchain &&
it.wallet.publicKey == walletManager.wallet.publicKey
it.wallet.publicKey.derivationPath == walletManager.wallet.publicKey.derivationPath
}
?: listOf(walletManager)
store(userWalletId, updatedWalletManagers)
}
override suspend fun remove(userWalletId: UserWalletId, predicate: (WalletManager) -> Boolean) {
val walletManagers = getSyncOrNull(userWalletId)?.toMutableList() ?: return
walletManagers.removeBy(predicate)
store(userWalletId, walletManagers)
}
}

View file

@ -19,5 +19,7 @@ interface WalletManagersStore {
suspend fun store(userWalletId: UserWalletId, walletManager: WalletManager)
suspend fun remove(userWalletId: UserWalletId, predicate: (WalletManager) -> Boolean)
suspend fun clear()
}