Updated on 2026-08-14
This commit is contained in:
parent
b1b7b1bc15
commit
3f6a17e340
3 changed files with 17 additions and 14 deletions
|
|
@ -70,7 +70,7 @@ interface SwapInteractor {
|
|||
providers: List<SwapProvider>,
|
||||
amountToSwap: String,
|
||||
selectedFee: FeeType = FeeType.NORMAL,
|
||||
): SwapState
|
||||
): Map<SwapProvider, SwapState>
|
||||
|
||||
/**
|
||||
* Starts swap transaction, perform sign transaction
|
||||
|
|
|
|||
|
|
@ -281,11 +281,11 @@ internal class SwapInteractorImpl @Inject constructor(
|
|||
providers: List<SwapProvider>,
|
||||
amountToSwap: String,
|
||||
selectedFee: FeeType,
|
||||
): SwapState {
|
||||
): Map<SwapProvider, SwapState> {
|
||||
syncWalletBalanceForTokens(networkId, listOf(fromToken, toToken))
|
||||
val amountDecimal = toBigDecimalOrNull(amountToSwap)
|
||||
if (amountDecimal == null || amountDecimal.signum() == 0) {
|
||||
return createEmptyAmountState(networkId, fromToken, toToken)
|
||||
return providers.associateWith { createEmptyAmountState(networkId, fromToken, toToken) }
|
||||
}
|
||||
val amount = SwapAmount(amountDecimal, getTokenDecimals(fromToken))
|
||||
val fromTokenAddress = getTokenAddress(fromToken)
|
||||
|
|
@ -297,15 +297,18 @@ internal class SwapInteractorImpl @Inject constructor(
|
|||
}
|
||||
val isBalanceWithoutFeeEnough = isBalanceEnough(networkId, fromToken, amount, null)
|
||||
return if (isAllowedToSpend && isBalanceWithoutFeeEnough) {
|
||||
loadSwapData(
|
||||
networkId = networkId,
|
||||
fromTokenAddress = fromTokenAddress,
|
||||
toTokenAddress = toTokenAddress,
|
||||
fromToken = fromToken,
|
||||
toToken = toToken,
|
||||
amount = amount,
|
||||
selectedFee = selectedFee,
|
||||
)
|
||||
// TODO
|
||||
providers.associateWith {
|
||||
loadSwapData(
|
||||
networkId = networkId,
|
||||
fromTokenAddress = fromTokenAddress,
|
||||
toTokenAddress = toTokenAddress,
|
||||
fromToken = fromToken,
|
||||
toToken = toToken,
|
||||
amount = amount,
|
||||
selectedFee = selectedFee,
|
||||
)
|
||||
}
|
||||
} else {
|
||||
loadQuoteData(
|
||||
networkId = networkId,
|
||||
|
|
@ -315,7 +318,7 @@ internal class SwapInteractorImpl @Inject constructor(
|
|||
isAllowedToSpend = isAllowedToSpend,
|
||||
isBalanceWithoutFeeEnough = isBalanceWithoutFeeEnough,
|
||||
providers = providers,
|
||||
).entries.first().value // TODO
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -251,7 +251,7 @@ internal class SwapViewModel @Inject constructor(
|
|||
providers = toProvidersList,
|
||||
amountToSwap = amount,
|
||||
selectedFee = dataState.selectedFee?.feeType ?: FeeType.NORMAL,
|
||||
)
|
||||
).entries.first().value// TODO
|
||||
}
|
||||
},
|
||||
onSuccess = { swapState ->
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue