From fa6b33840198278b59cfdebd9f4ce2e47ffed0b2 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 2 Jun 2023 17:18:37 +0300 Subject: [PATCH 1/5] Updated on 2026-08-14 --- .../com/tangem/tap/features/demo/DemoHelper.kt | 7 ++++--- .../wallet/saltPay/GnosisRegistrator.kt | 2 +- .../redux/middlewares/RequestFeeMiddleware.kt | 2 +- .../features/send/redux/reducers/FeeReducer.kt | 10 +++++----- .../CurrencyExchangeManager.kt | 2 +- .../tangem/tap/proxy/TransactionManagerImpl.kt | 18 +++++++++--------- 6 files changed, 21 insertions(+), 20 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/demo/DemoHelper.kt b/app/src/main/java/com/tangem/tap/features/demo/DemoHelper.kt index 56a60b96a3..205029fe66 100644 --- a/app/src/main/java/com/tangem/tap/features/demo/DemoHelper.kt +++ b/app/src/main/java/com/tangem/tap/features/demo/DemoHelper.kt @@ -6,6 +6,7 @@ import com.tangem.blockchain.common.TransactionSender import com.tangem.blockchain.common.TransactionSigner import com.tangem.blockchain.common.WalletManager import com.tangem.blockchain.common.toBlockchainSdkError +import com.tangem.blockchain.common.transaction.Fee import com.tangem.blockchain.common.transaction.TransactionFee import com.tangem.blockchain.extensions.Result import com.tangem.blockchain.extensions.SimpleResult @@ -89,9 +90,9 @@ class DemoTransactionSender(private val walletManager: WalletManager) : Transact val blockchain = walletManager.wallet.blockchain return Result.Success( TransactionFee.Choosable( - minimum = Amount(minimumFee, blockchain), - normal = Amount(normalFee, blockchain), - priority = Amount(priorityFee, blockchain) + minimum = Fee(Amount(minimumFee, blockchain)), + normal = Fee(Amount(normalFee, blockchain)), + priority = Fee(Amount(priorityFee, blockchain)) ) ) } diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/GnosisRegistrator.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/GnosisRegistrator.kt index fb513d2e11..2205efdac9 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/GnosisRegistrator.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/GnosisRegistrator.kt @@ -215,7 +215,7 @@ class GnosisRegistrator( } is TransactionFee.Choosable -> { val normalFee = (data as TransactionFee.Choosable).normal - Result.Success(normalFee) + Result.Success(normalFee.amount) } } } diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/RequestFeeMiddleware.kt b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/RequestFeeMiddleware.kt index 4e68e14449..1277c0993b 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/RequestFeeMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/RequestFeeMiddleware.kt @@ -56,7 +56,7 @@ class RequestFeeMiddleware { dispatch(FeeAction.FeeCalculation.SetFeeResult(result)) when(result) { is TransactionFee.Single -> { - val fee = result.normal.value ?: BigDecimal.ZERO + val fee = result.normal.amount.value ?: BigDecimal.ZERO if (fee.isZero()) { dispatch(FeeAction.ChangeLayoutVisibility(main = false)) } else { diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/reducers/FeeReducer.kt b/app/src/main/java/com/tangem/tap/features/send/redux/reducers/FeeReducer.kt index 4c41cf308a..317929dbcf 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/reducers/FeeReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/reducers/FeeReducer.kt @@ -102,14 +102,14 @@ class FeeReducer : SendInternalReducer { private fun createValueOfFeeAmount(feeType: FeeType, transactionFee: TransactionFee): Amount { return when (transactionFee) { is TransactionFee.Single -> { - transactionFee.normal + transactionFee.normal.amount } is TransactionFee.Choosable -> { when (feeType) { - FeeType.SINGLE -> transactionFee.normal - FeeType.LOW -> transactionFee.minimum - FeeType.NORMAL -> transactionFee.normal - FeeType.PRIORITY -> transactionFee.priority + FeeType.SINGLE -> transactionFee.normal.amount + FeeType.LOW -> transactionFee.minimum.amount + FeeType.NORMAL -> transactionFee.normal.amount + FeeType.PRIORITY -> transactionFee.priority.amount } } } diff --git a/app/src/main/java/com/tangem/tap/network/exchangeServices/CurrencyExchangeManager.kt b/app/src/main/java/com/tangem/tap/network/exchangeServices/CurrencyExchangeManager.kt index 6be6ffc898..8b66738ac9 100644 --- a/app/src/main/java/com/tangem/tap/network/exchangeServices/CurrencyExchangeManager.kt +++ b/app/src/main/java/com/tangem/tap/network/exchangeServices/CurrencyExchangeManager.kt @@ -100,7 +100,7 @@ suspend fun CurrencyExchangeManager.buyErc20TestnetTokens( amountToSend, destinationAddress, ) as? Result.Success ?: return - val fee = feeResult.data.minimum + val fee = feeResult.data.minimum.amount val coinValue = walletManager.wallet.amounts[AmountType.Coin]?.value ?: BigDecimal.ZERO if (coinValue < fee.value) return diff --git a/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt b/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt index 7c511dbceb..a18da39a15 100644 --- a/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt +++ b/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt @@ -200,10 +200,10 @@ class TransactionManagerImpl( // for not EVM blockchains set gasLimit ZERO for now when (fee.data) { is TransactionFee.Single -> { - val amount = (fee.data as TransactionFee.Single).normal + val fee = (fee.data as TransactionFee.Single).normal val singleFee = ProxyFee( gasLimit = BigInteger.ZERO, - fee = convertToProxyAmount(amount = amount), + fee = convertToProxyAmount(amount = fee.amount), ) ProxyFees( minFee = singleFee, @@ -212,19 +212,19 @@ class TransactionManagerImpl( ) } is TransactionFee.Choosable -> { - val setOfThree = fee.data as TransactionFee.Choosable + val choosableFee = fee.data as TransactionFee.Choosable ProxyFees( minFee = ProxyFee( gasLimit = BigInteger.ZERO, - fee = convertToProxyAmount(amount = setOfThree.minimum), + fee = convertToProxyAmount(amount = choosableFee.minimum.amount), ), normalFee = ProxyFee( gasLimit = BigInteger.ZERO, - fee = convertToProxyAmount(amount = setOfThree.normal), + fee = convertToProxyAmount(amount = choosableFee.normal.amount), ), priorityFee = ProxyFee( gasLimit = BigInteger.ZERO, - fee = convertToProxyAmount(amount = setOfThree.priority), + fee = convertToProxyAmount(amount = choosableFee.priority.amount), ) ) } @@ -282,15 +282,15 @@ class TransactionManagerImpl( val minProxyFee = ProxyFee( gasLimit = walletManager.gasLimit ?: BigInteger.ZERO, - fee = convertToProxyAmount(amount = choosableFee.minimum), + fee = convertToProxyAmount(amount = choosableFee.minimum.amount), ) val normalProxyFee = ProxyFee( gasLimit = walletManager.gasLimit ?: BigInteger.ZERO, - fee = convertToProxyAmount(amount = choosableFee.normal), + fee = convertToProxyAmount(amount = choosableFee.normal.amount), ) val priorityProxyFee = ProxyFee( gasLimit = walletManager.gasLimit ?: BigInteger.ZERO, - fee = convertToProxyAmount(amount = choosableFee.priority), + fee = convertToProxyAmount(amount = choosableFee.priority.amount), ) ProxyFees( From 564e558fccbe670d645cb742cee37408b37ae76f Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 5 Jun 2023 12:23:48 +0300 Subject: [PATCH 2/5] Updated on 2026-08-14 --- .../walletconnect/WalletConnectSdkHelper.kt | 6 +++--- .../wallet/saltPay/GnosisRegistrator.kt | 5 +++-- .../send/redux/middlewares/AmountMiddleware.kt | 2 +- .../send/redux/middlewares/SendMiddleware.kt | 17 +++++++++-------- .../features/send/redux/reducers/FeeReducer.kt | 13 +++++++------ .../tap/features/send/redux/states/FeeState.kt | 5 +++-- .../exchangeServices/CurrencyExchangeManager.kt | 4 ++-- .../tangem/tap/proxy/TransactionManagerImpl.kt | 10 ++++++---- 8 files changed, 34 insertions(+), 28 deletions(-) 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 5ccf53357d..ef6ba6e420 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 @@ -13,6 +13,7 @@ import com.tangem.blockchain.common.TransactionData import com.tangem.blockchain.common.TransactionSender import com.tangem.blockchain.common.Wallet import com.tangem.blockchain.common.WalletManager +import com.tangem.blockchain.common.transaction.Fee import com.tangem.blockchain.extensions.Result import com.tangem.blockchain.extensions.SimpleResult import com.tangem.blockchain.extensions.hexToBigDecimal @@ -85,7 +86,7 @@ class WalletConnectSdkHelper { val transactionData = TransactionData( amount = Amount(value, wallet.blockchain), - fee = Amount(fee, wallet.blockchain), + fee = Fee(Amount(fee, wallet.blockchain)), sourceAddress = transaction.from, destinationAddress = transaction.to!!, extras = EthereumTransactionExtras( @@ -194,8 +195,7 @@ class WalletConnectSdkHelper { val dataToSign = EthereumUtils.buildTransactionToSign( transactionData = data.transaction, nonce = null, - blockchain = data.walletManager.wallet.blockchain, - gasLimit = null, + blockchain = data.walletManager.wallet.blockchain ) ?: return null val command = SignHashCommand( diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/GnosisRegistrator.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/GnosisRegistrator.kt index 2205efdac9..ed29935f3e 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/GnosisRegistrator.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/GnosisRegistrator.kt @@ -9,6 +9,7 @@ import com.tangem.blockchain.common.Blockchain import com.tangem.blockchain.common.BlockchainSdkError import com.tangem.blockchain.common.TransactionSigner import com.tangem.blockchain.common.WalletManager +import com.tangem.blockchain.common.transaction.Fee import com.tangem.blockchain.common.transaction.TransactionFee import com.tangem.blockchain.extensions.Result import com.tangem.blockchain.extensions.SimpleResult @@ -139,7 +140,7 @@ class GnosisRegistrator( val compiledEthereumTransaction = walletManager.transactionBuilder.buildApproveToSign( transactionData = walletManager.createTransaction( amount = approveAmount, - fee = feeAmount, + fee = Fee(feeAmount), destination = otpProcessorContractAddress, ), nonce = atomicNonce.getAndIncrement().toBigInteger(), @@ -190,7 +191,7 @@ class GnosisRegistrator( val transactionData = walletManager.createTransferFromTransaction( amount = amount, - fee = hardcodeFeeAmount, + feeAmount = hardcodeFeeAmount, source = addressTreasureSafe, ) val transactionToSign = walletManager.transactionBuilder.buildTransferFromToSign( diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/AmountMiddleware.kt b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/AmountMiddleware.kt index 15522e87d2..0564218bcd 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/AmountMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/AmountMiddleware.kt @@ -67,7 +67,7 @@ class AmountMiddleware { } val amountToSend = Amount(typedAmount, sendState.getTotalAmountToSend(inputCrypto)) - val transactionErrors = walletManager.validateTransaction(amountToSend, sendState.feeState.currentFee) + val transactionErrors = walletManager.validateTransaction(amountToSend, sendState.feeState.currentFee?.amount) val amountFieldErrors = filterErrorsForAmountField(transactionErrors) if (amountFieldErrors.isEmpty()) { dispatch(AmountAction.SetAmountError(null)) diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt index 2d22340b26..679da154f1 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt @@ -12,6 +12,7 @@ import com.tangem.blockchain.common.BlockchainSdkError import com.tangem.blockchain.common.TransactionError import com.tangem.blockchain.common.TransactionSender import com.tangem.blockchain.common.WalletManager +import com.tangem.blockchain.common.transaction.Fee import com.tangem.blockchain.extensions.SimpleResult import com.tangem.common.core.TangemSdkError import com.tangem.common.extensions.guard @@ -118,11 +119,11 @@ private fun verifyAndSendTransaction( val card = appState.globalState.scanResponse?.card ?: return val destinationAddress = sendState.addressPayIdState.destinationWalletAddress ?: return val typedAmount = sendState.amountState.amountToExtract ?: return - val feeAmount = sendState.feeState.currentFee ?: return + val currentFee = sendState.feeState.currentFee ?: return val amountToSend = Amount(typedAmount, sendState.getTotalAmountToSend()) - val transactionErrors = walletManager.validateTransaction(amountToSend, feeAmount) + val transactionErrors = walletManager.validateTransaction(amountToSend, currentFee.amount) when { transactionErrors.contains(TransactionError.TezosSendAll) -> { val reduceAmount = walletManager.wallet.blockchain.minimalAmount() @@ -134,7 +135,7 @@ private fun verifyAndSendTransaction( }, sendAllCallback = { sendTransaction( - action, walletManager, amountToSend, feeAmount, destinationAddress, + action, walletManager, amountToSend, currentFee, destinationAddress, sendState.transactionExtrasState, card, sendState.externalTransactionData, dispatch, ) @@ -145,7 +146,7 @@ private fun verifyAndSendTransaction( } else -> { sendTransaction( - action, walletManager, amountToSend, feeAmount, destinationAddress, + action, walletManager, amountToSend, currentFee, destinationAddress, sendState.transactionExtrasState, card, sendState.externalTransactionData, dispatch, ) } @@ -157,7 +158,7 @@ private fun sendTransaction( action: SendActionUi.SendAmountToRecipient, walletManager: WalletManager, amountToSend: Amount, - feeAmount: Amount, + fee: Fee, destinationAddress: String, transactionExtras: TransactionExtrasState, card: CardDTO, @@ -165,7 +166,7 @@ private fun sendTransaction( dispatch: (Action) -> Unit, ) { dispatch(SendAction.ChangeSendButtonState(ButtonState.PROGRESS)) - var txData = walletManager.createTransaction(amountToSend, feeAmount, destinationAddress) + var txData = walletManager.createTransaction(amountToSend, fee, destinationAddress) transactionExtras.xlmMemo?.memo?.let { txData = txData.copy(extras = StellarTransactionExtras(it)) } transactionExtras.binanceMemo?.memo?.let { txData = txData.copy(extras = BinanceTransactionExtras(it.toString())) } @@ -185,7 +186,7 @@ private fun sendTransaction( updateFeedbackManagerInfo( walletManager = walletManager, amountToSend = amountToSend, - feeAmount = feeAmount, + feeAmount = fee.amount, destinationAddress = destinationAddress, ) dispatch(SendAction.Dialog.SendTransactionFails.BlockchainSdkError(error = error)) @@ -266,7 +267,7 @@ private fun sendTransaction( updateFeedbackManagerInfo( walletManager = walletManager, amountToSend = amountToSend, - feeAmount = feeAmount, + feeAmount = fee.amount, destinationAddress = destinationAddress, ) val error = sendResult.error as? BlockchainSdkError ?: return@withMainContext diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/reducers/FeeReducer.kt b/app/src/main/java/com/tangem/tap/features/send/redux/reducers/FeeReducer.kt index 317929dbcf..b2a4e5b947 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/reducers/FeeReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/reducers/FeeReducer.kt @@ -1,6 +1,7 @@ package com.tangem.tap.features.send.redux.reducers import com.tangem.blockchain.common.Amount +import com.tangem.blockchain.common.transaction.Fee import com.tangem.blockchain.common.transaction.TransactionFee import com.tangem.tap.features.send.redux.FeeAction import com.tangem.tap.features.send.redux.FeeActionUi @@ -99,17 +100,17 @@ class FeeReducer : SendInternalReducer { return updateLastState(sendState.copy(feeState = result), result) } - private fun createValueOfFeeAmount(feeType: FeeType, transactionFee: TransactionFee): Amount { + private fun createValueOfFeeAmount(feeType: FeeType, transactionFee: TransactionFee): Fee { return when (transactionFee) { is TransactionFee.Single -> { - transactionFee.normal.amount + transactionFee.normal } is TransactionFee.Choosable -> { when (feeType) { - FeeType.SINGLE -> transactionFee.normal.amount - FeeType.LOW -> transactionFee.minimum.amount - FeeType.NORMAL -> transactionFee.normal.amount - FeeType.PRIORITY -> transactionFee.priority.amount + FeeType.SINGLE -> transactionFee.normal + FeeType.LOW -> transactionFee.minimum + FeeType.NORMAL -> transactionFee.normal + FeeType.PRIORITY -> transactionFee.priority } } } diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/states/FeeState.kt b/app/src/main/java/com/tangem/tap/features/send/redux/states/FeeState.kt index d1191cf2a4..4fd9516f9a 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/states/FeeState.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/states/FeeState.kt @@ -1,6 +1,7 @@ package com.tangem.tap.features.send.redux.states import com.tangem.blockchain.common.Amount +import com.tangem.blockchain.common.transaction.Fee import com.tangem.blockchain.common.transaction.TransactionFee import com.tangem.tap.features.wallet.redux.ProgressState import java.math.BigDecimal @@ -15,7 +16,7 @@ enum class FeeType { data class FeeState( val selectedFeeType: FeeType = FeeType.NORMAL, val fees: TransactionFee? = null, - val currentFee: Amount? = null, + val currentFee: Fee? = null, val feeIsIncluded: Boolean = false, val feeIsApproximate: Boolean = false, val mainLayoutIsVisible: Boolean = false, @@ -29,5 +30,5 @@ data class FeeState( fun isReady(): Boolean = currentFee != null - fun getCurrentFeeValue(): BigDecimal = currentFee?.value ?: BigDecimal.ZERO + fun getCurrentFeeValue(): BigDecimal = currentFee?.amount?.value ?: BigDecimal.ZERO } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/network/exchangeServices/CurrencyExchangeManager.kt b/app/src/main/java/com/tangem/tap/network/exchangeServices/CurrencyExchangeManager.kt index 8b66738ac9..b04348a966 100644 --- a/app/src/main/java/com/tangem/tap/network/exchangeServices/CurrencyExchangeManager.kt +++ b/app/src/main/java/com/tangem/tap/network/exchangeServices/CurrencyExchangeManager.kt @@ -100,10 +100,10 @@ suspend fun CurrencyExchangeManager.buyErc20TestnetTokens( amountToSend, destinationAddress, ) as? Result.Success ?: return - val fee = feeResult.data.minimum.amount + val fee = feeResult.data.minimum val coinValue = walletManager.wallet.amounts[AmountType.Coin]?.value ?: BigDecimal.ZERO - if (coinValue < fee.value) return + if (coinValue < fee.amount.value) return val transaction = walletManager.createTransaction(amountToSend, fee, destinationAddress) diff --git a/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt b/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt index a18da39a15..5c18b45cdf 100644 --- a/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt +++ b/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt @@ -6,6 +6,8 @@ import com.tangem.blockchain.blockchains.ethereum.EthereumTransactionExtras import com.tangem.blockchain.blockchains.ethereum.EthereumWalletManager import com.tangem.blockchain.blockchains.optimism.OptimismWalletManager import com.tangem.blockchain.common.* +import com.tangem.blockchain.common.transaction.EthereumFeeExtras +import com.tangem.blockchain.common.transaction.Fee import com.tangem.blockchain.common.transaction.TransactionFee import com.tangem.blockchain.extensions.Result import com.tangem.blockchain.extensions.SimpleResult @@ -99,7 +101,7 @@ class TransactionManagerImpl( ): SendTxResult { val txData = walletManager.createTransaction( amount = amount, - fee = Amount(value = feeAmount, blockchain = blockchain), + fee = Fee(Amount(value = feeAmount, blockchain = blockchain)), destination = destinationAddress, ).copy(hash = dataToSign, extras = createExtras(walletManager, gasLimit, dataToSign)) @@ -281,15 +283,15 @@ class TransactionManagerImpl( val choosableFee = fee.data val minProxyFee = ProxyFee( - gasLimit = walletManager.gasLimit ?: BigInteger.ZERO, + gasLimit = (choosableFee.minimum.extras as EthereumFeeExtras).gasLimit, fee = convertToProxyAmount(amount = choosableFee.minimum.amount), ) val normalProxyFee = ProxyFee( - gasLimit = walletManager.gasLimit ?: BigInteger.ZERO, + gasLimit = (choosableFee.normal.extras as EthereumFeeExtras).gasLimit, fee = convertToProxyAmount(amount = choosableFee.normal.amount), ) val priorityProxyFee = ProxyFee( - gasLimit = walletManager.gasLimit ?: BigInteger.ZERO, + gasLimit = (choosableFee.priority.extras as EthereumFeeExtras).gasLimit, fee = convertToProxyAmount(amount = choosableFee.priority.amount), ) From 3a9073f9f28cc9516f5db4c3a844127513e7eb3a Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 7 Jun 2023 18:40:45 +0300 Subject: [PATCH 3/5] Updated on 2026-08-14 --- .../send/redux/reducers/FeeReducer.kt | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/reducers/FeeReducer.kt b/app/src/main/java/com/tangem/tap/features/send/redux/reducers/FeeReducer.kt index b2a4e5b947..ba706cf281 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/reducers/FeeReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/reducers/FeeReducer.kt @@ -29,21 +29,17 @@ class FeeReducer : SendInternalReducer { state.copy(controlsLayoutIsVisible = !state.controlsLayoutIsVisible) } is FeeActionUi.ChangeSelectedFee -> { - state.fees?.let { - val currentFee = createValueOfFeeAmount(action.feeType, it) - state.copy( - selectedFeeType = action.feeType, - currentFee = currentFee, - ) - } ?: state - // TODO? + val currentFee = state.fees?.let { + createValueOfFeeAmount(action.feeType, it) + } + state.copy( + selectedFeeType = action.feeType, + currentFee = currentFee + ) } is FeeActionUi.ChangeIncludeFee -> state.copy(feeIsIncluded = action.isIncluded) } - return updateLastState(sendState.copy( - feeState = result, - transactionExtrasState = TransactionExtrasState() - ), result) + return updateLastState(sendState.copy(feeState = result), result) } private fun handleAction(action: FeeAction, sendState: SendState, state: FeeState): SendState { From 72256ab5c58a82552f87d2ccbfc8eb0326a042ac Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 13 Jun 2023 09:27:20 +0300 Subject: [PATCH 4/5] Updated on 2026-08-14 --- .../tap/domain/walletconnect/WalletConnectSdkHelper.kt | 2 +- .../main/java/com/tangem/tap/features/demo/DemoHelper.kt | 6 +++--- .../products/wallet/saltPay/GnosisRegistrator.kt | 2 +- .../java/com/tangem/tap/proxy/TransactionManagerImpl.kt | 9 ++++----- 4 files changed, 9 insertions(+), 10 deletions(-) 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 ef6ba6e420..a26050a16d 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 @@ -86,7 +86,7 @@ class WalletConnectSdkHelper { val transactionData = TransactionData( amount = Amount(value, wallet.blockchain), - fee = Fee(Amount(fee, wallet.blockchain)), + fee = Fee.CommonFee(Amount(fee, wallet.blockchain)), sourceAddress = transaction.from, destinationAddress = transaction.to!!, extras = EthereumTransactionExtras( diff --git a/app/src/main/java/com/tangem/tap/features/demo/DemoHelper.kt b/app/src/main/java/com/tangem/tap/features/demo/DemoHelper.kt index 205029fe66..2dacf8a93d 100644 --- a/app/src/main/java/com/tangem/tap/features/demo/DemoHelper.kt +++ b/app/src/main/java/com/tangem/tap/features/demo/DemoHelper.kt @@ -90,9 +90,9 @@ class DemoTransactionSender(private val walletManager: WalletManager) : Transact val blockchain = walletManager.wallet.blockchain return Result.Success( TransactionFee.Choosable( - minimum = Fee(Amount(minimumFee, blockchain)), - normal = Fee(Amount(normalFee, blockchain)), - priority = Fee(Amount(priorityFee, blockchain)) + minimum = Fee.CommonFee(Amount(minimumFee, blockchain)), + normal = Fee.CommonFee(Amount(normalFee, blockchain)), + priority = Fee.CommonFee(Amount(priorityFee, blockchain)) ) ) } diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/GnosisRegistrator.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/GnosisRegistrator.kt index ed29935f3e..126dd5d655 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/GnosisRegistrator.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/GnosisRegistrator.kt @@ -140,7 +140,7 @@ class GnosisRegistrator( val compiledEthereumTransaction = walletManager.transactionBuilder.buildApproveToSign( transactionData = walletManager.createTransaction( amount = approveAmount, - fee = Fee(feeAmount), + fee = Fee.CommonFee(feeAmount), destination = otpProcessorContractAddress, ), nonce = atomicNonce.getAndIncrement().toBigInteger(), diff --git a/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt b/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt index 5c18b45cdf..12450303f6 100644 --- a/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt +++ b/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt @@ -6,7 +6,6 @@ import com.tangem.blockchain.blockchains.ethereum.EthereumTransactionExtras import com.tangem.blockchain.blockchains.ethereum.EthereumWalletManager import com.tangem.blockchain.blockchains.optimism.OptimismWalletManager import com.tangem.blockchain.common.* -import com.tangem.blockchain.common.transaction.EthereumFeeExtras import com.tangem.blockchain.common.transaction.Fee import com.tangem.blockchain.common.transaction.TransactionFee import com.tangem.blockchain.extensions.Result @@ -101,7 +100,7 @@ class TransactionManagerImpl( ): SendTxResult { val txData = walletManager.createTransaction( amount = amount, - fee = Fee(Amount(value = feeAmount, blockchain = blockchain)), + fee = Fee.CommonFee(Amount(value = feeAmount, blockchain = blockchain)), destination = destinationAddress, ).copy(hash = dataToSign, extras = createExtras(walletManager, gasLimit, dataToSign)) @@ -283,15 +282,15 @@ class TransactionManagerImpl( val choosableFee = fee.data val minProxyFee = ProxyFee( - gasLimit = (choosableFee.minimum.extras as EthereumFeeExtras).gasLimit, + gasLimit = (choosableFee.minimum as Fee.EthereumFee).gasLimit, fee = convertToProxyAmount(amount = choosableFee.minimum.amount), ) val normalProxyFee = ProxyFee( - gasLimit = (choosableFee.normal.extras as EthereumFeeExtras).gasLimit, + gasLimit = (choosableFee.normal as Fee.EthereumFee).gasLimit, fee = convertToProxyAmount(amount = choosableFee.normal.amount), ) val priorityProxyFee = ProxyFee( - gasLimit = (choosableFee.priority.extras as EthereumFeeExtras).gasLimit, + gasLimit = (choosableFee.priority as Fee.EthereumFee).gasLimit, fee = convertToProxyAmount(amount = choosableFee.priority.amount), ) From 24b9265c738f799942c5fba4f852b1dec28a5093 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 14 Jun 2023 23:27:16 +0300 Subject: [PATCH 5/5] Updated on 2026-08-14 --- .../tap/domain/walletconnect/WalletConnectSdkHelper.kt | 2 +- .../main/java/com/tangem/tap/features/demo/DemoHelper.kt | 6 +++--- .../products/wallet/saltPay/GnosisRegistrator.kt | 2 +- .../java/com/tangem/tap/proxy/TransactionManagerImpl.kt | 8 ++++---- 4 files changed, 9 insertions(+), 9 deletions(-) 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 a26050a16d..af3a5c19f9 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 @@ -86,7 +86,7 @@ class WalletConnectSdkHelper { val transactionData = TransactionData( amount = Amount(value, wallet.blockchain), - fee = Fee.CommonFee(Amount(fee, wallet.blockchain)), + fee = Fee.Common(Amount(fee, wallet.blockchain)), sourceAddress = transaction.from, destinationAddress = transaction.to!!, extras = EthereumTransactionExtras( diff --git a/app/src/main/java/com/tangem/tap/features/demo/DemoHelper.kt b/app/src/main/java/com/tangem/tap/features/demo/DemoHelper.kt index 2dacf8a93d..83ea251268 100644 --- a/app/src/main/java/com/tangem/tap/features/demo/DemoHelper.kt +++ b/app/src/main/java/com/tangem/tap/features/demo/DemoHelper.kt @@ -90,9 +90,9 @@ class DemoTransactionSender(private val walletManager: WalletManager) : Transact val blockchain = walletManager.wallet.blockchain return Result.Success( TransactionFee.Choosable( - minimum = Fee.CommonFee(Amount(minimumFee, blockchain)), - normal = Fee.CommonFee(Amount(normalFee, blockchain)), - priority = Fee.CommonFee(Amount(priorityFee, blockchain)) + minimum = Fee.Common(Amount(minimumFee, blockchain)), + normal = Fee.Common(Amount(normalFee, blockchain)), + priority = Fee.Common(Amount(priorityFee, blockchain)) ) ) } diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/GnosisRegistrator.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/GnosisRegistrator.kt index 126dd5d655..fa982df1c9 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/GnosisRegistrator.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/saltPay/GnosisRegistrator.kt @@ -140,7 +140,7 @@ class GnosisRegistrator( val compiledEthereumTransaction = walletManager.transactionBuilder.buildApproveToSign( transactionData = walletManager.createTransaction( amount = approveAmount, - fee = Fee.CommonFee(feeAmount), + fee = Fee.Common(feeAmount), destination = otpProcessorContractAddress, ), nonce = atomicNonce.getAndIncrement().toBigInteger(), diff --git a/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt b/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt index 12450303f6..24b221cc39 100644 --- a/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt +++ b/app/src/main/java/com/tangem/tap/proxy/TransactionManagerImpl.kt @@ -100,7 +100,7 @@ class TransactionManagerImpl( ): SendTxResult { val txData = walletManager.createTransaction( amount = amount, - fee = Fee.CommonFee(Amount(value = feeAmount, blockchain = blockchain)), + fee = Fee.Common(Amount(value = feeAmount, blockchain = blockchain)), destination = destinationAddress, ).copy(hash = dataToSign, extras = createExtras(walletManager, gasLimit, dataToSign)) @@ -282,15 +282,15 @@ class TransactionManagerImpl( val choosableFee = fee.data val minProxyFee = ProxyFee( - gasLimit = (choosableFee.minimum as Fee.EthereumFee).gasLimit, + gasLimit = (choosableFee.minimum as Fee.Ethereum).gasLimit, fee = convertToProxyAmount(amount = choosableFee.minimum.amount), ) val normalProxyFee = ProxyFee( - gasLimit = (choosableFee.normal as Fee.EthereumFee).gasLimit, + gasLimit = (choosableFee.normal as Fee.Ethereum).gasLimit, fee = convertToProxyAmount(amount = choosableFee.normal.amount), ) val priorityProxyFee = ProxyFee( - gasLimit = (choosableFee.priority as Fee.EthereumFee).gasLimit, + gasLimit = (choosableFee.priority as Fee.Ethereum).gasLimit, fee = convertToProxyAmount(amount = choosableFee.priority.amount), )