From 1e6ee16b223f4f2381b698e874a7cd5b95b095b2 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 29 Jul 2021 16:18:02 +0300 Subject: [PATCH 1/3] Updated on 2026-08-14 --- .../com/tangem/tap/domain/TapWorkarounds.kt | 21 +++++++++++++++++++ .../tangem/tap/domain/tasks/ScanNoteTask.kt | 14 +++++++++++++ .../main/res/values/strings_untranslated.xml | 2 ++ 3 files changed, 37 insertions(+) diff --git a/app/src/main/java/com/tangem/tap/domain/TapWorkarounds.kt b/app/src/main/java/com/tangem/tap/domain/TapWorkarounds.kt index 5807bd024e..79186f4c94 100644 --- a/app/src/main/java/com/tangem/tap/domain/TapWorkarounds.kt +++ b/app/src/main/java/com/tangem/tap/domain/TapWorkarounds.kt @@ -3,6 +3,7 @@ package com.tangem.tap.domain import com.tangem.commands.common.card.Card import com.tangem.commands.common.card.EllipticCurve import com.tangem.commands.common.card.masks.Product +import com.tangem.tap.domain.TapWorkarounds.isNote import com.tangem.tap.domain.TapWorkarounds.isStart2Coin import com.tangem.tap.domain.extensions.getSingleWallet import java.util.* @@ -27,6 +28,14 @@ object TapWorkarounds { } + fun Card.isNote(): Boolean { + return notesBatches.contains(cardData?.batchId) + } + + fun Card.isMultiCurrencyWallet(): Boolean { + return multiCurrencyWalletsBatches.contains(cardData?.batchId) + } + private const val START_2_COIN_ISSUER = "start2coin" private val excludedBatches = listOf( @@ -39,12 +48,24 @@ object TapWorkarounds { private val excludedIssuers = listOf( "TTM BANK" ) + + private val notesBatches = listOf( + "AB01", + "AB02", + "AB03", + "AB04", + "AB05", + "AB06", + ) + + private val multiCurrencyWalletsBatches = listOf("AC01") } val Card.isMultiwalletAllowed: Boolean get() { return cardData?.productMask?.contains(Product.TwinCard) != true && !isStart2Coin + && !isNote() && (firmwareVersion.major >= 4 || getSingleWallet()?.curve == EllipticCurve.Secp256k1) } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/domain/tasks/ScanNoteTask.kt b/app/src/main/java/com/tangem/tap/domain/tasks/ScanNoteTask.kt index 0415316f32..a138f8838f 100644 --- a/app/src/main/java/com/tangem/tap/domain/tasks/ScanNoteTask.kt +++ b/app/src/main/java/com/tangem/tap/domain/tasks/ScanNoteTask.kt @@ -15,6 +15,7 @@ import com.tangem.common.CompletionResult import com.tangem.common.extensions.toHexString import com.tangem.tap.domain.TapSdkError import com.tangem.tap.domain.TapWorkarounds.isExcluded +import com.tangem.tap.domain.TapWorkarounds.isMultiCurrencyWallet import com.tangem.tap.domain.extensions.getSingleWallet import com.tangem.tap.domain.extensions.getStatus import com.tangem.tap.domain.twins.TwinCardsManager @@ -23,6 +24,7 @@ import com.tangem.tap.store import com.tangem.tasks.PreflightReadCapable import com.tangem.tasks.PreflightReadSettings import com.tangem.tasks.ScanTask +import com.tangem.wallet.R data class ScanNoteResponse( val card: Card, @@ -147,6 +149,8 @@ class ScanNoteTask(val card: Card? = null) : CardSessionRunnableThis card can’t be used to establish WalletConnect session The operation couldn\'t be completed The operation couldn\'t be completed. \n\nYou have already established a WalletConnect session with this parameters. + + Oops, the current version of the application is not ready to work with this card, please check for updates. From cf0a180b3a70a3042aab9b7a4ce174db6662d90f Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 29 Jul 2021 20:01:13 +0300 Subject: [PATCH 2/3] Updated on 2026-08-14 --- .../java/com/tangem/tap/domain/TapWorkarounds.kt | 14 ++++++++++++++ .../java/com/tangem/tap/domain/extensions/Card.kt | 2 ++ .../com/tangem/tap/domain/tasks/ScanNoteTask.kt | 4 +--- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/domain/TapWorkarounds.kt b/app/src/main/java/com/tangem/tap/domain/TapWorkarounds.kt index 79186f4c94..3766c21c06 100644 --- a/app/src/main/java/com/tangem/tap/domain/TapWorkarounds.kt +++ b/app/src/main/java/com/tangem/tap/domain/TapWorkarounds.kt @@ -1,5 +1,6 @@ package com.tangem.tap.domain +import com.tangem.blockchain.common.Blockchain import com.tangem.commands.common.card.Card import com.tangem.commands.common.card.EllipticCurve import com.tangem.commands.common.card.masks.Product @@ -36,6 +37,19 @@ object TapWorkarounds { return multiCurrencyWalletsBatches.contains(cardData?.batchId) } + val Card.noteCurrency: Blockchain? + get() { + return when (cardData?.batchId) { + "AB01" -> Blockchain.Bitcoin + "AB02" -> Blockchain.Ethereum + "AB03" -> Blockchain.Cardano + "AB04" -> Blockchain.Dogecoin + "AB05" -> Blockchain.Binance + "AB06" -> Blockchain.XRP + else -> null + } + } + private const val START_2_COIN_ISSUER = "start2coin" private val excludedBatches = listOf( diff --git a/app/src/main/java/com/tangem/tap/domain/extensions/Card.kt b/app/src/main/java/com/tangem/tap/domain/extensions/Card.kt index 9e805a29de..dfe0e1e2a7 100644 --- a/app/src/main/java/com/tangem/tap/domain/extensions/Card.kt +++ b/app/src/main/java/com/tangem/tap/domain/extensions/Card.kt @@ -8,6 +8,7 @@ import com.tangem.commands.common.card.CardStatus import com.tangem.commands.wallet.CardWallet import com.tangem.commands.wallet.WalletStatus import com.tangem.common.TangemSdkConstants +import com.tangem.tap.domain.TapWorkarounds.noteCurrency fun Card.getToken(): Token? { val symbol = cardData?.tokenSymbol ?: return null @@ -18,6 +19,7 @@ fun Card.getToken(): Token? { } fun Card.getBlockchain(): Blockchain? { + if (noteCurrency != null) return noteCurrency val blockchainName: String = cardData?.blockchainName ?: return null return Blockchain.fromId(blockchainName) } diff --git a/app/src/main/java/com/tangem/tap/domain/tasks/ScanNoteTask.kt b/app/src/main/java/com/tangem/tap/domain/tasks/ScanNoteTask.kt index a138f8838f..db67d87dff 100644 --- a/app/src/main/java/com/tangem/tap/domain/tasks/ScanNoteTask.kt +++ b/app/src/main/java/com/tangem/tap/domain/tasks/ScanNoteTask.kt @@ -165,9 +165,7 @@ class ScanNoteTask(val card: Card? = null) : CardSessionRunnable Date: Fri, 30 Jul 2021 15:27:08 +0300 Subject: [PATCH 3/3] Updated on 2026-08-14 --- app/src/main/java/com/tangem/tap/domain/TapWorkarounds.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/tangem/tap/domain/TapWorkarounds.kt b/app/src/main/java/com/tangem/tap/domain/TapWorkarounds.kt index 3766c21c06..b64b862627 100644 --- a/app/src/main/java/com/tangem/tap/domain/TapWorkarounds.kt +++ b/app/src/main/java/com/tangem/tap/domain/TapWorkarounds.kt @@ -42,7 +42,7 @@ object TapWorkarounds { return when (cardData?.batchId) { "AB01" -> Blockchain.Bitcoin "AB02" -> Blockchain.Ethereum - "AB03" -> Blockchain.Cardano + "AB03" -> Blockchain.CardanoShelley "AB04" -> Blockchain.Dogecoin "AB05" -> Blockchain.Binance "AB06" -> Blockchain.XRP