Updated on 2026-08-14
This commit is contained in:
parent
e5107de19b
commit
1813cd06a9
4 changed files with 2 additions and 58 deletions
|
|
@ -25,6 +25,8 @@ internal object CoinsResponseConverter : Converter<CoinsResponse, List<Token>> {
|
|||
networks = token.networks.mapNotNull { network ->
|
||||
val blockchain = Blockchain.fromNetworkId(network.networkId) ?: return@mapNotNull null
|
||||
|
||||
if (!blockchain.canHandleTokens()) return@mapNotNull null
|
||||
|
||||
Token.Network(
|
||||
id = network.networkId,
|
||||
blockchain = blockchain,
|
||||
|
|
|
|||
|
|
@ -55,7 +55,6 @@ internal class DefaultSwapRepository @Inject constructor(
|
|||
moshi: Moshi,
|
||||
) : SwapRepository {
|
||||
|
||||
private val tokensConverter = TokensConverter()
|
||||
private val expressDataConverter = ExpressDataConverter()
|
||||
private val leastTokenInfoConverter = LeastTokenInfoConverter()
|
||||
private val swapPairInfoConverter = SwapPairInfoConverter()
|
||||
|
|
@ -213,18 +212,6 @@ internal class DefaultSwapRepository @Inject constructor(
|
|||
}
|
||||
}
|
||||
|
||||
override suspend fun getExchangeableTokens(networkId: String): List<Currency> {
|
||||
return withContext(coroutineDispatcher.io) {
|
||||
tokensConverter.convertList(
|
||||
tangemTechApi.getCoins(
|
||||
exchangeable = true,
|
||||
active = true,
|
||||
networkIds = networkId,
|
||||
).getOrThrow().coins,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun findBestQuote(
|
||||
fromContractAddress: String,
|
||||
fromNetwork: String,
|
||||
|
|
|
|||
|
|
@ -1,40 +0,0 @@
|
|||
package com.tangem.feature.swap.converters
|
||||
|
||||
import com.tangem.datasource.api.tangemTech.models.CoinsResponse
|
||||
import com.tangem.feature.swap.domain.models.domain.Currency
|
||||
import com.tangem.utils.converter.Converter
|
||||
|
||||
class TokensConverter : Converter<CoinsResponse.Coin, Currency> {
|
||||
|
||||
override fun convert(value: CoinsResponse.Coin): Currency {
|
||||
val network = value.networks.first()
|
||||
return if (network.contractAddress != null && network.decimalCount != null) {
|
||||
Currency.NonNativeToken(
|
||||
id = value.id,
|
||||
name = value.name,
|
||||
symbol = value.symbol,
|
||||
networkId = network.networkId,
|
||||
contractAddress = network.contractAddress!!,
|
||||
decimalCount = network.decimalCount!!.intValueExact(),
|
||||
logoUrl = getSmallIconUrl(value.id),
|
||||
)
|
||||
} else {
|
||||
Currency.NativeToken(
|
||||
id = value.id,
|
||||
name = value.name,
|
||||
symbol = value.symbol,
|
||||
networkId = network.networkId,
|
||||
logoUrl = getSmallIconUrl(value.id),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private fun getSmallIconUrl(coin: String): String {
|
||||
return "$DEFAULT_IMAGE_HOST$LARGE_ICON_PATH/$coin.png"
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val DEFAULT_IMAGE_HOST = "https://s3.eu-central-1.amazonaws.com/tangem.api/coins/"
|
||||
private const val LARGE_ICON_PATH = "large"
|
||||
}
|
||||
}
|
||||
|
|
@ -17,11 +17,6 @@ interface SwapRepository {
|
|||
|
||||
suspend fun getRates(currencyId: String, tokenIds: List<String>): Map<String, Double>
|
||||
|
||||
/**
|
||||
* @throws com.tangem.datasource.api.common.response.ApiResponseError
|
||||
* */
|
||||
suspend fun getExchangeableTokens(networkId: String): List<Currency>
|
||||
|
||||
suspend fun getExchangeStatus(txId: String): Either<UnknownError, ExchangeStatusModel>
|
||||
|
||||
@Suppress("LongParameterList")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue