diff --git a/app/src/main/java/com/tangem/tap/domain/sdk/impl/DefaultTangemSdkManager.kt b/app/src/main/java/com/tangem/tap/domain/sdk/impl/DefaultTangemSdkManager.kt
index 4ed0eef964..3d5616cc54 100644
--- a/app/src/main/java/com/tangem/tap/domain/sdk/impl/DefaultTangemSdkManager.kt
+++ b/app/src/main/java/com/tangem/tap/domain/sdk/impl/DefaultTangemSdkManager.kt
@@ -86,7 +86,7 @@ internal class DefaultTangemSdkManager(
secureStorage = tangemSdk.secureStorage,
)
}
- override val needEnrollBiometrics: Boolean
+ override val isEnrollBiometricsNeeded: Boolean
get() {
val isNeedEnrollBiometrics = tangemSdk.authenticationManager.needEnrollBiometrics
if (isNeedEnrollBiometrics) {
@@ -102,7 +102,7 @@ internal class DefaultTangemSdkManager(
override val canUseBiometry: Boolean
get() {
- val isCanUseBiometry = tangemSdk.authenticationManager.canAuthenticate || needEnrollBiometrics
+ val isCanUseBiometry = tangemSdk.authenticationManager.canAuthenticate || isEnrollBiometricsNeeded
if (!isCanUseBiometry) {
analyticsErrorHandler.sendErrorEvent(
AnalyticsEvent(
@@ -124,7 +124,7 @@ internal class DefaultTangemSdkManager(
get() = tangemSdk.config.userCodeRequestPolicy
override suspend fun checkNeedEnrollBiometrics(awaitInitialization: Boolean): Boolean {
- return needEnrollBiometrics
+ return isEnrollBiometricsNeeded
}
override suspend fun checkCanUseBiometry(awaitInitialization: Boolean): Boolean {
diff --git a/app/src/main/java/com/tangem/tap/domain/sdk/impl/MockTangemSdkManager.kt b/app/src/main/java/com/tangem/tap/domain/sdk/impl/MockTangemSdkManager.kt
index 0ed38d78c4..46568885f1 100644
--- a/app/src/main/java/com/tangem/tap/domain/sdk/impl/MockTangemSdkManager.kt
+++ b/app/src/main/java/com/tangem/tap/domain/sdk/impl/MockTangemSdkManager.kt
@@ -46,7 +46,7 @@ class MockTangemSdkManager(
override val canUseBiometry: Boolean = false
- override val needEnrollBiometrics: Boolean = false
+ override val isEnrollBiometricsNeeded: Boolean = false
override val keystoreManager = DummyKeystoreManager()
@@ -57,7 +57,7 @@ class MockTangemSdkManager(
override suspend fun checkCanUseBiometry(awaitInitialization: Boolean): Boolean = canUseBiometry
- override suspend fun checkNeedEnrollBiometrics(awaitInitialization: Boolean): Boolean = needEnrollBiometrics
+ override suspend fun checkNeedEnrollBiometrics(awaitInitialization: Boolean): Boolean = isEnrollBiometricsNeeded
override suspend fun scanProduct(
cardId: String?,
diff --git a/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/model/AppSettingsModel.kt b/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/model/AppSettingsModel.kt
index 181ae202e1..28070e544d 100644
--- a/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/model/AppSettingsModel.kt
+++ b/app/src/main/java/com/tangem/tap/features/details/ui/appsettings/model/AppSettingsModel.kt
@@ -115,7 +115,7 @@ internal class AppSettingsModel @Inject constructor(
private fun observeBiometricsStatusChanges() {
flow {
do {
- val isEnrollBiometricsNeeded = runCatching(tangemSdkManager::needEnrollBiometrics).getOrNull()
+ val isEnrollBiometricsNeeded = runCatching(tangemSdkManager::isEnrollBiometricsNeeded).getOrNull()
if (isEnrollBiometricsNeeded != null) {
emit(isEnrollBiometricsNeeded)
}
@@ -366,7 +366,7 @@ internal class AppSettingsModel @Inject constructor(
localState.update { state ->
state.copy(
hasSecuredWallets = userWalletsListRepository.hasSecuredWallets(),
- isEnrollBiometricsNeeded = runCatching(tangemSdkManager::needEnrollBiometrics).getOrNull() == true,
+ isEnrollBiometricsNeeded = runCatching(tangemSdkManager::isEnrollBiometricsNeeded).getOrNull() == true,
isBiometricAuthenticationUsed = walletsRepository.useBiometricAuthentication(),
isAccessCodeRequired = walletsRepository.requireAccessCode(),
)
diff --git a/data/visa/src/main/kotlin/com/tangem/data/visa/config/VisaLibLoader.kt b/data/visa/src/main/kotlin/com/tangem/data/visa/config/VisaLibLoader.kt
index f8935ef774..cbe57eb33e 100644
--- a/data/visa/src/main/kotlin/com/tangem/data/visa/config/VisaLibLoader.kt
+++ b/data/visa/src/main/kotlin/com/tangem/data/visa/config/VisaLibLoader.kt
@@ -32,7 +32,7 @@ internal class VisaLibLoader @Inject constructor(
val config = getOrLoadConfig()
provider = VisaContractInfoProvider.Builder(
- useTestnetRpc = VisaConstants.USE_TEST_ENV,
+ isTestnetRpcEnabled = VisaConstants.USE_TEST_ENV,
bridgeProcessorAddress = if (VisaConstants.USE_TEST_ENV) {
config.testnet.bridgeProcessor
} else {
diff --git a/domain/tokens/models/build.gradle.kts b/domain/tokens/models/build.gradle.kts
index c5a41e9c65..13fb8db9b2 100644
--- a/domain/tokens/models/build.gradle.kts
+++ b/domain/tokens/models/build.gradle.kts
@@ -5,16 +5,16 @@ plugins {
}
dependencies {
- /** Project - Core */
- implementation(projects.core.analytics.models)
- /** Project - Domain */
- implementation(projects.domain.models)
- implementation(projects.domain.txhistory.models)
- implementation(projects.domain.staking.models)
- implementation(projects.domain.stories.models)
+ // region Kotlin
+ api(deps.kotlin.serialization.core)
+ // endregion
- /** Other dependencies */
- implementation(deps.kotlin.serialization)
- implementation(deps.jodatime)
+ // region Core modules
+ api(projects.core.analytics.models)
+ // endregion
+
+ // region Domain models
+ api(projects.domain.models)
+ // endregion
}
\ No newline at end of file
diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml
index c4f8dd88fc..22fc276875 100644
--- a/gradle/dependencies.toml
+++ b/gradle/dependencies.toml
@@ -19,10 +19,13 @@ huaweiPush = "6.11.0.300"
# endregion AppGallery
# region AndroidX
+androidxActivity = "1.10.1"
androidxActivityCompose = "1.8.0"
+androidxAnnotation = "1.9.1"
androidxAppCompat = "1.5.1"
androidxBrowser = "1.4.0"
androidxConstraintLayout = "2.2.1"
+androidxCore = "1.13.1"
androidxKtx = "1.9.0"
androidxSplashScreen = "1.0.1"
androidxFragment = "1.8.5"
@@ -152,10 +155,13 @@ gradle-kotlinpoet = { module = "com.squareup:kotlinpoet", version.ref = "kotlinp
# end region Classpath
# region AndroidX
+androidx-activity = { module = "androidx.activity:activity", version.ref = "androidxActivity" }
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidxActivityCompose" }
+androidx-annotation = { module = "androidx.annotation:annotation", version.ref = "androidxAnnotation" }
androidx-appCompat = { module = "androidx.appcompat:appcompat", version.ref = "androidxAppCompat" }
androidx-browser = { module = "androidx.browser:browser", version.ref = "androidxBrowser" }
androidx-constraintLayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "androidxConstraintLayout" }
+androidx-core = { module = "androidx.core:core", version.ref = "androidxCore" }
androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidxKtx" }
androidx-core-splashScreen = { module = "androidx.core:core-splashscreen", version.ref = "androidxSplashScreen" }
androidx-fragment-ktx = { module = "androidx.fragment:fragment-ktx", version.ref = "androidxFragment" }
@@ -284,6 +290,7 @@ viewBindingDelegate = { module = "com.github.kirich1409:viewbindingpropertydeleg
xmlShimmer = { module = "com.github.skydoves:androidveil", version.ref = "xmlShimmer" }
zxing-qrCore = { module = "com.google.zxing:core", version.ref = "zxingQrCode" }
kotlin-serialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinSerialization" }
+kotlin-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "kotlinSerialization" }
kotlin-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinDatetime" }
arrow-core = { module = "io.arrow-kt:arrow-core", version.ref = "arrow" }
arrow-fx = { module = "io.arrow-kt:arrow-fx-coroutines", version.ref = "arrow" }
diff --git a/libs/auth/build.gradle.kts b/libs/auth/build.gradle.kts
index 685d2b32a2..852e70acac 100644
--- a/libs/auth/build.gradle.kts
+++ b/libs/auth/build.gradle.kts
@@ -8,32 +8,50 @@ plugins {
}
android {
- namespace = "com.tangem.lib.auth"
+ namespace = "com.tangem.libs.auth"
}
+
dependencies {
- /** Core */
+
+ // region DI
+ implementation(deps.hilt.android)
+ kapt(deps.hilt.kapt)
+ // endregion
+
+ // region Kotlin
+ api(deps.kotlin.datetime)
+ api(deps.kotlin.serialization)
+ implementation(deps.kotlin.coroutines)
+ // endregion
+
+ // region Other libraries
+ api(deps.arrow.core)
+ api(deps.okHttp)
+ implementation(deps.moshi)
+ implementation(deps.retrofit)
+ // endregion
+
+ // region Firebase
+ implementation(platform(deps.firebase.bom))
+ implementation(deps.firebase.crashlytics)
+ // endregion
+
+ // region Tangem
+ implementation(tangemDeps.card.android)
+ implementation(tangemDeps.card.core)
+ // endregion
+
+ // region Core modules
implementation(projects.core.configToggles)
implementation(projects.core.datasource)
implementation(projects.core.utils)
+ // endregion
- /** Tangem libraries */
- implementation(tangemDeps.card.core)
- implementation(tangemDeps.card.android)
-
- /** Firebase */
- implementation(platform(deps.firebase.bom))
- implementation(deps.firebase.crashlytics)
-
- /** Other */
- implementation(deps.arrow.core)
-
- /** DI */
- implementation(deps.hilt.android)
- kapt(deps.hilt.kapt)
-
- /** Tests */
- testImplementation(deps.test.junit5)
+ // region Tests
+ testImplementation(deps.androidx.datastore)
testImplementation(deps.test.coroutine)
- testImplementation(deps.test.truth)
+ testImplementation(deps.test.junit5)
testImplementation(deps.test.mockk)
+ testImplementation(deps.test.truth)
+ // endregion
}
\ No newline at end of file
diff --git a/libs/blockchain-sdk/build.gradle.kts b/libs/blockchain-sdk/build.gradle.kts
index 356f1e50bd..a8afd9eab1 100644
--- a/libs/blockchain-sdk/build.gradle.kts
+++ b/libs/blockchain-sdk/build.gradle.kts
@@ -15,45 +15,53 @@ android {
dependencies {
- // region Core modules
- implementation(projects.core.datasource)
- implementation(projects.core.configToggles)
- implementation(projects.core.utils)
- implementation(projects.core.analytics)
- // endregion
-
- api(projects.domain.models)
-
- // region AndroidX libraries
- implementation(deps.androidx.datastore)
- // endregion
-
- // region DI libraries
+ // region DI
implementation(deps.hilt.android)
kapt(deps.hilt.kapt)
// endregion
+ // region Kotlin
+ api(deps.kotlin.coroutines)
+ // endregion
+
+ // region AndroidX
+ implementation(deps.androidx.core)
+ implementation(deps.androidx.datastore)
+ // endregion
+
// region Other libraries
- implementation(deps.kotlin.coroutines)
implementation(deps.moshi)
- implementation(deps.moshi.kotlin)
ksp(deps.moshi.kotlin.codegen)
kaptForObfuscatingVariants(deps.retrofit.response.type.keeper)
// endregion
- // region Firebase libraries
+ // region Firebase
implementation(platform(deps.firebase.bom))
implementation(deps.firebase.analytics)
implementation(deps.firebase.crashlytics)
// endregion
- // region Tangem libraries
- implementation(tangemDeps.blockchain) { exclude(module = "joda-time") }
+ // region Tangem
+ api(tangemDeps.blockchain) { exclude(module = "joda-time") }
implementation(tangemDeps.card.core)
// endregion
+ // region Core modules
+ implementation(projects.core.analytics)
+ implementation(projects.core.analytics.models)
+ api(projects.core.configToggles)
+ api(projects.core.datasource)
+ implementation(projects.core.utils)
+ // endregion
+
+ // region Domain models
+ api(projects.domain.models)
+ // endregion
+
+ // region Tests
testImplementation(deps.test.coroutine)
testImplementation(deps.test.junit5)
testImplementation(deps.test.mockk)
testImplementation(deps.test.truth)
+ // endregion
}
\ No newline at end of file
diff --git a/libs/crypto/build.gradle.kts b/libs/crypto/build.gradle.kts
index 32fe4ebfb3..d922c338ad 100644
--- a/libs/crypto/build.gradle.kts
+++ b/libs/crypto/build.gradle.kts
@@ -1,28 +1,24 @@
plugins {
alias(deps.plugins.android.library)
alias(deps.plugins.kotlin.android)
- alias(deps.plugins.kotlin.kapt)
- alias(deps.plugins.kotlin.serialization)
id("configuration")
}
android {
- namespace = "com.tangem.lib.crypto"
+ namespace = "com.tangem.libs.crypto"
}
+
dependencies {
+ // region Tangem SDKs
+ api(tangemDeps.blockchain)
+ api(tangemDeps.card.core)
+ // endregion
+
// region Project
implementation(projects.core.utils)
- implementation(projects.libs.blockchainSdk)
- // endregion
-
- // region Tangem SDKs
- implementation(tangemDeps.card.core)
- implementation(tangemDeps.blockchain)
- // endregion
-
- // region Other deps
- implementation(deps.kotlin.coroutines)
+ api(projects.domain.models)
+ api(projects.libs.blockchainSdk)
// endregion
// region Test libraries
diff --git a/libs/tangem-sdk-api/build.gradle.kts b/libs/tangem-sdk-api/build.gradle.kts
index 813c8f51e6..7ac9a35825 100644
--- a/libs/tangem-sdk-api/build.gradle.kts
+++ b/libs/tangem-sdk-api/build.gradle.kts
@@ -7,24 +7,39 @@ plugins {
}
android {
- namespace = "com.tangem.legacy"
+ namespace = "com.tangem.libs.tangem_sdk_api"
}
dependencies {
- implementation(projects.domain.models)
- implementation(projects.domain.visa.models)
- api(projects.core.analytics.models)
- implementation(projects.core.configToggles)
- implementation(projects.core.res)
+ // region DI
+ implementation(deps.hilt.android)
+ kapt(deps.hilt.kapt)
+ // endregion
- /** Tangem libraries */
- implementation(tangemDeps.card.core)
+ // region AndroidX
+ api(deps.androidx.activity)
+ api(deps.androidx.annotation)
+ // endregion
+
+ // region Other libraries
+ api(deps.arrow.core)
+ // endregion
+
+ // region Tangem
+ api(tangemDeps.card.core)
implementation(tangemDeps.card.android) {
exclude(module = "joda-time")
}
+ // endregion
- /** DI */
- implementation(deps.hilt.android)
- kapt(deps.hilt.kapt)
+ // region Core modules
+ api(projects.core.analytics.models)
+ implementation(projects.core.configToggles)
+ // endregion
+
+ // region Domain models
+ api(projects.domain.models)
+ api(projects.domain.visa.models)
+ // endregion
}
\ No newline at end of file
diff --git a/libs/tangem-sdk-api/detekt-baseline-debug.xml b/libs/tangem-sdk-api/detekt-baseline-debug.xml
deleted file mode 100644
index 98aedb65f1..0000000000
--- a/libs/tangem-sdk-api/detekt-baseline-debug.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
- BooleanPropertyNaming:TangemSdkManager.kt$TangemSdkManager$val needEnrollBiometrics: Boolean
- ObjectExtendsThrowable:TapErrors.kt$TapError$NoInternetConnection : TapError
- ObjectExtendsThrowable:TapErrors.kt$TapError$UnknownError : TapError
- ObjectExtendsThrowable:TapErrors.kt$TapError.WalletManager$BlockchainIsUnreachableTryLater : TapError
- ObjectExtendsThrowable:TapErrors.kt$TapSdkError$CardForDifferentApp : TapSdkError
- ObjectExtendsThrowable:TapErrors.kt$TapSdkError$CardNotSupportedByRelease : TapSdkError
- UseEmptyCounterpart:CreateProductWalletTaskResponse.kt$CreateProductWalletTaskResponse$mapOf()
-
-
diff --git a/libs/tangem-sdk-api/src/main/kotlin/com/tangem/sdk/api/CreateProductWalletTaskResponse.kt b/libs/tangem-sdk-api/src/main/kotlin/com/tangem/sdk/api/CreateProductWalletTaskResponse.kt
index e57c41c193..8dac05d1c1 100644
--- a/libs/tangem-sdk-api/src/main/kotlin/com/tangem/sdk/api/CreateProductWalletTaskResponse.kt
+++ b/libs/tangem-sdk-api/src/main/kotlin/com/tangem/sdk/api/CreateProductWalletTaskResponse.kt
@@ -9,12 +9,12 @@ import com.tangem.operations.derivation.ExtendedPublicKeysMap
data class CreateProductWalletTaskResponse(
val card: CardDTO,
- val derivedKeys: Map = mapOf(),
+ val derivedKeys: Map = emptyMap(),
val primaryCard: PrimaryCard? = null,
) : CommandResponse {
constructor(
card: Card,
- derivedKeys: Map = mapOf(),
+ derivedKeys: Map = emptyMap(),
primaryCard: PrimaryCard? = null,
) : this(
card = CardDTO(card),
diff --git a/libs/tangem-sdk-api/src/main/kotlin/com/tangem/sdk/api/TangemSdkManager.kt b/libs/tangem-sdk-api/src/main/kotlin/com/tangem/sdk/api/TangemSdkManager.kt
index 9ea0e0b15a..ba87204980 100644
--- a/libs/tangem-sdk-api/src/main/kotlin/com/tangem/sdk/api/TangemSdkManager.kt
+++ b/libs/tangem-sdk-api/src/main/kotlin/com/tangem/sdk/api/TangemSdkManager.kt
@@ -34,7 +34,7 @@ interface TangemSdkManager {
val canUseBiometry: Boolean
- val needEnrollBiometrics: Boolean
+ val isEnrollBiometricsNeeded: Boolean
val keystoreManager: KeystoreManager
diff --git a/libs/tangem-sdk-api/src/main/kotlin/com/tangem/sdk/api/TapErrors.kt b/libs/tangem-sdk-api/src/main/kotlin/com/tangem/sdk/api/TapErrors.kt
deleted file mode 100644
index b4fefc6ca6..0000000000
--- a/libs/tangem-sdk-api/src/main/kotlin/com/tangem/sdk/api/TapErrors.kt
+++ /dev/null
@@ -1,49 +0,0 @@
-package com.tangem.sdk.api
-
-import androidx.annotation.StringRes
-import com.tangem.common.core.TangemError
-import com.tangem.legacy.R
-
-interface TapErrors
-
-interface ArgError {
- val args: List?
-}
-
-interface MultiMessageError : TapErrors {
- val errorList: List
- val builder: (List) -> String
-}
-
-sealed class TapError(
- @StringRes val messageResource: Int,
- override val args: List? = null,
-) : Throwable(), TapErrors, ArgError {
-
- object UnknownError : TapError(R.string.send_error_unknown)
- open class CustomError(val customMessage: String) : TapError(R.string.common_custom_string, listOf(customMessage))
-
- object NoInternetConnection : TapError(R.string.wallet_notification_no_internet)
-
- sealed class WalletManager {
- class NoAccountError(amountToCreateAccount: String) : CustomError(amountToCreateAccount)
- class InternalError(message: String) : CustomError(message)
- object BlockchainIsUnreachableTryLater : TapError(R.string.wallet_balance_blockchain_unreachable_try_later)
- }
-}
-
-sealed class TapSdkError(override val messageResId: Int?) : TangemError(code = 50100) {
- override var customMessage: String = code.toString()
-
- object CardForDifferentApp : TapSdkError(R.string.alert_unsupported_card)
- object CardNotSupportedByRelease : TapSdkError(R.string.error_wrong_card_type)
-}
-
-fun TapErrors.assembleErrors(): MutableList?>> {
- val idList = mutableListOf?>>()
- when (this) {
- is MultiMessageError -> this.errorList.forEach { idList.addAll(it.assembleErrors()) }
- is TapError -> idList.add(Pair(this.messageResource, this.args))
- }
- return idList
-}
\ No newline at end of file
diff --git a/libs/visa/build.gradle.kts b/libs/visa/build.gradle.kts
index c3a3b8674b..7ea69a495d 100644
--- a/libs/visa/build.gradle.kts
+++ b/libs/visa/build.gradle.kts
@@ -1,10 +1,6 @@
-import com.tangem.plugin.configuration.configurations.extension.kaptForObfuscatingVariants
-
plugins {
alias(deps.plugins.android.library)
alias(deps.plugins.kotlin.android)
- alias(deps.plugins.kotlin.kapt)
- alias(deps.plugins.ksp)
id("configuration")
}
@@ -20,23 +16,19 @@ android {
dependencies {
- /** Project */
- implementation(projects.core.utils)
- implementation(projects.core.datasource)
- implementation(projects.data.common)
+ // region Kotlin
+ implementation(deps.kotlin.coroutines)
+ // endregion
- /** Libs - Network */
- implementation(deps.moshi.kotlin)
+ // region Other libraries
+ implementation(deps.arrow.fx)
+ api(deps.jodatime)
implementation(deps.okHttp)
implementation(deps.okHttp.prettyLogging)
- implementation(deps.retrofit)
- implementation(deps.retrofit.moshi)
- ksp(deps.moshi.kotlin.codegen)
- kaptForObfuscatingVariants(deps.retrofit.response.type.keeper)
-
- /** Libs - Other */
implementation(deps.web3j.core)
- implementation(deps.kotlin.coroutines)
- implementation(deps.arrow.fx)
- implementation(deps.jodatime)
+ // endregion
+
+ // region Core modules
+ api(projects.core.utils)
+ // endregion
}
\ No newline at end of file
diff --git a/libs/visa/detekt-baseline-debug.xml b/libs/visa/detekt-baseline-debug.xml
deleted file mode 100644
index 084b518b4e..0000000000
--- a/libs/visa/detekt-baseline-debug.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- BooleanPropertyNaming:VisaContractInfoProvider.kt$VisaContractInfoProvider.Builder$private val useTestnetRpc: Boolean
- NamedArguments:DefaultVisaContractInfoProvider.kt$DefaultVisaContractInfoProvider$parZip( dispatchers.io, { fetchToken(paymentAccount) }, { fetchBalances(paymentAccount, paymentToken) }, { fetchLimits(paymentAccount, paymentToken, walletAddress) }, { token, balances, (oldLimit, newLimit, changeDate) -> VisaContractInfo( token = token, balances = balances, oldLimits = oldLimit, newLimits = newLimit, paymentAccountAddress = paymentAccount.contractAddress, limitsChangeDate = changeDate, ) }, )
- NamedArguments:DefaultVisaContractInfoProvider.kt$DefaultVisaContractInfoProvider$parZip( dispatchers.io, { loadPaymentAccount(walletAddress = walletAddress, paymentAccountAddress = paymentAccountAddress) }, { loadPaymentTokenInfo() }, { paymentAccount, paymentToken -> fetchBalancesAndLimits( paymentAccount = paymentAccount, paymentToken = paymentToken, walletAddress = walletAddress, ) }, )
- NamedArguments:DefaultVisaContractInfoProvider.kt$DefaultVisaContractInfoProvider$parZip( dispatchers.io, { paymentToken.contract.balanceOf(paymentAccount.contractAddress).send() }, { paymentAccount.verifiedBalance().send() }, { paymentAccount.availableForPayment().send() }, { paymentAccount.availableForWithdrawal().send() }, { paymentAccount.availableForDebtPayment().send() }, { paymentAccount.blockedAmount().send() }, { paymentAccount.debtAmount().send() }, ) { total, verified, payment, withdrawal, debtPayment, blocked, debt -> val decimals = paymentToken.decimals Balances( total = total.toBigDecimal(decimals), verified = verified.toBigDecimal(decimals), available = Balances.Available( forPayment = payment.toBigDecimal(decimals), forWithdrawal = withdrawal.toBigDecimal(decimals), forDebtPayment = debtPayment.toBigDecimal(decimals), ), blocked = blocked.toBigDecimal(decimals), debt = debt.toBigDecimal(decimals), ) }
- NamedArguments:DefaultVisaContractInfoProvider.kt$DefaultVisaContractInfoProvider$parZip( dispatchers.io, { paymentTokenContract.name().send() }, { paymentTokenContract.symbol().send() }, { paymentTokenContract.decimals().send() }, ) { name, symbol, decimals -> Token( name = name, symbol = symbol, decimals = decimals.toInt(), address = paymentTokenContractAddress, ) }
-
-
diff --git a/libs/visa/src/main/kotlin/com/tangem/lib/visa/DefaultVisaContractInfoProvider.kt b/libs/visa/src/main/kotlin/com/tangem/lib/visa/DefaultVisaContractInfoProvider.kt
index 957b817ab8..ac3f2196a2 100644
--- a/libs/visa/src/main/kotlin/com/tangem/lib/visa/DefaultVisaContractInfoProvider.kt
+++ b/libs/visa/src/main/kotlin/com/tangem/lib/visa/DefaultVisaContractInfoProvider.kt
@@ -20,6 +20,10 @@ internal class DefaultVisaContractInfoProvider(
private val dispatchers: CoroutineDispatcherProvider,
) : VisaContractInfoProvider {
+ // NamedArguments flags the parZip(...) invocation itself (a dispatcher + several positional
+ // supplier lambdas + a result combiner); those positional lambda parameters can't be meaningfully
+ // named, so it is suppressed here. Calls inside the lambdas still use named arguments.
+ @Suppress("NamedArguments")
override suspend fun getContractInfo(walletAddress: String, paymentAccountAddress: String?): VisaContractInfo {
return parZip(
dispatchers.io,
@@ -71,6 +75,7 @@ internal class DefaultVisaContractInfoProvider(
)
}
+ @Suppress("NamedArguments") // parZip(...) call: positional supplier/combiner lambdas, not meaningfully nameable
private suspend fun fetchBalancesAndLimits(
paymentAccount: TangemPaymentAccount,
paymentToken: PaymentTokenInfo,
@@ -92,6 +97,7 @@ internal class DefaultVisaContractInfoProvider(
},
)
+ @Suppress("NamedArguments") // parZip(...) call: positional supplier/combiner lambdas, not meaningfully nameable
private suspend fun fetchToken(paymentAccount: TangemPaymentAccount): Token {
val paymentTokenContractAddress = paymentAccount.paymentToken().send()
val paymentTokenContract = ERC20.load(paymentTokenContractAddress, web3j, transactionManager, gasProvider)
@@ -111,6 +117,7 @@ internal class DefaultVisaContractInfoProvider(
}
}
+ @Suppress("NamedArguments") // parZip(...) call: positional supplier/combiner lambdas, not meaningfully nameable
private suspend fun fetchBalances(paymentAccount: TangemPaymentAccount, paymentToken: PaymentTokenInfo): Balances {
return parZip(
dispatchers.io,
diff --git a/libs/visa/src/main/kotlin/com/tangem/lib/visa/VisaContractInfoProvider.kt b/libs/visa/src/main/kotlin/com/tangem/lib/visa/VisaContractInfoProvider.kt
index 91a6527263..28c4c7b5a3 100644
--- a/libs/visa/src/main/kotlin/com/tangem/lib/visa/VisaContractInfoProvider.kt
+++ b/libs/visa/src/main/kotlin/com/tangem/lib/visa/VisaContractInfoProvider.kt
@@ -31,7 +31,7 @@ interface VisaContractInfoProvider {
suspend fun getContractInfo(walletAddress: String, paymentAccountAddress: String?): VisaContractInfo
class Builder(
- private val useTestnetRpc: Boolean,
+ private val isTestnetRpcEnabled: Boolean,
private val bridgeProcessorAddress: String,
private val paymentAccountRegistryAddress: String,
private val isNetworkLoggingEnabled: Boolean,
@@ -59,7 +59,7 @@ interface VisaContractInfoProvider {
}
private fun createWeb3J(): Web3j {
- val baseUrl: String = if (useTestnetRpc) Constants.TESTNET_RPC_URL else Constants.MAINNET_RPC_URL
+ val baseUrl: String = if (isTestnetRpcEnabled) Constants.TESTNET_RPC_URL else Constants.MAINNET_RPC_URL
val httpClient = OkHttpClient.Builder().apply {
connectTimeout(networkTimeoutSeconds, TimeUnit.SECONDS)