Updated on 2026-08-14
This commit is contained in:
parent
388b0547d6
commit
33ad78415a
8 changed files with 1 additions and 83 deletions
|
|
@ -60,6 +60,7 @@ internal class QuotesUnsupportedCurrenciesIdAdapter {
|
|||
Blockchain.Aurora.toCoinId() to ethCoinId,
|
||||
Blockchain.Base.toCoinId() to ethCoinId,
|
||||
Blockchain.Blast.toCoinId() to ethCoinId,
|
||||
Blockchain.Cyber.toCoinId() to ethCoinId,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
package com.tangem.feature.swap.api
|
||||
|
||||
/** Feature toggles manager of "swap" feature */
|
||||
interface SwapFeatureToggleManager {
|
||||
|
||||
val isOptimismSwapEnabled: Boolean
|
||||
}
|
||||
|
|
@ -19,7 +19,6 @@ import com.tangem.datasource.api.express.models.response.ExchangeDataResponseWit
|
|||
import com.tangem.datasource.api.express.models.response.SwapPair
|
||||
import com.tangem.datasource.api.express.models.response.SwapPairsWithProviders
|
||||
import com.tangem.datasource.api.express.models.response.TxDetails
|
||||
import com.tangem.datasource.api.tangemTech.TangemTechApi
|
||||
import com.tangem.datasource.crypto.DataSignatureVerifier
|
||||
import com.tangem.domain.common.util.derivationStyleProvider
|
||||
import com.tangem.domain.tokens.model.CryptoCurrency
|
||||
|
|
@ -44,7 +43,6 @@ import com.tangem.datasource.api.express.models.request.LeastTokenInfo as Networ
|
|||
|
||||
@Suppress("LongParameterList", "LargeClass")
|
||||
internal class DefaultSwapRepository @Inject constructor(
|
||||
private val tangemTechApi: TangemTechApi,
|
||||
private val tangemExpressApi: TangemExpressApi,
|
||||
private val coroutineDispatcher: CoroutineDispatcherProvider,
|
||||
private val walletManagersFacade: WalletManagersFacade,
|
||||
|
|
@ -188,29 +186,6 @@ internal class DefaultSwapRepository @Inject constructor(
|
|||
}
|
||||
}
|
||||
|
||||
override suspend fun getRates(currencyId: String, tokenIds: List<String>): Map<String, Double> {
|
||||
// workaround cause backend do not return arbitrum and optimism rates
|
||||
val addedTokens = if (tokenIds.contains(OPTIMISM_ID) || tokenIds.contains(ARBITRUM_ID)) {
|
||||
tokenIds.toMutableList().apply {
|
||||
add(ETHEREUM_ID)
|
||||
}
|
||||
} else {
|
||||
tokenIds
|
||||
}
|
||||
return withContext(coroutineDispatcher.io) {
|
||||
val rates = tangemTechApi.getRates(currencyId.lowercase(), addedTokens.joinToString(",")).rates
|
||||
val ethRate = rates[ETHEREUM_ID]
|
||||
if (tokenIds.contains(OPTIMISM_ID) || tokenIds.contains(ARBITRUM_ID)) {
|
||||
rates.toMutableMap().apply {
|
||||
put(OPTIMISM_ID, ethRate ?: 0.0)
|
||||
put(ARBITRUM_ID, ethRate ?: 0.0)
|
||||
}
|
||||
} else {
|
||||
rates
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun findBestQuote(
|
||||
fromContractAddress: String,
|
||||
fromNetwork: String,
|
||||
|
|
@ -432,11 +407,4 @@ internal class DefaultSwapRepository @Inject constructor(
|
|||
DataError.UnknownError
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
// TODO("get this ids from blockchain enum later")
|
||||
private const val OPTIMISM_ID = "optimistic-ethereum"
|
||||
private const val ARBITRUM_ID = "arbitrum-one"
|
||||
private const val ETHEREUM_ID = "ethereum"
|
||||
}
|
||||
}
|
||||
|
|
@ -3,7 +3,6 @@ package com.tangem.feature.swap.di
|
|||
import com.squareup.moshi.Moshi
|
||||
import com.tangem.datasource.api.express.TangemExpressApi
|
||||
import com.tangem.datasource.api.express.models.response.ExpressErrorResponse
|
||||
import com.tangem.datasource.api.tangemTech.TangemTechApi
|
||||
import com.tangem.datasource.crypto.DataSignatureVerifier
|
||||
import com.tangem.datasource.di.NetworkMoshi
|
||||
import com.tangem.datasource.local.preferences.AppPreferencesStore
|
||||
|
|
@ -28,7 +27,6 @@ internal class SwapDataModule {
|
|||
@Provides
|
||||
@Singleton
|
||||
internal fun provideSwapRepository(
|
||||
tangemTechApi: TangemTechApi,
|
||||
tangemExpressApi: TangemExpressApi,
|
||||
coroutineDispatcher: CoroutineDispatcherProvider,
|
||||
dataSignature: DataSignatureVerifier,
|
||||
|
|
@ -38,7 +36,6 @@ internal class SwapDataModule {
|
|||
@NetworkMoshi moshi: Moshi,
|
||||
): SwapRepository {
|
||||
return DefaultSwapRepository(
|
||||
tangemTechApi = tangemTechApi,
|
||||
tangemExpressApi = tangemExpressApi,
|
||||
coroutineDispatcher = coroutineDispatcher,
|
||||
walletManagersFacade = walletManagerFacade,
|
||||
|
|
|
|||
|
|
@ -14,8 +14,6 @@ interface SwapRepository {
|
|||
/** Express getPairs request variant without providers request */
|
||||
suspend fun getPairsOnly(initialCurrency: LeastTokenInfo, currencyList: List<CryptoCurrency>): PairsWithProviders
|
||||
|
||||
suspend fun getRates(currencyId: String, tokenIds: List<String>): Map<String, Double>
|
||||
|
||||
suspend fun getExchangeStatus(txId: String): Either<UnknownError, ExchangeStatusModel>
|
||||
|
||||
@Suppress("LongParameterList")
|
||||
|
|
|
|||
|
|
@ -1,21 +0,0 @@
|
|||
package com.tangem.feature.swap.di
|
||||
|
||||
import com.tangem.core.featuretoggle.manager.FeatureTogglesManager
|
||||
import com.tangem.feature.swap.api.SwapFeatureToggleManager
|
||||
import com.tangem.feature.swap.toggles.DefaultFeatureTogglesManager
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.android.components.ActivityRetainedComponent
|
||||
import dagger.hilt.android.scopes.ActivityRetainedScoped
|
||||
|
||||
@Module
|
||||
@InstallIn(ActivityRetainedComponent::class)
|
||||
internal object SwapFeatureTogglesManagerModule {
|
||||
|
||||
@Provides
|
||||
@ActivityRetainedScoped
|
||||
fun provideSwapFeatureTogglesManager(featureTogglesManager: FeatureTogglesManager): SwapFeatureToggleManager {
|
||||
return DefaultFeatureTogglesManager(featureTogglesManager)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
package com.tangem.feature.swap.toggles
|
||||
|
||||
import com.tangem.core.featuretoggle.manager.FeatureTogglesManager
|
||||
|
||||
/** Feature toggles manager implementation of "swap" feature */
|
||||
class DefaultFeatureTogglesManager(
|
||||
private val featureTogglesManager: FeatureTogglesManager,
|
||||
) : InnerSwapFeatureTogglesManager {
|
||||
|
||||
override val isOptimismSwapEnabled: Boolean
|
||||
get() = featureTogglesManager.isFeatureEnabled(name = "OPTIMISM_SWAP_FEATURE_ENABLED")
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
package com.tangem.feature.swap.toggles
|
||||
|
||||
import com.tangem.feature.swap.api.SwapFeatureToggleManager
|
||||
|
||||
/** Feature toggles manager of "swap" feature for internal logic */
|
||||
internal interface InnerSwapFeatureTogglesManager : SwapFeatureToggleManager
|
||||
Loading…
Add table
Add a link
Reference in a new issue