Updated on 2026-08-14

This commit is contained in:
Tangem 2023-12-21 20:06:20 +02:00
parent bd62089c12
commit 1b5518e8b2
5 changed files with 19 additions and 6 deletions

View file

@ -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))
}
}

View file

@ -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(),
)
}
}

View file

@ -21,7 +21,7 @@ class DemoTransactionSender(private val walletManager: WalletManager) : Transact
)
}
override suspend fun estimateFee(amount: Amount): Result<TransactionFee> {
override suspend fun estimateFee(amount: Amount, destination: String): Result<TransactionFee> {
return getFee(amount, walletManager.wallet.address)
}

View file

@ -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(

View file

@ -8,7 +8,7 @@ import com.tangem.crypto.bip39.Wordlist
/**
[REDACTED_AUTHOR]
*/
internal class DefaultMnemonicRepository(
class DefaultMnemonicRepository(
private val bip39Wordlist: Wordlist,
) : MnemonicRepository {