Updated on 2026-08-14
This commit is contained in:
commit
8b0bbee2f5
4 changed files with 26 additions and 8 deletions
|
|
@ -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'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -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?) {
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue