Updated on 2026-08-14
This commit is contained in:
parent
504d0276f9
commit
d6fbc592c3
11 changed files with 120 additions and 18 deletions
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
|
@ -19,5 +19,7 @@ interface WalletManagersStore {
|
|||
|
||||
suspend fun store(userWalletId: UserWalletId, walletManager: WalletManager)
|
||||
|
||||
suspend fun remove(userWalletId: UserWalletId, predicate: (WalletManager) -> Boolean)
|
||||
|
||||
suspend fun clear()
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue