Updated on 2026-08-14

This commit is contained in:
Tangem 2026-07-01 12:41:30 +04:00
parent fdbd09cccb
commit 39a107b039
18 changed files with 367 additions and 254 deletions

View file

@ -5,10 +5,26 @@ plugins {
} }
dependencies { dependencies {
api(projects.domain.core)
api(projects.domain.models) // 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.pagination) api(projects.core.pagination)
implementation(projects.domain.account) // endregion
implementation(projects.domain.common)
implementation(deps.kotlin.serialization) // region Domain
api(projects.domain.account)
api(projects.domain.common)
// endregion
// region Domain models
api(projects.domain.models)
// endregion
} }

View file

@ -5,6 +5,21 @@ plugins {
} }
dependencies { dependencies {
api(projects.domain.express.models)
// region Kotlin
api(deps.kotlin.coroutines)
// endregion
// region Other libraries
api(deps.arrow.core)
// endregion
// region Domain
api(projects.domain.core)
api(projects.domain.models) api(projects.domain.models)
// endregion
// region Domain models
api(projects.domain.express.models)
// endregion
} }

View file

@ -1,13 +1,24 @@
plugins { plugins {
alias(deps.plugins.kotlin.jvm) alias(deps.plugins.kotlin.jvm)
alias(deps.plugins.kotlin.serialization) alias(deps.plugins.kotlin.serialization)
alias(deps.plugins.ksp)
id("configuration") id("configuration")
} }
dependencies { dependencies {
implementation(deps.moshi.adapters)
implementation(deps.kotlin.serialization) // region Kotlin
implementation(projects.domain.models) api(deps.kotlin.serialization)
implementation(projects.domain.tokens.models) // endregion
implementation(projects.domain.onramp.models)
// region Other libraries
api(deps.moshi)
ksp(deps.moshi.kotlin.codegen)
// endregion
// region Domain models
api(projects.domain.models)
api(projects.domain.onramp.models)
api(projects.domain.tokens.models)
// endregion
} }

View file

@ -9,15 +9,28 @@ android {
} }
dependencies { dependencies {
implementation(deps.arrow.core)
// region Other libraries
api(deps.arrow.core)
implementation(deps.jodatime) implementation(deps.jodatime)
// endregion
// region Core modules
implementation(projects.core.res) implementation(projects.core.res)
implementation(projects.domain.models) // endregion
implementation(projects.domain.wallets.models)
implementation(projects.domain.visa.models)
implementation(projects.domain.feedback.models)
/** Testing libraries */ // region Domain
testImplementation(projects.test.core) api(projects.domain.models)
implementation(projects.domain.visa.models)
// endregion
// region Domain models
api(projects.domain.feedback.models)
// endregion
// region Tests
testImplementation(deps.test.coroutine)
testImplementation(deps.test.junit5)
testImplementation(deps.test.mockk)
// endregion
} }

View file

@ -1,15 +1,17 @@
plugins { plugins {
alias(deps.plugins.kotlin.jvm) alias(deps.plugins.kotlin.jvm)
alias(deps.plugins.ksp)
alias(deps.plugins.kotlin.serialization) alias(deps.plugins.kotlin.serialization)
id("configuration") id("configuration")
} }
dependencies { dependencies {
/* Other */
implementation(deps.moshi) // region Kotlin
ksp(deps.moshi.kotlin.codegen) api(deps.kotlin.serialization)
implementation(deps.kotlin.serialization) // endregion
implementation(projects.domain.models)
implementation(projects.domain.wallets.models) // region Domain models
implementation(projects.domain.visa.models) api(projects.domain.models)
api(projects.domain.visa.models)
// endregion
} }

View file

@ -9,16 +9,23 @@ android {
} }
dependencies { dependencies {
implementation(projects.domain.core)
implementation(projects.domain.models)
implementation(projects.domain.wallets.models)
implementation(deps.kotlin.coroutines) // region Kotlin
implementation(deps.arrow.core) api(deps.kotlin.coroutines)
// endregion
testImplementation(deps.test.junit5) // region Other libraries
api(deps.arrow.core)
// endregion
// region Domain models
api(projects.domain.models)
// endregion
// region Tests
testImplementation(deps.test.coroutine) testImplementation(deps.test.coroutine)
testImplementation(deps.test.truth) testImplementation(deps.test.junit5)
testImplementation(deps.test.mockk) testImplementation(deps.test.mockk)
testImplementation(deps.test.truth)
// endregion
} }

View file

@ -1,48 +1,41 @@
plugins { plugins {
alias(deps.plugins.android.library) alias(deps.plugins.android.library)
alias(deps.plugins.kotlin.android) alias(deps.plugins.kotlin.android)
alias(deps.plugins.ksp)
id("configuration") id("configuration")
} }
android { android {
namespace = "com.tangem.domain.features" namespace = "com.tangem.domain.features"
} }
dependencies { dependencies {
implementation(projects.core.datasource)
implementation(projects.core.utils) // region Kotlin
implementation(projects.core.error) api(deps.kotlin.coroutines)
implementation(projects.common) // endregion
implementation(projects.libs.auth)
implementation(projects.libs.blockchainSdk) // region Other libraries
implementation(projects.domain.core) api(deps.arrow.core)
implementation(projects.domain.demo) api(tangemDeps.blockchain) {
implementation(projects.domain.models)
implementation(projects.domain.tokens.models)
implementation(projects.domain.transaction.models)
implementation(projects.domain.txhistory.models)
implementation(projects.domain.wallets.models)
/** Tangem libraries */
implementation(tangemDeps.blockchain) {
exclude(module = "joda-time")
}
implementation(tangemDeps.card.core)
implementation(tangemDeps.card.android) {
exclude(module = "joda-time") exclude(module = "joda-time")
} }
// endregion
/** Other libraries */ // region Domain
implementation(deps.arrow.core) api(projects.domain.core)
implementation(deps.jodatime) // endregion
implementation(deps.kotlin.coroutines)
implementation(deps.moshi)
implementation(deps.moshi.kotlin)
ksp(deps.moshi.kotlin.codegen)
/** Testing libraries */ // region Domain models
api(projects.domain.models)
api(projects.domain.tokens.models)
api(projects.domain.transaction.models)
// endregion
// region Tests
testImplementation(deps.moshi)
testImplementation(deps.test.junit5) testImplementation(deps.test.junit5)
testImplementation(deps.test.mockk) testImplementation(deps.test.mockk)
testImplementation(deps.test.truth) testImplementation(deps.test.truth)
testImplementation(projects.common.test) testImplementation(projects.libs.blockchainSdk)
// endregion
} }

View file

@ -10,28 +10,37 @@ android {
dependencies { dependencies {
/* Domain */ // region Kotlin
api(projects.domain.core) implementation(deps.kotlin.coroutines)
api(projects.domain.manageTokens.models) runtimeOnly(deps.kotlin.coroutines.android)
api(projects.domain.networks) // endregion
api(projects.domain.quotes)
api(projects.domain.walletManager)
implementation(projects.domain.wallets.models)
implementation(projects.domain.tokens.models)
implementation(projects.domain.staking)
implementation(projects.domain.tokens)
implementation(projects.domain.card)
implementation(projects.domain.wallets)
implementation(projects.domain.legacy)
implementation(tangemDeps.blockchain) // region Other libraries
api(deps.arrow.core)
// endregion
/* Core */ // region Core modules
api(projects.core.pagination) api(projects.core.pagination)
testImplementation(projects.core.pagination) api(projects.core.utils)
// endregion
/* Tests */ // region Domain
testImplementation(deps.test.junit5) api(projects.domain.models)
// endregion
// region Domain models
api(projects.domain.manageTokens.models)
// endregion
// region Runtime
// room/coroutines-android reach the runtime classpath through transitive consumers that no longer
// arrive via a compile dependency — declare them runtimeOnly so the runtime graph stays complete.
runtimeOnly(deps.room.runtime)
// endregion
// region Tests
testImplementation(deps.test.coroutine) testImplementation(deps.test.coroutine)
testImplementation(deps.test.junit5)
testImplementation(deps.test.truth) testImplementation(deps.test.truth)
// endregion
} }

View file

@ -6,10 +6,11 @@ plugins {
dependencies { dependencies {
/* Domain */ // region Kotlin
implementation(projects.domain.models) api(deps.kotlin.serialization)
implementation(projects.domain.tokens.models) // endregion
/** Other */ // region Domain models
implementation(deps.kotlin.serialization) api(projects.domain.models)
// endregion
} }

View file

@ -11,34 +11,34 @@ android {
dependencies { dependencies {
/* Domain */
// region Kotlin
api(deps.kotlin.coroutines)
// endregion
// region Other libraries
api(deps.arrow.core)
implementation(tangemDeps.blockchain)
// endregion
// region Core modules
api(projects.core.pagination)
implementation(projects.core.utils)
// endregion
// region Domain
api(projects.domain.common)
api(projects.domain.quotes)
implementation(projects.domain.card)
// endregion
// region Domain models
api(projects.domain.appCurrency.models) api(projects.domain.appCurrency.models)
api(projects.domain.card)
api(projects.domain.core)
api(projects.domain.legacy)
api(projects.domain.markets.models) api(projects.domain.markets.models)
api(projects.domain.models) api(projects.domain.models)
api(projects.domain.networks) // endregion
api(projects.domain.staking)
api(projects.domain.quotes)
api(projects.domain.walletManager)
api(projects.domain.wallets)
api(projects.domain.wallets.models)
api(projects.domain.stories)
implementation(projects.domain.tokens.models) // region Libs
implementation(projects.domain.tokens)
implementation(projects.domain.settings)
api(projects.core.pagination)
/* Libs */
api(projects.libs.blockchainSdk) api(projects.libs.blockchainSdk)
// endregion
/* SDK */
implementation(tangemDeps.blockchain)
/* Utils */
implementation(deps.kotlin.serialization)
implementation(projects.core.utils)
} }

View file

@ -5,10 +5,16 @@ plugins {
} }
dependencies { dependencies {
api(projects.domain.models)
api(projects.domain.tokens.models)
implementation(projects.domain.core)
implementation(deps.kotlin.serialization) // region Kotlin
implementation(deps.jodatime) api(deps.kotlin.serialization)
// endregion
// region Other libraries
api(deps.jodatime)
// endregion
// region Domain models
api(projects.domain.models)
// endregion
} }

View file

@ -5,18 +5,37 @@ plugins {
id("configuration") id("configuration")
} }
dependencies { dependencies {
api(projects.domain.core)
api(projects.core.utils)
implementation(tangemDeps.card.core) // region Kotlin
implementation(tangemDeps.hot.core) api(deps.kotlin.datetime)
api(deps.kotlin.serialization)
// endregion
// region Other libraries
api(deps.arrow.core)
api(deps.jodatime)
api(deps.moshi)
implementation(deps.moshi.kotlin) implementation(deps.moshi.kotlin)
implementation(deps.moshi.adapters)
implementation(deps.kotlin.datetime)
implementation(deps.jodatime)
implementation(deps.kotlin.serialization)
ksp(deps.moshi.kotlin.codegen) ksp(deps.moshi.kotlin.codegen)
implementation(deps.arrow.core) // endregion
// region Tangem SDK
api(tangemDeps.card.core)
api(tangemDeps.hot.core)
// endregion
// region Core modules
// core:utils is intentionally re-exported (api): domain:models is a ubiquitous dependency and many
// consumers rely on TangemLogger / utils through it. Demoting to implementation cascades across the
// whole repo, so keep it api despite DAGP's incorrect-configuration advice (suppressed below).
api(projects.core.utils)
// endregion
// region Domain
api(projects.domain.core)
// endregion
// region Tests
testImplementation(projects.test.core) testImplementation(projects.test.core)
// endregion
} }

View file

@ -4,7 +4,13 @@ plugins {
} }
dependencies { dependencies {
// region Kotlin
api(deps.kotlin.coroutines)
// endregion
// region Domain
api(projects.domain.core) api(projects.domain.core)
api(projects.domain.models) api(projects.domain.models)
api(projects.domain.wallets.models) // endregion
} }

View file

@ -5,8 +5,21 @@ plugins {
} }
dependencies { dependencies {
api(projects.domain.core)
api(projects.domain.models) // 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.pagination) api(projects.core.pagination)
implementation(deps.kotlin.serialization) // endregion
// region Domain
api(projects.domain.models)
// endregion
} }

View file

@ -10,26 +10,31 @@ android {
} }
dependencies { dependencies {
// region Project Core
implementation(projects.core.analytics.models) // region Kotlin
implementation(projects.core.utils) api(deps.kotlin.coroutines)
// endregion // endregion
// region Project Domain // region Other libraries
api(deps.arrow.core)
// endregion
// region Core modules
api(projects.core.analytics.models)
api(projects.core.utils)
// endregion
// region Domain
api(projects.domain.account)
api(projects.domain.networks)
api(projects.domain.quotes)
api(projects.domain.tokens)
api(projects.domain.wallets)
implementation(projects.domain.core) implementation(projects.domain.core)
implementation(projects.domain.account)
implementation(projects.domain.models)
implementation(projects.domain.networks)
implementation(projects.domain.nft.models)
implementation(projects.domain.quotes)
implementation(projects.domain.tokens)
implementation(projects.domain.tokens.models)
implementation(projects.domain.wallets)
implementation(projects.domain.wallets.models)
// endregion // endregion
// region Others // region Domain models
implementation(deps.arrow.core) api(projects.domain.models)
implementation(deps.kotlin.coroutines) api(projects.domain.nft.models)
// endregion // endregion
} }

View file

@ -5,13 +5,12 @@ plugins {
} }
dependencies { dependencies {
implementation(deps.arrow.core)
implementation(deps.kotlin.coroutines)
implementation(projects.domain.core) // region Kotlin
implementation(projects.domain.models) api(deps.kotlin.serialization)
implementation(projects.domain.tokens.models) // endregion
/* Utils */ // region Domain models
implementation(deps.kotlin.serialization) api(projects.domain.models)
// endregion
} }

View file

@ -14,49 +14,48 @@ android {
dependencies { dependencies {
/** Project - API */ /** Project - API */
implementation(projects.features.commonFeatures.api) api(projects.features.commonFeatures.api)
implementation(projects.features.onramp.api) api(projects.features.onramp.api)
implementation(projects.features.swap.api)
implementation(projects.features.swap.domain)
implementation(projects.features.swap.domain.api)
implementation(projects.features.swap.domain.models)
implementation(projects.features.feed.api)
/** Project - Core */ /** Project - Core */
implementation(projects.core.analytics) api(projects.core.analytics)
implementation(projects.core.configToggles) api(projects.core.decompose)
implementation(projects.core.decompose) api(projects.core.navigation)
implementation(projects.core.navigation) api(projects.core.ui)
implementation(projects.core.ui) api(projects.core.utils)
implementation(projects.core.utils) implementation(projects.core.analytics.models)
/** Project - Common */ /** Project - Common */
implementation(projects.common.routing) api(projects.common.routing)
implementation(projects.common.ui) api(projects.common.ui)
implementation(projects.common.uiMarkets) implementation(projects.common)
implementation(projects.common.uiCharts)
/** Project - Domain */ /** Project - Domain */
implementation(projects.domain.appCurrency) api(projects.domain.account)
api(projects.domain.account.status)
api(projects.domain.appCurrency)
api(projects.domain.appTheme)
api(projects.domain.balanceHiding)
api(projects.domain.demo)
api(projects.domain.legacy)
api(projects.domain.models)
api(projects.domain.offramp)
api(projects.domain.onramp)
api(projects.domain.onramp.models)
api(projects.domain.settings)
api(projects.domain.tokens)
api(projects.domain.wallets)
implementation(projects.domain.appCurrency.models) implementation(projects.domain.appCurrency.models)
implementation(projects.domain.balanceHiding)
implementation(projects.domain.balanceHiding.models)
implementation(projects.domain.card)
implementation(projects.domain.demo)
implementation(projects.domain.models)
implementation(projects.domain.offramp)
implementation(projects.domain.onramp)
implementation(projects.domain.tokens)
implementation(projects.domain.tokens.models)
implementation(projects.domain.wallets)
implementation(projects.domain.wallets.models)
implementation(projects.domain.settings)
implementation(projects.domain.transaction.models)
implementation(projects.domain.account.status)
implementation(projects.domain.appTheme)
implementation(projects.domain.appTheme.models) implementation(projects.domain.appTheme.models)
implementation(projects.data.common) implementation(projects.domain.balanceHiding.models)
implementation(projects.domain.markets) implementation(projects.domain.core)
implementation(projects.domain.tokens.models)
implementation(projects.domain.transaction.models)
implementation(projects.domain.wallets.models)
runtimeOnly(projects.domain.card)
/** Data */
api(projects.data.common)
/** DI */ /** DI */
implementation(deps.hilt.android) implementation(deps.hilt.android)
@ -67,19 +66,23 @@ dependencies {
implementation(deps.lifecycle.compose) implementation(deps.lifecycle.compose)
/** Compose */ /** Compose */
api(deps.compose.coil)
api(deps.compose.foundation)
implementation(deps.compose.ui) implementation(deps.compose.ui)
implementation(deps.compose.ui.tooling) implementation(deps.compose.ui.tooling)
implementation(deps.compose.accompanist.systemUiController)
implementation(deps.compose.foundation)
implementation(deps.compose.material3) implementation(deps.compose.material3)
implementation(deps.compose.shimmer)
implementation(deps.compose.coil)
/** Tangem libraries */ /** Tangem libraries */
implementation(tangemDeps.blockchain) implementation(tangemDeps.blockchain)
implementation(projects.libs.blockchainSdk) implementation(projects.libs.blockchainSdk)
/** Other */ /** Other */
api(deps.kotlin.coroutines)
api(deps.kotlin.immutable.collections)
api(deps.kotlin.serialization.core)
implementation(deps.androidx.annotation)
implementation(deps.androidx.appCompat)
implementation(deps.arrow.core)
implementation(deps.jodatime)
implementation(deps.decompose.ext.compose) implementation(deps.decompose.ext.compose)
implementation(deps.kotlin.immutable.collections)
} }

View file

@ -12,107 +12,102 @@ android {
} }
dependencies { dependencies {
/** Api */ /** Api */
implementation(projects.features.commonFeatures.api) api(projects.features.approval.api)
api(projects.features.commonFeatures.api)
api(projects.features.send.api)
api(projects.features.swap.api)
api(projects.features.swap.domain)
implementation(projects.features.send.impl)
/** Core modules */ /** Core modules */
implementation(projects.core.analytics) api(projects.core.analytics)
implementation(projects.core.analytics.models) api(projects.core.analytics.models)
implementation(projects.core.configToggles) api(projects.core.configToggles)
implementation(projects.core.datasource) api(projects.core.datasource)
implementation(projects.core.navigation) api(projects.core.decompose)
implementation(projects.core.utils) api(projects.core.navigation)
implementation(projects.core.ui) api(projects.core.ui)
implementation(projects.common.routing) api(projects.core.utils)
implementation(projects.common.ui)
implementation(projects.core.decompose) // For Route supertype
implementation(projects.core.error) implementation(projects.core.error)
implementation(projects.common.uiMarkets) api(projects.common.routing)
implementation(projects.common.uiCharts) api(projects.common.ui)
/** Data modules */ /** Data modules */
implementation(projects.data.common) implementation(projects.data.common)
/** Domain modules **/ /** Domain modules **/
implementation(projects.domain.models) api(projects.domain.account.status)
api(projects.domain.appCurrency)
api(projects.domain.appCurrency.models)
api(projects.domain.balanceHiding)
api(projects.domain.card)
api(projects.domain.express.models)
api(projects.domain.feedback)
api(projects.domain.legacy)
api(projects.domain.models)
api(projects.domain.settings)
api(projects.domain.stories)
api(projects.domain.swap)
api(projects.domain.swap.models)
api(projects.domain.tokens)
api(projects.domain.transaction)
api(projects.domain.transaction.models)
api(projects.domain.txhistory)
api(projects.domain.visa)
api(projects.domain.wallets)
implementation(projects.domain.account) implementation(projects.domain.account)
implementation(projects.domain.appCurrency)
implementation(projects.domain.appCurrency.models)
implementation(projects.domain.balanceHiding)
implementation(projects.domain.balanceHiding.models) implementation(projects.domain.balanceHiding.models)
implementation(projects.domain.tokens) implementation(projects.domain.core)
implementation(projects.domain.tokens.models)
implementation(projects.domain.transaction)
implementation(projects.domain.transaction.models)
implementation(projects.domain.wallets)
implementation(projects.domain.wallets.models)
implementation(projects.domain.settings)
implementation(projects.domain.staking)
implementation(projects.domain.feedback)
implementation(projects.domain.feedback.models) implementation(projects.domain.feedback.models)
implementation(projects.domain.stories) implementation(projects.domain.markets.models)
implementation(projects.domain.stories.models) implementation(projects.domain.stories.models)
implementation(projects.domain.txhistory)
implementation(projects.domain.txhistory.models) implementation(projects.domain.txhistory.models)
implementation(projects.domain.express.models) implementation(projects.domain.visa.models)
implementation(projects.domain.account) runtimeOnly(projects.domain.staking)
implementation(projects.domain.account.status)
implementation(projects.domain.card)
implementation(projects.domain.visa)
implementation(projects.domain.markets)
implementation(projects.domain.swap)
implementation(projects.domain.swap.models)
/** Feature modules */
implementation(projects.features.swap.domain)
implementation(projects.features.swap.domain.api)
implementation(projects.features.swap.domain.models)
implementation(projects.features.wallet.api)
implementation(projects.features.swap.api)
implementation(projects.features.send.api)
implementation(projects.features.send.impl)
implementation(projects.features.feed.api)
/** AndroidX */ /** AndroidX */
implementation(deps.androidx.activity.compose) implementation(deps.androidx.activity.compose)
implementation(deps.androidx.annotation)
implementation(deps.androidx.appCompat) implementation(deps.androidx.appCompat)
implementation(deps.androidx.fragment.ktx) implementation(deps.lifecycle.compose)
implementation(deps.lifecycle.viewModel.ktx) implementation(deps.lifecycle.runtime.ktx)
implementation(deps.androidx.browser)
/** Compose */ /** Compose */
implementation(deps.arrow.core) api(deps.compose.coil)
implementation(deps.compose.foundation) api(deps.compose.foundation)
api(deps.decompose.ext.compose)
implementation(deps.compose.material3) implementation(deps.compose.material3)
implementation(deps.compose.ui.tooling) implementation(deps.compose.ui.tooling)
implementation(deps.compose.coil)
implementation(deps.compose.constraintLayout) implementation(deps.compose.constraintLayout)
/** Api */
implementation(projects.features.swap.api)
implementation(projects.features.tokendetails.api)
implementation(projects.features.approval.api)
/** Libs */ /** Libs */
implementation(projects.libs.blockchainSdk)
implementation(projects.libs.crypto) implementation(projects.libs.crypto)
/** Common */
implementation(projects.common)
/** Other libraries */ /** Other libraries */
implementation(deps.compose.shimmer) api(deps.arrow.core)
implementation(deps.compose.accompanist.systemUiController) api(deps.kotlin.coroutines)
api(deps.kotlin.immutable.collections)
implementation(deps.jodatime)
implementation(deps.kotlin.serialization) implementation(deps.kotlin.serialization)
implementation(deps.kotlin.immutable.collections)
implementation(deps.decompose.ext.compose)
implementation(deps.firebase.perf) { implementation(deps.firebase.perf) {
exclude(group = "com.google.firebase", module = "protolite-well-known-types") exclude(group = "com.google.firebase", module = "protolite-well-known-types")
exclude(group = "com.google.protobuf", module = "protobuf-javalite") exclude(group = "com.google.protobuf", module = "protobuf-javalite")
} }
/** Tangem libs */ /** Tangem libs */
implementation(tangemDeps.blockchain) api(tangemDeps.blockchain)
/** DI */ /** DI */
implementation(deps.hilt.android) implementation(deps.hilt.android)
kapt(deps.hilt.kapt) kapt(deps.hilt.kapt)
/** Test */ /** Test */
testImplementation(projects.domain.core)
testImplementation(projects.domain.legacy)
testImplementation(projects.libs.blockchainSdk)
testImplementation(projects.test.core) testImplementation(projects.test.core)
} }