From b3a1dc5518d04a92a4523c6a35ef0fb85bd722f4 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 9 Feb 2024 15:50:51 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../domain/card/ScanResponseMockFactory.kt | 6 ++--- .../domain/common/configs/CardConfig.kt | 5 +++++ .../configs/EdSingleCurrencyCardConfig.kt | 22 +++++++++++++++++++ 3 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 domain/legacy/src/main/java/com/tangem/domain/common/configs/EdSingleCurrencyCardConfig.kt diff --git a/app/src/test/kotlin/com/tangem/tap/domain/card/ScanResponseMockFactory.kt b/app/src/test/kotlin/com/tangem/tap/domain/card/ScanResponseMockFactory.kt index 71f1514668..da79e800f0 100644 --- a/app/src/test/kotlin/com/tangem/tap/domain/card/ScanResponseMockFactory.kt +++ b/app/src/test/kotlin/com/tangem/tap/domain/card/ScanResponseMockFactory.kt @@ -2,10 +2,7 @@ package com.tangem.tap.domain.card import com.tangem.common.card.CardWallet import com.tangem.common.card.FirmwareVersion -import com.tangem.domain.common.configs.CardConfig -import com.tangem.domain.common.configs.GenericCardConfig -import com.tangem.domain.common.configs.MultiWalletCardConfig -import com.tangem.domain.common.configs.Wallet2CardConfig +import com.tangem.domain.common.configs.* import com.tangem.domain.models.scan.CardDTO import com.tangem.domain.models.scan.KeyWalletPublicKey import com.tangem.domain.models.scan.ProductType @@ -50,6 +47,7 @@ object ScanResponseMockFactory { is GenericCardConfig -> genericFirmwareVersion MultiWalletCardConfig -> walletFirmwareVersion Wallet2CardConfig -> wallet2FirmwareVersion + EdSingleCurrencyCardConfig -> genericFirmwareVersion }, manufacturer = CardDTO.Manufacturer(name = "NEVER-MIND", manufactureDate = Date(), signature = null), issuer = CardDTO.Issuer(name = "NEVER-MIND", publicKey = ByteArray(0)), diff --git a/domain/legacy/src/main/java/com/tangem/domain/common/configs/CardConfig.kt b/domain/legacy/src/main/java/com/tangem/domain/common/configs/CardConfig.kt index 7e3fc92045..8099ff7d09 100644 --- a/domain/legacy/src/main/java/com/tangem/domain/common/configs/CardConfig.kt +++ b/domain/legacy/src/main/java/com/tangem/domain/common/configs/CardConfig.kt @@ -22,6 +22,11 @@ sealed interface CardConfig { ) { return MultiWalletCardConfig } + if (cardDTO.supportedCurves.size == 1 && + cardDTO.supportedCurves.contains(EllipticCurve.Ed25519) + ) { + return EdSingleCurrencyCardConfig + } return GenericCardConfig(cardDTO.settings.maxWalletsCount) } } diff --git a/domain/legacy/src/main/java/com/tangem/domain/common/configs/EdSingleCurrencyCardConfig.kt b/domain/legacy/src/main/java/com/tangem/domain/common/configs/EdSingleCurrencyCardConfig.kt new file mode 100644 index 0000000000..6792eeff3e --- /dev/null +++ b/domain/legacy/src/main/java/com/tangem/domain/common/configs/EdSingleCurrencyCardConfig.kt @@ -0,0 +1,22 @@ +package com.tangem.domain.common.configs + +import com.tangem.blockchain.common.Blockchain +import com.tangem.common.card.EllipticCurve +import timber.log.Timber + +object EdSingleCurrencyCardConfig : CardConfig { + + override val mandatoryCurves: List = listOf(EllipticCurve.Ed25519) + + override fun primaryCurve(blockchain: Blockchain): EllipticCurve? { + return when { + blockchain.getSupportedCurves().contains(EllipticCurve.Ed25519) -> { + EllipticCurve.Ed25519 + } + else -> { + Timber.e("Unsupported blockchain, curve not found") + null + } + } + } +} \ No newline at end of file