diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/common/blockaid/models/response/AssetDiff.kt b/core/datasource/src/main/java/com/tangem/datasource/api/common/blockaid/models/response/AssetDiff.kt
index 51e5374ae8..be70cd4a52 100644
--- a/core/datasource/src/main/java/com/tangem/datasource/api/common/blockaid/models/response/AssetDiff.kt
+++ b/core/datasource/src/main/java/com/tangem/datasource/api/common/blockaid/models/response/AssetDiff.kt
@@ -15,8 +15,8 @@ data class AssetDiff(
data class Asset(
@Json(name = "chain_id") val chainId: Int? = null,
@Json(name = "logo_url") val logoUrl: String? = null,
- @Json(name = "symbol") val symbol: String,
- @Json(name = "decimals") val decimals: Int,
+ @Json(name = "symbol") val symbol: String? = null,
+ @Json(name = "decimals") val decimals: Int? = null,
)
@JsonClass(generateAdapter = true)
diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/common/blockaid/models/response/Exposure.kt b/core/datasource/src/main/java/com/tangem/datasource/api/common/blockaid/models/response/Exposure.kt
index 0ed36e6a25..e776056d4c 100644
--- a/core/datasource/src/main/java/com/tangem/datasource/api/common/blockaid/models/response/Exposure.kt
+++ b/core/datasource/src/main/java/com/tangem/datasource/api/common/blockaid/models/response/Exposure.kt
@@ -18,6 +18,8 @@ data class SpenderDetails(
@JsonClass(generateAdapter = true)
data class ExposureDetail(
- @Json(name = "value") val value: String,
- @Json(name = "raw_value") val rawValue: String,
+ @Json(name = "value") val value: String? = null,
+ @Json(name = "raw_value") val rawValue: String? = null,
+ @Json(name = "token_id") val tokenId: String? = null,
+ @Json(name = "logo_url") val logoUrl: String? = null,
)
\ No newline at end of file
diff --git a/core/res/src/main/res/values-fr/strings.xml b/core/res/src/main/res/values-fr/strings.xml
index 075f05f465..b28e3174c2 100644
--- a/core/res/src/main/res/values-fr/strings.xml
+++ b/core/res/src/main/res/values-fr/strings.xml
@@ -66,6 +66,10 @@
- %d carte
- %d cartes
+
+ - %s token
+ - %s tokens
+
Désactivez cette option si vous ne voulez pas que cette carte soit utilisée pour réinitialiser les codes d\'accès sur d\'autres cartes de ce portefeuille. Veuillez noter que cela vous empêchera également de réinitialiser le code d\'accès sur cette carte.
Vous permet d\'utiliser cette carte pour réinitialiser le code d\'accès sur d\'autres cartes de ce portefeuille
Récupération du code d\'accès
@@ -111,6 +115,7 @@
Annuler
Changez
Choisissez une action
+ Choisissez le réseau
Choisir le jeton
Réclamer
Réclamez des récompenses
@@ -152,6 +157,7 @@
Synchroniser les adresses
Aller au fournisseur
Aller au jeton
+ Compris
Cacher
heure
Importez
@@ -196,6 +202,7 @@
Le serveur n\'est pas disponible, veuillez réessayer plus tard
Partager
Partager le lien
+ Afficher moins
Afficher plus
Signez
Signez et envoyez
@@ -205,6 +212,7 @@
Soumettre
Avec succès
Support
+ Réseaux pris en charge
Échanger
termes et conditions
Conditions d\'utilisation
@@ -265,6 +273,7 @@
%s hashes
ID de l\'appareil
Contactez l\'équipe de support
+ Ouvrir le chat d\'assistance
Lier plus de cartes
Monnaie de l\'application
Retourner pour masquer les soldes
@@ -281,6 +290,7 @@
Ne peut pas être échangé contre %s
Fourni par
Statut
+ Choisir un fournisseur
Tangem propose des échanges de jetons via des fournisseurs tiers selon les conditions de chaque fournisseur
Fournisseur
Une erreur s\'est produite. Code : %s
@@ -340,6 +350,9 @@
Masquer cette transaction
Une fois masqué, le statut de la transaction ne peut plus être consulté. Vous pouvez simplement faire glisser votre doigt pour le fermer.
Masquer le statut de la transaction ?
+ Ce jeton n\'est pas pris en charge. Veuillez choisir un autre jeton à échanger.
+ %s n\'est pas pris en charge
+ Échanger avec
Aucun jeton trouvé. Veuillez essayer une autre demande
ID : %s
ID de transaction copié
@@ -367,6 +380,8 @@
Pour continuer, accordez aux smart contracts de %1s l\'autorisation d\'utiliser votre %2s
Donner l\'autorisation
Illimité
+ Ajouter un Portefeuille existant
+ Créer un nouveau Portefeuille
Commandez
Scannez
à %s
@@ -423,6 +438,7 @@
Cet actif n\'est pas pris en charge dans le portefeuille
Cet actif n\'est pas disponible pour ce portefeuille
Ajoutez un jeton
+ APY %s
Réseaux disponibles
Mon portfolio
Marché
@@ -709,6 +725,7 @@
Paramètres
Activer les notifications
Recevez des alertes pour les transactions entrantes sur les réseaux pris en charge.
+ Notifications de transaction
Sélectionnez dans la galerie
Paramètres
Vous n\'avez pas donné accès à votre caméra
@@ -818,6 +835,9 @@
Mémo : %s
Mémo invalide
Couverture des frais de réseau
+ Nonce
+ Numéro unique pour chaque transaction. Utilisez-le pour renvoyer ou annuler une transaction en attente.
+ Entrez le nonce…
Fonds insuffisants pour le transfert, car le total des frais et du montant du transfert dépasse le solde existant
Le total dépasse le solde
Un solde d\'au moins %s est requis pour conserver votre compte sur la blockchain afin d\'éviter les risques de sécurité. Ce montant restera sur votre solde et ne pourra pas être retiré.
@@ -847,6 +867,7 @@
Adresse non valide
Assurez-vous que l\'adresse du portefeuille de réception est sur le réseau %s pour éviter de perdre vos jetons
envoyer à %s
+ Assurez-vous de %s une adresse réseau, car des erreurs peuvent entraîner des transferts perdus
Envoyer à
Un Memo/Destination Tag est un identifiant unique permettant de différencier les transactions envoyées au même destinataire sur le même réseau. Attention : L\'omission d\'un mémo peut entraîner des fonds mal placés
Le Memo / Destination Tag est un code qui distingue les transactions envoyées à un destinataire partagé sur un réseau crypto.
@@ -873,7 +894,11 @@
Les frais de commissions dépassent le solde
Le total dépasse le solde
Échanger et envoyer
+ Envoyez n\'importe quel jeton et nous le convertirons en cours de route. Votre destinataire reçoit exactement ce dont il a besoin, en toute simplicité.
+ Le destinataire recevra
+ Un destinataire sera envoyé
Montant à recevoir
+ Envoyer avec swap
Transaction envoyée
Scannez la carte/ bague que vous souhaitez configurer.
Oublier le portefeuille
@@ -1014,6 +1039,7 @@
Compatible avec Web 3.0
Une transaction entrante d\'au moins de %1$s est requise pour continuer
Fonds insuffisants
+ Taux fixe
Le réseau facturera des frais d\'approbation de jeton pour vérifier que vous autorisez l\'utilisation de votre jeton pour l\'échange.
Échangez plus de jetons à de meilleurs taux directement dans votre portefeuille.
Nouveau fournisseur d\'échange disponible !
@@ -1091,6 +1117,8 @@
Notifications de transaction
Minimum %s
Le montant minimum pour effectuer cette transaction est %1$s.
+ Les frais de réseau Tron pour les jetons populaires peuvent être plus élevés. Le staking de TRX peut contribuer à réduire les coûts de transaction.
+ Économisez sur les frais de réseau Tron
Réessayez
Vous avez scanné la même carte. Pour créer un portefeuille jumeau, vous devez scanner la carte portant le numéro %d
Vous avez scanné une mauvaise carte jumelle. S\'il vous plaît, essayez-en un autre
@@ -1103,6 +1131,8 @@
Tangem Twin
Cette action est irréversible. Vous n\'aurez plus accès à l\'ancien portefeuille.
Appuyez sur la carte jumelle avec le numéro %s et ne la retirez pas jusqu\'à la fin de l\'opération
+ Veuillez réessayer ultérieurement. Si le problème persiste, veuillez contacter le support.
+ Une erreur s\'est produite !
Nous avons rencontré une erreur. Code d\'erreur : %s. Veuillez contacter notre équipe de support.
Utilisez %s ou scannez une carte/bague pour avoir accès à votre portefeuille
Échec de la connexion : Cette dApp utilise Wallet Connect version1.0, qui n\'est pas prise en charge. Veuillez vous assurer que la dApp prend en charge Wallet Connect version2.0 pour réussir la connexion.
@@ -1253,6 +1283,7 @@
Votre avis nous motive à améliorer encore le Portefeuille Tangem
Vous appréciez Tangem ?
Vous devez associer votre jeton avant de recevoir des jetons
+ Vous devez ouvrir la ligne de confiance pour votre jeton avant de le recevoir
Frais de location de réseau requis
Action requise
Avez-vous contacté l\'assistance via l\'application ou par e-mail dans les 7 jours suivant la création d\'un portefeuille ? Si vous l\'avez fait ou si vous n\'êtes pas sûr, suivez et complétez les instructions.
@@ -1273,17 +1304,38 @@
À des fins de test uniquement
Le solde peut être obsolète. Rafraîchissez la page.
Pas assez de %1$s. Rechargez votre compte %2$s pour associer ce jeton.
+ Activer Trustline
+ Une Trustline doit être activée pour recevoir ce jeton. Le réseau requiert une réserve de %1$s %2$s
+ Trustline requise
Domaine malveillant
+ Signer quand même
Si le problème persiste, n’hésitez pas à contacter notre support.
Le portefeuille Tangem ne prend actuellement pas en charge %ss
dApp non prise en charge
+ Code d\'erreur : 8 005. Si le problème persiste, n\'hésitez pas à contacter notre support.
+ Nous avons rencontré une erreur inconnue
+ Autoriser à dépenser
+ Adresse
+ Chargement
+ Illimité
Connexions
+ Contenu
+ Copier les données
Déconnecter tout
Texte sur la déconnexion de toutes les dApps
Déconnecter toutes les dApps
+ Modifications estimées du portefeuille
+ La transaction n\'a pas pu être simulée. Veuillez procéder avec prudence.
+ Transaction malveillante
Nouvelle connexion
Connectez votre portefeuille à différentes dApps
Aucune séance
+ Demande de
+ Type de signature
+ À
+ Demande de transaction
+ Demande de transaction
+ Montant illimité
Ignorer
Vous avez une sauvegarde interrompue. Voulez-vous la reprendre ?
Oui, reprendre
diff --git a/core/res/src/main/res/values/strings.xml b/core/res/src/main/res/values/strings.xml
index 18834e5cbc..704c48f319 100644
--- a/core/res/src/main/res/values/strings.xml
+++ b/core/res/src/main/res/values/strings.xml
@@ -12,6 +12,7 @@
Set a %s-digit Access Code to unlock your wallet.
Create Access Code
Access code
+ Account name
Can’t find your token? Go to the Market section on the main page and add it to your portfolio for purchase
Can’t find your token? Go to the Market section on the main page and add it to your portfolio for selling.
Sell
@@ -1500,6 +1501,7 @@
New connection
Connect your wallet to a different dApps
No sessions
+ No wallet changes detected
This domain is flagged as unsafe by multiple security providers. Leave immediately to protect your assets
Known security risk
Request from
diff --git a/data/blockaid/src/main/kotlin/com/tangem/data/blockaid/BlockAidMapper.kt b/data/blockaid/src/main/kotlin/com/tangem/data/blockaid/BlockAidMapper.kt
index 857ec25986..128d1cfd56 100644
--- a/data/blockaid/src/main/kotlin/com/tangem/data/blockaid/BlockAidMapper.kt
+++ b/data/blockaid/src/main/kotlin/com/tangem/data/blockaid/BlockAidMapper.kt
@@ -85,7 +85,7 @@ internal object BlockAidMapper {
from.exposures,
)
!from.traces.isNullOrEmpty() -> mapNftSendReceiveTransaction(from.traces)
- else -> SimulationResult.FailedToSimulate
+ else -> SimulationResult.Success(data = SimulationData.NoWalletChangesDetected)
}
}
@@ -94,15 +94,15 @@ internal object BlockAidMapper {
val tokenInfo = TokenInfo(
chainId = exposure.asset.chainId,
logoUrl = exposure.asset.logoUrl,
- symbol = exposure.asset.symbol,
- decimals = exposure.asset.decimals,
+ symbol = exposure.asset.symbol ?: "",
+ decimals = exposure.asset.decimals ?: 0,
)
exposure.spenders.flatMap { (_, spender) ->
val isUnlimited = spender.isApprovedForAll == true
val approval = spender.approval?.hexToBigDecimal()
- spender.exposure.mapNotNull { detail ->
+ spender.exposure.map { detail ->
ApprovedAmount(
- approvedAmount = detail.value.toBigDecimalOrNull() ?: approval ?: return@mapNotNull null,
+ approvedAmount = detail.value?.toBigDecimalOrNull() ?: approval ?: 1.toBigDecimal(),
isUnlimited = isUnlimited,
tokenInfo = tokenInfo,
)
@@ -112,7 +112,7 @@ internal object BlockAidMapper {
return if (!amounts.isNullOrEmpty()) {
SimulationResult.Success(SimulationData.Approve(amounts))
} else {
- SimulationResult.FailedToSimulate
+ SimulationResult.Success(SimulationData.NoWalletChangesDetected)
}
}
@@ -124,8 +124,8 @@ internal object BlockAidMapper {
val token = TokenInfo(
chainId = diff.asset.chainId,
logoUrl = diff.asset.logoUrl,
- symbol = diff.asset.symbol,
- decimals = diff.asset.decimals,
+ symbol = diff.asset.symbol ?: "",
+ decimals = diff.asset.decimals ?: 0,
)
diff.outTransfer.orEmpty().forEach { transfer ->
transfer.value?.toBigDecimalOrNull()?.let { amount ->
@@ -142,7 +142,7 @@ internal object BlockAidMapper {
return if (sendInfo.isNotEmpty() || receiveInfo.isNotEmpty()) {
SimulationResult.Success(SimulationData.SendAndReceive(send = sendInfo, receive = receiveInfo))
} else {
- SimulationResult.FailedToSimulate
+ SimulationResult.Success(SimulationData.NoWalletChangesDetected)
}
}
@@ -156,7 +156,7 @@ internal object BlockAidMapper {
return if (!sendInfo.isNullOrEmpty()) {
SimulationResult.Success(SimulationData.SendAndReceive(send = sendInfo, receive = listOf()))
} else {
- SimulationResult.FailedToSimulate
+ SimulationResult.Success(SimulationData.NoWalletChangesDetected)
}
}
}
\ No newline at end of file
diff --git a/data/blockaid/src/test/kotlin/com/tangem/data/blockaid/BlockAidMapperTest.kt b/data/blockaid/src/test/kotlin/com/tangem/data/blockaid/BlockAidMapperTest.kt
index 1980d63605..00dd54e198 100644
--- a/data/blockaid/src/test/kotlin/com/tangem/data/blockaid/BlockAidMapperTest.kt
+++ b/data/blockaid/src/test/kotlin/com/tangem/data/blockaid/BlockAidMapperTest.kt
@@ -114,7 +114,7 @@ class BlockAidMapperTest {
val result = mapper.mapToDomain(response)
Truth.assertThat(result.validation).isEqualTo(ValidationResult.FAILED_TO_VALIDATE)
- Truth.assertThat(result.simulation is SimulationResult.FailedToSimulate).isTrue()
+ Truth.assertThat(result.simulation is SimulationResult.Success).isTrue()
}
@Test
@@ -160,6 +160,6 @@ class BlockAidMapperTest {
)
val result = mapper.mapToDomain(txResponse)
- Truth.assertThat(result.simulation is SimulationResult.FailedToSimulate).isTrue()
+ Truth.assertThat(result.simulation is SimulationResult.Success).isTrue()
}
}
\ No newline at end of file
diff --git a/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/network/ethereum/WcEthTxHelper.kt b/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/network/ethereum/WcEthTxHelper.kt
index ebf796f991..057afaa2e9 100644
--- a/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/network/ethereum/WcEthTxHelper.kt
+++ b/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/network/ethereum/WcEthTxHelper.kt
@@ -76,7 +76,7 @@ internal class WcEthTxHelper @Inject constructor(
?: return null
val approves = (simulation.data as? SimulationData.Approve)?.approvedAmounts
?: return null
- if (approves.size != 1) return null
+ if (approves.isEmpty()) return null
val amount = approves.first()
return amount
}
diff --git a/domain/blockaid/models/src/main/kotlin/com/domain/blockaid/models/transaction/simultation/SimulationData.kt b/domain/blockaid/models/src/main/kotlin/com/domain/blockaid/models/transaction/simultation/SimulationData.kt
index afd8fea9e9..13c28ebba4 100644
--- a/domain/blockaid/models/src/main/kotlin/com/domain/blockaid/models/transaction/simultation/SimulationData.kt
+++ b/domain/blockaid/models/src/main/kotlin/com/domain/blockaid/models/transaction/simultation/SimulationData.kt
@@ -19,4 +19,9 @@ sealed class SimulationData {
data class Approve(
val approvedAmounts: List,
) : SimulationData()
+
+ /**
+ * Simulation was successfully performed and no changes detected
+ */
+ data object NoWalletChangesDetected : SimulationData()
}
\ No newline at end of file
diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/entity/blockaid/WcSendReceiveTransactionCheckResultsUM.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/entity/blockaid/WcSendReceiveTransactionCheckResultsUM.kt
index 57b9c03f54..850cfb201e 100644
--- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/entity/blockaid/WcSendReceiveTransactionCheckResultsUM.kt
+++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/entity/blockaid/WcSendReceiveTransactionCheckResultsUM.kt
@@ -7,6 +7,7 @@ internal data class WcSendReceiveTransactionCheckResultsUM(
val estimatedWalletChanges: WcEstimatedWalletChangesUM? = null,
val spendAllowance: WcSpendAllowanceUM? = null,
val notification: BlockAidNotificationUM? = null,
+ val additionalNotification: TextReference? = null,
val isLoading: Boolean = true,
)
diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/blockaid/TransactionCheckResultsItem.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/blockaid/TransactionCheckResultsItem.kt
index b70cf31f20..2b7aca4340 100644
--- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/blockaid/TransactionCheckResultsItem.kt
+++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/blockaid/TransactionCheckResultsItem.kt
@@ -11,6 +11,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import androidx.compose.ui.unit.dp
import com.tangem.core.ui.extensions.TextReference
+import com.tangem.core.ui.extensions.isNullOrEmpty
import com.tangem.core.ui.extensions.resourceReference
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
@@ -43,8 +44,10 @@ internal fun TransactionCheckResultsItem(
WcEstimatedWalletChangesItem(item.estimatedWalletChanges)
} else if (item.spendAllowance != null) {
WcSpendAllowanceItem(item.spendAllowance, onClickAllowToSpend)
+ } else if (!item.additionalNotification.isNullOrEmpty()) {
+ WcEstimatedWalletChangesNotificationItem(description = item.additionalNotification)
} else {
- WcEstimatedWalletChangesNotLoadedItem()
+ WcEstimatedWalletChangesNotificationItem()
}
}
}
diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/blockaid/WcEstimatedWalletChangesNotLoadedItem.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/blockaid/WcEstimatedWalletChangesNotificationItem.kt
similarity index 82%
rename from features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/blockaid/WcEstimatedWalletChangesNotLoadedItem.kt
rename to features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/blockaid/WcEstimatedWalletChangesNotificationItem.kt
index de2a38ce6a..603839d220 100644
--- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/blockaid/WcEstimatedWalletChangesNotLoadedItem.kt
+++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/blockaid/WcEstimatedWalletChangesNotificationItem.kt
@@ -12,6 +12,8 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.tooling.preview.Devices
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
+import com.tangem.core.ui.extensions.TextReference
+import com.tangem.core.ui.extensions.resolveReference
import com.tangem.core.ui.extensions.stringResourceSafe
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreview
@@ -19,7 +21,10 @@ import com.tangem.features.walletconnect.impl.R
import com.tangem.features.walletconnect.transaction.ui.common.WcSmallTitleItem
@Composable
-internal fun WcEstimatedWalletChangesNotLoadedItem(modifier: Modifier = Modifier) {
+internal fun WcEstimatedWalletChangesNotificationItem(
+ modifier: Modifier = Modifier,
+ description: TextReference? = null,
+) {
Column(
modifier = modifier
.clip(RoundedCornerShape(14.dp))
@@ -36,7 +41,8 @@ internal fun WcEstimatedWalletChangesNotLoadedItem(modifier: Modifier = Modifier
modifier = modifier
.fillMaxWidth()
.padding(start = 12.dp, end = 12.dp, bottom = 14.dp),
- text = stringResourceSafe(R.string.wc_estimated_wallet_changes_not_simulated),
+ text = description?.resolveReference()
+ ?: stringResourceSafe(R.string.wc_estimated_wallet_changes_not_simulated),
color = TangemTheme.colors.text.tertiary,
style = TangemTheme.typography.body2,
)
@@ -52,7 +58,7 @@ private fun WcEstimatedWalletChangesNotLoadedItems() {
modifier = Modifier
.background(TangemTheme.colors.background.tertiary),
) {
- WcEstimatedWalletChangesNotLoadedItem()
+ WcEstimatedWalletChangesNotificationItem()
}
}
}
\ No newline at end of file
diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/blockaid/WcSendAndReceiveBlockAidUiConverter.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/blockaid/WcSendAndReceiveBlockAidUiConverter.kt
index d42cf5e233..1eda478462 100644
--- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/blockaid/WcSendAndReceiveBlockAidUiConverter.kt
+++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/blockaid/WcSendAndReceiveBlockAidUiConverter.kt
@@ -30,6 +30,7 @@ internal class WcSendAndReceiveBlockAidUiConverter @Inject constructor(
) : Converter {
override fun convert(value: Input): WcSendReceiveTransactionCheckResultsUM {
val description = value.result.description?.let { if (it.isNotEmpty()) TextReference.Str(it) else null }
+ val simulation = value.result.simulation
return WcSendReceiveTransactionCheckResultsUM(
isLoading = false,
notification = when (value.result.validation) {
@@ -45,9 +46,16 @@ internal class WcSendAndReceiveBlockAidUiConverter @Inject constructor(
text = description,
)
},
- estimatedWalletChanges = (value.result.simulation as? SimulationResult.Success)?.data?.let { data ->
+ additionalNotification = (simulation as? SimulationResult.Success)?.data?.let { data ->
+ if (data is SimulationData.NoWalletChangesDetected) {
+ TextReference.Res(R.string.wc_no_wallet_changes_detected)
+ } else {
+ null
+ }
+ },
+ estimatedWalletChanges = (simulation as? SimulationResult.Success)?.data?.let { data ->
when (data) {
- is SimulationData.Approve -> null
+ is SimulationData.Approve, SimulationData.NoWalletChangesDetected -> null
is SimulationData.SendAndReceive -> {
val items: ImmutableList = (
data.send.map {
@@ -94,7 +102,7 @@ internal class WcSendAndReceiveBlockAidUiConverter @Inject constructor(
},
spendAllowance = (value.result.simulation as? SimulationResult.Success)?.data?.let { data ->
when (data) {
- is SimulationData.SendAndReceive -> null
+ is SimulationData.SendAndReceive, SimulationData.NoWalletChangesDetected -> null
is SimulationData.Approve -> value.approvedAmount?.let {
spendAllowanceUMConverter.convert(it)
}