Updated on 2026-08-14

This commit is contained in:
Tangem 2025-10-01 16:55:53 +05:00
parent 59a6a4cb69
commit 8d6992ad24
14 changed files with 251 additions and 82 deletions

View file

@ -4,8 +4,10 @@ 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.domain.yield.supply.YieldSupplyMarketRepository
import com.tangem.domain.yield.supply.models.YieldMarketToken
import com.tangem.domain.yield.supply.models.YieldTokenStatus
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.withContext
@ -28,4 +30,9 @@ internal class DefaultYieldSupplyMarketRepository(
}
override fun getMarketsFlow(): Flow<List<YieldMarketToken>> = store.get()
override suspend fun getTokenStatus(contractAddress: String): YieldTokenStatus {
val response = yieldSupplyApi.getYieldTokenStatus(contractAddress).getOrThrow()
return YieldTokenStatusConverter.convert(response)
}
}

View file

@ -0,0 +1,29 @@
package com.tangem.data.yield.supply.converters
import com.tangem.datasource.api.tangemTech.models.YieldTokenStatusResponse
import com.tangem.domain.yield.supply.models.YieldTokenStatus
import com.tangem.utils.converter.Converter
internal object YieldTokenStatusConverter : Converter<YieldTokenStatusResponse, YieldTokenStatus> {
override fun convert(value: YieldTokenStatusResponse): YieldTokenStatus {
return YieldTokenStatus(
tokenAddress = value.tokenAddress,
tokenSymbol = value.tokenSymbol,
tokenName = value.tokenName,
apy = value.apy,
totalSupplied = value.totalSupplied,
totalBorrowed = value.totalBorrowed,
liquidityRate = value.liquidityRate,
borrowRate = value.borrowRate,
utilizationRate = value.utilizationRate,
isActive = value.isActive,
ltv = value.ltv,
liquidationThreshold = value.liquidationThreshold,
decimals = value.decimals,
chainId = value.chainId,
priority = value.priority,
isEnabled = value.isEnabled,
lastUpdatedAt = value.lastUpdatedAt,
)
}
}