Updated on 2026-08-14

This commit is contained in:
Tangem 2024-09-27 13:54:41 +03:00
parent 67be280129
commit deb6d570b0
20 changed files with 111 additions and 105 deletions

View file

@ -16,7 +16,7 @@ import retrofit2.http.*
interface StakeKitApi {
@GET("yields/enabled")
suspend fun getMultipleYields(
suspend fun getEnabledYields(
@Query("preferredValidatorsOnly") preferredValidatorsOnly: Boolean? = null,
@Query("ledgerWalletAPICompatible") ledgerWalletAPICompatible: Boolean? = null,
@Query("type") type: YieldType? = null,

View file

@ -5,7 +5,7 @@ import com.tangem.datasource.local.datastore.core.StringKeyDataStore
import com.tangem.domain.wallets.models.UserWalletId
import com.tangem.utils.extensions.addOrReplace
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.mapNotNull
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.sync.Mutex
import kotlinx.coroutines.sync.withLock
@ -29,9 +29,13 @@ internal class DefaultStakingBalanceStore(
}
}
override fun get(userWalletId: UserWalletId, address: String, integrationId: String): Flow<YieldBalanceWrapperDTO> {
override fun get(
userWalletId: UserWalletId,
address: String,
integrationId: String,
): Flow<YieldBalanceWrapperDTO?> {
return dataStore.get(userWalletId.stringValue)
.mapNotNull { balances ->
.map { balances ->
balances.firstOrNull { it.integrationId == integrationId && it.addresses.address == address }
}
}

View file

@ -12,7 +12,7 @@ interface StakingBalanceStore {
suspend fun store(userWalletId: UserWalletId, items: Set<YieldBalanceWrapperDTO>)
fun get(userWalletId: UserWalletId, address: String, integrationId: String): Flow<YieldBalanceWrapperDTO>
fun get(userWalletId: UserWalletId, address: String, integrationId: String): Flow<YieldBalanceWrapperDTO?>
suspend fun getSyncOrNull(
userWalletId: UserWalletId,