Updated on 2026-08-14

This commit is contained in:
Tangem 2024-10-06 12:16:42 +04:00
parent 898edd2b16
commit 5516e706aa
10 changed files with 45 additions and 21 deletions

View file

@ -20,6 +20,9 @@ import com.tangem.datasource.api.express.models.response.SwapPair
import com.tangem.datasource.api.express.models.response.SwapPairsWithProviders
import com.tangem.datasource.api.express.models.response.TxDetails
import com.tangem.datasource.crypto.DataSignatureVerifier
import com.tangem.datasource.local.preferences.AppPreferencesStore
import com.tangem.datasource.local.preferences.PreferencesKeys
import com.tangem.datasource.local.preferences.utils.getSyncOrNull
import com.tangem.domain.common.util.derivationStyleProvider
import com.tangem.domain.tokens.model.CryptoCurrency
import com.tangem.domain.walletmanager.WalletManagersFacade
@ -49,6 +52,7 @@ internal class DefaultSwapRepository @Inject constructor(
private val userWalletsListManager: UserWalletsListManager,
private val errorsDataConverter: ErrorsDataConverter,
private val dataSignatureVerifier: DataSignatureVerifier,
private val appPreferencesStore: AppPreferencesStore,
moshi: Moshi,
) : SwapRepository {
@ -199,6 +203,8 @@ internal class DefaultSwapRepository @Inject constructor(
): Either<DataError, QuoteModel> {
return withContext(coroutineDispatcher.io) {
try {
val isRingAdded = appPreferencesStore.getSyncOrNull(PreferencesKeys.IS_RING_ADDED_KEY)
val response = tangemExpressApi.getExchangeQuote(
fromContractAddress = fromContractAddress,
fromNetwork = fromNetwork,
@ -209,6 +215,7 @@ internal class DefaultSwapRepository @Inject constructor(
toDecimals = toDecimals,
providerId = providerId,
rateType = rateType.name.lowercase(),
refCode = if (isRingAdded == true) "ring" else null,
).getOrThrow()
QuoteModel(
toTokenAmount = createFromAmountWithOffset(response.toAmount, response.toDecimals),

View file

@ -33,6 +33,7 @@ internal class SwapDataModule {
walletManagerFacade: WalletManagersFacade,
userWalletsListManager: UserWalletsListManager,
errorsDataConverter: ErrorsDataConverter,
appPreferencesStore: AppPreferencesStore,
@NetworkMoshi moshi: Moshi,
): SwapRepository {
return DefaultSwapRepository(
@ -42,6 +43,7 @@ internal class SwapDataModule {
userWalletsListManager = userWalletsListManager,
errorsDataConverter = errorsDataConverter,
dataSignatureVerifier = dataSignature,
appPreferencesStore = appPreferencesStore,
moshi = moshi,
)
}