Updated on 2026-08-14

This commit is contained in:
Tangem 2021-03-04 15:49:49 +00:00
commit 8b0bbee2f5
4 changed files with 26 additions and 8 deletions

View file

@ -72,7 +72,7 @@ dependencies {
implementation 'com.google.android.material:material:1.2.1' implementation 'com.google.android.material:material:1.2.1'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.1' coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.1'
implementation 'com.tangem:blockchain:1.141.0' implementation 'com.tangem:blockchain:1.143.0'
implementation 'com.tangem:core:1.101.0' implementation 'com.tangem:core:1.101.0'
implementation 'com.tangem:sdk:1.101.0' implementation 'com.tangem:sdk:1.101.0'

View file

@ -1,5 +1,6 @@
package com.tangem.tap.domain.configurable.config package com.tangem.tap.domain.configurable.config
import com.tangem.blockchain.common.BlockchainSdkConfig
import com.tangem.tangem_sdk_new.ui.animation.VoidCallback import com.tangem.tangem_sdk_new.ui.animation.VoidCallback
import com.tangem.tap.domain.configurable.Loader import com.tangem.tap.domain.configurable.Loader
@ -10,6 +11,7 @@ data class Config(
val coinMarketCapKey: String = "f6622117-c043-47a0-8975-9d673ce484de", val coinMarketCapKey: String = "f6622117-c043-47a0-8975-9d673ce484de",
val moonPayApiKey: String = "pk_test_kc90oYTANy7UQdBavDKGfL4K9l6VEPE", val moonPayApiKey: String = "pk_test_kc90oYTANy7UQdBavDKGfL4K9l6VEPE",
val moonPayApiSecretKey: String = "sk_test_V8w4M19LbDjjYOt170s0tGuvXAgyEb1C", val moonPayApiSecretKey: String = "sk_test_V8w4M19LbDjjYOt170s0tGuvXAgyEb1C",
val blockchainSdkConfig: BlockchainSdkConfig = BlockchainSdkConfig(),
val isWalletPayIdEnabled: Boolean = true, val isWalletPayIdEnabled: Boolean = true,
val isSendingToPayIdEnabled: Boolean = true, val isSendingToPayIdEnabled: Boolean = true,
val isTopUpEnabled: Boolean = false, val isTopUpEnabled: Boolean = false,
@ -78,12 +80,22 @@ class ConfigManager(
config = config.copy( config = config.copy(
coinMarketCapKey = values.coinMarketCapKey, coinMarketCapKey = values.coinMarketCapKey,
moonPayApiKey = values.moonPayApiKey, moonPayApiKey = values.moonPayApiKey,
moonPayApiSecretKey = values.moonPayApiSecretKey moonPayApiSecretKey = values.moonPayApiSecretKey,
blockchainSdkConfig = BlockchainSdkConfig(
blockchairApiKey = values.blockchairApiKey,
blockcypherTokens = values.blockcypherTokens,
infuraProjectId = values.infuraProjectId
)
) )
defaultConfig = defaultConfig.copy( defaultConfig = defaultConfig.copy(
coinMarketCapKey = values.coinMarketCapKey, coinMarketCapKey = values.coinMarketCapKey,
moonPayApiKey = values.moonPayApiKey, moonPayApiKey = values.moonPayApiKey,
moonPayApiSecretKey = values.moonPayApiSecretKey moonPayApiSecretKey = values.moonPayApiSecretKey,
blockchainSdkConfig = BlockchainSdkConfig(
blockchairApiKey = values.blockchairApiKey,
blockcypherTokens = values.blockcypherTokens,
infuraProjectId = values.infuraProjectId
)
) )
} }
@ -92,8 +104,5 @@ class ConfigManager(
const val isSendingToPayIdEnabled = "isSendingToPayIdEnabled" const val isSendingToPayIdEnabled = "isSendingToPayIdEnabled"
const val isCreatingTwinCardsAllowed = "isCreatingTwinCardsAllowed" const val isCreatingTwinCardsAllowed = "isCreatingTwinCardsAllowed"
const val isTopUpEnabled = "isTopUpEnabled" const val isTopUpEnabled = "isTopUpEnabled"
const val coinMarketCapKey = "coinMarketCapKey"
const val moonPayApiKey = "moonPayApiKey"
const val moonPayApiSecretKey = "moonPayApiSecretKey"
} }
} }

View file

@ -15,6 +15,9 @@ class ConfigValueModel(
val coinMarketCapKey: String, val coinMarketCapKey: String,
val moonPayApiKey: String, val moonPayApiKey: String,
val moonPayApiSecretKey: String, val moonPayApiSecretKey: String,
val blockchairApiKey: String?,
val blockcypherTokens: Set<String>?,
val infuraProjectId: String?,
) )
class ConfigModel(val features: FeatureModel?, val configValues: ConfigValueModel?) { class ConfigModel(val features: FeatureModel?, val configValues: ConfigValueModel?) {

View file

@ -4,6 +4,7 @@ import com.tangem.CardSession
import com.tangem.CardSessionRunnable import com.tangem.CardSessionRunnable
import com.tangem.TangemError import com.tangem.TangemError
import com.tangem.TangemSdkError import com.tangem.TangemSdkError
import com.tangem.blockchain.common.BlockchainSdkConfig
import com.tangem.blockchain.common.WalletManager import com.tangem.blockchain.common.WalletManager
import com.tangem.blockchain.common.WalletManagerFactory import com.tangem.blockchain.common.WalletManagerFactory
import com.tangem.commands.CommandResponse import com.tangem.commands.CommandResponse
@ -18,6 +19,7 @@ import com.tangem.common.extensions.toHexString
import com.tangem.tap.domain.TapSdkError import com.tangem.tap.domain.TapSdkError
import com.tangem.tap.domain.twins.TwinCardsManager import com.tangem.tap.domain.twins.TwinCardsManager
import com.tangem.tap.domain.twins.isTwinCard import com.tangem.tap.domain.twins.isTwinCard
import com.tangem.tap.store
import com.tangem.tasks.ScanTask import com.tangem.tasks.ScanTask
data class ScanNoteResponse( data class ScanNoteResponse(
@ -30,6 +32,10 @@ data class ScanNoteResponse(
class ScanNoteTask(val card: Card? = null) : CardSessionRunnable<ScanNoteResponse> { class ScanNoteTask(val card: Card? = null) : CardSessionRunnable<ScanNoteResponse> {
override val requiresPin2 = false override val requiresPin2 = false
private val blockchainSdkConfig = store.state.globalState.configManager?.config
?.blockchainSdkConfig ?: BlockchainSdkConfig()
private val walletManagerFactory = WalletManagerFactory(blockchainSdkConfig)
override fun run(session: CardSession, callback: (result: CompletionResult<ScanNoteResponse>) -> Unit) { override fun run(session: CardSession, callback: (result: CompletionResult<ScanNoteResponse>) -> Unit) {
ScanTask().run(session) { result -> ScanTask().run(session) { result ->
when (result) { when (result) {
@ -53,7 +59,7 @@ class ScanNoteTask(val card: Card? = null) : CardSessionRunnable<ScanNoteRespons
} }
val walletManager = try { val walletManager = try {
WalletManagerFactory.makeWalletManager(card) walletManagerFactory.makeWalletManager(card)
} catch (exception: Exception) { } catch (exception: Exception) {
return@run callback(CompletionResult.Success(ScanNoteResponse(null, card))) return@run callback(CompletionResult.Success(ScanNoteResponse(null, card)))
} }
@ -95,7 +101,7 @@ class ScanNoteTask(val card: Card? = null) : CardSessionRunnable<ScanNoteRespons
if (verified) { if (verified) {
val twinPublicKey = readDataResult.data.issuerData.sliceArray(0 until 65) val twinPublicKey = readDataResult.data.issuerData.sliceArray(0 until 65)
val walletManager = try { val walletManager = try {
WalletManagerFactory.makeMultisigWalletManager(card, twinPublicKey) walletManagerFactory.makeMultisigWalletManager(card, twinPublicKey)
} catch (exception: Exception) { } catch (exception: Exception) {
callback(CompletionResult.Success(ScanNoteResponse(null, card))) callback(CompletionResult.Success(ScanNoteResponse(null, card)))
return@run return@run