diff --git a/app/src/main/java/com/tangem/tap/TapApplication.kt b/app/src/main/java/com/tangem/tap/TapApplication.kt index 6b082cfdda..608ca53cbe 100644 --- a/app/src/main/java/com/tangem/tap/TapApplication.kt +++ b/app/src/main/java/com/tangem/tap/TapApplication.kt @@ -10,15 +10,13 @@ import com.tangem.LogFormat import com.tangem.blockchain.common.BlockchainSdkConfig import com.tangem.blockchain.common.WalletManagerFactory import com.tangem.blockchain.network.BlockchainSdkRetrofitBuilder -import com.tangem.common.json.MoshiJsonConverter -import com.tangem.datasource.api.common.BigDecimalAdapter +import com.tangem.core.analytics.Analytics import com.tangem.datasource.api.common.MoshiConverter import com.tangem.domain.DomainLayer import com.tangem.domain.common.LogConfig import com.tangem.tap.common.AndroidAssetReader import com.tangem.tap.common.AssetReader import com.tangem.tap.common.IntentHandler -import com.tangem.core.analytics.Analytics import com.tangem.tap.common.analytics.AnalyticsFactory import com.tangem.tap.common.analytics.api.AnalyticsHandlerBuilder import com.tangem.tap.common.analytics.filters.BasicSignInFilter @@ -52,7 +50,6 @@ import com.tangem.tap.domain.walletStores.repository.WalletStoresRepository import com.tangem.tap.domain.walletStores.repository.di.provideDefaultImplementation import com.tangem.tap.domain.walletconnect.WalletConnectRepository import com.tangem.tap.network.NetworkConnectivity -import com.tangem.tap.persistence.CardBalanceStateAdapter import com.tangem.tap.persistence.PreferencesStorage import com.tangem.tap.proxy.AppStateHolder import com.tangem.wallet.BuildConfig @@ -137,14 +134,13 @@ class TapApplication : Application(), ImageLoaderFactory { activityResultCaller = foregroundActivityObserver registerActivityLifecycleCallbacks(foregroundActivityObserver.callbacks) - initMoshiConverter() DomainLayer.init() NetworkConnectivity.createInstance(store, this) preferencesStorage = PreferencesStorage(this) walletConnectRepository = WalletConnectRepository(this) assetReader = AndroidAssetReader(this) - val configLoader = FeaturesLocalLoader(assetReader, MoshiConverter.INSTANCE.moshi) + val configLoader = FeaturesLocalLoader(assetReader, MoshiConverter.sdkMoshi) initConfigManager(configLoader, ::initWithConfigDependency) initWarningMessagesManager() @@ -159,18 +155,6 @@ class TapApplication : Application(), ImageLoaderFactory { appStateHolder.walletStoresManager = walletStoresManager } - //todo refactor: move to datasource and provide via DI - private fun initMoshiConverter() { - fun appAdapters(): List = listOf( - BigDecimalAdapter(), - CardBalanceStateAdapter(), - ) - MoshiConverter.reInitInstance( - adapters = appAdapters() + MoshiJsonConverter.getTangemSdkAdapters(), - typedAdapters = MoshiJsonConverter.getTangemSdkTypedAdapters(), - ) - } - override fun newImageLoader(): ImageLoader { return createCoilImageLoader( context = this, @@ -207,7 +191,7 @@ class TapApplication : Application(), ImageLoaderFactory { config = config, isDebug = BuildConfig.DEBUG, logConfig = LogConfig.analyticsHandlers, - jsonConverter = MoshiConverter.INSTANCE, + jsonConverter = MoshiConverter.sdkMoshiConverter, ) factory.build(Analytics, buildData) } diff --git a/app/src/main/java/com/tangem/tap/domain/tokens/LoadAvailableCoinsService.kt b/app/src/main/java/com/tangem/tap/domain/tokens/LoadAvailableCoinsService.kt index 072992eeb8..179d3a22ea 100644 --- a/app/src/main/java/com/tangem/tap/domain/tokens/LoadAvailableCoinsService.kt +++ b/app/src/main/java/com/tangem/tap/domain/tokens/LoadAvailableCoinsService.kt @@ -1,7 +1,6 @@ package com.tangem.tap.domain.tokens import com.squareup.moshi.JsonAdapter -import com.squareup.moshi.Moshi import com.tangem.blockchain.common.Blockchain import com.tangem.common.services.Result import com.tangem.datasource.api.common.MoshiConverter @@ -17,9 +16,8 @@ class LoadAvailableCoinsService( private val dispatchers: CoroutineDispatcherProvider, private val assetReader: AssetReader, ) { - private val moshi: Moshi by lazy { MoshiConverter.defaultMoshi() } private val currenciesAdapter: JsonAdapter = - moshi.adapter(CurrenciesFromJson::class.java) + MoshiConverter.networkMoshi.adapter(CurrenciesFromJson::class.java) suspend fun getSupportedTokens( isTestNet: Boolean = false, diff --git a/app/src/main/java/com/tangem/tap/domain/tokens/OldUserTokensRepository.kt b/app/src/main/java/com/tangem/tap/domain/tokens/OldUserTokensRepository.kt index 4db0f6fb33..96d98f91a5 100644 --- a/app/src/main/java/com/tangem/tap/domain/tokens/OldUserTokensRepository.kt +++ b/app/src/main/java/com/tangem/tap/domain/tokens/OldUserTokensRepository.kt @@ -20,7 +20,7 @@ class OldUserTokensRepository( private val tangemTechApi: TangemTechApi, private val dispatchers: CoroutineDispatcherProvider, ) { - private val moshi = MoshiConverter.defaultMoshi() + private val moshi = MoshiConverter.networkMoshi private val blockchainsAdapter: JsonAdapter> = moshi.adapter( Types.newParameterizedType(List::class.java, Blockchain::class.java), ) diff --git a/app/src/main/java/com/tangem/tap/domain/tokens/UserTokensStorageService.kt b/app/src/main/java/com/tangem/tap/domain/tokens/UserTokensStorageService.kt index 93d4d909ce..9df51fb6f4 100644 --- a/app/src/main/java/com/tangem/tap/domain/tokens/UserTokensStorageService.kt +++ b/app/src/main/java/com/tangem/tap/domain/tokens/UserTokensStorageService.kt @@ -13,9 +13,8 @@ class UserTokensStorageService( private val oldUserTokensRepository: OldUserTokensRepository, private val fileReader: FileReader, ) { - private val moshi = MoshiConverter.defaultMoshi() private val userTokensAdapter: JsonAdapter = - moshi.adapter(UserTokensResponse::class.java) + MoshiConverter.networkMoshi.adapter(UserTokensResponse::class.java) fun getUserTokens(userId: String): List? { return try { diff --git a/app/src/main/java/com/tangem/tap/domain/twins/TwinCardsManager.kt b/app/src/main/java/com/tangem/tap/domain/twins/TwinCardsManager.kt index b910fcb589..6b250dcef9 100644 --- a/app/src/main/java/com/tangem/tap/domain/twins/TwinCardsManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/twins/TwinCardsManager.kt @@ -83,7 +83,7 @@ class TwinCardsManager( } private fun getAdapter(): JsonAdapter> { - return MoshiConverter.defaultMoshi().adapter( + return MoshiConverter.sdkMoshi.adapter( Types.newParameterizedType(List::class.java, Issuer::class.java), ) } diff --git a/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectRepository.kt b/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectRepository.kt index c796b81261..12df7aeb8e 100644 --- a/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectRepository.kt +++ b/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectRepository.kt @@ -16,8 +16,7 @@ import timber.log.Timber import java.nio.charset.Charset class WalletConnectRepository(val context: Application) { - private val moshi = MoshiConverter.defaultMoshi() - private val walletConnectAdapter: JsonAdapter> = moshi.adapter( + private val walletConnectAdapter: JsonAdapter> = MoshiConverter.sdkMoshi.adapter( Types.newParameterizedType(List::class.java, SessionDao::class.java), ) diff --git a/app/src/main/java/com/tangem/tap/persistence/CardBalanceStateAdapter.kt b/app/src/main/java/com/tangem/tap/persistence/CardBalanceStateAdapter.kt new file mode 100644 index 0000000000..fe16a0c017 --- /dev/null +++ b/app/src/main/java/com/tangem/tap/persistence/CardBalanceStateAdapter.kt @@ -0,0 +1,20 @@ +package com.tangem.tap.persistence + +import com.squareup.moshi.FromJson +import com.squareup.moshi.ToJson +import com.tangem.tap.common.analytics.events.AnalyticsParam + +class CardBalanceStateAdapter { + + @ToJson + fun toJson(src: AnalyticsParam.CardBalanceState): String = src.value + + @FromJson + fun fromJson(json: String): AnalyticsParam.CardBalanceState { + return when (json) { + AnalyticsParam.CardBalanceState.Empty.value -> AnalyticsParam.CardBalanceState.Empty + AnalyticsParam.CardBalanceState.Full.value -> AnalyticsParam.CardBalanceState.Full + else -> throw IllegalArgumentException() + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/persistence/PreferencesStorage.kt b/app/src/main/java/com/tangem/tap/persistence/PreferencesStorage.kt index d419aafffc..d662cdb29d 100644 --- a/app/src/main/java/com/tangem/tap/persistence/PreferencesStorage.kt +++ b/app/src/main/java/com/tangem/tap/persistence/PreferencesStorage.kt @@ -4,29 +4,35 @@ import android.app.Application import android.content.Context import android.content.SharedPreferences import androidx.core.content.edit -import com.tangem.datasource.api.common.MoshiConverter +import com.tangem.common.json.MoshiJsonConverter +import com.tangem.datasource.api.common.BigDecimalAdapter import java.util.* class PreferencesStorage(applicationContext: Application) { - private val preferences: SharedPreferences = - applicationContext.getSharedPreferences(PREFERENCES_NAME, Context.MODE_PRIVATE) - val appRatingLaunchObserver: AppRatingLaunchObserver val usedCardsPrefStorage: UsedCardsPrefStorage val fiatCurrenciesPrefStorage: FiatCurrenciesPrefStorage val disclaimerPrefStorage: DisclaimerPrefStorage val toppedUpWalletStorage: ToppedUpWalletStorage + private val preferences: SharedPreferences = + applicationContext.getSharedPreferences(PREFERENCES_NAME, Context.MODE_PRIVATE) + + private val moshiConverter = MoshiJsonConverter( + adapters = listOf(BigDecimalAdapter(), CardBalanceStateAdapter()) + MoshiJsonConverter.getTangemSdkAdapters(), + typedAdapters = MoshiJsonConverter.getTangemSdkTypedAdapters(), + ) + init { incrementLaunchCounter() appRatingLaunchObserver = AppRatingLaunchObserver(preferences, getCountOfLaunches()) - usedCardsPrefStorage = UsedCardsPrefStorage(preferences, MoshiConverter.INSTANCE) + usedCardsPrefStorage = UsedCardsPrefStorage(preferences, moshiConverter) usedCardsPrefStorage.migrate() - fiatCurrenciesPrefStorage = FiatCurrenciesPrefStorage(preferences, MoshiConverter.INSTANCE) + fiatCurrenciesPrefStorage = FiatCurrenciesPrefStorage(preferences, moshiConverter) fiatCurrenciesPrefStorage.migrate() disclaimerPrefStorage = DisclaimerPrefStorage(preferences) - toppedUpWalletStorage = ToppedUpWalletStorage(preferences, MoshiConverter.INSTANCE) + toppedUpWalletStorage = ToppedUpWalletStorage(preferences, moshiConverter) } var chatFirstLaunchTime: Long? diff --git a/app/src/main/java/com/tangem/tap/persistence/ToppedUpWalletStorage.kt b/app/src/main/java/com/tangem/tap/persistence/ToppedUpWalletStorage.kt index e270b2b820..75759b8d75 100644 --- a/app/src/main/java/com/tangem/tap/persistence/ToppedUpWalletStorage.kt +++ b/app/src/main/java/com/tangem/tap/persistence/ToppedUpWalletStorage.kt @@ -2,10 +2,7 @@ package com.tangem.tap.persistence import android.content.SharedPreferences import androidx.core.content.edit -import com.squareup.moshi.FromJson -import com.squareup.moshi.ToJson import com.tangem.common.json.MoshiJsonConverter -import com.tangem.tap.common.analytics.events.AnalyticsParam import com.tangem.tap.common.analytics.filters.BasicTopUpFilter import timber.log.Timber @@ -59,18 +56,4 @@ class ToppedUpWalletStorage( companion object { private const val KEY = "userWalletsInfo" } -} - -class CardBalanceStateAdapter { - @ToJson - fun toJson(src: AnalyticsParam.CardBalanceState): String = src.value - - @FromJson - fun fromJson(json: String): AnalyticsParam.CardBalanceState { - return when (json) { - AnalyticsParam.CardBalanceState.Empty.value -> AnalyticsParam.CardBalanceState.Empty - AnalyticsParam.CardBalanceState.Full.value -> AnalyticsParam.CardBalanceState.Full - else -> throw IllegalArgumentException() - } - } } \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/common/MoshiConverter.kt b/core/datasource/src/main/java/com/tangem/datasource/api/common/MoshiConverter.kt index 054206db9d..6bd52cfecb 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/common/MoshiConverter.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/common/MoshiConverter.kt @@ -1,33 +1,28 @@ package com.tangem.datasource.api.common -import com.squareup.moshi.JsonAdapter import com.squareup.moshi.Moshi +import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory import com.tangem.common.json.MoshiJsonConverter -import retrofit2.Converter import retrofit2.converter.moshi.MoshiConverterFactory /** [REDACTED_AUTHOR] */ -//todo needs to be refactored +//TODO("Remove after removing Redux") +@Deprecated("Provide by DI") object MoshiConverter { - //todo refactor: provide via DI - var INSTANCE = MoshiJsonConverter() - private set + val networkMoshi: Moshi = Moshi.Builder() + .add(KotlinJsonAdapterFactory()) + .add(BigDecimalAdapter()) + .build() - fun reInitInstance( - adapters: List = listOf(), - typedAdapters: Map, JsonAdapter<*>> = mapOf(), - ) { - INSTANCE = MoshiJsonConverter(adapters, typedAdapters) - } + val networkMoshiConverter: MoshiConverterFactory = MoshiConverterFactory.create(networkMoshi) - fun createFactory(moshi: Moshi = INSTANCE.moshi): Converter.Factory = MoshiConverterFactory.create(moshi) + val sdkMoshiConverter: MoshiJsonConverter = MoshiJsonConverter( + adapters = listOf(BigDecimalAdapter()) + MoshiJsonConverter.getTangemSdkAdapters(), + typedAdapters = MoshiJsonConverter.getTangemSdkTypedAdapters(), + ) - //todo provide via DI using quealifiers - fun defaultMoshi(): Moshi = INSTANCE.moshi - - //todo provide via DI using quealifiers - fun sdkMoshi(): Moshi = MoshiJsonConverter.INSTANCE.moshi + val sdkMoshi: Moshi = sdkMoshiConverter.moshi } \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/common/Retrofit.kt b/core/datasource/src/main/java/com/tangem/datasource/api/common/Retrofit.kt index 01e19dfada..86b4ec51f4 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/common/Retrofit.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/common/Retrofit.kt @@ -3,16 +3,14 @@ package com.tangem.datasource.api.common import okhttp3.Interceptor import okhttp3.OkHttpClient import okhttp3.logging.HttpLoggingInterceptor -import retrofit2.Converter import retrofit2.Retrofit import java.util.concurrent.TimeUnit -// TODO: refactoring: make it better through factory +@Deprecated("Create and provide by DI") fun createRetrofitInstance( baseUrl: String, okHttpBuilder: OkHttpClient.Builder = OkHttpClient.Builder(), interceptors: List = emptyList(), - converterFactory: Converter.Factory = MoshiConverter.createFactory(), logEnabled: Boolean, ): Retrofit { okHttpBuilder.apply { @@ -27,7 +25,7 @@ fun createRetrofitInstance( return Retrofit.Builder() .baseUrl(baseUrl) - .addConverterFactory(converterFactory) + .addConverterFactory(MoshiConverter.networkMoshiConverter) .client(okHttpBuilder.build()) .build() } diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/oneinch/OneInchErrorsHandler.kt b/core/datasource/src/main/java/com/tangem/datasource/api/oneinch/OneInchErrorsHandler.kt index 792c9866d7..4fdc784ecb 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/oneinch/OneInchErrorsHandler.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/oneinch/OneInchErrorsHandler.kt @@ -3,11 +3,12 @@ package com.tangem.datasource.api.oneinch import com.squareup.moshi.Moshi import com.tangem.datasource.api.oneinch.errors.OneIncResponseException import com.tangem.datasource.api.oneinch.models.SwapErrorDto +import com.tangem.datasource.di.NetworkMoshi import retrofit2.HttpException import retrofit2.Response import javax.inject.Inject -class OneInchErrorsHandler @Inject constructor(moshi: Moshi) { +class OneInchErrorsHandler @Inject constructor(@NetworkMoshi moshi: Moshi) { private val errorMoshiAdapter = moshi.adapter(SwapErrorDto::class.java) diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/paymentology/PaymentologyApiService.kt b/core/datasource/src/main/java/com/tangem/datasource/api/paymentology/PaymentologyApiService.kt index f5dad3a728..ddf7762dca 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/paymentology/PaymentologyApiService.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/paymentology/PaymentologyApiService.kt @@ -17,7 +17,7 @@ object PaymentologyApiService { private fun createApi(): PaymentologyApi { return Retrofit.Builder() - .addConverterFactory(MoshiConverter.createFactory(MoshiConverter.sdkMoshi())) + .addConverterFactory(MoshiConverter.networkMoshiConverter) .baseUrl(PAYMENTOLOGY_BASE_URL) .client( OkHttpClient.Builder() diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/TangemTechService.kt b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/TangemTechService.kt index c38d6f6f22..e9ee67a9e7 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/TangemTechService.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/TangemTechService.kt @@ -28,7 +28,7 @@ object TangemTechService { private fun createApi(header: RequestHeader? = null): TangemTechApi { val headers = mutableListOf(CacheControlHeader).apply { header?.let(::add) } return Retrofit.Builder() - .addConverterFactory(MoshiConverter.createFactory()) + .addConverterFactory(MoshiConverter.networkMoshiConverter) .baseUrl(TANGEM_TECH_BASE_URL) .client( OkHttpClient.Builder() diff --git a/core/datasource/src/main/java/com/tangem/datasource/di/MoshiDaggerKey.kt b/core/datasource/src/main/java/com/tangem/datasource/di/MoshiDaggerKey.kt new file mode 100644 index 0000000000..0bae74e68b --- /dev/null +++ b/core/datasource/src/main/java/com/tangem/datasource/di/MoshiDaggerKey.kt @@ -0,0 +1,13 @@ +package com.tangem.datasource.di + +import javax.inject.Qualifier + +@Qualifier +@MustBeDocumented +@Retention(AnnotationRetention.RUNTIME) +annotation class SdkMoshi + +@Qualifier +@MustBeDocumented +@Retention(AnnotationRetention.RUNTIME) +annotation class NetworkMoshi \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/di/MoshiModule.kt b/core/datasource/src/main/java/com/tangem/datasource/di/MoshiModule.kt new file mode 100644 index 0000000000..0ab6faea17 --- /dev/null +++ b/core/datasource/src/main/java/com/tangem/datasource/di/MoshiModule.kt @@ -0,0 +1,42 @@ +package com.tangem.datasource.di + +import com.squareup.moshi.Moshi +import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory +import com.tangem.common.json.MoshiJsonConverter +import com.tangem.datasource.api.common.BigDecimalAdapter +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +class MoshiModule { + + @Provides + @Singleton + @NetworkMoshi + fun provideNetworkMoshi(): Moshi { + return Moshi.Builder() + .add(KotlinJsonAdapterFactory()) + .add(BigDecimalAdapter()) + .build() + } + + @Provides + @Singleton + @SdkMoshi + fun provideSdkMoshi(sdkMoshiJsonConverter: MoshiJsonConverter): Moshi { + return sdkMoshiJsonConverter.moshi + } + + @Provides + @Singleton + fun provideSdkMoshiConverter(): MoshiJsonConverter { + return MoshiJsonConverter( + adapters = listOf(BigDecimalAdapter()) + MoshiJsonConverter.getTangemSdkAdapters(), + typedAdapters = MoshiJsonConverter.getTangemSdkTypedAdapters(), + ) + } +} \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/di/NetworkModule.kt b/core/datasource/src/main/java/com/tangem/datasource/di/NetworkModule.kt index f339b5636b..d0a72c025c 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/di/NetworkModule.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/di/NetworkModule.kt @@ -1,11 +1,9 @@ package com.tangem.datasource.di import com.squareup.moshi.Moshi -import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory -import com.tangem.datasource.api.common.BigDecimalAdapter +import com.tangem.datasource.api.paymentology.PaymentologyApi import com.tangem.datasource.api.tangemTech.TangemTechApi -import com.tangem.datasource.utils.RequestHeader.AuthenticationHeader -import com.tangem.datasource.utils.RequestHeader.CacheControlHeader +import com.tangem.datasource.utils.RequestHeader.* import com.tangem.datasource.utils.addHeaders import com.tangem.datasource.utils.allowLogging import com.tangem.lib.auth.AuthProvider @@ -24,16 +22,7 @@ class NetworkModule { @Provides @Singleton - fun provideMoshi(): Moshi { - return Moshi.Builder() - .add(KotlinJsonAdapterFactory()) - .add(BigDecimalAdapter()) - .build() - } - - @Provides - @Singleton - fun provideTangemTechApi(authProvider: AuthProvider, moshi: Moshi): TangemTechApi { + fun provideTangemTechApi(authProvider: AuthProvider, @NetworkMoshi moshi: Moshi): TangemTechApi { return Retrofit.Builder() .addConverterFactory(MoshiConverterFactory.create(moshi)) .baseUrl(PROD_TANGEM_TECH_BASE_URL) @@ -50,6 +39,21 @@ class NetworkModule { .create(TangemTechApi::class.java) } + @Provides + @Singleton + fun providePaymentologyApi(@NetworkMoshi moshi: Moshi): PaymentologyApi { + return Retrofit.Builder() + .addConverterFactory(MoshiConverterFactory.create(moshi)) + .baseUrl(PAYMENTOLOGY_BASE_URL) + .client( + OkHttpClient.Builder() + .allowLogging() + .build(), + ) + .build() + .create(PaymentologyApi::class.java) + } + private companion object { const val PROD_TANGEM_TECH_BASE_URL = "https://api.tangem-tech.com/v1/" const val DEV_TANGEM_TECH_BASE_URL = "https://devapi.tangem-tech.com/v1/" diff --git a/core/datasource/src/main/java/com/tangem/datasource/di/OneInchApisModule.kt b/core/datasource/src/main/java/com/tangem/datasource/di/OneInchApisModule.kt index 7befbaaaf6..fa6cf8a14d 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/di/OneInchApisModule.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/di/OneInchApisModule.kt @@ -19,7 +19,7 @@ class OneInchApisModule { @Provides @Singleton - fun provideOneInchApiFactory(moshi: Moshi): OneInchApiFactory { + fun provideOneInchApiFactory(@NetworkMoshi moshi: Moshi): OneInchApiFactory { val apiFactory = OneInchApiFactory() apiFactory.putApi(ETH_NETWORK, createOneInchApiWithUrl(ONE_INCH_BASE_URL + ONE_INCH_ETH_PATH, moshi)) apiFactory.putApi(BSC_NETWORK, createOneInchApiWithUrl(ONE_INCH_BASE_URL + ONE_INCH_BSC_PATH, moshi))