Updated on 2026-08-14
This commit is contained in:
parent
2e6647fa50
commit
3bde764060
23 changed files with 65 additions and 150 deletions
|
|
@ -9,7 +9,6 @@ import com.tangem.datasource.api.common.response.getOrThrow
|
|||
import com.tangem.datasource.local.yieldsupply.YieldMarketsStore
|
||||
import com.tangem.data.yield.supply.converters.YieldMarketTokenConverter
|
||||
import com.tangem.datasource.api.tangemTech.YieldSupplyApi
|
||||
import com.tangem.data.yield.supply.converters.YieldTokenStatusConverter
|
||||
import com.tangem.data.yield.supply.converters.YieldTokenChartConverter
|
||||
import com.tangem.datasource.api.tangemTech.models.YieldSupplyChangeTokenStatusBody
|
||||
import com.tangem.domain.models.currency.CryptoCurrency
|
||||
|
|
@ -17,7 +16,6 @@ import com.tangem.domain.models.wallet.UserWalletId
|
|||
import com.tangem.domain.walletmanager.WalletManagersFacade
|
||||
import com.tangem.domain.yield.supply.YieldSupplyRepository
|
||||
import com.tangem.domain.yield.supply.models.YieldMarketToken
|
||||
import com.tangem.domain.yield.supply.models.YieldMarketTokenStatus
|
||||
import com.tangem.domain.yield.supply.models.YieldSupplyMarketChartData
|
||||
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
|
@ -50,11 +48,11 @@ internal class DefaultYieldSupplyRepository(
|
|||
it.map(YieldMarketTokenConverter::convert).enrichNetworkIds()
|
||||
}
|
||||
|
||||
override suspend fun getTokenStatus(cryptoCurrencyToken: CryptoCurrency.Token): YieldMarketTokenStatus {
|
||||
override suspend fun getTokenStatus(cryptoCurrencyToken: CryptoCurrency.Token): YieldMarketToken {
|
||||
val chainId = Blockchain.fromNetworkId(cryptoCurrencyToken.network.backendId)?.getChainId()
|
||||
?: error("Chain id is required for evm's")
|
||||
val response = yieldSupplyApi.getYieldTokenStatus(chainId, cryptoCurrencyToken.contractAddress).getOrThrow()
|
||||
return YieldTokenStatusConverter.convert(response)
|
||||
return YieldMarketTokenConverter.convert(response)
|
||||
}
|
||||
|
||||
override suspend fun getTokenChart(cryptoCurrencyToken: CryptoCurrency.Token): YieldSupplyMarketChartData {
|
||||
|
|
|
|||
|
|
@ -1,16 +1,19 @@
|
|||
package com.tangem.data.yield.supply.converters
|
||||
|
||||
import com.tangem.datasource.api.tangemTech.models.YieldMarketsResponse
|
||||
import com.tangem.datasource.api.tangemTech.models.YieldSupplyMarketTokenDto
|
||||
import com.tangem.domain.yield.supply.models.YieldMarketToken
|
||||
import com.tangem.utils.converter.Converter
|
||||
import com.tangem.utils.extensions.orZero
|
||||
|
||||
internal object YieldMarketTokenConverter : Converter<YieldMarketsResponse.MarketDto, YieldMarketToken> {
|
||||
override fun convert(value: YieldMarketsResponse.MarketDto): YieldMarketToken {
|
||||
internal object YieldMarketTokenConverter : Converter<YieldSupplyMarketTokenDto, YieldMarketToken> {
|
||||
override fun convert(value: YieldSupplyMarketTokenDto): YieldMarketToken {
|
||||
return YieldMarketToken(
|
||||
tokenAddress = value.tokenAddress.orEmpty(),
|
||||
apy = value.apy,
|
||||
isActive = value.isActive,
|
||||
apy = value.apy.orZero(),
|
||||
isActive = value.isActive ?: false,
|
||||
chainId = value.chainId ?: -1,
|
||||
maxFeeUSD = value.maxFeeUSD.orEmpty(),
|
||||
maxFeeNative = value.maxFeeNative.orEmpty(),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
package com.tangem.data.yield.supply.converters
|
||||
|
||||
import com.tangem.datasource.api.tangemTech.models.YieldTokenStatusResponse
|
||||
import com.tangem.domain.models.serialization.SerializedBigDecimal
|
||||
import com.tangem.domain.yield.supply.models.YieldMarketTokenStatus
|
||||
import com.tangem.utils.converter.Converter
|
||||
|
||||
internal object YieldTokenStatusConverter : Converter<YieldTokenStatusResponse, YieldMarketTokenStatus> {
|
||||
override fun convert(value: YieldTokenStatusResponse): YieldMarketTokenStatus {
|
||||
return YieldMarketTokenStatus(
|
||||
tokenAddress = value.tokenAddress.orEmpty(),
|
||||
tokenSymbol = value.tokenSymbol.orEmpty(),
|
||||
tokenName = value.tokenName.orEmpty(),
|
||||
apy = value.apy ?: SerializedBigDecimal.ZERO,
|
||||
isActive = value.isActive ?: false,
|
||||
chainId = value.chainId ?: -1,
|
||||
maxFeeUSD = value.maxFeeUSD.orEmpty(),
|
||||
maxFeeNative = value.maxFeeNative.orEmpty(),
|
||||
)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue