Updated on 2026-08-14

This commit is contained in:
Tangem 2025-08-08 12:02:05 +05:00
parent ee69ff5fb3
commit 4f88f3a7b0
3 changed files with 36 additions and 3 deletions

View file

@ -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
}
}

View file

@ -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
}
}