Updated on 2026-08-14
This commit is contained in:
parent
843a192a82
commit
f5ff6a8453
6 changed files with 29 additions and 13 deletions
|
|
@ -114,8 +114,9 @@ internal class DefaultWcPairUseCase @AssistedInject constructor(
|
|||
sessionsManager.saveSession(newSession)
|
||||
analytics.send(
|
||||
WcAnalyticEvents.DAppConnected(
|
||||
proposalState.dAppSession,
|
||||
sessionForApprove,
|
||||
sessionProposal = proposalState.dAppSession,
|
||||
sessionForApprove = sessionForApprove,
|
||||
securityStatus = proposalState.dAppSession.securityStatus,
|
||||
),
|
||||
)
|
||||
newSession
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@ internal class WcSignUseCaseDelegate<MiddleAction, SignModel>(
|
|||
WcAnalyticEvents.SignatureRequestHandled(
|
||||
rawRequest = context.rawSdkRequest,
|
||||
network = context.network,
|
||||
securityStatus = context.session.securityStatus,
|
||||
)
|
||||
},
|
||||
)
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import com.domain.blockaid.models.dapp.CheckDAppResult.*
|
|||
import com.tangem.core.analytics.models.AnalyticsEvent
|
||||
import com.tangem.core.analytics.models.AnalyticsParam
|
||||
import com.tangem.domain.models.network.Network
|
||||
import com.tangem.domain.walletconnect.WcAnalyticEvents.ButtonDisconnectAll.toAnalyticVerificationStatus
|
||||
import com.tangem.domain.walletconnect.model.WcPairRequest
|
||||
import com.tangem.domain.walletconnect.model.WcSession
|
||||
import com.tangem.domain.walletconnect.model.WcSessionApprove
|
||||
|
|
@ -42,11 +43,7 @@ sealed class WcAnalyticEvents(
|
|||
event = "dApp Connection Requested",
|
||||
params = mapOf(
|
||||
NETWORKS to network.joinToString(",") { it.name },
|
||||
DOMAIN_VERIFICATION to when (domainVerification) {
|
||||
SAFE -> "Verified"
|
||||
UNSAFE -> "Risky"
|
||||
FAILED_TO_VERIFY -> "Unknown"
|
||||
},
|
||||
DOMAIN_VERIFICATION to domainVerification.toAnalyticVerificationStatus(),
|
||||
),
|
||||
)
|
||||
|
||||
|
|
@ -62,12 +59,14 @@ sealed class WcAnalyticEvents(
|
|||
class DAppConnected(
|
||||
sessionProposal: WcSessionProposal,
|
||||
sessionForApprove: WcSessionApprove,
|
||||
securityStatus: CheckDAppResult,
|
||||
) : WcAnalyticEvents(
|
||||
event = "dApp Connected",
|
||||
params = mapOf(
|
||||
AnalyticsParam.Key.DAPP_NAME to sessionProposal.dAppMetaData.name,
|
||||
AnalyticsParam.Key.DAPP_URL to sessionProposal.dAppMetaData.url,
|
||||
AnalyticsParam.Key.BLOCKCHAIN to sessionForApprove.network.joinToString(",") { it.name },
|
||||
DOMAIN_VERIFICATION to securityStatus.toAnalyticVerificationStatus(),
|
||||
),
|
||||
)
|
||||
|
||||
|
|
@ -105,6 +104,7 @@ sealed class WcAnalyticEvents(
|
|||
rawRequest: WcSdkSessionRequest,
|
||||
network: Network,
|
||||
emulationStatus: EmulationStatus?,
|
||||
securityStatus: CheckDAppResult?,
|
||||
) : WcAnalyticEvents(
|
||||
event = "Signature Request Received",
|
||||
params = mapOf(
|
||||
|
|
@ -113,6 +113,7 @@ sealed class WcAnalyticEvents(
|
|||
AnalyticsParam.Key.METHOD_NAME to rawRequest.request.method,
|
||||
AnalyticsParam.Key.BLOCKCHAIN to network.name,
|
||||
AnalyticsParam.Key.EMULATION_STATUS to emulationStatus?.status,
|
||||
AnalyticsParam.Key.TYPE to securityStatus?.toAnalyticVerificationStatus(),
|
||||
).mapNotNullValues { it.value },
|
||||
) {
|
||||
enum class EmulationStatus(val status: String) {
|
||||
|
|
@ -125,6 +126,7 @@ sealed class WcAnalyticEvents(
|
|||
class SignatureRequestHandled(
|
||||
rawRequest: WcSdkSessionRequest,
|
||||
network: Network,
|
||||
securityStatus: CheckDAppResult,
|
||||
) : WcAnalyticEvents(
|
||||
event = "Signature Request Handled",
|
||||
params = mapOf(
|
||||
|
|
@ -132,6 +134,7 @@ sealed class WcAnalyticEvents(
|
|||
AnalyticsParam.Key.DAPP_URL to rawRequest.dAppMetaData.url,
|
||||
AnalyticsParam.Key.METHOD_NAME to rawRequest.request.method,
|
||||
AnalyticsParam.Key.BLOCKCHAIN to network.name,
|
||||
AnalyticsParam.Key.TYPE to securityStatus.toAnalyticVerificationStatus(),
|
||||
),
|
||||
)
|
||||
|
||||
|
|
@ -215,18 +218,26 @@ sealed class WcAnalyticEvents(
|
|||
Source.Domain -> "Domain"
|
||||
Source.SmartContract -> "Smart Contract"
|
||||
},
|
||||
AnalyticsParam.Key.TYPE to when (securityStatus) {
|
||||
SAFE -> "Verified"
|
||||
UNSAFE -> "Risky"
|
||||
FAILED_TO_VERIFY -> "Unknown"
|
||||
},
|
||||
|
||||
AnalyticsParam.Key.TYPE to securityStatus.toAnalyticVerificationStatus(),
|
||||
),
|
||||
) {
|
||||
enum class Source { Domain, SmartContract }
|
||||
}
|
||||
|
||||
enum class DAppVerificationStatus(val status: String) {
|
||||
Verified("Verified"),
|
||||
Risky("Risky"),
|
||||
Unknown("Unknown"),
|
||||
}
|
||||
|
||||
fun CheckDAppResult.toAnalyticVerificationStatus(): String = when (this) {
|
||||
SAFE -> DAppVerificationStatus.Verified
|
||||
UNSAFE -> DAppVerificationStatus.Risky
|
||||
FAILED_TO_VERIFY -> DAppVerificationStatus.Unknown
|
||||
}.status
|
||||
|
||||
companion object {
|
||||
|
||||
const val NETWORKS = "Networks"
|
||||
const val DOMAIN_VERIFICATION = "Domain Verification"
|
||||
const val WC_CATEGORY_NAME = "Wallet Connect"
|
||||
|
|
|
|||
|
|
@ -132,6 +132,7 @@ internal class WcAddNetworkModel @Inject constructor(
|
|||
rawRequest = useCase.rawSdkRequest,
|
||||
network = useCase.network,
|
||||
emulationStatus = null,
|
||||
securityStatus = null,
|
||||
),
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -408,6 +408,7 @@ internal class WcSendTransactionModel @Inject constructor(
|
|||
rawRequest = useCase.rawSdkRequest,
|
||||
network = useCase.network,
|
||||
emulationStatus = emulationStatus,
|
||||
securityStatus = useCase.session.securityStatus,
|
||||
),
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -158,6 +158,7 @@ internal class WcSignTransactionModel @Inject constructor(
|
|||
rawRequest = useCase.rawSdkRequest,
|
||||
network = useCase.network,
|
||||
emulationStatus = null,
|
||||
securityStatus = null,
|
||||
),
|
||||
)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue