diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/SendScreenAction.kt b/app/src/main/java/com/tangem/tap/features/send/redux/SendScreenAction.kt
index cd9ad2160d..4c9eaf36a5 100644
--- a/app/src/main/java/com/tangem/tap/features/send/redux/SendScreenAction.kt
+++ b/app/src/main/java/com/tangem/tap/features/send/redux/SendScreenAction.kt
@@ -155,6 +155,13 @@ sealed class SendAction : SendScreenAction {
val onOk: () -> Unit,
) : Dialog()
+ data class ChiaWarningDialog(
+ val blockchainName: String,
+ val maxOutputs: Int,
+ val maxAmount: BigDecimal,
+ val onOk: () -> Unit,
+ ) : Dialog()
+
sealed class SendTransactionFails : Dialog() {
data class CardSdkError(val error: TangemSdkError) : Dialog()
data class BlockchainSdkError(val error: com.tangem.blockchain.common.BlockchainSdkError) : Dialog()
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 628e934435..4e4d53efc4 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
@@ -307,6 +307,19 @@ private fun sendTransaction(
),
)
}
+ is BlockchainSdkError.Chia.UtxoAmountError -> {
+ dispatch(
+ SendAction.Dialog.ChiaWarningDialog(
+ blockchainName = Blockchain.Chia.fullName,
+ maxOutputs = error.maxOutputs,
+ maxAmount = error.maxAmount,
+ onOk = {
+ dispatch(AmountAction.SetAmount(error.maxAmount, isUserInput = false))
+ dispatch(AmountActionUi.CheckAmountToSend)
+ },
+ ),
+ )
+ }
else -> {
when {
error.customMessage.contains(DemoTransactionSender.ID) -> {
diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/reducers/SendScreenReducer.kt b/app/src/main/java/com/tangem/tap/features/send/redux/reducers/SendScreenReducer.kt
index 463b0dcaea..8a9cab2329 100644
--- a/app/src/main/java/com/tangem/tap/features/send/redux/reducers/SendScreenReducer.kt
+++ b/app/src/main/java/com/tangem/tap/features/send/redux/reducers/SendScreenReducer.kt
@@ -46,6 +46,7 @@ private class SendReducer : SendInternalReducer {
}
is SendAction.Dialog.TezosWarningDialog -> sendState.copy(dialog = action)
is SendAction.Dialog.KaspaWarningDialog -> sendState.copy(dialog = action)
+ is SendAction.Dialog.ChiaWarningDialog -> sendState.copy(dialog = action)
is SendAction.Dialog.SendTransactionFails.CardSdkError -> sendState.copy(dialog = action)
is SendAction.Dialog.SendTransactionFails.BlockchainSdkError -> sendState.copy(dialog = action)
is SendAction.Dialog.RequestFeeError -> sendState.copy(dialog = action)
diff --git a/app/src/main/java/com/tangem/tap/features/send/ui/dialogs/ChiaWarningDialog.kt b/app/src/main/java/com/tangem/tap/features/send/ui/dialogs/ChiaWarningDialog.kt
new file mode 100644
index 0000000000..b4ba056146
--- /dev/null
+++ b/app/src/main/java/com/tangem/tap/features/send/ui/dialogs/ChiaWarningDialog.kt
@@ -0,0 +1,32 @@
+package com.tangem.tap.features.send.ui.dialogs
+
+import android.content.Context
+import androidx.appcompat.app.AlertDialog
+import com.tangem.tap.features.send.redux.SendAction
+import com.tangem.tap.store
+import com.tangem.wallet.R
+
+// TODO: [REDACTED_JIRA]
+object ChiaWarningDialog {
+
+ fun create(context: Context, dialog: SendAction.Dialog.ChiaWarningDialog): AlertDialog {
+ return AlertDialog.Builder(context).apply {
+ setTitle(R.string.common_warning)
+ setMessage(
+ context.getString(
+ R.string.common_utxo_validate_withdrawal_message_warning,
+ dialog.blockchainName,
+ dialog.maxOutputs,
+ dialog.maxAmount.toPlainString(),
+ ),
+ )
+ setPositiveButton(R.string.common_ok) { _, _ ->
+ dialog.onOk()
+ }
+ setOnDismissListener {
+ store.dispatch(SendAction.Dialog.Hide)
+ }
+ }
+ .create()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/tangem/tap/features/send/ui/stateSubscribers/SendStateSubscriber.kt b/app/src/main/java/com/tangem/tap/features/send/ui/stateSubscribers/SendStateSubscriber.kt
index 6de86eba68..e05278fceb 100644
--- a/app/src/main/java/com/tangem/tap/features/send/ui/stateSubscribers/SendStateSubscriber.kt
+++ b/app/src/main/java/com/tangem/tap/features/send/ui/stateSubscribers/SendStateSubscriber.kt
@@ -18,10 +18,7 @@ import com.tangem.tap.features.send.redux.SendAction
import com.tangem.tap.features.send.redux.states.*
import com.tangem.tap.features.send.ui.FeeUiHelper
import com.tangem.tap.features.send.ui.SendFragment
-import com.tangem.tap.features.send.ui.dialogs.KaspaWarningDialog
-import com.tangem.tap.features.send.ui.dialogs.RequestFeeErrorDialog
-import com.tangem.tap.features.send.ui.dialogs.SendTransactionFailsDialog
-import com.tangem.tap.features.send.ui.dialogs.TezosWarningDialog
+import com.tangem.tap.features.send.ui.dialogs.*
import com.tangem.tap.features.wallet.redux.ProgressState
import com.tangem.tap.features.wallet.redux.utils.ROUGH_SIGN
import com.tangem.tap.features.wallet.redux.utils.UNKNOWN_AMOUNT_SIGN
@@ -124,6 +121,7 @@ class SendStateSubscriber(fragment: BaseStoreFragment) : FragmentStateSubscriber
}
}
+ @Suppress("ComplexMethod")
private fun handleSendScreen(fg: SendFragment, state: SendState) = with(fg.binding) {
when (state.dialog) {
is SendAction.Dialog.TezosWarningDialog -> {
@@ -138,6 +136,12 @@ class SendStateSubscriber(fragment: BaseStoreFragment) : FragmentStateSubscriber
dialog?.show()
}
}
+ is SendAction.Dialog.ChiaWarningDialog -> {
+ if (dialog == null) {
+ dialog = ChiaWarningDialog.create(fg.requireContext(), state.dialog)
+ dialog?.show()
+ }
+ }
is SendAction.Dialog.SendTransactionFails.CardSdkError -> {
if (dialog == null) {
dialog = SendTransactionFailsDialog.create(fg.requireContext(), state.dialog)
diff --git a/core/res/src/main/res/values-ru/strings-blockchain.xml b/core/res/src/main/res/values-ru/strings-blockchain.xml
index 0e716ae5d1..fcec1f9e0c 100644
--- a/core/res/src/main/res/values-ru/strings-blockchain.xml
+++ b/core/res/src/main/res/values-ru/strings-blockchain.xml
@@ -3,6 +3,9 @@
По умолчанию
Устаревший
Не удалось получить комиссию
+ Из-за ограничений %1$s в одну транзакцию может поместиться только %2$d UTXO. Это означает, что вы можете отправить только %3$s или меньше. Вам нужно уменьшить сумму.
+ Недостаточно средств для совершения транзакции. Пожалуйста, пополните свой аккаунт.
+ Произошла ошибка. Код: %s.
Из-за ограничений Kaspa в одну транзакцию может поместиться только %1$d UTXO. Это означает, что вы можете отправить только %2$s или меньше. Вам нужно уменьшить сумму.
Пополните счет на %1$s+ %2$s, чтобы создать аккаунт
Аккаунт получателя не активирован. Отправьте %s или более для активации аккаунта.
diff --git a/core/res/src/main/res/values/strings-blockchain.xml b/core/res/src/main/res/values/strings-blockchain.xml
index 41209dd8f9..7e938d5420 100644
--- a/core/res/src/main/res/values/strings-blockchain.xml
+++ b/core/res/src/main/res/values/strings-blockchain.xml
@@ -3,6 +3,9 @@
Default
Legacy
Failed to get fee
+ Due to %1$s limitations only %2$d UTXOs can fit in a single transaction. This means you can only send %3$s or less. You need to reduce the amount.
+ Not enough funds for the transaction. Please top up your account.
+ An error occurred. Code: %s.
Due to Kaspa limitations only %1$d UTXOs can fit in a single transaction. This means you can only send %2$s or less. You need to reduce the amount.
Load %1$s+ %2$s to create account
Destination account is not active. Send %s or more to activate the account.
diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml
index b8af65e72b..f9144bb4cf 100644
--- a/gradle/dependencies.toml
+++ b/gradle/dependencies.toml
@@ -80,7 +80,7 @@ okHttp-prettyLogging = "3.1.0"
# endregion Other libraries
# region Tangem
-tangemBlockchainSdk = "release-app_4.10-336"
+tangemBlockchainSdk = "release-app_4.10-341"
#tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds
tangemCardSdk = "release-app_4.10-292"
#tangemCardSdk = "0.0.1" # Keep it! - used for local builds