From 1b5518e8b236452eeae5068404e9eecb2cb3ddb5 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 21 Dec 2023 20:06:20 +0200 Subject: [PATCH] Updated on 2026-08-14 --- .../java/com/tangem/tap/di/domain/MnemonicModule.kt | 6 +++--- .../tap/di/domain/WalletManagersFacadeModule.kt | 3 +++ .../tap/features/demo/DemoTransactionSender.kt | 2 +- .../walletmanager/DefaultWalletManagersFacade.kt | 12 +++++++++++- .../onboarding/data/DefaultMnemonicRepository.kt | 2 +- 5 files changed, 19 insertions(+), 6 deletions(-) rename features/onboarding/src/main/java/com/tangem/feature/onboarding/data/di/OnboardingDataModule.kt => app/src/main/java/com/tangem/tap/di/domain/MnemonicModule.kt (77%) diff --git a/features/onboarding/src/main/java/com/tangem/feature/onboarding/data/di/OnboardingDataModule.kt b/app/src/main/java/com/tangem/tap/di/domain/MnemonicModule.kt similarity index 77% rename from features/onboarding/src/main/java/com/tangem/feature/onboarding/data/di/OnboardingDataModule.kt rename to app/src/main/java/com/tangem/tap/di/domain/MnemonicModule.kt index a853bf6c77..8f62a7e255 100644 --- a/features/onboarding/src/main/java/com/tangem/feature/onboarding/data/di/OnboardingDataModule.kt +++ b/app/src/main/java/com/tangem/tap/di/domain/MnemonicModule.kt @@ -1,4 +1,4 @@ -package com.tangem.feature.onboarding.data.di +package com.tangem.tap.di.domain import android.content.Context import com.tangem.crypto.bip39.Wordlist @@ -14,11 +14,11 @@ import javax.inject.Singleton @Module @InstallIn(SingletonComponent::class) -class OnboardingDataModule { +class MnemonicModule { @Provides @Singleton - fun provideSeedPhraseSdkRepository(@ApplicationContext context: Context): MnemonicRepository { + fun provideMnemonicRepository(@ApplicationContext context: Context): MnemonicRepository { return DefaultMnemonicRepository(Wordlist.getWordlist(context)) } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/di/domain/WalletManagersFacadeModule.kt b/app/src/main/java/com/tangem/tap/di/domain/WalletManagersFacadeModule.kt index 63afaaeaf2..02a52ce342 100644 --- a/app/src/main/java/com/tangem/tap/di/domain/WalletManagersFacadeModule.kt +++ b/app/src/main/java/com/tangem/tap/di/domain/WalletManagersFacadeModule.kt @@ -8,6 +8,7 @@ import com.tangem.datasource.local.userwallet.UserWalletsStore import com.tangem.datasource.local.walletmanager.WalletManagersStore import com.tangem.domain.walletmanager.DefaultWalletManagersFacade import com.tangem.domain.walletmanager.WalletManagersFacade +import com.tangem.feature.onboarding.data.MnemonicRepository import dagger.Module import dagger.Provides import dagger.hilt.InstallIn @@ -24,6 +25,7 @@ internal object WalletManagersFacadeModule { walletManagersStore: WalletManagersStore, userWalletsStore: UserWalletsStore, configManager: ConfigManager, + mnemonicRepository: MnemonicRepository, assetReader: AssetReader, @SdkMoshi moshi: Moshi, ): WalletManagersFacade { @@ -33,6 +35,7 @@ internal object WalletManagersFacadeModule { configManager = configManager, assetReader = assetReader, moshi = moshi, + mnemonic = mnemonicRepository.generateDefaultMnemonic(), ) } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/demo/DemoTransactionSender.kt b/app/src/main/java/com/tangem/tap/features/demo/DemoTransactionSender.kt index 17714e011b..faecf5aac1 100644 --- a/app/src/main/java/com/tangem/tap/features/demo/DemoTransactionSender.kt +++ b/app/src/main/java/com/tangem/tap/features/demo/DemoTransactionSender.kt @@ -21,7 +21,7 @@ class DemoTransactionSender(private val walletManager: WalletManager) : Transact ) } - override suspend fun estimateFee(amount: Amount): Result { + override suspend fun estimateFee(amount: Amount, destination: String): Result { return getFee(amount, walletManager.wallet.address) } diff --git a/domain/legacy/src/main/java/com/tangem/domain/walletmanager/DefaultWalletManagersFacade.kt b/domain/legacy/src/main/java/com/tangem/domain/walletmanager/DefaultWalletManagersFacade.kt index cdffab603a..03cdd7a611 100644 --- a/domain/legacy/src/main/java/com/tangem/domain/walletmanager/DefaultWalletManagersFacade.kt +++ b/domain/legacy/src/main/java/com/tangem/domain/walletmanager/DefaultWalletManagersFacade.kt @@ -10,11 +10,13 @@ import com.tangem.blockchain.blockchains.solana.RentProvider import com.tangem.blockchain.common.* import com.tangem.blockchain.common.address.Address import com.tangem.blockchain.common.address.AddressType +import com.tangem.blockchain.common.address.EstimationFeeAddressFactory import com.tangem.blockchain.common.transaction.Fee import com.tangem.blockchain.common.transaction.TransactionFee import com.tangem.blockchain.common.txhistory.TransactionHistoryRequest import com.tangem.blockchain.extensions.Result import com.tangem.blockchain.extensions.SimpleResult +import com.tangem.crypto.bip39.Mnemonic import com.tangem.crypto.hdWallet.DerivationPath import com.tangem.datasource.asset.AssetReader import com.tangem.datasource.config.ConfigManager @@ -45,6 +47,7 @@ class DefaultWalletManagersFacade( private val walletManagersStore: WalletManagersStore, private val userWalletsStore: UserWalletsStore, configManager: ConfigManager, + mnemonic: Mnemonic, assetReader: AssetReader, moshi: Moshi, ) : WalletManagersFacade { @@ -55,6 +58,7 @@ class DefaultWalletManagersFacade( private val sdkTokenConverter by lazy { SdkTokenConverter() } private val txHistoryStateConverter by lazy { SdkTransactionHistoryStateConverter() } private val txHistoryItemConverter by lazy { SdkTransactionHistoryItemConverter(assetReader, moshi) } + private val estimationFeeAddressFactory by lazy { EstimationFeeAddressFactory(mnemonic) } override suspend fun update( userWalletId: UserWalletId, @@ -444,7 +448,13 @@ class DefaultWalletManagersFacade( blockchain = blockchain, derivationPath = network.derivationPath.value, ) - return (walletManager as? TransactionSender)?.estimateFee(amount = amount) + + val destination = estimationFeeAddressFactory.makeAddress(blockchain) + + return (walletManager as? TransactionSender)?.estimateFee( + amount = amount, + destination = destination, + ) } override suspend fun validateTransaction( diff --git a/features/onboarding/src/main/java/com/tangem/feature/onboarding/data/DefaultMnemonicRepository.kt b/features/onboarding/src/main/java/com/tangem/feature/onboarding/data/DefaultMnemonicRepository.kt index 9cb238b99e..71ac3393b7 100644 --- a/features/onboarding/src/main/java/com/tangem/feature/onboarding/data/DefaultMnemonicRepository.kt +++ b/features/onboarding/src/main/java/com/tangem/feature/onboarding/data/DefaultMnemonicRepository.kt @@ -8,7 +8,7 @@ import com.tangem.crypto.bip39.Wordlist /** [REDACTED_AUTHOR] */ -internal class DefaultMnemonicRepository( +class DefaultMnemonicRepository( private val bip39Wordlist: Wordlist, ) : MnemonicRepository {