Updated on 2026-08-14
This commit is contained in:
parent
7002a716b7
commit
71325746dc
4 changed files with 21 additions and 8 deletions
|
|
@ -10,6 +10,7 @@ import com.reown.walletkit.client.Wallet
|
|||
import com.tangem.core.analytics.api.AnalyticsEventHandler
|
||||
import com.tangem.data.walletconnect.utils.WC_TAG
|
||||
import com.tangem.data.walletconnect.utils.WcSdkSessionConverter
|
||||
import com.tangem.data.walletconnect.utils.getDappOriginUrl
|
||||
import com.tangem.domain.blockaid.BlockAidVerifier
|
||||
import com.tangem.domain.walletconnect.WcAnalyticEvents
|
||||
import com.tangem.domain.walletconnect.model.*
|
||||
|
|
@ -112,7 +113,7 @@ internal class DefaultWcPairUseCase @AssistedInject constructor(
|
|||
wallet = sessionForApprove.wallet,
|
||||
sdkModel = WcSdkSessionConverter.convert(
|
||||
value = WcSdkSessionConverter.Input(
|
||||
originUrl = sdkVerifyContext.origin,
|
||||
originUrl = sdkVerifyContext.getDappOriginUrl(),
|
||||
session = settledSession.session,
|
||||
),
|
||||
),
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import com.reown.walletkit.client.Wallet
|
|||
import com.reown.walletkit.client.WalletKit
|
||||
import com.tangem.data.walletconnect.utils.WC_TAG
|
||||
import com.tangem.data.walletconnect.utils.WcSdkObserver
|
||||
import com.tangem.data.walletconnect.utils.getDappOriginUrl
|
||||
import com.tangem.domain.walletconnect.model.WcPairError
|
||||
import com.tangem.domain.walletconnect.model.WcPairError.ApprovalFailed
|
||||
import kotlinx.coroutines.*
|
||||
|
|
@ -112,12 +113,7 @@ internal class WcPairSdkDelegate : WcSdkObserver {
|
|||
sessionProposal: Wallet.Model.SessionProposal,
|
||||
verifyContext: Wallet.Model.VerifyContext,
|
||||
) {
|
||||
val url = if (verifyContext.validation == Wallet.Model.Validation.INVALID || verifyContext.isScam == true) {
|
||||
verifyContext.origin
|
||||
} else {
|
||||
verifyContext.origin.ifEmpty { verifyContext.verifyUrl }
|
||||
}
|
||||
val sessionProposalWithRealUrl = sessionProposal.copy(url = url)
|
||||
val sessionProposalWithRealUrl = sessionProposal.copy(url = verifyContext.getDappOriginUrl())
|
||||
// Triggered when wallet receives the session proposal sent by a Dapp
|
||||
onSessionProposal.trySend(sessionProposalWithRealUrl to verifyContext)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import com.tangem.data.walletconnect.respond.WcRespondService
|
|||
import com.tangem.data.walletconnect.utils.WC_TAG
|
||||
import com.tangem.data.walletconnect.utils.WcSdkObserver
|
||||
import com.tangem.data.walletconnect.utils.WcSdkSessionRequestConverter
|
||||
import com.tangem.data.walletconnect.utils.getDappOriginUrl
|
||||
import com.tangem.domain.walletconnect.WcRequestService
|
||||
import com.tangem.domain.walletconnect.model.WcMethodName
|
||||
import com.tangem.domain.walletconnect.model.sdkcopy.WcSdkSessionRequest
|
||||
|
|
@ -35,7 +36,7 @@ internal class DefaultWcRequestService(
|
|||
// Triggered when a Dapp sends SessionRequest to sign a transaction or a message
|
||||
val sr = WcSdkSessionRequestConverter.convert(
|
||||
WcSdkSessionRequestConverter.Input(
|
||||
originUrl = verifyContext.origin,
|
||||
originUrl = verifyContext.getDappOriginUrl(),
|
||||
sessionRequest = sessionRequest,
|
||||
),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,15 @@
|
|||
package com.tangem.data.walletconnect.utils
|
||||
|
||||
import com.reown.walletkit.client.Wallet
|
||||
import kotlin.text.ifEmpty
|
||||
|
||||
/**
|
||||
* Returns the dapp URL to show and verify based on the validation status and scam check.
|
||||
*/
|
||||
fun Wallet.Model.VerifyContext.getDappOriginUrl(): String {
|
||||
return if (this.validation == Wallet.Model.Validation.INVALID || this.isScam == true) {
|
||||
this.origin
|
||||
} else {
|
||||
this.origin.ifEmpty { this.verifyUrl }
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue