From 8b68e88ab4f0eee6f421251fe0ca2865860610fc Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 21 Apr 2023 13:55:21 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../send/redux/middlewares/SendMiddleware.kt | 45 ++++++++++++++----- 1 file changed, 35 insertions(+), 10 deletions(-) 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 0a528bd856..551d1b67b9 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 @@ -176,18 +176,29 @@ private fun sendTransaction( scope.launch { val updateWalletResult = walletManager.safeUpdate() if (updateWalletResult is Result.Failure) { - when (val error = updateWalletResult.error) { - is TapError -> store.dispatchErrorNotification(error) - else -> { - val tapError = if (error.message == null) { - TapError.UnknownError - } else { - TapError.CustomError(error.message!!) + withMainContext { + when (val error = updateWalletResult.error) { + is TapError -> store.dispatchErrorNotification(error) + is BlockchainSdkError -> { + updateFeedbackManagerInfo( + walletManager = walletManager, + amountToSend = amountToSend, + feeAmount = feeAmount, + destinationAddress = destinationAddress, + ) + dispatch(SendAction.Dialog.SendTransactionFails.BlockchainSdkError(error = error)) + } + else -> { + val tapError = if (error.message == null) { + TapError.UnknownError + } else { + TapError.CustomError(error.message!!) + } + store.dispatchErrorNotification(tapError) } - store.dispatchErrorNotification(tapError) } + dispatch(SendAction.ChangeSendButtonState(ButtonState.ENABLED)) } - withMainContext { dispatch(SendAction.ChangeSendButtonState(ButtonState.ENABLED)) } return@launch } @@ -250,7 +261,7 @@ private fun sendTransaction( } } is SimpleResult.Failure -> { - store.state.globalState.feedbackManager?.infoHolder?.updateOnSendError( + updateFeedbackManagerInfo( walletManager = walletManager, amountToSend = amountToSend, feeAmount = feeAmount, @@ -306,6 +317,20 @@ private fun sendTransaction( } } +private fun updateFeedbackManagerInfo( + walletManager: WalletManager, + amountToSend: Amount, + feeAmount: Amount, + destinationAddress: String, +) { + store.state.globalState.feedbackManager?.infoHolder?.updateOnSendError( + walletManager = walletManager, + amountToSend = amountToSend, + feeAmount = feeAmount, + destinationAddress = destinationAddress, + ) +} + fun createValidateTransactionError( errorList: EnumSet, walletManager: WalletManager,