From e2af488b329a001779c6f3128243f9b7e157cd33 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 30 Jun 2026 19:47:48 +0400 Subject: [PATCH] Updated on 2026-08-14 --- app/build.gradle.kts | 1 + data/onramp/build.gradle.kts | 81 ++++++++++++--------- domain/account/build.gradle.kts | 28 +++++-- domain/address-book/build.gradle.kts | 40 ++++++---- domain/analytics/build.gradle.kts | 17 ++--- domain/app-currency/build.gradle.kts | 15 +++- domain/app-currency/models/build.gradle.kts | 2 +- domain/app-theme/build.gradle.kts | 15 +++- domain/appsflyer/build.gradle.kts | 4 - domain/assetsdiscovery/build.gradle.kts | 31 ++++---- domain/balance-hiding/build.gradle.kts | 16 +++- domain/blockaid/build.gradle.kts | 18 +++-- domain/blockaid/models/build.gradle.kts | 6 -- domain/card/build.gradle.kts | 53 +++++++++----- domain/common/build.gradle.kts | 4 - domain/core/build.gradle.kts | 5 +- domain/demo/build.gradle.kts | 2 +- domain/demo/models/build.gradle.kts | 3 +- domain/dynamic-addresses/build.gradle.kts | 37 +++++++--- gradle/dependencies.toml | 4 + 20 files changed, 232 insertions(+), 150 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 838f2eac7c..2492476d2f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -393,6 +393,7 @@ dependencies { kapt(deps.hilt.compilerx) /** Other libraries */ + implementation(deps.arrow.fx) implementation(deps.kotlin.immutable.collections) implementation(deps.material) implementation(deps.googlePlay.review) diff --git a/data/onramp/build.gradle.kts b/data/onramp/build.gradle.kts index 7a531ff97e..39ae874772 100644 --- a/data/onramp/build.gradle.kts +++ b/data/onramp/build.gradle.kts @@ -14,52 +14,61 @@ android { } dependencies { - /** Core modules */ - implementation(projects.core.datasource) - implementation(projects.core.utils) - implementation(projects.core.analytics) - - /** Common modules */ - implementation(projects.data.common) - - /** Domain modules */ - implementation(projects.domain.account) - implementation(projects.domain.onramp) - implementation(projects.domain.legacy) - implementation(projects.domain.card) - implementation(projects.domain.walletManager) - implementation(projects.domain.appTheme.models) - implementation(projects.domain.models) - implementation(projects.domain.express.models) - implementation(projects.domain.txhistory) - - // region DI - - implementation(deps.hilt.android) - kapt(deps.hilt.kapt) + // region Kotlin + implementation(deps.kotlin.coroutines) + implementation(deps.kotlin.serialization) // endregion - // region Others dependencies - + // region Other libraries + api(deps.moshi) implementation(deps.androidx.datastore) + implementation(deps.arrow.core) implementation(deps.jodatime) - implementation(deps.kotlin.coroutines) - implementation(deps.kotlin.immutable.collections) - implementation(deps.moshi) - implementation(deps.moshi.kotlin) ksp(deps.moshi.kotlin.codegen) kaptForObfuscatingVariants(deps.retrofit.response.type.keeper) - implementation(deps.kotlin.serialization) + // endregion - - implementation(projects.libs.blockchainSdk) - implementation(projects.libs.crypto) - - implementation(tangemDeps.card.core) - implementation(tangemDeps.blockchain) { + // region Tangem SDK + api(tangemDeps.blockchain) { exclude(module = "joda-time") } + implementation(tangemDeps.card.core) + // endregion + // region DI + implementation(deps.hilt.android) + kapt(deps.hilt.kapt) + // endregion + + // region Core modules + api(projects.core.analytics) + api(projects.core.datasource) + api(projects.core.utils) + implementation(projects.core.analytics.models) + // endregion + + // region Data modules + api(projects.data.common) + // endregion + + // region Domain modules + api(projects.domain.common) + api(projects.domain.models) + api(projects.domain.onramp) + api(projects.domain.txhistory) + api(projects.domain.walletManager) + implementation(projects.domain.card) + runtimeOnly(projects.domain.account) + // endregion + + // region Domain models + implementation(projects.domain.express.models) + implementation(projects.domain.onramp.models) + implementation(projects.domain.tokens.models) + // endregion + + // region Libs + api(projects.libs.blockchainSdk) // endregion } diff --git a/domain/account/build.gradle.kts b/domain/account/build.gradle.kts index cd6f6c4929..f82049b58c 100644 --- a/domain/account/build.gradle.kts +++ b/domain/account/build.gradle.kts @@ -5,17 +5,29 @@ plugins { } dependencies { - api(projects.domain.common) + // region Kotlin + api(deps.kotlin.coroutines) + api(deps.kotlin.serialization) + // endregion + + // region Other libraries + api(deps.arrow.core) + // endregion + + // region Core modules + api(projects.core.utils) + // endregion + + // region Domain + runtimeOnly(projects.domain.common) api(projects.domain.core) + // endregion + + // region Domain models api(projects.domain.models) - api(projects.domain.wallets.models) - api(projects.domain.yieldSupply.models) + // endregion - implementation(deps.arrow.core) - implementation(deps.kotlin.coroutines) - implementation(deps.kotlin.serialization) - - // region Test libraries + // region Tests testImplementation(projects.test.core) testImplementation(projects.test.mock) // endregion diff --git a/domain/address-book/build.gradle.kts b/domain/address-book/build.gradle.kts index 9f15edfeb6..a422d47b73 100644 --- a/domain/address-book/build.gradle.kts +++ b/domain/address-book/build.gradle.kts @@ -11,21 +11,35 @@ android { dependencies { - api(projects.domain.core) + // region Kotlin + api(deps.kotlin.coroutines) + api(deps.kotlin.serialization) + // endregion + + // region Other libraries + api(deps.arrow.core) + api(deps.jodatime) + // endregion + + // region Core modules + implementation(projects.core.utils) + // endregion + + // region Domain + api(projects.domain.common) + api(projects.domain.tokens) + api(projects.domain.transaction) + // endregion + + // region Domain models api(projects.domain.models) + // endregion - implementation(projects.domain.common) - implementation(projects.domain.transaction) - implementation(projects.domain.tokens) - - implementation(deps.arrow.core) - implementation(deps.kotlin.coroutines) - implementation(deps.kotlin.serialization) - implementation(deps.jodatime) - - // region Test libraries - testImplementation(projects.test.core) - testImplementation(projects.test.mock) + // region Tests + testImplementation(deps.test.coroutine) + testImplementation(deps.test.junit5) + testImplementation(deps.test.mockk) + testImplementation(deps.test.truth) testImplementation(projects.common.test) // endregion } \ No newline at end of file diff --git a/domain/analytics/build.gradle.kts b/domain/analytics/build.gradle.kts index 148d52c78f..52b19ad833 100644 --- a/domain/analytics/build.gradle.kts +++ b/domain/analytics/build.gradle.kts @@ -1,19 +1,18 @@ plugins { alias(deps.plugins.kotlin.jvm) - alias(deps.plugins.kotlin.kapt) alias(deps.plugins.ksp) id("configuration") } dependencies { - /** Project - Domain */ - implementation(projects.core.utils) - implementation(projects.domain.core) - implementation(projects.domain.models) - implementation(projects.domain.wallets.models) - implementation(deps.moshi.kotlin) - implementation(deps.arrow.core) - implementation(deps.arrow.fx) + // region Other libraries + api(deps.arrow.core) + api(deps.moshi) ksp(deps.moshi.kotlin.codegen) + // endregion + + // region Domain models + api(projects.domain.models) + // endregion } \ No newline at end of file diff --git a/domain/app-currency/build.gradle.kts b/domain/app-currency/build.gradle.kts index 45af2fd004..8ad367d135 100644 --- a/domain/app-currency/build.gradle.kts +++ b/domain/app-currency/build.gradle.kts @@ -5,8 +5,15 @@ plugins { dependencies { - /** Project - Domain */ - implementation(projects.core.utils) - implementation(projects.domain.core) - implementation(projects.domain.appCurrency.models) + // region Kotlin + api(deps.kotlin.coroutines) + // endregion + + // region Other libraries + api(deps.arrow.core) + // endregion + + // region Domain models + api(projects.domain.appCurrency.models) + // endregion } \ No newline at end of file diff --git a/domain/app-currency/models/build.gradle.kts b/domain/app-currency/models/build.gradle.kts index 6b18f3f83f..ed80a19c56 100644 --- a/domain/app-currency/models/build.gradle.kts +++ b/domain/app-currency/models/build.gradle.kts @@ -5,5 +5,5 @@ plugins { } dependencies { - implementation(deps.kotlin.serialization) + api(deps.kotlin.serialization) } \ No newline at end of file diff --git a/domain/app-theme/build.gradle.kts b/domain/app-theme/build.gradle.kts index 79f941dbbb..ab0c219ec1 100644 --- a/domain/app-theme/build.gradle.kts +++ b/domain/app-theme/build.gradle.kts @@ -5,8 +5,15 @@ plugins { dependencies { - /** Project - Domain */ - implementation(projects.core.utils) - implementation(projects.domain.core) - implementation(projects.domain.appTheme.models) + // region Kotlin + api(deps.kotlin.coroutines) + // endregion + + // region Other libraries + api(deps.arrow.core) + // endregion + + // region Domain models + api(projects.domain.appTheme.models) + // endregion } \ No newline at end of file diff --git a/domain/appsflyer/build.gradle.kts b/domain/appsflyer/build.gradle.kts index bf0f3c316b..88361f7256 100644 --- a/domain/appsflyer/build.gradle.kts +++ b/domain/appsflyer/build.gradle.kts @@ -6,8 +6,4 @@ plugins { android { namespace = "com.tangem.domain.appsflyer" -} - -dependencies { - implementation(deps.kotlin.coroutines) } \ No newline at end of file diff --git a/domain/assetsdiscovery/build.gradle.kts b/domain/assetsdiscovery/build.gradle.kts index 9f3d15b8d5..62046f1bd0 100644 --- a/domain/assetsdiscovery/build.gradle.kts +++ b/domain/assetsdiscovery/build.gradle.kts @@ -8,24 +8,29 @@ android { namespace = "com.tangem.domain.assetsdiscovery" } -tasks.withType().configureEach { - useJUnitPlatform() -} - dependencies { - api(projects.domain.core) - implementation(projects.domain.models) - implementation(projects.domain.account.status) - implementation(projects.core.utils) - implementation(projects.libs.blockchainSdk) - implementation(tangemDeps.blockchain) + // region Kotlin + api(deps.kotlin.coroutines) + // endregion - implementation(deps.kotlin.coroutines) - implementation(deps.arrow.core) + // region Other libraries + api(deps.arrow.core) + api(tangemDeps.blockchain) + // endregion + + // region Core modules + api(projects.core.analytics) + api(projects.core.utils) + implementation(projects.core.analytics.models) + // endregion + + // region Domain + api(projects.domain.account.status) + api(projects.domain.models) + // endregion // region Tests - testRuntimeOnly(deps.test.junit5.engine) testImplementation(projects.common.test) testImplementation(projects.test.core) // endregion diff --git a/domain/balance-hiding/build.gradle.kts b/domain/balance-hiding/build.gradle.kts index 1b932e1dc3..0f5fdb952c 100644 --- a/domain/balance-hiding/build.gradle.kts +++ b/domain/balance-hiding/build.gradle.kts @@ -4,8 +4,16 @@ plugins { } dependencies { - implementation(projects.domain.core) - implementation(deps.kotlin.coroutines) - implementation(projects.domain.settings) - implementation(projects.domain.balanceHiding.models) + + // region Kotlin + api(deps.kotlin.coroutines) + // endregion + + // region Other libraries + api(deps.arrow.core) + // endregion + + // region Domain models + api(projects.domain.balanceHiding.models) + // endregion } \ No newline at end of file diff --git a/domain/blockaid/build.gradle.kts b/domain/blockaid/build.gradle.kts index 83e274658e..63fbb7928e 100644 --- a/domain/blockaid/build.gradle.kts +++ b/domain/blockaid/build.gradle.kts @@ -10,15 +10,17 @@ android { dependencies { - /** Project - Domain */ - implementation(projects.domain.models) - implementation(projects.domain.core) - implementation(projects.domain.blockaid.models) - /** Tangem SDK */ - implementation(tangemDeps.blockchain) + // region Other libraries + api(deps.arrow.core) + api(tangemDeps.blockchain) + // endregion + // region Domain + api(projects.domain.models) + // endregion - /** Other */ - implementation(deps.moshi.adapters) + // region Domain models + api(projects.domain.blockaid.models) + // endregion } \ No newline at end of file diff --git a/domain/blockaid/models/build.gradle.kts b/domain/blockaid/models/build.gradle.kts index 14f878155b..7ff7fb7522 100644 --- a/domain/blockaid/models/build.gradle.kts +++ b/domain/blockaid/models/build.gradle.kts @@ -1,10 +1,4 @@ plugins { alias(deps.plugins.kotlin.jvm) - alias(deps.plugins.ksp) id("configuration") -} -dependencies { - /* Other */ - implementation(deps.moshi) - ksp(deps.moshi.kotlin.codegen) } \ No newline at end of file diff --git a/domain/card/build.gradle.kts b/domain/card/build.gradle.kts index cce7eaba54..90298c1148 100644 --- a/domain/card/build.gradle.kts +++ b/domain/card/build.gradle.kts @@ -8,30 +8,43 @@ android { namespace = "com.tangem.domain.card" } dependencies { - implementation(projects.core.analytics.models) - implementation(projects.core.error) - implementation(projects.core.error.ext) - implementation(projects.domain.demo) - implementation(projects.domain.core) - implementation(projects.domain.legacy) - implementation(projects.domain.walletManager) // TODO refactor to use from data module - implementation(projects.libs.blockchainSdk) - // TODO: Remove after new card scan result was implemented - implementation(projects.domain.models) - implementation(projects.domain.tokens.models) - implementation(projects.domain.wallets.models) - implementation(projects.domain.visa.models) - implementation(projects.core.utils) + // region Kotlin + api(deps.kotlin.coroutines) + // endregion - implementation(projects.libs.tangemSdkApi) - - implementation(tangemDeps.card.core) - implementation(tangemDeps.blockchain) { + // region Other libraries + api(deps.arrow.core) + api(tangemDeps.blockchain) { exclude(module = "joda-time") } + api(tangemDeps.card.core) + // endregion - /** Testing libraries */ - testImplementation(projects.common.test) + // region Core modules + api(projects.core.analytics.models) + api(projects.core.utils) + // core:error provides UniversalError — a supertype of VisaActivationError (used via + // domain:visa:models) the compiler needs on the classpath, though never referenced directly. + implementation(projects.core.error) + // endregion + + // region Domain + implementation(projects.domain.core) + implementation(projects.domain.demo.models) + // endregion + + // region Domain models + api(projects.domain.models) + api(projects.domain.visa.models) + // endregion + + // region Libs + api(projects.libs.blockchainSdk) + api(projects.libs.tangemSdkApi) + // endregion + + // region Tests testImplementation(projects.test.core) + // endregion } \ No newline at end of file diff --git a/domain/common/build.gradle.kts b/domain/common/build.gradle.kts index e1bfa04f51..8e7bbed799 100644 --- a/domain/common/build.gradle.kts +++ b/domain/common/build.gradle.kts @@ -6,15 +6,11 @@ plugins { dependencies { api(deps.arrow.core) - api(deps.arrow.fx) api(deps.kotlin.coroutines) - implementation(deps.kotlin.serialization) api(projects.core.analytics.models) api(projects.domain.models) testImplementation(deps.test.coroutine) - testImplementation(deps.test.junit) testImplementation(deps.test.mockk) - testImplementation(deps.test.truth) } \ No newline at end of file diff --git a/domain/core/build.gradle.kts b/domain/core/build.gradle.kts index 587900e51e..5e1787491e 100644 --- a/domain/core/build.gradle.kts +++ b/domain/core/build.gradle.kts @@ -6,10 +6,9 @@ plugins { dependencies { api(deps.arrow.core) - api(deps.arrow.fx) + api(deps.arrow.atomic) api(deps.kotlin.coroutines) - - implementation(deps.kotlin.serialization) + api(deps.kotlin.serialization) testImplementation(deps.test.coroutine) testImplementation(deps.test.junit5) diff --git a/domain/demo/build.gradle.kts b/domain/demo/build.gradle.kts index b5eb557c1a..1da393c9ef 100644 --- a/domain/demo/build.gradle.kts +++ b/domain/demo/build.gradle.kts @@ -11,6 +11,6 @@ android { dependencies { api(projects.domain.demo.models) - implementation(tangemDeps.blockchain) + api(tangemDeps.blockchain) implementation(tangemDeps.card.core) } \ No newline at end of file diff --git a/domain/demo/models/build.gradle.kts b/domain/demo/models/build.gradle.kts index f383bb8e3e..f9bdf58154 100644 --- a/domain/demo/models/build.gradle.kts +++ b/domain/demo/models/build.gradle.kts @@ -9,6 +9,5 @@ android { } dependencies { - implementation(tangemDeps.blockchain) - implementation(tangemDeps.card.core) + api(tangemDeps.blockchain) } \ No newline at end of file diff --git a/domain/dynamic-addresses/build.gradle.kts b/domain/dynamic-addresses/build.gradle.kts index 475e75f17b..96e8ffab50 100644 --- a/domain/dynamic-addresses/build.gradle.kts +++ b/domain/dynamic-addresses/build.gradle.kts @@ -8,19 +8,36 @@ android { namespace = "com.tangem.domain.dynamicaddresses" } dependencies { - api(projects.domain.core) - api(projects.domain.dynamicAddresses.models) - implementation(projects.domain.models) - implementation(projects.domain.walletManager) - implementation(projects.domain.wallets) - implementation(projects.libs.blockchainSdk) + // region Kotlin + api(deps.kotlin.coroutines) + // endregion - implementation(tangemDeps.blockchain) { + // region Other libraries + api(deps.arrow.core) + api(tangemDeps.blockchain) { exclude(module = "joda-time") } - implementation(tangemDeps.card.core) + api(tangemDeps.card.core) + // endregion - testImplementation(projects.common.test) - testImplementation(projects.test.core) + // region Domain + api(projects.domain.models) + api(projects.domain.walletManager) + api(projects.domain.wallets) + // endregion + + // region Domain models + api(projects.domain.dynamicAddresses.models) + // endregion + + // region Libs + implementation(projects.libs.blockchainSdk) + // endregion + + // region Tests + testImplementation(deps.test.junit5) + testImplementation(deps.test.mockk) + testImplementation(deps.test.truth) + // endregion } \ No newline at end of file diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index 33f4d8daba..4d873ab33d 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -111,6 +111,7 @@ surveysparrow = "1.2.9" # region Tools detektComposeRules = "1.4.0" detekt = "1.23.8" +dependencyAnalysis = "3.16.0" # endregion Tools # region Testing @@ -142,6 +143,7 @@ firebase-perf = { id = "com.google.firebase.firebase-perf", version.ref = "fireb google-services = { id = "com.google.gms.google-services", version.ref = "googleServices" } hilt-android = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" } +dependency-analysis = { id = "com.autonomousapps.dependency-analysis", version.ref = "dependencyAnalysis" } room = { id = "androidx.room", version.ref = "room" } kotlin-compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } @@ -166,6 +168,7 @@ androidx-constraintLayout = { module = "androidx.constraintlayout:constraintlayo 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 = { module = "androidx.fragment:fragment", version.ref = "androidxFragment" } androidx-fragment-ktx = { module = "androidx.fragment:fragment-ktx", version.ref = "androidxFragment" } androidx-fragment-compose = { module = "androidx.fragment:fragment-compose", version.ref = "androidxFragment" } androidx-paging-runtime = { module = "androidx.paging:paging-runtime", version.ref = "androidx-paging" } @@ -297,6 +300,7 @@ kotlin-serialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-j 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-atomic = { module = "io.arrow-kt:arrow-atomic", version.ref = "arrow" } arrow-fx = { module = "io.arrow-kt:arrow-fx-coroutines", version.ref = "arrow" } reownCore = { module = "com.reown:android-core", version.ref = "reownCore" } reownWeb3 = { module = "com.reown:walletkit", version.ref = "reownWeb3" }