Updated on 2026-08-14

This commit is contained in:
Tangem 2025-04-30 18:15:58 +04:00
parent f1d75ca385
commit 57e6e7a16d
8 changed files with 30 additions and 3 deletions

View file

@ -8,9 +8,9 @@ import com.tangem.common.card.EllipticCurve
import com.tangem.common.card.EncryptionMode
import com.tangem.crypto.hdWallet.DerivationPath
import com.tangem.crypto.hdWallet.bip32.ExtendedPublicKey
import com.tangem.common.card.FirmwareVersion as SdkFirmwareVersion
import com.tangem.operations.attestation.Attestation
import java.util.Date
import com.tangem.common.card.FirmwareVersion as SdkFirmwareVersion
// TODO: Move to :domain:card:models
/**
@ -189,6 +189,8 @@ data class CardDTO(
minor != other.minor -> minor.compareTo(other.minor)
else -> patch.compareTo(other.patch)
}
fun toSdkFirmwareVersion() = SdkFirmwareVersion(major = major, minor = minor)
}
@JsonClass(generateAdapter = true)

View file

@ -1,5 +1,6 @@
package com.tangem.domain.wallets.usecase
import com.tangem.common.card.FirmwareVersion
import com.tangem.common.extensions.toHexString
import com.tangem.common.services.Result
import com.tangem.domain.common.TwinCardNumber
@ -30,11 +31,19 @@ class GetCardImageUseCase(
* @param cardId card id
* @param cardPublicKey card public key
*/
suspend operator fun invoke(cardId: String, cardPublicKey: ByteArray, size: ArtworkSize): ArtworkModel {
suspend operator fun invoke(
cardId: String,
cardPublicKey: ByteArray,
manufacturerName: String,
firmwareVersion: FirmwareVersion,
size: ArtworkSize,
): ArtworkModel {
return if (cardSdkFeatureToggles.isNewArtworkLoadingEnabled) {
val result = cardArtworksProvider.getArtwork(
cardId = cardId,
cardPublicKey = cardPublicKey,
manufacturerName = manufacturerName,
firmwareVersion = firmwareVersion,
size = size,
)
when (result) {

View file

@ -87,6 +87,8 @@ internal class UserWalletsFetcher @Inject constructor(
wallets.forEach { wallet ->
val artwork = getCardImageUseCase(
cardId = wallet.cardId,
manufacturerName = wallet.scanResponse.card.manufacturer.name,
firmwareVersion = wallet.scanResponse.card.firmwareVersion.toSdkFirmwareVersion(),
cardPublicKey = wallet.scanResponse.card.cardPublicKey,
size = ArtworkSize.SMALL,
)

View file

@ -1,5 +1,7 @@
package com.tangem.features.onboarding.v2.multiwallet.impl.child
import com.tangem.common.card.Card.Manufacturer
import com.tangem.common.card.FirmwareVersion
import com.tangem.features.onboarding.v2.multiwallet.api.OnboardingMultiWalletComponent
import com.tangem.features.onboarding.v2.multiwallet.impl.MultiWalletInnerNavigationState
import com.tangem.features.onboarding.v2.multiwallet.impl.model.OnboardingMultiWalletState
@ -18,6 +20,8 @@ class MultiWalletChildParams(
data class BackupCardInfo(
val cardId: String,
val cardPublicKey: ByteArray,
val manufacturer: Manufacturer,
val firmwareVersion: FirmwareVersion,
) {
override fun equals(other: Any?): Boolean {
if (this === other) return true

View file

@ -206,6 +206,8 @@ class MultiWalletBackupModel @Inject constructor(
val backupCardInfo = MultiWalletChildParams.Backup.BackupCardInfo(
cardId = result.data.cardId,
cardPublicKey = result.data.cardPublicKey,
manufacturer = result.data.manufacturer,
firmwareVersion = result.data.firmwareVersion,
)
params.backups.update {
it.copy(

View file

@ -86,6 +86,8 @@ internal class OnboardingMultiWalletModel @Inject constructor(
cardId = backup.card2.cardId,
cardPublicKey = backup.card2.cardPublicKey,
size = ArtworkSize.LARGE,
manufacturerName = backup.card2.manufacturer.name,
firmwareVersion = backup.card2.firmwareVersion,
)
_uiState.update {
it.copy(artwork2 = ArtworkUM(artwork.verifiedArtwork, artwork.defaultUrl))
@ -97,6 +99,8 @@ internal class OnboardingMultiWalletModel @Inject constructor(
cardId = backup.card3.cardId,
cardPublicKey = backup.card3.cardPublicKey,
size = ArtworkSize.LARGE,
manufacturerName = backup.card3.manufacturer.name,
firmwareVersion = backup.card3.firmwareVersion,
)
_uiState.update {
it.copy(artwork3 = ArtworkUM(artwork.verifiedArtwork, artwork.defaultUrl))
@ -170,6 +174,8 @@ internal class OnboardingMultiWalletModel @Inject constructor(
cardId = params.scanResponse.card.cardId,
cardPublicKey = params.scanResponse.card.cardPublicKey,
size = ArtworkSize.LARGE,
manufacturerName = params.scanResponse.card.manufacturer.name,
firmwareVersion = params.scanResponse.card.firmwareVersion.toSdkFirmwareVersion(),
)
_uiState.update {

View file

@ -94,6 +94,8 @@ internal class OnboardingNoteModel @Inject constructor(
cardId = cardInfo.cardId,
cardPublicKey = cardInfo.cardPublicKey,
size = ArtworkSize.LARGE,
manufacturerName = cardInfo.manufacturer.name,
firmwareVersion = cardInfo.firmwareVersion.toSdkFirmwareVersion(),
)
_uiState.update {
it.copy(cardArtwork = ArtworkUM(artwork.verifiedArtwork, artwork.defaultUrl))

View file

@ -7,7 +7,7 @@
tangemBlockchainSdk = "releases-5.24.0-1056"
#tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds
tangemCardSdk = "releases-5.24.0-466"
tangemCardSdk = "releases-5.24.0-467"
#tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^
tangemVico = "2.0.0-alpha.25-tangem12"
#tangemVico = "0.0.1" # Keep it! - used for local builds ^