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)