Updated on 2026-08-14

This commit is contained in:
Tangem 2026-06-10 18:28:54 +03:00
commit 6b9fc4a3ce
1058 changed files with 48197 additions and 12718 deletions

View file

@ -2,6 +2,7 @@ package com.tangem.domain.card.analytics
import com.tangem.core.analytics.models.AnalyticsEvent
import com.tangem.core.analytics.models.AnalyticsParam
import com.tangem.core.analytics.models.CriticalEvent
import com.tangem.core.analytics.models.getReferralParams
sealed class IntroductionProcess(
@ -9,11 +10,17 @@ sealed class IntroductionProcess(
params: Map<String, String> = emptyMap(),
) : AnalyticsEvent("Introduction Process", event, params) {
class ScreenOpened : IntroductionProcess("Introduction Process Screen Opened")
/**
* Tracks the user opening the Introduction Process screen.
*/
class ScreenOpened : IntroductionProcess("Introduction Process Screen Opened"), CriticalEvent
class ButtonTokensList : IntroductionProcess("Button - Tokens List")
class ButtonBuyCards : IntroductionProcess("Button - Buy Cards")
class ButtonScanCardLegacy : IntroductionProcess("Button - Scan Card")
/**
* Tracks opening the Create Wallet introduction screen.
*/
class CreateWalletIntroScreenOpened(
screenType: ScreenType,
referralId: String?,
@ -23,7 +30,7 @@ sealed class IntroductionProcess(
put(AnalyticsParam.SCREEN_TYPE, screenType.value)
putAll(getReferralParams(referralId))
},
) {
), CriticalEvent {
enum class ScreenType(val value: String) {
Cold("Cold Wallet"),
Hot("Mobile Wallet"),

View file

@ -66,6 +66,7 @@ fun CardDTO.supportedBlockchains(
private fun CardDTO.isBlockchainUnsupported(blockchain: Blockchain): Boolean {
return when (blockchain) {
Blockchain.Quai, Blockchain.QuaiTestnet,
Blockchain.Adi, Blockchain.AdiTestnet,
Blockchain.SeiEvm, Blockchain.SeiEvmTestnet,
-> {
firmwareVersion <= FirmwareVersion.HDWalletAvailable

View file

@ -217,6 +217,8 @@ data object Wallet2CardConfig : CardConfig {
Blockchain.ArbitrumNova -> EllipticCurve.Secp256k1
Blockchain.Plasma -> EllipticCurve.Secp256k1
Blockchain.PlasmaTestnet -> EllipticCurve.Secp256k1
Blockchain.Adi -> EllipticCurve.Secp256k1
Blockchain.AdiTestnet -> EllipticCurve.Secp256k1
Blockchain.SeiEvm -> EllipticCurve.Secp256k1
Blockchain.SeiEvmTestnet -> EllipticCurve.Secp256k1
Blockchain.Monad -> EllipticCurve.Secp256k1

View file

@ -4,6 +4,7 @@ import com.tangem.TangemSdk
import com.tangem.blockchain.common.TransactionSigner
import com.tangem.domain.card.models.TwinKey
import com.tangem.domain.models.scan.ProductType
import com.tangem.domain.models.wallet.UserWalletId
/**
* Repository for managing with CardSDK config
@ -28,8 +29,13 @@ interface CardSdkConfigRepository {
/** Update the card ID display format according to the [productType] of the scanned card */
fun updateCardIdDisplayFormat(productType: ProductType)
/** Get common signer by [cardId] */
fun getCommonSigner(cardId: String?, twinKey: TwinKey?): TransactionSigner
/**
* Get common signer by [cardId].
*
* @param userWalletId ID of the user wallet being signed. Used to persist the updated number of signed hashes
* back into the wallet after a successful signing operation.
*/
fun getCommonSigner(cardId: String?, twinKey: TwinKey?, userWalletId: UserWalletId): TransactionSigner
/** Check if linked terminal is enabled */
fun isLinkedTerminal(): Boolean?

View file

@ -173,6 +173,8 @@ class Wallet2CardConfigTest {
Blockchain.ArbitrumNova to EllipticCurve.Secp256k1,
Blockchain.Plasma to EllipticCurve.Secp256k1,
Blockchain.PlasmaTestnet to EllipticCurve.Secp256k1,
Blockchain.Adi to EllipticCurve.Secp256k1,
Blockchain.AdiTestnet to EllipticCurve.Secp256k1,
Blockchain.SeiEvm to EllipticCurve.Secp256k1,
Blockchain.SeiEvmTestnet to EllipticCurve.Secp256k1,
Blockchain.Monad to EllipticCurve.Secp256k1,