Updated on 2026-08-14

This commit is contained in:
Tangem 2026-03-30 14:35:20 +07:00
parent 514eca0b00
commit 203b1c52cc
17 changed files with 152 additions and 29 deletions

View file

@ -38,6 +38,7 @@ dependencies {
implementation(projects.domain.tokens.models)
implementation(projects.domain.txhistory.models)
implementation(projects.domain.walletManager)
implementation(projects.domain.transaction)
implementation(projects.domain.wallets.models)
// endregion

View file

@ -13,6 +13,7 @@ import com.tangem.domain.tokens.repository.CurrenciesRepository
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.transaction.MemoValidatorFacade
import com.tangem.domain.walletmanager.WalletManagersFacade
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import dagger.Module
@ -47,10 +48,12 @@ internal object TokensDataModule {
@Singleton
fun provideCurrencyChecksRepository(
walletManagersFacade: WalletManagersFacade,
memoValidatorFacade: MemoValidatorFacade,
coroutineDispatcherProvider: CoroutineDispatcherProvider,
): CurrencyChecksRepository {
return DefaultCurrencyChecksRepository(
walletManagersFacade = walletManagersFacade,
memoValidatorFacade = memoValidatorFacade,
coroutineDispatchers = coroutineDispatcherProvider,
)
}

View file

@ -14,6 +14,7 @@ import com.tangem.domain.tokens.model.CurrencyAmount
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.transaction.MemoValidatorFacade
import com.tangem.domain.walletmanager.WalletManagersFacade
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import com.tangem.utils.extensions.isZero
@ -23,6 +24,7 @@ import java.math.BigDecimal
internal class DefaultCurrencyChecksRepository(
private val walletManagersFacade: WalletManagersFacade,
private val memoValidatorFacade: MemoValidatorFacade,
private val coroutineDispatchers: CoroutineDispatcherProvider,
) : CurrencyChecksRepository {
@ -112,6 +114,10 @@ internal class DefaultCurrencyChecksRepository(
return if (manager is ReserveAmountProvider) manager.isAccountFunded(address) else true
}
override suspend fun checkIfMemoRequired(network: Network, address: String): Boolean {
return memoValidatorFacade.isMemoRequired(network, address)
}
override suspend fun checkUtxoAmountLimit(
userWalletId: UserWalletId,
network: Network,