Updated on 2026-08-14
This commit is contained in:
parent
ee69ff5fb3
commit
4f88f3a7b0
3 changed files with 36 additions and 3 deletions
|
|
@ -11,6 +11,7 @@ import com.tangem.domain.walletconnect.model.WcSessionApprove
|
|||
import com.tangem.domain.walletconnect.model.WcSessionProposal
|
||||
import com.tangem.domain.walletconnect.model.sdkcopy.WcAppMetaData
|
||||
import com.tangem.domain.walletconnect.model.sdkcopy.WcSdkSessionRequest
|
||||
import com.tangem.utils.extensions.mapNotNullValues
|
||||
|
||||
sealed class WcAnalyticEvents(
|
||||
event: String,
|
||||
|
|
@ -103,7 +104,7 @@ sealed class WcAnalyticEvents(
|
|||
class SignatureRequestReceived(
|
||||
rawRequest: WcSdkSessionRequest,
|
||||
network: Network,
|
||||
emulationStatus: EmulationStatus,
|
||||
emulationStatus: EmulationStatus?,
|
||||
) : WcAnalyticEvents(
|
||||
event = "Signature Request Received",
|
||||
params = mapOf(
|
||||
|
|
@ -111,8 +112,8 @@ 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.EMULATION_STATUS to emulationStatus.status,
|
||||
),
|
||||
AnalyticsParam.Key.EMULATION_STATUS to emulationStatus?.status,
|
||||
).mapNotNullValues { it.value },
|
||||
) {
|
||||
enum class EmulationStatus(val status: String) {
|
||||
Emulated("Emulated"),
|
||||
|
|
|
|||
|
|
@ -49,12 +49,14 @@ internal class WcAddNetworkModel @Inject constructor(
|
|||
|
||||
private val params = paramsContainer.require<WcTransactionModelParams>()
|
||||
private var useCase by Delegates.notNull<WcAddNetworkUseCase>()
|
||||
private val signatureReceivedAnalyticsSendState = MutableStateFlow(false)
|
||||
|
||||
init {
|
||||
modelScope.launch {
|
||||
useCase = useCaseFactory.createUseCase<WcAddNetworkUseCase>(params.rawRequest)
|
||||
.onLeft { router.push(WcHandleMethodErrorConverter.convert(it)) }
|
||||
.getOrNull() ?: return@launch
|
||||
sendSignatureReceivedAnalytics(useCase)
|
||||
_uiState.emit(
|
||||
wcAddEthereumChainUMConverter.convert(
|
||||
WcAddEthereumChainUMConverter.Input(
|
||||
|
|
@ -114,4 +116,18 @@ internal class WcAddNetworkModel @Inject constructor(
|
|||
private fun copyData(text: String) {
|
||||
clipboardManager.setText(text = text, isSensitive = true)
|
||||
}
|
||||
|
||||
private fun sendSignatureReceivedAnalytics(useCase: WcAddNetworkUseCase) {
|
||||
if (signatureReceivedAnalyticsSendState.value) return
|
||||
|
||||
analytics.send(
|
||||
WcAnalyticEvents.SignatureRequestReceived(
|
||||
rawRequest = useCase.rawSdkRequest,
|
||||
network = useCase.network,
|
||||
emulationStatus = null,
|
||||
),
|
||||
)
|
||||
|
||||
signatureReceivedAnalyticsSendState.value = true
|
||||
}
|
||||
}
|
||||
|
|
@ -59,12 +59,14 @@ internal class WcSignTransactionModel @Inject constructor(
|
|||
val stackNavigation = StackNavigation<WcTransactionRoutes>()
|
||||
|
||||
private var useCase by Delegates.notNull<WcMessageSignUseCase>()
|
||||
private val signatureReceivedAnalyticsSendState = MutableStateFlow(false)
|
||||
|
||||
init {
|
||||
modelScope.launch {
|
||||
useCase = useCaseFactory.createUseCase<WcMessageSignUseCase>(params.rawRequest)
|
||||
.onLeft { router.push(WcHandleMethodErrorConverter.convert(it)) }
|
||||
.getOrNull() ?: return@launch
|
||||
sendSignatureReceivedAnalytics(useCase)
|
||||
useCase.invoke()
|
||||
.onEach { signState ->
|
||||
if (signingIsDone(signState)) return@onEach
|
||||
|
|
@ -145,4 +147,18 @@ internal class WcSignTransactionModel @Inject constructor(
|
|||
private fun copyData(text: String) {
|
||||
clipboardManager.setText(text = text, isSensitive = true)
|
||||
}
|
||||
|
||||
private fun sendSignatureReceivedAnalytics(useCase: WcMessageSignUseCase) {
|
||||
if (signatureReceivedAnalyticsSendState.value) return
|
||||
|
||||
analytics.send(
|
||||
WcAnalyticEvents.SignatureRequestReceived(
|
||||
rawRequest = useCase.rawSdkRequest,
|
||||
network = useCase.network,
|
||||
emulationStatus = null,
|
||||
),
|
||||
)
|
||||
|
||||
signatureReceivedAnalyticsSendState.value = true
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue