Updated on 2026-08-14

This commit is contained in:
Tangem 2025-02-10 11:46:32 +03:00
parent af2b62dbe3
commit edb42c1ee4
11 changed files with 173 additions and 17 deletions

View file

@ -171,7 +171,10 @@ class WalletConnectMiddleware {
is WcPreparedRequest.BnbTransaction -> WalletConnectDialog.BnbTransactionDialog(request)
is WcPreparedRequest.EthTransaction -> WalletConnectDialog.RequestTransaction(request)
is WcPreparedRequest.EthSign -> WalletConnectDialog.PersonalSign(request)
is WcPreparedRequest.SignTransaction -> WalletConnectDialog.SignTransactionDialog(request)
is WcPreparedRequest.SolanaSignTransaction ->
WalletConnectDialog.SignTransactionDialog(request)
is WcPreparedRequest.SolanaSignMultipleTransactions ->
WalletConnectDialog.SignTransactionsDialog(request)
}
store.dispatch(GlobalAction.ShowDialog(dialog))
}

View file

@ -116,7 +116,11 @@ sealed class WalletConnectDialog : StateDialog {
) : WalletConnectDialog()
data class SignTransactionDialog(
val data: WcPreparedRequest.SignTransaction,
val data: WcPreparedRequest.SolanaSignTransaction,
) : WalletConnectDialog()
data class SignTransactionsDialog(
val data: WcPreparedRequest.SolanaSignMultipleTransactions,
) : WalletConnectDialog()
data class PairConnectErrorDialog(val error: Throwable) : WalletConnectDialog()

View file

@ -10,7 +10,7 @@ import com.tangem.wallet.R
internal object SignTransactionDialog {
fun create(preparedData: WcPreparedRequest.SignTransaction, context: Context): AlertDialog {
fun create(preparedData: WcPreparedRequest.SolanaSignTransaction, context: Context): AlertDialog {
val signMessage = context.getString(R.string.wallet_connect_alert_sign_message, "")
val message = "${preparedData.preparedRequestData.dAppName}\n$signMessage"
return AlertDialog.Builder(context).apply {

View file

@ -0,0 +1,30 @@
package com.tangem.tap.features.details.ui.walletconnect.dialogs
import android.content.Context
import androidx.appcompat.app.AlertDialog
import com.tangem.tap.common.redux.global.GlobalAction
import com.tangem.tap.domain.walletconnect2.domain.WcPreparedRequest
import com.tangem.tap.features.details.redux.walletconnect.WalletConnectAction
import com.tangem.tap.store
import com.tangem.wallet.R
internal object SignTransactionsDialog {
fun create(preparedData: WcPreparedRequest.SolanaSignMultipleTransactions, context: Context): AlertDialog {
val signMessage = context.getString(R.string.wallet_connect_alert_sign_message, "")
val message = "${preparedData.preparedRequestData.dAppName}\n$signMessage"
return AlertDialog.Builder(context).apply {
setTitle(context.getString(R.string.wallet_connect_title))
setMessage(message)
setPositiveButton(context.getText(R.string.common_sign)) { _, _ ->
store.dispatch(WalletConnectAction.PerformRequestedAction(preparedData))
}
setNegativeButton(context.getText(R.string.common_reject)) { _, _ ->
store.dispatch(WalletConnectAction.RejectRequest(preparedData.topic, preparedData.requestId))
}
setOnDismissListener {
store.dispatch(GlobalAction.HideDialog)
}
}.create()
}
}