From b9ed0818e4fdc91a0b9358dd491b4a985ed26532 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 27 Mar 2025 17:35:59 +0300 Subject: [PATCH 1/2] Updated on 2026-08-14 --- .../DefaultLegacyWalletConnectRepository.kt | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/domain/walletconnect2/data/DefaultLegacyWalletConnectRepository.kt b/app/src/main/java/com/tangem/tap/domain/walletconnect2/data/DefaultLegacyWalletConnectRepository.kt index 0f673b9ba6..bb03434cb0 100644 --- a/app/src/main/java/com/tangem/tap/domain/walletconnect2/data/DefaultLegacyWalletConnectRepository.kt +++ b/app/src/main/java/com/tangem/tap/domain/walletconnect2/data/DefaultLegacyWalletConnectRepository.kt @@ -10,7 +10,10 @@ import com.reown.walletkit.client.WalletKit import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.tap.common.analytics.events.WalletConnect import com.tangem.tap.domain.walletconnect2.app.TangemWcBlockchainHelper -import com.tangem.tap.domain.walletconnect2.domain.* +import com.tangem.tap.domain.walletconnect2.domain.LegacyWalletConnectRepository +import com.tangem.tap.domain.walletconnect2.domain.WcJrpcMethods +import com.tangem.tap.domain.walletconnect2.domain.WcJrpcRequestsDeserializer +import com.tangem.tap.domain.walletconnect2.domain.WcRequest import com.tangem.tap.domain.walletconnect2.domain.models.* import com.tangem.tap.domain.walletconnect2.toggles.WalletConnectFeatureToggles import com.tangem.tap.features.details.redux.walletconnect.WalletConnectAction.OpenSession.SourceType @@ -96,6 +99,8 @@ internal class DefaultLegacyWalletConnectRepository( private fun defineWalletDelegate(): WalletKit.WalletDelegate { return object : WalletKit.WalletDelegate { + + @Suppress("LongMethod") override fun onSessionProposal( sessionProposal: Wallet.Model.SessionProposal, verifyContext: Wallet.Model.VerifyContext, @@ -144,14 +149,27 @@ internal class DefaultLegacyWalletConnectRepository( ) // for cases when optionalNamespaces is not empty but we doesn't support none of them - if (optionalMissingNetwork.isNotEmpty() && optionalWithoutMissingNetworks.isEmpty()) { + if (optionalMissingNetwork.isNotEmpty() && + optionalWithoutMissingNetworks.isEmpty() && + sessionProposal.requiredNamespaces.isEmpty() // if requiredNamespaces is not empty we can connect + ) { Timber.i("Not added optional blockchains: $optionalMissingNetwork") + + val unsupportedNetworks = sessionProposal.optionalNamespaces.values + .flatMap { it.chains ?: emptyList() } + .filter { blockchainHelper.chainIdToNetworkIdOrNull(it) == null } + scope.launch { - _events.emit( + val error = if (unsupportedNetworks.isNotEmpty()) { + WalletConnectEvents.SessionApprovalError( + WalletConnectError.ApprovalErrorUnsupportedNetwork(unsupportedNetworks), + ) + } else { WalletConnectEvents.SessionApprovalError( WalletConnectError.ApprovalErrorMissingNetworks(optionalMissingNetwork.toList()), - ), - ) + ) + } + _events.emit(error) } return } From 74e6745ce4032e95501cb9f82150f3b307a64001 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 28 Mar 2025 09:35:27 +0000 Subject: [PATCH 2/2] Updated on 2026-08-14 --- gradle/tangem_dependencies.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/tangem_dependencies.toml b/gradle/tangem_dependencies.toml index 58cb7cc642..475ddc9d26 100644 --- a/gradle/tangem_dependencies.toml +++ b/gradle/tangem_dependencies.toml @@ -1,7 +1,7 @@ [versions] -tangemBlockchainSdk = "release-app_5.22-987" +tangemBlockchainSdk = "develop-989" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds -tangemCardSdk = "release-app_5.22-440" +tangemCardSdk = "develop-445" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ tangemVico = "2.0.0-alpha.25-tangem-developments8" #tangemVico = "0.0.1" # Keep it! - used for local builds ^