Updated on 2026-08-14
This commit is contained in:
parent
b283f87b1b
commit
bf7c1f2f62
13 changed files with 25 additions and 72 deletions
|
|
@ -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>
|
|
||||||
|
|
@ -2,11 +2,7 @@ package com.tangem.common.test.domain.card
|
||||||
|
|
||||||
import com.tangem.common.card.CardWallet
|
import com.tangem.common.card.CardWallet
|
||||||
import com.tangem.common.card.FirmwareVersion
|
import com.tangem.common.card.FirmwareVersion
|
||||||
import com.tangem.domain.card.configs.CardConfig
|
import com.tangem.domain.card.configs.*
|
||||||
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.models.scan.CardDTO
|
import com.tangem.domain.models.scan.CardDTO
|
||||||
import com.tangem.domain.models.scan.KeyWalletPublicKey
|
import com.tangem.domain.models.scan.KeyWalletPublicKey
|
||||||
import com.tangem.domain.models.scan.ProductType
|
import com.tangem.domain.models.scan.ProductType
|
||||||
|
|
@ -73,12 +69,12 @@ object MockScanResponseFactory {
|
||||||
isAccessCodeSet = false,
|
isAccessCodeSet = false,
|
||||||
isPasscodeSet = null,
|
isPasscodeSet = null,
|
||||||
supportedCurves = emptyList(),
|
supportedCurves = emptyList(),
|
||||||
wallets = cardConfig.mandatoryCurves.map {
|
wallets = cardConfig.mandatoryCurves.map { curve ->
|
||||||
CardDTO.Wallet(
|
CardDTO.Wallet(
|
||||||
CardWallet(
|
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,
|
chainCode = null,
|
||||||
curve = it,
|
curve = curve,
|
||||||
settings = createSettings(),
|
settings = createSettings(),
|
||||||
totalSignedHashes = null,
|
totalSignedHashes = null,
|
||||||
remainingSignatures = null,
|
remainingSignatures = null,
|
||||||
|
|
@ -106,6 +102,8 @@ object MockScanResponseFactory {
|
||||||
private fun createSettings(): CardWallet.Settings {
|
private fun createSettings(): CardWallet.Settings {
|
||||||
val constructor = CardWallet.Settings::class.java.declaredConstructors[0]
|
val constructor = CardWallet.Settings::class.java.declaredConstructors[0]
|
||||||
constructor.isAccessible = true
|
constructor.isAccessible = true
|
||||||
return constructor.newInstance(false) as CardWallet.Settings
|
|
||||||
|
val instance = constructor.newInstance(false) as? CardWallet.Settings
|
||||||
|
return requireNotNull(instance)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -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>
|
|
||||||
|
|
@ -80,8 +80,8 @@ internal class AmplitudeABTestsManager(
|
||||||
allVariants.entries.forEachIndexed { index, (key, variant) ->
|
allVariants.entries.forEachIndexed { index, (key, variant) ->
|
||||||
Timber.d("[${index + 1}/${allVariants.size}] Key: $key")
|
Timber.d("[${index + 1}/${allVariants.size}] Key: $key")
|
||||||
Timber.d(" → Value: ${variant.value ?: "null"}")
|
Timber.d(" → Value: ${variant.value ?: "null"}")
|
||||||
Timber.d(" → Payload: ${variant.payload}")
|
Timber.d(" → Payload: ${variant.payload ?: "null"}")
|
||||||
Timber.d(" → Key: ${variant.key}")
|
Timber.d(" → Key: ${variant.key ?: "null"}")
|
||||||
Timber.d("-".repeat(SEPARATOR_LENGTH))
|
Timber.d("-".repeat(SEPARATOR_LENGTH))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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>
|
|
||||||
|
|
@ -35,9 +35,9 @@ internal class DefaultExpressRepository(
|
||||||
).getOrThrow().map(ExpressProviderConverter()::convert)
|
).getOrThrow().map(ExpressProviderConverter()::convert)
|
||||||
.filterIf(filterProviderTypes.isNotEmpty()) { it.type in filterProviderTypes }
|
.filterIf(filterProviderTypes.isNotEmpty()) { it.type in filterProviderTypes }
|
||||||
},
|
},
|
||||||
onError = {
|
onError = { error ->
|
||||||
Timber.w(it, "Unable to fetch express providers")
|
Timber.w(error, "Unable to fetch express providers")
|
||||||
throw it
|
throw error
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -104,7 +104,7 @@ internal class DefaultExpressServiceFetcher @Inject constructor(
|
||||||
|
|
||||||
initializationStatuses.update { statuses ->
|
initializationStatuses.update { statuses ->
|
||||||
statuses.toMutableMap().apply {
|
statuses.toMutableMap().apply {
|
||||||
put(key = userWalletId, value = default)
|
this[userWalletId] = default
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
==========================================
|
==========================================
|
||||||
Detekt Baseline Updater & Issue Counter
|
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...
|
Step 1: Running detekt to check for new issues...
|
||||||
|
|
||||||
|
|
@ -17,13 +17,13 @@ Counting issues in baseline files...
|
||||||
==========================================
|
==========================================
|
||||||
|
|
||||||
Summary:
|
Summary:
|
||||||
Total Issues: 1694
|
Total Issues: 1685
|
||||||
Modules with Issues: 78
|
Modules with Issues: 73
|
||||||
Average Issues per Module: 21
|
Average Issues per Module: 23
|
||||||
|
|
||||||
Progress:
|
Progress:
|
||||||
Fixed: 108 out of 1802 (5%)
|
Fixed: 117 out of 1802 (6%)
|
||||||
Remaining: 1694
|
Remaining: 1685
|
||||||
|
|
||||||
==========================================
|
==========================================
|
||||||
All Modules with Issues (sorted by count)
|
All Modules with Issues (sorted by count)
|
||||||
|
|
@ -104,9 +104,4 @@ features/stories/impl 2
|
||||||
features/create-wallet-selection/impl 2
|
features/create-wallet-selection/impl 2
|
||||||
domain/yield-supply 2
|
domain/yield-supply 2
|
||||||
domain/swap 2
|
domain/swap 2
|
||||||
domain/nft 2
|
|
||||||
data/express 2
|
|
||||||
core/ab-tests 2
|
|
||||||
common/test 2
|
|
||||||
features/kyc/impl 1
|
|
||||||
────────────────────────────────────────────────────────────────
|
────────────────────────────────────────────────────────────────
|
||||||
|
|
@ -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>
|
|
||||||
|
|
@ -16,8 +16,8 @@ class FilterNFTAvailableNetworksUseCase(
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun List<Network>.filter(searchQuery: String) = filter {
|
private fun List<Network>.filter(searchQuery: String) = filter { network ->
|
||||||
it.name.contains(searchQuery, ignoreCase = true) ||
|
network.name.contains(searchQuery, ignoreCase = true) ||
|
||||||
it.currencySymbol.contains(searchQuery, ignoreCase = true)
|
network.currencySymbol.contains(searchQuery, ignoreCase = true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -2,16 +2,15 @@ package com.tangem.domain.nft.analytics
|
||||||
|
|
||||||
import com.tangem.core.analytics.models.AnalyticsEvent
|
import com.tangem.core.analytics.models.AnalyticsEvent
|
||||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.BLOCKCHAIN
|
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.COLLECTIONS
|
||||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.NFT
|
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.NO_COLLECTION
|
||||||
|
import com.tangem.core.analytics.models.AnalyticsParam.Key.STANDARD
|
||||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.STATE
|
import com.tangem.core.analytics.models.AnalyticsParam.Key.STATE
|
||||||
import kotlin.collections.buildMap
|
|
||||||
|
|
||||||
sealed class NFTAnalyticsEvent(
|
sealed class NFTAnalyticsEvent(
|
||||||
event: String,
|
event: String,
|
||||||
params: Map<String, String> = mapOf(),
|
params: Map<String, String> = emptyMap(),
|
||||||
) : AnalyticsEvent(
|
) : AnalyticsEvent(
|
||||||
category = "NFT",
|
category = "NFT",
|
||||||
event = event,
|
event = event,
|
||||||
|
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
<?xml version="1.0" ?>
|
|
||||||
<SmellBaseline>
|
|
||||||
<ManuallySuppressedIssues/>
|
|
||||||
<CurrentIssues>
|
|
||||||
<ID>UnnecessaryLet:DefaultKycComponent.kt$DefaultKycComponent$let { launchSdk(startInfo) }</ID>
|
|
||||||
</CurrentIssues>
|
|
||||||
</SmellBaseline>
|
|
||||||
|
|
@ -27,7 +27,7 @@ class DefaultKycComponent @AssistedInject constructor(
|
||||||
init {
|
init {
|
||||||
componentScope.launch {
|
componentScope.launch {
|
||||||
model.uiState.drop(1).collectLatest { startInfo ->
|
model.uiState.drop(1).collectLatest { startInfo ->
|
||||||
startInfo?.let { launchSdk(startInfo) }
|
if (startInfo != null) launchSdk(startInfo)
|
||||||
router.pop()
|
router.pop()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue