Updated on 2026-08-14

This commit is contained in:
Tangem 2023-02-22 21:21:00 +03:00
parent a52562696a
commit 7af83c6998
2 changed files with 15 additions and 10 deletions

View file

@ -556,12 +556,15 @@ internal class SwapInteractorImpl @Inject constructor(
}
private suspend fun syncWalletBalanceForTokens(networkId: String, tokens: List<Currency>) {
val tokensBalance =
userWalletManager.getCurrentWalletTokensBalance(
networkId = networkId,
extraTokens = tokens.map { cryptoCurrencyConverter.convert(it) },
)
cache.cacheBalances(tokensBalance.mapValues { SwapAmount(it.value.value, it.value.decimals) })
val tokensToSync = tokens.filter { cache.getBalanceForToken(it.symbol) == null }
if (tokensToSync.isNotEmpty()) {
val tokensBalance =
userWalletManager.getCurrentWalletTokensBalance(
networkId = networkId,
extraTokens = tokensToSync.map { cryptoCurrencyConverter.convert(it) },
)
cache.cacheBalances(tokensBalance.mapValues { SwapAmount(it.value.value, it.value.decimals) })
}
}
private fun isBalanceEnough(fromToken: Currency, amount: SwapAmount, fee: BigDecimal?): Boolean {

View file

@ -79,6 +79,8 @@ internal class StateBuilder(val actions: UiActions) {
toToken: Currency,
mainTokenId: String,
): SwapStateHolder {
val canSelectSendToken = mainTokenId != fromToken.id
val canSelectReceiveToken = mainTokenId != toToken.id
return uiStateHolder.copy(
sendCardData = SwapCardData(
type = requireNotNull(uiStateHolder.sendCardData.type as? TransactionCardType.SendCard),
@ -88,8 +90,8 @@ internal class StateBuilder(val actions: UiActions) {
tokenCurrency = fromToken.symbol,
coinId = fromToken.id,
isNotNativeToken = fromToken.isNonNative(),
canSelectAnotherToken = mainTokenId != fromToken.id,
balance = "",
canSelectAnotherToken = canSelectSendToken,
balance = if (!canSelectSendToken) uiStateHolder.sendCardData.balance else "",
),
receiveCardData = SwapCardData(
type = TransactionCardType.ReceiveCard(),
@ -99,8 +101,8 @@ internal class StateBuilder(val actions: UiActions) {
tokenCurrency = toToken.symbol,
coinId = toToken.id,
isNotNativeToken = toToken.isNonNative(),
canSelectAnotherToken = mainTokenId != toToken.id,
balance = "",
canSelectAnotherToken = canSelectReceiveToken,
balance = if (!canSelectReceiveToken) uiStateHolder.receiveCardData.balance else "",
),
fee = FeeState.Loading,
swapButton = SwapButton(enabled = false, loading = true, onClick = {}),