Updated on 2026-08-14
This commit is contained in:
commit
c8024b166d
656 changed files with 18270 additions and 4656 deletions
|
|
@ -35,12 +35,12 @@ import com.tangem.domain.tokens.*
|
|||
import com.tangem.domain.tokens.model.CryptoCurrency
|
||||
import com.tangem.domain.tokens.model.CryptoCurrencyStatus
|
||||
import com.tangem.domain.tokens.model.Network
|
||||
import com.tangem.domain.txhistory.usecase.GetExplorerTransactionUrlUseCase
|
||||
import com.tangem.domain.wallets.models.UserWallet
|
||||
import com.tangem.domain.wallets.models.UserWalletId
|
||||
import com.tangem.domain.wallets.usecase.GetUserWalletUseCase
|
||||
import com.tangem.feature.swap.analytics.StoriesEvents
|
||||
import com.tangem.feature.swap.analytics.SwapEvents
|
||||
import com.tangem.feature.swap.domain.BlockchainInteractor
|
||||
import com.tangem.feature.swap.domain.SwapInteractor
|
||||
import com.tangem.feature.swap.domain.models.ExpressDataError
|
||||
import com.tangem.feature.swap.domain.models.ExpressException
|
||||
|
|
@ -80,7 +80,6 @@ typealias SuccessLoadedSwapData = Map<SwapProvider, SwapState.QuotesLoadedState>
|
|||
internal class SwapModel @Inject constructor(
|
||||
paramsContainer: ParamsContainer,
|
||||
override val dispatchers: CoroutineDispatcherProvider,
|
||||
private val blockchainInteractor: BlockchainInteractor,
|
||||
private val analyticsEventHandler: AnalyticsEventHandler,
|
||||
private val analyticsErrorEventHandler: AnalyticsErrorHandler,
|
||||
private val getSelectedAppCurrencyUseCase: GetSelectedAppCurrencyUseCase,
|
||||
|
|
@ -93,6 +92,7 @@ internal class SwapModel @Inject constructor(
|
|||
private val saveBlockchainErrorUseCase: SaveBlockchainErrorUseCase,
|
||||
private val sendFeedbackEmailUseCase: SendFeedbackEmailUseCase,
|
||||
private val getMinimumTransactionAmountSyncUseCase: GetMinimumTransactionAmountSyncUseCase,
|
||||
private val getExplorerTransactionUrlUseCase: GetExplorerTransactionUrlUseCase,
|
||||
private val shouldShowStoriesUseCase: ShouldShowStoriesUseCase,
|
||||
private val getStoryContentUseCase: GetStoryContentUseCase,
|
||||
getBalanceHidingSettingsUseCase: GetBalanceHidingSettingsUseCase,
|
||||
|
|
@ -135,7 +135,7 @@ internal class SwapModel @Inject constructor(
|
|||
stateBuilder.createInitialLoadingState(
|
||||
initialCurrencyFrom = initialCurrencyFrom,
|
||||
initialCurrencyTo = initialCurrencyTo,
|
||||
fromNetworkInfo = blockchainInteractor.getBlockchainInfo(initialCurrencyFrom.network.backendId),
|
||||
fromNetworkInfo = initialCurrencyFrom.getNetworkInfo(),
|
||||
),
|
||||
)
|
||||
private set
|
||||
|
|
@ -261,9 +261,7 @@ internal class SwapModel @Inject constructor(
|
|||
uiState = stateBuilder.createInitialLoadingState(
|
||||
initialCurrencyFrom = initialCurrencyFrom,
|
||||
initialCurrencyTo = initialCurrencyTo,
|
||||
fromNetworkInfo = blockchainInteractor.getBlockchainInfo(
|
||||
initialCurrencyFrom.network.backendId,
|
||||
),
|
||||
fromNetworkInfo = initialCurrencyFrom.getNetworkInfo(),
|
||||
)
|
||||
initTokens(isReverseFromTo)
|
||||
}
|
||||
|
|
@ -603,10 +601,14 @@ internal class SwapModel @Inject constructor(
|
|||
when (it) {
|
||||
is SwapTransactionState.TxSent -> {
|
||||
sendSuccessSwapEvent(fromCurrency.currency, fee.feeType)
|
||||
val url = blockchainInteractor.getExplorerTransactionLink(
|
||||
networkId = fromCurrency.currency.network.backendId,
|
||||
val url = getExplorerTransactionUrlUseCase(
|
||||
txHash = it.txHash,
|
||||
)
|
||||
networkId = fromCurrency.currency.network.id,
|
||||
).getOrElse {
|
||||
Timber.i("tx hash explore not supported")
|
||||
""
|
||||
}
|
||||
|
||||
updateWalletBalance()
|
||||
uiState = stateBuilder.createSuccessState(
|
||||
uiState = uiState,
|
||||
|
|
@ -1356,6 +1358,13 @@ internal class SwapModel @Inject constructor(
|
|||
}
|
||||
}
|
||||
|
||||
private fun CryptoCurrency.getNetworkInfo(): NetworkInfo {
|
||||
return NetworkInfo(
|
||||
name = this.network.name,
|
||||
blockchainId = this.network.id.value,
|
||||
)
|
||||
}
|
||||
|
||||
private companion object {
|
||||
const val INITIAL_AMOUNT = ""
|
||||
const val UPDATE_DELAY = 10000L
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue