Updated on 2026-08-14

This commit is contained in:
Tangem 2025-11-26 11:57:04 +04:00
parent b283f87b1b
commit bf7c1f2f62
13 changed files with 25 additions and 72 deletions

View file

@ -1,8 +0,0 @@
<?xml version="1.0" ?>
<SmellBaseline>
<ManuallySuppressedIssues/>
<CurrentIssues>
<ID>CastNullableToNonNullableType:MockScanResponseFactory.kt$MockScanResponseFactory$as</ID>
<ID>MultilineLambdaItParameter:MockScanResponseFactory.kt$MockScanResponseFactory${ CardDTO.Wallet( CardWallet( publicKey = it.name.toByteArray(), // IMPORTANT: public key must equal to curve name chainCode = null, curve = it, settings = createSettings(), totalSignedHashes = null, remainingSignatures = null, index = 0, isImported = true, hasBackup = true, derivedKeys = emptyMap(), ), ) }</ID>
</CurrentIssues>
</SmellBaseline>

View file

@ -2,11 +2,7 @@ package com.tangem.common.test.domain.card
import com.tangem.common.card.CardWallet
import com.tangem.common.card.FirmwareVersion
import com.tangem.domain.card.configs.CardConfig
import com.tangem.domain.card.configs.EdSingleCurrencyCardConfig
import com.tangem.domain.card.configs.GenericCardConfig
import com.tangem.domain.card.configs.MultiWalletCardConfig
import com.tangem.domain.card.configs.Wallet2CardConfig
import com.tangem.domain.card.configs.*
import com.tangem.domain.models.scan.CardDTO
import com.tangem.domain.models.scan.KeyWalletPublicKey
import com.tangem.domain.models.scan.ProductType
@ -73,12 +69,12 @@ object MockScanResponseFactory {
isAccessCodeSet = false,
isPasscodeSet = null,
supportedCurves = emptyList(),
wallets = cardConfig.mandatoryCurves.map {
wallets = cardConfig.mandatoryCurves.map { curve ->
CardDTO.Wallet(
CardWallet(
publicKey = it.name.toByteArray(), // IMPORTANT: public key must equal to curve name
publicKey = curve.name.toByteArray(), // IMPORTANT: public key must equal to curve name
chainCode = null,
curve = it,
curve = curve,
settings = createSettings(),
totalSignedHashes = null,
remainingSignatures = null,
@ -106,6 +102,8 @@ object MockScanResponseFactory {
private fun createSettings(): CardWallet.Settings {
val constructor = CardWallet.Settings::class.java.declaredConstructors[0]
constructor.isAccessible = true
return constructor.newInstance(false) as CardWallet.Settings
val instance = constructor.newInstance(false) as? CardWallet.Settings
return requireNotNull(instance)
}
}

View file

@ -1,8 +0,0 @@
<?xml version="1.0" ?>
<SmellBaseline>
<ManuallySuppressedIssues/>
<CurrentIssues>
<ID>NullableToStringCall:AmplitudeABTestsManager.kt$AmplitudeABTestsManager$${variant.key}</ID>
<ID>NullableToStringCall:AmplitudeABTestsManager.kt$AmplitudeABTestsManager$${variant.payload}</ID>
</CurrentIssues>
</SmellBaseline>

View file

@ -80,8 +80,8 @@ internal class AmplitudeABTestsManager(
allVariants.entries.forEachIndexed { index, (key, variant) ->
Timber.d("[${index + 1}/${allVariants.size}] Key: $key")
Timber.d(" → Value: ${variant.value ?: "null"}")
Timber.d(" → Payload: ${variant.payload}")
Timber.d(" → Key: ${variant.key}")
Timber.d(" → Payload: ${variant.payload ?: "null"}")
Timber.d(" → Key: ${variant.key ?: "null"}")
Timber.d("-".repeat(SEPARATOR_LENGTH))
}
}

View file

@ -1,8 +0,0 @@
<?xml version="1.0" ?>
<SmellBaseline>
<ManuallySuppressedIssues/>
<CurrentIssues>
<ID>IgnoredReturnValue:DefaultExpressServiceFetcher.kt$DefaultExpressServiceFetcher$put(key = userWalletId, value = default)</ID>
<ID>MultilineLambdaItParameter:DefaultExpressRepository.kt$DefaultExpressRepository${ Timber.w(it, "Unable to fetch express providers") throw it }</ID>
</CurrentIssues>
</SmellBaseline>

View file

@ -35,9 +35,9 @@ internal class DefaultExpressRepository(
).getOrThrow().map(ExpressProviderConverter()::convert)
.filterIf(filterProviderTypes.isNotEmpty()) { it.type in filterProviderTypes }
},
onError = {
Timber.w(it, "Unable to fetch express providers")
throw it
onError = { error ->
Timber.w(error, "Unable to fetch express providers")
throw error
},
)
}

View file

@ -104,7 +104,7 @@ internal class DefaultExpressServiceFetcher @Inject constructor(
initializationStatuses.update { statuses ->
statuses.toMutableMap().apply {
put(key = userWalletId, value = default)
this[userWalletId] = default
}
}

View file

@ -1,7 +1,7 @@
==========================================
Detekt Baseline Updater & Issue Counter
==========================================
Date: 2025-11-25 17:21:16
Date: 2025-11-26 11:32:37
Step 1: Running detekt to check for new issues...
@ -17,13 +17,13 @@ Counting issues in baseline files...
==========================================
Summary:
Total Issues: 1694
Modules with Issues: 78
Average Issues per Module: 21
Total Issues: 1685
Modules with Issues: 73
Average Issues per Module: 23
Progress:
Fixed: 108 out of 1802 (5%)
Remaining: 1694
Fixed: 117 out of 1802 (6%)
Remaining: 1685
==========================================
All Modules with Issues (sorted by count)
@ -104,9 +104,4 @@ features/stories/impl 2
features/create-wallet-selection/impl 2
domain/yield-supply 2
domain/swap 2
domain/nft 2
data/express 2
core/ab-tests 2
common/test 2
features/kyc/impl 1
────────────────────────────────────────────────────────────────

View file

@ -1,8 +0,0 @@
<?xml version="1.0" ?>
<SmellBaseline>
<ManuallySuppressedIssues/>
<CurrentIssues>
<ID>MultilineLambdaItParameter:FilterNFTAvailableNetworksUseCase.kt$FilterNFTAvailableNetworksUseCase${ it.name.contains(searchQuery, ignoreCase = true) || it.currencySymbol.contains(searchQuery, ignoreCase = true) }</ID>
<ID>UseEmptyCounterpart:NFTAnalyticsEvent.kt$NFTAnalyticsEvent$mapOf()</ID>
</CurrentIssues>
</SmellBaseline>

View file

@ -16,8 +16,8 @@ class FilterNFTAvailableNetworksUseCase(
)
}
private fun List<Network>.filter(searchQuery: String) = filter {
it.name.contains(searchQuery, ignoreCase = true) ||
it.currencySymbol.contains(searchQuery, ignoreCase = true)
private fun List<Network>.filter(searchQuery: String) = filter { network ->
network.name.contains(searchQuery, ignoreCase = true) ||
network.currencySymbol.contains(searchQuery, ignoreCase = true)
}
}

View file

@ -2,16 +2,15 @@ package com.tangem.domain.nft.analytics
import com.tangem.core.analytics.models.AnalyticsEvent
import com.tangem.core.analytics.models.AnalyticsParam.Key.BLOCKCHAIN
import com.tangem.core.analytics.models.AnalyticsParam.Key.STANDARD
import com.tangem.core.analytics.models.AnalyticsParam.Key.COLLECTIONS
import com.tangem.core.analytics.models.AnalyticsParam.Key.NFT
import com.tangem.core.analytics.models.AnalyticsParam.Key.NO_COLLECTION
import com.tangem.core.analytics.models.AnalyticsParam.Key.STANDARD
import com.tangem.core.analytics.models.AnalyticsParam.Key.STATE
import kotlin.collections.buildMap
sealed class NFTAnalyticsEvent(
event: String,
params: Map<String, String> = mapOf(),
params: Map<String, String> = emptyMap(),
) : AnalyticsEvent(
category = "NFT",
event = event,

View file

@ -1,7 +0,0 @@
<?xml version="1.0" ?>
<SmellBaseline>
<ManuallySuppressedIssues/>
<CurrentIssues>
<ID>UnnecessaryLet:DefaultKycComponent.kt$DefaultKycComponent$let { launchSdk(startInfo) }</ID>
</CurrentIssues>
</SmellBaseline>

View file

@ -27,7 +27,7 @@ class DefaultKycComponent @AssistedInject constructor(
init {
componentScope.launch {
model.uiState.drop(1).collectLatest { startInfo ->
startInfo?.let { launchSdk(startInfo) }
if (startInfo != null) launchSdk(startInfo)
router.pop()
}
}