diff --git a/app/src/main/java/com/tangem/tap/domain/model/PendingTransaction.kt b/app/src/main/java/com/tangem/tap/domain/model/PendingTransaction.kt index c4a810e12e..8548b11eba 100644 --- a/app/src/main/java/com/tangem/tap/domain/model/PendingTransaction.kt +++ b/app/src/main/java/com/tangem/tap/domain/model/PendingTransaction.kt @@ -5,7 +5,7 @@ import com.tangem.blockchain.common.TransactionStatus import com.tangem.blockchain.common.Wallet data class PendingTransaction( - val transactionData: TransactionData, + val transactionData: TransactionData.Uncompiled, val type: PendingTransactionType, ) { val address: String? = when (type) { @@ -21,7 +21,7 @@ data class PendingTransaction( enum class PendingTransactionType { Incoming, Outgoing, Unknown } -fun TransactionData.toPendingTransaction(walletAddress: String): PendingTransaction? { +fun TransactionData.Uncompiled.toPendingTransaction(walletAddress: String): PendingTransaction? { if (this.status == TransactionStatus.Confirmed) return null val type: PendingTransactionType = when { @@ -32,7 +32,7 @@ fun TransactionData.toPendingTransaction(walletAddress: String): PendingTransact return PendingTransaction(this, type) } -fun List.toPendingTransactions(walletAddress: String): List { +fun List.toPendingTransactions(walletAddress: String): List { return this.mapNotNull { it.toPendingTransaction(walletAddress) } } diff --git a/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectSdkHelper.kt b/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectSdkHelper.kt index abb7d6ce7e..01fe1e3deb 100644 --- a/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectSdkHelper.kt +++ b/app/src/main/java/com/tangem/tap/domain/walletconnect/WalletConnectSdkHelper.kt @@ -91,9 +91,8 @@ class WalletConnectSdkHelper { val destinationAddress = requireNotNull(transaction.to) { "Destination address is null" } - val transactionData = TransactionData( + val transactionData = TransactionData.Uncompiled( amount = Amount(value, wallet.blockchain), - // TODO refactoring fee = Fee.Common(Amount(fee, wallet.blockchain)), sourceAddress = transaction.from, destinationAddress = destinationAddress, diff --git a/data/transaction/src/main/java/com/tangem/data/transaction/DefaultTransactionRepository.kt b/data/transaction/src/main/java/com/tangem/data/transaction/DefaultTransactionRepository.kt index d36cb4f74b..a69275891f 100644 --- a/data/transaction/src/main/java/com/tangem/data/transaction/DefaultTransactionRepository.kt +++ b/data/transaction/src/main/java/com/tangem/data/transaction/DefaultTransactionRepository.kt @@ -37,7 +37,7 @@ internal class DefaultTransactionRepository( isSwap: Boolean, txExtras: TransactionExtras?, hash: String?, - ): TransactionData? = withContext(coroutineDispatcherProvider.io) { + ): TransactionData.Uncompiled? = withContext(coroutineDispatcherProvider.io) { val blockchain = Blockchain.fromId(network.id.value) val walletManager = walletManagersFacade.getOrCreateWalletManager( userWalletId = userWalletId, @@ -45,7 +45,7 @@ internal class DefaultTransactionRepository( derivationPath = network.derivationPath.value, ) - return@withContext walletManager?.createTransactionInternal( + return@withContext walletManager?.createTransactionDataInternal( amount = amount, fee = fee, memo = memo, @@ -78,7 +78,7 @@ internal class DefaultTransactionRepository( val validator = walletManager as? TransactionValidator if (validator != null) { - val transaction = walletManager.createTransactionInternal( + val transactionData = walletManager.createTransactionDataInternal( amount = amount, fee = fee ?: Fee.Common(amount = amount), memo = memo, @@ -89,7 +89,7 @@ internal class DefaultTransactionRepository( hash = hash, ) - validator.validate(transaction = transaction) + validator.validate(transactionData = transactionData) } else { Timber.e("${walletManager?.wallet?.blockchain} does not support transaction validation") Result.success(Unit) @@ -112,7 +112,7 @@ internal class DefaultTransactionRepository( } @Suppress("LongParameterList") - private fun WalletManager.createTransactionInternal( + private fun WalletManager.createTransactionDataInternal( amount: Amount, fee: Fee, memo: String?, @@ -121,7 +121,7 @@ internal class DefaultTransactionRepository( isSwap: Boolean, txExtras: TransactionExtras?, hash: String?, - ): TransactionData { + ): TransactionData.Uncompiled { // TODO: refactor workaround to use general mechanism in bsdk for build tx for DEX val txAmount = if (isSwap) { createAmountForSwap(amount) diff --git a/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/TransactionDataToTxHistoryItemConverter.kt b/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/TransactionDataToTxHistoryItemConverter.kt index cd756efd3c..22ae5adecc 100644 --- a/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/TransactionDataToTxHistoryItemConverter.kt +++ b/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/TransactionDataToTxHistoryItemConverter.kt @@ -17,9 +17,9 @@ import java.math.BigDecimal internal class TransactionDataToTxHistoryItemConverter( private val walletAddresses: Set
, private val feePaidCurrency: FeePaidCurrency, -) : Converter { +) : Converter { - override fun convert(value: TransactionData): TxHistoryItem? { + override fun convert(value: TransactionData.Uncompiled): TxHistoryItem? { val hash = value.hash ?: return null val millis = value.date?.timeInMillis ?: return null val amount = getTransactionAmountValue(value.amount, value.fee?.amount) ?: return null diff --git a/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/UpdateWalletManagerResultFactory.kt b/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/UpdateWalletManagerResultFactory.kt index 84b194166b..df5aa57530 100644 --- a/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/UpdateWalletManagerResultFactory.kt +++ b/domain/legacy/src/main/java/com/tangem/domain/walletmanager/utils/UpdateWalletManagerResultFactory.kt @@ -90,7 +90,7 @@ internal class UpdateWalletManagerResultFactory { private fun getCurrentTransactions( txHistoryItemConverter: TransactionDataToTxHistoryItemConverter, - recentTransactions: Set, + recentTransactions: Set, ): Set { val unconfirmedTransactions = recentTransactions.filter { it.status == TransactionStatus.Unconfirmed @@ -122,7 +122,7 @@ internal class UpdateWalletManagerResultFactory { private fun createCurrencyTransaction( txHistoryItemConverter: TransactionDataToTxHistoryItemConverter, - data: TransactionData, + data: TransactionData.Uncompiled, ): CryptoCurrencyTransaction? { return when (val type = data.amount.type) { is AmountType.Coin -> { diff --git a/domain/transaction/src/main/java/com/tangem/domain/transaction/TransactionRepository.kt b/domain/transaction/src/main/java/com/tangem/domain/transaction/TransactionRepository.kt index 52b707e8d1..02240d9dc1 100644 --- a/domain/transaction/src/main/java/com/tangem/domain/transaction/TransactionRepository.kt +++ b/domain/transaction/src/main/java/com/tangem/domain/transaction/TransactionRepository.kt @@ -19,7 +19,7 @@ interface TransactionRepository { isSwap: Boolean, txExtras: TransactionExtras?, hash: String?, - ): TransactionData? + ): TransactionData.Uncompiled? @Suppress("LongParameterList") suspend fun validateTransaction( diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/SendStateFactory.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/SendStateFactory.kt index 3a344425d3..3f105fe259 100644 --- a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/SendStateFactory.kt +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/state/SendStateFactory.kt @@ -150,7 +150,7 @@ internal class SendStateFactory( ) } - fun getTransactionSendState(txData: TransactionData, txUrl: String): SendUiState { + fun getTransactionSendState(txData: TransactionData.Uncompiled, txUrl: String): SendUiState { val state = currentStateProvider() val sendState = state.sendState ?: return state return state.copy( diff --git a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/viewmodel/SendViewModel.kt b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/viewmodel/SendViewModel.kt index 6fd5854725..7f0cb473cc 100644 --- a/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/viewmodel/SendViewModel.kt +++ b/features/send/impl/src/main/java/com/tangem/features/send/impl/presentation/viewmodel/SendViewModel.kt @@ -870,7 +870,7 @@ internal class SendViewModel @Inject constructor( } } - private suspend fun sendTransaction(txData: TransactionData) { + private suspend fun sendTransaction(txData: TransactionData.Uncompiled) { sendTransactionUseCase( txData = txData, userWallet = userWallet, @@ -911,7 +911,7 @@ internal class SendViewModel @Inject constructor( } } - private suspend fun updateTransactionStatus(txData: TransactionData) { + private suspend fun updateTransactionStatus(txData: TransactionData.Uncompiled) { val txUrl = getExplorerTransactionUrlUseCase( userWalletId = userWalletId, network = cryptoCurrency.network, diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index 4bbe1a84f0..9836ee2b61 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -88,7 +88,7 @@ markdown = "0.7.2" # endregion Other libraries # region Tangem -tangemBlockchainSdk = "develop-684" +tangemBlockchainSdk = "develop-688" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds tangemCardSdk = "develop-366" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^