Updated on 2026-08-14

This commit is contained in:
Tangem 2026-01-12 10:20:23 +03:00
parent 4f88a5ddf9
commit ebb562b2a0
21 changed files with 81 additions and 41 deletions

View file

@ -46,6 +46,10 @@ dependencies {
implementation(projects.libs.blockchainSdk)
// endregion
// region Project - Features API
implementation(projects.features.sendV2.api)
// endregion
// region Tangem SDKs
implementation(tangemDeps.blockchain)
implementation(tangemDeps.card.core)

View file

@ -22,6 +22,7 @@ import com.tangem.domain.tokens.repository.CurrencyChecksRepository
import com.tangem.domain.tokens.repository.TokenReceiveWarningsViewedRepository
import com.tangem.domain.tokens.repository.YieldSupplyWarningsViewedRepository
import com.tangem.domain.walletmanager.WalletManagersFacade
import com.tangem.features.send.v2.api.SendFeatureToggles
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import dagger.Module
import dagger.Provides
@ -72,10 +73,12 @@ internal object TokensDataModule {
fun provideCurrencyChecksRepository(
walletManagersFacade: WalletManagersFacade,
coroutineDispatcherProvider: CoroutineDispatcherProvider,
sendFeatureToggles: SendFeatureToggles,
): CurrencyChecksRepository {
return DefaultCurrencyChecksRepository(
walletManagersFacade = walletManagersFacade,
coroutineDispatchers = coroutineDispatcherProvider,
sendFeatureToggles = sendFeatureToggles,
)
}

View file

@ -1,10 +1,8 @@
package com.tangem.data.tokens.repository
import com.tangem.blockchain.blockchains.ethereum.eip1559.isGaslessTxSupported
import com.tangem.blockchain.blockchains.polkadot.ExistentialDepositProvider
import com.tangem.blockchain.common.FeeResourceAmountProvider
import com.tangem.blockchain.common.MinimumSendAmountProvider
import com.tangem.blockchain.common.ReserveAmountProvider
import com.tangem.blockchain.common.UtxoAmountLimitProvider
import com.tangem.blockchain.common.*
import com.tangem.data.tokens.converters.UtxoConverter
import com.tangem.domain.models.currency.CryptoCurrency
import com.tangem.domain.models.currency.CryptoCurrencyStatus
@ -17,6 +15,7 @@ import com.tangem.domain.tokens.model.blockchains.UtxoAmountLimit
import com.tangem.domain.tokens.model.warnings.CryptoCurrencyWarning
import com.tangem.domain.tokens.repository.CurrencyChecksRepository
import com.tangem.domain.walletmanager.WalletManagersFacade
import com.tangem.features.send.v2.api.SendFeatureToggles
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import com.tangem.utils.extensions.isZero
import com.tangem.utils.extensions.orZero
@ -26,6 +25,7 @@ import java.math.BigDecimal
internal class DefaultCurrencyChecksRepository(
private val walletManagersFacade: WalletManagersFacade,
private val coroutineDispatchers: CoroutineDispatcherProvider,
private val sendFeatureToggles: SendFeatureToggles,
) : CurrencyChecksRepository {
override suspend fun getExistentialDeposit(userWalletId: UserWalletId, network: Network): BigDecimal? {
@ -66,6 +66,12 @@ internal class DefaultCurrencyChecksRepository(
}
}
override fun isNetworkSupportedForGaslessTx(network: Network): Boolean {
if (!sendFeatureToggles.isGaslessTransactionsEnabled) return false
val blockchain = Blockchain.fromId(network.rawId)
return blockchain.isGaslessTxSupported
}
override suspend fun getFeeResourceAmount(userWalletId: UserWalletId, network: Network): CurrencyAmount? {
val manager = walletManagersFacade.getOrCreateWalletManager(
userWalletId = userWalletId,