Updated on 2026-08-14
This commit is contained in:
parent
47e284436a
commit
0387fb8a4f
10 changed files with 33 additions and 57 deletions
|
|
@ -299,6 +299,7 @@ internal class DefaultStakingRepository(
|
|||
YieldBalanceWrapperDTO(
|
||||
balances = result,
|
||||
integrationId = requestBody.integrationId,
|
||||
addresses = requestBody.addresses,
|
||||
),
|
||||
)
|
||||
},
|
||||
|
|
@ -317,14 +318,7 @@ internal class DefaultStakingRepository(
|
|||
?: error("Could not get integrationId")
|
||||
stakingBalanceStore.get(userWalletId, integrationId)
|
||||
.collectLatest {
|
||||
send(
|
||||
yieldBalanceConverter.convert(
|
||||
YieldBalanceConverter.Data(
|
||||
balance = it,
|
||||
integrationId = integrationId,
|
||||
),
|
||||
),
|
||||
)
|
||||
send(yieldBalanceConverter.convert(it))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -351,12 +345,7 @@ internal class DefaultStakingRepository(
|
|||
val result = stakingBalanceStore.getSyncOrNull(userWalletId, integrationId)
|
||||
?: return@withContext YieldBalance.Error
|
||||
|
||||
yieldBalanceConverter.convert(
|
||||
YieldBalanceConverter.Data(
|
||||
balance = result,
|
||||
integrationId = integrationId,
|
||||
),
|
||||
)
|
||||
yieldBalanceConverter.convert(result)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -385,7 +374,7 @@ internal class DefaultStakingRepository(
|
|||
null
|
||||
}
|
||||
}
|
||||
.distinct()
|
||||
.distinctBy { it.second }
|
||||
.map { getBalanceRequestData(it.first, it.second) }
|
||||
.ifEmpty { return@invokeOnExpire }
|
||||
val result = stakeKitApi.getMultipleYieldBalances(availableCurrencies).getOrThrow()
|
||||
|
|
|
|||
|
|
@ -1,24 +1,22 @@
|
|||
package com.tangem.data.staking.converters
|
||||
|
||||
import com.tangem.data.staking.converters.action.PendingActionConverter
|
||||
import com.tangem.datasource.api.stakekit.models.response.model.BalanceDTO
|
||||
import com.tangem.domain.staking.model.stakekit.BalanceItem
|
||||
import com.tangem.domain.staking.model.stakekit.BalanceType
|
||||
import com.tangem.domain.staking.model.stakekit.YieldBalance
|
||||
import com.tangem.domain.staking.model.stakekit.YieldBalanceItem
|
||||
import com.tangem.datasource.api.stakekit.models.response.model.YieldBalanceWrapperDTO
|
||||
import com.tangem.domain.staking.model.stakekit.*
|
||||
import com.tangem.utils.converter.Converter
|
||||
|
||||
internal class YieldBalanceConverter : Converter<YieldBalanceConverter.Data, YieldBalance> {
|
||||
internal class YieldBalanceConverter : Converter<YieldBalanceWrapperDTO, YieldBalance> {
|
||||
|
||||
private val pendingActionConverter by lazy(LazyThreadSafetyMode.NONE) { PendingActionConverter() }
|
||||
|
||||
override fun convert(value: Data): YieldBalance {
|
||||
return if (value.balance.isEmpty()) {
|
||||
override fun convert(value: YieldBalanceWrapperDTO): YieldBalance {
|
||||
return if (value.balances.isEmpty()) {
|
||||
YieldBalance.Empty
|
||||
} else {
|
||||
YieldBalance.Data(
|
||||
address = value.addresses.address,
|
||||
balance = YieldBalanceItem(
|
||||
items = value.balance.map { item ->
|
||||
items = value.balances.map { item ->
|
||||
BalanceItem(
|
||||
type = BalanceType.valueOf(item.type.name),
|
||||
amount = item.amount,
|
||||
|
|
@ -35,9 +33,4 @@ internal class YieldBalanceConverter : Converter<YieldBalanceConverter.Data, Yie
|
|||
)
|
||||
}
|
||||
}
|
||||
|
||||
data class Data(
|
||||
val balance: List<BalanceDTO>,
|
||||
val integrationId: String?,
|
||||
)
|
||||
}
|
||||
|
|
@ -15,14 +15,7 @@ internal class YieldBalanceListConverter : Converter<Set<YieldBalanceWrapperDTO>
|
|||
YieldBalanceList.Empty
|
||||
} else {
|
||||
YieldBalanceList.Data(
|
||||
balances = value.map {
|
||||
converter.convert(
|
||||
YieldBalanceConverter.Data(
|
||||
balance = it.balances,
|
||||
integrationId = it.integrationId,
|
||||
),
|
||||
)
|
||||
},
|
||||
balances = value.map(converter::convert),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue