Updated on 2026-08-14
This commit is contained in:
parent
a52562696a
commit
7af83c6998
2 changed files with 15 additions and 10 deletions
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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 = {}),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue