From 2b1cdd61c3709c6e04acdc8736997ebe09a4b940 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 6 Jan 2026 15:07:38 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../tap/di/domain/TransactionDomainModule.kt | 58 +++++++++++++++++++ .../transaction/di/TransactionDataModule.kt | 18 ++++++ 2 files changed, 76 insertions(+) diff --git a/app/src/main/java/com/tangem/tap/di/domain/TransactionDomainModule.kt b/app/src/main/java/com/tangem/tap/di/domain/TransactionDomainModule.kt index 8965f60090..b7cdcf3670 100644 --- a/app/src/main/java/com/tangem/tap/di/domain/TransactionDomainModule.kt +++ b/app/src/main/java/com/tangem/tap/di/domain/TransactionDomainModule.kt @@ -5,12 +5,18 @@ import com.tangem.domain.card.repository.CardSdkConfigRepository import com.tangem.domain.demo.models.DemoConfig import com.tangem.domain.networks.single.SingleNetworkStatusFetcher import com.tangem.domain.networks.single.SingleNetworkStatusSupplier +import com.tangem.domain.tokens.GetMultiCryptoCurrencyStatusUseCase import com.tangem.domain.tokens.GetViewedTokenReceiveWarningUseCase import com.tangem.domain.tokens.MultiWalletCryptoCurrenciesSupplier +import com.tangem.domain.tokens.repository.CurrenciesRepository import com.tangem.domain.transaction.FeeRepository +import com.tangem.domain.transaction.GaslessTransactionRepository import com.tangem.domain.transaction.TransactionRepository import com.tangem.domain.transaction.WalletAddressServiceRepository import com.tangem.domain.transaction.usecase.* +import com.tangem.domain.transaction.usecase.gasless.GetAvailableFeeTokensUseCase +import com.tangem.domain.transaction.usecase.gasless.GetFeeForGaslessUseCase +import com.tangem.domain.transaction.usecase.gasless.GetFeeForTokenUseCase import com.tangem.domain.walletmanager.WalletManagersFacade import com.tangem.utils.coroutines.CoroutineDispatcherProvider import dagger.Module @@ -265,4 +271,56 @@ internal object TransactionDomainModule { ): SendLargeSolanaTransactionUseCase { return SendLargeSolanaTransactionUseCase(cardSdkConfigRepository, walletManagersFacade) } + + @Provides + @Singleton + fun provideGetAvailableFeeTokensUseCase( + gaslessTransactionRepository: GaslessTransactionRepository, + currenciesRepository: CurrenciesRepository, + getMultiCryptoCurrencyStatusUseCase: GetMultiCryptoCurrencyStatusUseCase, + ): GetAvailableFeeTokensUseCase { + return GetAvailableFeeTokensUseCase( + gaslessTransactionRepository = gaslessTransactionRepository, + currenciesRepository = currenciesRepository, + getMultiCryptoCurrencyStatusUseCase = getMultiCryptoCurrencyStatusUseCase, + ) + } + + @Provides + @Singleton + fun provideGetFeeForGaslessUseCase( + walletManagersFacade: WalletManagersFacade, + demoConfig: DemoConfig, + gaslessTransactionRepository: GaslessTransactionRepository, + currenciesRepository: CurrenciesRepository, + getFeeUseCase: GetFeeUseCase, + getMultiCryptoCurrencyStatusUseCase: GetMultiCryptoCurrencyStatusUseCase, + ): GetFeeForGaslessUseCase { + return GetFeeForGaslessUseCase( + walletManagersFacade = walletManagersFacade, + demoConfig = demoConfig, + gaslessTransactionRepository = gaslessTransactionRepository, + currenciesRepository = currenciesRepository, + getMultiCryptoCurrencyStatusUseCase = getMultiCryptoCurrencyStatusUseCase, + getFeeUseCase = getFeeUseCase, + ) + } + + @Provides + @Singleton + fun provideGetFeeForTokenUseCase( + walletManagersFacade: WalletManagersFacade, + demoConfig: DemoConfig, + gaslessTransactionRepository: GaslessTransactionRepository, + currenciesRepository: CurrenciesRepository, + getMultiCryptoCurrencyStatusUseCase: GetMultiCryptoCurrencyStatusUseCase, + ): GetFeeForTokenUseCase { + return GetFeeForTokenUseCase( + gaslessTransactionRepository = gaslessTransactionRepository, + walletManagersFacade = walletManagersFacade, + demoConfig = demoConfig, + currenciesRepository = currenciesRepository, + getMultiCryptoCurrencyStatusUseCase = getMultiCryptoCurrencyStatusUseCase, + ) + } } \ No newline at end of file diff --git a/data/transaction/src/main/java/com/tangem/data/transaction/di/TransactionDataModule.kt b/data/transaction/src/main/java/com/tangem/data/transaction/di/TransactionDataModule.kt index b2f5a28882..d7be2b093c 100644 --- a/data/transaction/src/main/java/com/tangem/data/transaction/di/TransactionDataModule.kt +++ b/data/transaction/src/main/java/com/tangem/data/transaction/di/TransactionDataModule.kt @@ -1,13 +1,17 @@ package com.tangem.data.transaction.di +import com.tangem.data.common.currency.ResponseCryptoCurrenciesFactory import com.tangem.data.transaction.DefaultFeeRepository +import com.tangem.data.transaction.DefaultGaslessTransactionRepository import com.tangem.data.transaction.DefaultTransactionRepository import com.tangem.data.transaction.DefaultWalletAddressServiceRepository import com.tangem.data.transaction.error.DefaultFeeErrorResolver +import com.tangem.datasource.api.gasless.GaslessTxServiceApi import com.tangem.datasource.api.tangemTech.TangemTechApi import com.tangem.datasource.local.walletmanager.WalletManagersStore import com.tangem.domain.demo.models.DemoConfig import com.tangem.domain.transaction.FeeRepository +import com.tangem.domain.transaction.GaslessTransactionRepository import com.tangem.domain.transaction.TransactionRepository import com.tangem.domain.transaction.WalletAddressServiceRepository import com.tangem.domain.transaction.error.FeeErrorResolver @@ -65,4 +69,18 @@ internal object TransactionDataModule { fun providerFeeErrorResolver(): FeeErrorResolver { return DefaultFeeErrorResolver() } + + @Provides + @Singleton + fun provideGaslessTransactionRepository( + gaslessTxServiceApi: GaslessTxServiceApi, + coroutineDispatcherProvider: CoroutineDispatcherProvider, + responseCryptoCurrenciesFactory: ResponseCryptoCurrenciesFactory, + ): GaslessTransactionRepository { + return DefaultGaslessTransactionRepository( + gaslessTxServiceApi, + coroutineDispatcherProvider, + responseCryptoCurrenciesFactory, + ) + } } \ No newline at end of file