Updated on 2026-08-14

This commit is contained in:
Tangem 2024-02-02 19:10:13 +03:00
parent ad0c793b00
commit 7caeaf3a12
9 changed files with 78 additions and 22 deletions

View file

@ -0,0 +1,28 @@
package com.tangem.datasource.di
import com.tangem.blockchain.common.WalletManagerFactory
import com.tangem.datasource.config.ConfigManager
import com.tangem.datasource.local.blockchain.DefaultBlockchainDataStorage
import com.tangem.datasource.local.preferences.AppPreferencesStore
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton
@Module
@InstallIn(SingletonComponent::class)
internal object BlockchainWalletManagerFactoryModule {
@Provides
@Singleton
fun provideBlockchainWalletManagerFactory(
configManager: ConfigManager,
appPreferencesStore: AppPreferencesStore,
): WalletManagerFactory {
return WalletManagerFactory(
config = configManager.config.blockchainSdkConfig,
blockchainDataStorage = DefaultBlockchainDataStorage(appPreferencesStore),
)
}
}

View file

@ -0,0 +1,29 @@
package com.tangem.datasource.local.blockchain
import androidx.datastore.preferences.core.edit
import androidx.datastore.preferences.core.stringPreferencesKey
import com.tangem.blockchain.common.datastorage.BlockchainDataStorage
import com.tangem.datasource.local.preferences.AppPreferencesStore
import com.tangem.datasource.local.preferences.utils.getSyncOrNull
/**
* [BlockchainDataStorage] implementation
*
* @property appPreferencesStore app preferences store
*
[REDACTED_AUTHOR]
*/
internal class DefaultBlockchainDataStorage(
private val appPreferencesStore: AppPreferencesStore,
) : BlockchainDataStorage {
override suspend fun getOrNull(key: String): String? {
return appPreferencesStore.getSyncOrNull(key = stringPreferencesKey(name = key))
}
override suspend fun store(key: String, value: String) {
appPreferencesStore.edit {
it[stringPreferencesKey(key)] = value
}
}
}