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