From e374bc907d68a6bf206be51ec19be710b8ad619d Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 21 Jul 2025 14:39:45 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../pair/DefaultWcPairUseCase.kt | 1 + .../sessions/DefaultWcSessionsManager.kt | 1 + .../walletconnect/DefaultWcPairUseCaseTest.kt | 1 + .../WcSignUseCaseDelegateTest.kt | 1 + .../domain/walletconnect/model/WcSession.kt | 1 + .../converter/WcSendTransactionUMConverter.kt | 2 +- .../converter/WcSignTransactionUMConverter.kt | 2 +- .../converter/WcSignTypedDataUMConverter.kt | 2 +- .../entity/send/WcSendTransactionUM.kt | 2 +- .../entity/sign/WcSignTransactionUM.kt | 2 +- .../ui/common/WcSendTransactionItems.kt | 14 ++++---- .../send/WcSendTransactionModalBottomSheet.kt | 35 +++++++++++++++++++ ...cSignTransactionModalBottomSheetContent.kt | 14 ++++---- 13 files changed, 61 insertions(+), 17 deletions(-) diff --git a/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/pair/DefaultWcPairUseCase.kt b/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/pair/DefaultWcPairUseCase.kt index e02b9f623c..d45f8fb128 100644 --- a/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/pair/DefaultWcPairUseCase.kt +++ b/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/pair/DefaultWcPairUseCase.kt @@ -96,6 +96,7 @@ internal class DefaultWcPairUseCase @AssistedInject constructor( securityStatus = proposalState.dAppSession.securityStatus, networks = sessionForApprove.network.toSet(), connectingTime = DateTime.now().millis, + showWalletInfo = proposalState.dAppSession.proposalNetwork.keys.size > 1, ) sessionsManager.saveSession(newSession) analytics.send( diff --git a/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/sessions/DefaultWcSessionsManager.kt b/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/sessions/DefaultWcSessionsManager.kt index 28afaab46a..bd26aba65c 100644 --- a/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/sessions/DefaultWcSessionsManager.kt +++ b/data/wallet-connect/src/main/kotlin/com/tangem/data/walletconnect/sessions/DefaultWcSessionsManager.kt @@ -133,6 +133,7 @@ internal class DefaultWcSessionsManager( securityStatus = storeSession.securityStatus, networks = networks, connectingTime = storeSession.connectingTime, + showWalletInfo = wallets.size > 1, ) } return wcSessions diff --git a/data/wallet-connect/src/test/kotlin/com/tangem/domain/walletconnect/DefaultWcPairUseCaseTest.kt b/data/wallet-connect/src/test/kotlin/com/tangem/domain/walletconnect/DefaultWcPairUseCaseTest.kt index 286a997186..68ae1e1f6f 100644 --- a/data/wallet-connect/src/test/kotlin/com/tangem/domain/walletconnect/DefaultWcPairUseCaseTest.kt +++ b/data/wallet-connect/src/test/kotlin/com/tangem/domain/walletconnect/DefaultWcPairUseCaseTest.kt @@ -96,6 +96,7 @@ internal class DefaultWcPairUseCaseTest { securityStatus = CheckDAppResult.SAFE, networks = setOf(), connectingTime = null, + showWalletInfo = false, ) private fun useCaseFactory() = DefaultWcPairUseCase( diff --git a/data/wallet-connect/src/test/kotlin/com/tangem/domain/walletconnect/WcSignUseCaseDelegateTest.kt b/data/wallet-connect/src/test/kotlin/com/tangem/domain/walletconnect/WcSignUseCaseDelegateTest.kt index 34e1e8c848..6c2d0161d5 100644 --- a/data/wallet-connect/src/test/kotlin/com/tangem/domain/walletconnect/WcSignUseCaseDelegateTest.kt +++ b/data/wallet-connect/src/test/kotlin/com/tangem/domain/walletconnect/WcSignUseCaseDelegateTest.kt @@ -62,6 +62,7 @@ internal class WcSignUseCaseDelegateTest { redirect = "", ), ), + showWalletInfo = false, ), ) diff --git a/domain/wallet-connect/models/src/main/java/com/tangem/domain/walletconnect/model/WcSession.kt b/domain/wallet-connect/models/src/main/java/com/tangem/domain/walletconnect/model/WcSession.kt index 2aa9af657a..3406918c50 100644 --- a/domain/wallet-connect/models/src/main/java/com/tangem/domain/walletconnect/model/WcSession.kt +++ b/domain/wallet-connect/models/src/main/java/com/tangem/domain/walletconnect/model/WcSession.kt @@ -11,4 +11,5 @@ data class WcSession( val sdkModel: WcSdkSession, val securityStatus: CheckDAppResult, val connectingTime: Long?, + val showWalletInfo: Boolean, ) \ No newline at end of file diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/converter/WcSendTransactionUMConverter.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/converter/WcSendTransactionUMConverter.kt index 0127605b9c..32e5bda99d 100644 --- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/converter/WcSendTransactionUMConverter.kt +++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/converter/WcSendTransactionUMConverter.kt @@ -39,7 +39,7 @@ internal class WcSendTransactionUMConverter @Inject constructor( ), ), feeState = constructFeeState(useCase = value.useCase, actions = value.actions), - walletName = value.useCase.session.wallet.name, + walletName = value.useCase.session.wallet.name.takeIf { value.useCase.session.showWalletInfo }, networkInfo = networkInfoUMConverter.convert(value.useCase.network), address = value.useCase.walletAddress.toShortAddressText(), estimatedWalletChanges = WcSendReceiveTransactionCheckResultsUM(), diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/converter/WcSignTransactionUMConverter.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/converter/WcSignTransactionUMConverter.kt index cc90835ef5..5fe64fa8b7 100644 --- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/converter/WcSignTransactionUMConverter.kt +++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/converter/WcSignTransactionUMConverter.kt @@ -27,7 +27,7 @@ internal class WcSignTransactionUMConverter @Inject constructor( onShowVerifiedAlert = value.actions.onShowVerifiedAlert, ), ), - walletName = value.useCase.session.wallet.name, + walletName = value.useCase.session.wallet.name.takeIf { value.useCase.session.showWalletInfo }, networkInfo = networkInfoUMConverter.convert(value.useCase.network), isLoading = value.signState.domainStep == WcSignStep.Signing, ), diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/converter/WcSignTypedDataUMConverter.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/converter/WcSignTypedDataUMConverter.kt index 260bf7461c..063c225cd7 100644 --- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/converter/WcSignTypedDataUMConverter.kt +++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/converter/WcSignTypedDataUMConverter.kt @@ -36,7 +36,7 @@ internal class WcSignTypedDataUMConverter @Inject constructor( onShowVerifiedAlert = value.actions.onShowVerifiedAlert, ), ), - walletName = value.useCase.session.wallet.name, + walletName = value.useCase.session.wallet.name.takeIf { value.useCase.session.showWalletInfo }, networkInfo = networkInfoUMConverter.convert(value.useCase.network), addressText = value.useCase.walletAddress.toShortAddressText(), isLoading = value.signState.domainStep == WcSignStep.Signing, diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/entity/send/WcSendTransactionUM.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/entity/send/WcSendTransactionUM.kt index cd85d9518d..c08234e85b 100644 --- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/entity/send/WcSendTransactionUM.kt +++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/entity/send/WcSendTransactionUM.kt @@ -23,7 +23,7 @@ internal data class WcSendTransactionItemUM( val onSend: () -> Unit, val appInfo: WcTransactionAppInfoContentUM, val estimatedWalletChanges: WcSendReceiveTransactionCheckResultsUM?, - val walletName: String, + val walletName: String?, val networkInfo: WcNetworkInfoUM, val address: String? = null, val isLoading: Boolean = false, diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/entity/sign/WcSignTransactionUM.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/entity/sign/WcSignTransactionUM.kt index 69e4c2e1fe..34f67b3039 100644 --- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/entity/sign/WcSignTransactionUM.kt +++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/entity/sign/WcSignTransactionUM.kt @@ -15,7 +15,7 @@ internal data class WcSignTransactionItemUM( val onDismiss: () -> Unit, val onSign: () -> Unit, val appInfo: WcTransactionAppInfoContentUM, - val walletName: String, + val walletName: String?, val networkInfo: WcNetworkInfoUM, val addressText: String? = null, val isLoading: Boolean = false, diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/common/WcSendTransactionItems.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/common/WcSendTransactionItems.kt index 3fa9786f54..053c6a030c 100644 --- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/common/WcSendTransactionItems.kt +++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/common/WcSendTransactionItems.kt @@ -20,7 +20,7 @@ import com.tangem.features.walletconnect.transaction.entity.common.WcTransaction @Composable internal fun WcSendTransactionItems( - walletName: String, + walletName: String?, networkInfo: WcNetworkInfoUM, feeState: WcTransactionFeeState, feeSelectorBlockComponent: FeeSelectorBlockComponent?, @@ -44,11 +44,13 @@ internal fun WcSendTransactionItems( .fillMaxWidth() .padding(TangemTheme.dimens.spacing12) - WcWalletItem( - modifier = itemsModifier, - walletName = walletName, - ) - DividerWithPadding(start = TangemTheme.dimens.spacing40, end = TangemTheme.dimens.spacing12) + if (walletName != null) { + WcWalletItem( + modifier = itemsModifier, + walletName = walletName, + ) + DividerWithPadding(start = TangemTheme.dimens.spacing40, end = TangemTheme.dimens.spacing12) + } WcNetworkItem( modifier = itemsModifier, networkInfo = networkInfo, diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/send/WcSendTransactionModalBottomSheet.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/send/WcSendTransactionModalBottomSheet.kt index 75a1c2c3ac..558dfe4f1b 100644 --- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/send/WcSendTransactionModalBottomSheet.kt +++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/send/WcSendTransactionModalBottomSheet.kt @@ -197,5 +197,40 @@ private class WcSendTransactionStateProvider : CollectionPreviewParameterProvide feeState = WcTransactionFeeState.Success(null, {}), address = "0x345FF...34FA", ), + WcSendTransactionItemUM( + onDismiss = {}, + onSend = {}, + appInfo = WcTransactionAppInfoContentUM( + appName = "React App", + appIcon = "", + verifiedState = VerifiedDAppState.Verified {}, + appSubtitle = "react-app.walletconnect.com", + ), + estimatedWalletChanges = WcSendReceiveTransactionCheckResultsUM( + notificationText = TextReference.Str( + "The transaction approves erc20 tokens to a known malicious address", + ), + estimatedWalletChanges = WcEstimatedWalletChangesUM( + items = persistentListOf( + WcEstimatedWalletChangeUM( + iconRes = R.drawable.ic_send_new_24, + title = resourceReference(R.string.common_send), + description = "- 42 USDT", + tokenIconUrl = "https://tangem.com", + ), + WcEstimatedWalletChangeUM( + iconRes = R.drawable.ic_receive_new_24, + title = resourceReference(R.string.common_receive), + description = "+ 1,131.46 MATIC", + tokenIconUrl = "https://tangem.com", + ), + ), + ), + ), + walletName = null, + networkInfo = WcNetworkInfoUM(name = "Ethereum", iconRes = R.drawable.img_eth_22), + feeState = WcTransactionFeeState.None, + address = "0x345FF...34FA", + ), ), ) \ No newline at end of file diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/sign/WcSignTransactionModalBottomSheetContent.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/sign/WcSignTransactionModalBottomSheetContent.kt index 8427cc3a56..2942fcb975 100644 --- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/sign/WcSignTransactionModalBottomSheetContent.kt +++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/sign/WcSignTransactionModalBottomSheetContent.kt @@ -113,11 +113,13 @@ private fun WcSignTransactionItems(state: WcSignTransactionItemUM, modifier: Mod .fillMaxWidth() .padding(12.dp) - WcWalletItem( - modifier = itemsModifier, - walletName = state.walletName, - ) - DividerWithPadding(start = 40.dp, end = 12.dp) + if (state.walletName != null) { + WcWalletItem( + modifier = itemsModifier, + walletName = state.walletName, + ) + DividerWithPadding(start = 40.dp, end = 12.dp) + } WcNetworkItem( modifier = itemsModifier, networkInfo = state.networkInfo, @@ -190,7 +192,7 @@ private class WcSignTransactionStateProvider : CollectionPreviewParameterProvide verifiedState = VerifiedDAppState.Verified {}, appSubtitle = "react-app.walletconnect.com", ), - walletName = "Tangem 2.0", + walletName = null, addressText = "0x345FF...34FA", networkInfo = WcNetworkInfoUM(name = "Ethereum", iconRes = R.drawable.img_eth_22), ),