From e57b611a3fdbdb1438cffc4fe6b5a2ce5f5330c1 Mon Sep 17 00:00:00 2001 From: Rodrigo Varela Date: Thu, 31 Oct 2024 21:32:16 +1100 Subject: [PATCH] - adaptations to generate wallets and bitcoind jars - require a more careful definition of dependencies considering version (full group-artifact-version definition) --- account/build.gradle.kts | 2 +- application/build.gradle.kts | 2 +- apps/desktop/desktop-app/build.gradle.kts | 1 - bisq-easy/build.gradle.kts | 8 +- bonded-roles/build.gradle.kts | 4 +- .../main/kotlin/bisq.java-library.gradle.kts | 1 + .../LocalMavenPublishPlugin.kt | 129 ++++++++++-------- build.gradle.kts | 2 + chat/build.gradle.kts | 4 +- contract/build.gradle.kts | 4 +- identity/build.gradle.kts | 4 +- network/build.gradle.kts | 15 +- network/network/build.gradle.kts | 6 +- .../socks5-socket-channel/build.gradle.kts | 4 +- network/tor/tor/build.gradle.kts | 10 +- offer/build.gradle.kts | 4 +- platform/build.gradle.kts | 2 - settings/build.gradle.kts | 2 +- support/build.gradle.kts | 4 +- trade/build.gradle.kts | 4 +- user/build.gradle.kts | 4 +- wallets/bitcoind/bitcoind/build.gradle.kts | 2 +- .../main/kotlin/bisq.java-library.gradle.kts | 10 ++ wallets/bitcoind/build.gradle.kts | 20 ++- wallets/bitcoind/gradle/libs.versions.toml | 1 + wallets/bitcoind/settings.gradle.kts | 2 +- wallets/build.gradle.kts | 16 ++- wallets/wallet/build.gradle.kts | 6 +- 28 files changed, 174 insertions(+), 99 deletions(-) diff --git a/account/build.gradle.kts b/account/build.gradle.kts index 51132cb304..7e46d910d9 100644 --- a/account/build.gradle.kts +++ b/account/build.gradle.kts @@ -10,5 +10,5 @@ dependencies { implementation(project(":security")) implementation(project(":identity")) - implementation("network:network") + implementation("network:network:$version") } diff --git a/application/build.gradle.kts b/application/build.gradle.kts index 19fdb0aef8..2b924b9bdf 100644 --- a/application/build.gradle.kts +++ b/application/build.gradle.kts @@ -15,7 +15,7 @@ dependencies { implementation(project(":offer")) implementation(project(":trade")) - implementation("network:network") + implementation("network:network:$version") implementation(libs.typesafe.config) } diff --git a/apps/desktop/desktop-app/build.gradle.kts b/apps/desktop/desktop-app/build.gradle.kts index 721f9b0b8a..ad8857cffb 100644 --- a/apps/desktop/desktop-app/build.gradle.kts +++ b/apps/desktop/desktop-app/build.gradle.kts @@ -2,7 +2,6 @@ import bisq.gradle.common.getPlatform import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import java.util.Properties -import java.io.File // Function to read properties from a file - TODO find a way to reuse this code instead of copying when needed fun readPropertiesFile(filePath: String): Properties { diff --git a/bisq-easy/build.gradle.kts b/bisq-easy/build.gradle.kts index f8a254fc14..a1aad42cb4 100644 --- a/bisq-easy/build.gradle.kts +++ b/bisq-easy/build.gradle.kts @@ -19,10 +19,10 @@ dependencies { implementation(project(":support")) implementation(project(":presentation")) - implementation("network:network") - implementation("network:network-identity") - implementation("bitcoind:core") - implementation("wallets:wallet") + implementation("network:network:$version") + implementation("network:network-identity:$version") + implementation("bitcoind:core:$version") + implementation("wallets:wallet:$version") // implementation("wallets:electrum") // implementation("wallets:bitcoind") diff --git a/bonded-roles/build.gradle.kts b/bonded-roles/build.gradle.kts index d111e459b8..e1afe4aa5b 100644 --- a/bonded-roles/build.gradle.kts +++ b/bonded-roles/build.gradle.kts @@ -11,8 +11,8 @@ dependencies { implementation(project(":identity")) implementation(project(":settings")) - implementation("network:network-identity") - implementation("network:network") + implementation("network:network-identity:$version") + implementation("network:network:$version") implementation(libs.google.gson) implementation(libs.typesafe.config) diff --git a/build-logic/commons/src/main/kotlin/bisq.java-library.gradle.kts b/build-logic/commons/src/main/kotlin/bisq.java-library.gradle.kts index 72c7231eb7..d76474c043 100644 --- a/build-logic/commons/src/main/kotlin/bisq.java-library.gradle.kts +++ b/build-logic/commons/src/main/kotlin/bisq.java-library.gradle.kts @@ -5,6 +5,7 @@ plugins { } val bisqVersion = extensions.getByType().named("libs").findVersion("bisq").getOrNull() +//println("bisq.java-library: BISQ version for platform $bisqVersion") dependencies { api(platform("bisq:platform:$bisqVersion")) diff --git a/build-logic/maven-publisher/src/main/kotlin/bisq/gradle/maven_publisher/LocalMavenPublishPlugin.kt b/build-logic/maven-publisher/src/main/kotlin/bisq/gradle/maven_publisher/LocalMavenPublishPlugin.kt index c3abfecfdd..deb038d228 100644 --- a/build-logic/maven-publisher/src/main/kotlin/bisq/gradle/maven_publisher/LocalMavenPublishPlugin.kt +++ b/build-logic/maven-publisher/src/main/kotlin/bisq/gradle/maven_publisher/LocalMavenPublishPlugin.kt @@ -1,5 +1,6 @@ package bisq.gradle.maven_publisher +import groovy.util.Node import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.publish.PublishingExtension @@ -17,15 +18,18 @@ import java.util.* */ class LocalMavenPublishPlugin : Plugin { companion object { - const val GROUP_SEPARATOR = "." - val COMPOSITE_PROJECTS_TO_INCLUDE = listOf("tor", "socks5-socket-channel") + const val DEFAULT_GROUP = "bisq" + val COMPOSITE_PROJECTS_TO_INCLUDE = listOf("tor", "network", "wallets", "bitcoind") } private var rootVersion = "unspecified" override fun apply(project: Project) { - this.loadRootVersion(project) - applyTaskRecursively(project, getRootGroup(project)) + if (rootVersion == "unspecified") { + this.loadRootVersion(project) + } + val group = getRootGroup(project); + applyTaskRecursively(project, group) } private fun applyTaskRecursively(project: Project, group: String) { @@ -38,7 +42,6 @@ class LocalMavenPublishPlugin : Plugin { applyPublishPlugin(project, group) } else { project.subprojects { -// applyTaskRecursively(this, "${group}${GROUP_SEPARATOR}${project.name}") applyTaskRecursively(this, group) } @@ -61,64 +64,33 @@ class LocalMavenPublishPlugin : Plugin { project.afterEvaluate { val javaComponent = project.components.findByName("java") if (javaComponent != null) { - // Apply a default version to dependencies without a specified version -// project.configurations.all { -// resolutionStrategy.eachDependency { -// if (isVersionUnspecified(requested.version)) { -// useVersion(project.version.toString()) // Apply the project's version as a default -// } -// } -// } - val protoSourcesJar = project.tasks.register("protoSourcesJar", Jar::class.java) { + val protoSourcesJar = project.tasks.findByName("protoSourcesJar") ?: project.tasks.register("protoSourcesJar", Jar::class.java) { archiveClassifier.set("proto-sources") from(project.fileTree("${project.layout.buildDirectory}/generated/source/proto/main")) // Adjust path if needed } + + if (rootVersion == "unspecified") { + throw IllegalStateException("Root project version not set. Please set the rootVersion property.") + } project.extensions.configure("publishing") { publications { - create("mavenJava", MavenPublication::class) { +// val publicationName = if (group == DEFAULT_GROUP) "mavenJava" else "mavenJava_${group}" + val publicationName = "mavenJava" + create(publicationName, MavenPublication::class) { from(project.components["java"]) // Adjust if publishing other types (like Kotlin) artifactId = project.name groupId = group version = rootVersion -// versionMapping { -// usage("java-api") { -// fromResolutionOf("runtimeClasspath") -// } -// usage("java-runtime") { -// fromResolutionResult() -// } -// } - - // Include the Protobuf sources JAR - artifact(protoSourcesJar) - - // hack to make sure the pom generated is compliant (without this it generates dependencies without the version) - pom.withXml { - val rootNode = asNode() - -// val addPlatformDependencies = handlePlatformDependency(rootNode) - - // Get all nodes with a name ending in "dependencies" - val dependenciesNodes = rootNode.children().filter { - (it as? groovy.util.Node)?.name().toString().endsWith("dependencies") - }.map { it as groovy.util.Node } - - // fixes corrupted pom not resolving dependencies when not explicitly specified in gradle configuration - val dependenciesNode = dependenciesNodes.firstOrNull() ?: rootNode.appendNode("dependencies") - dependenciesNode.children().forEach { dependencyNode -> - if (dependencyNode is groovy.util.Node) { - val versionNodes = dependencyNode.children().filter { - (it as? groovy.util.Node)?.name().toString().endsWith("version") - }.map { it as groovy.util.Node } - if (versionNodes.isEmpty()) { -// dependencyNode.appendNode("${rootNode.name().toString().removeSuffix("project")}version", "[${project.version}]") - dependencyNode.appendNode("version", rootVersion) - } else if (versionNodes[0].value().toString() == "unspecified") { - throw Error("${versionNodes[0].toString()} fucked") - } - } - } + setupPublication(project, group, protoSourcesJar) + } + if (group != DEFAULT_GROUP) { + create("mavenJava_bisqAlias", MavenPublication::class) { + groupId = "bisq" + artifactId = project.name + version = rootVersion + + setupPublication(project, group, protoSourcesJar, true) } } } @@ -135,9 +107,45 @@ class LocalMavenPublishPlugin : Plugin { } } - private fun loadRootVersion(project: Project) { - // Load properties from root gradle.properties file - val rootPropertiesFile = File(getRootGradlePropertiesFile(project), "gradle.properties") + private fun MavenPublication.setupPublication(project: Project, group: String, protoSourcesJar: Any, isAlias: Boolean = false) { + // Include the Protobuf sources JAR + artifact(protoSourcesJar) + // Reference the primary artifact and files + if (isAlias) { + artifact(project.tasks.named("jar")) + } + + // hack to make sure the pom generated is compliant (without this it generates dependencies without the version) + pom.withXml { + val rootNode = asNode() + if (isAlias) { + rootNode.appendNode("description", "Alias of $group:${project.name}") + } + + // Get all nodes with a name ending in "dependencies" + val dependenciesNodes = rootNode.children().filter { + (it as? Node)?.name().toString().endsWith("dependencies") + }.map { it as Node } + + // fixes corrupted pom not resolving dependencies when not explicitly specified in gradle configuration + val dependenciesNode = dependenciesNodes.firstOrNull() ?: rootNode.appendNode("dependencies") + dependenciesNode.children().forEach { dependencyNode -> + if (dependencyNode is Node) { + val versionNodes = dependencyNode.children().filter { + (it as? Node)?.name().toString().endsWith("version") + }.map { it as Node } + if (versionNodes.isEmpty()) { + dependencyNode.appendNode("version", rootVersion) + } +// else if (versionNodes[0].value() == null || versionNodes[0].value().toString() == "unspecified") { +// throw Error("${versionNodes[0]}") +// } + } + } + } + } + + private fun loadRootVersion(project: Project) { val rootPropertiesFile = File(getRootGradlePropertiesFile(project), "gradle.properties") val rootProperties = Properties() if (rootPropertiesFile.exists()) { rootProperties.load(rootPropertiesFile.inputStream()) @@ -147,8 +155,11 @@ class LocalMavenPublishPlugin : Plugin { } private fun getRootGradlePropertiesFile(project: Project): File { - if (COMPOSITE_PROJECTS_TO_INCLUDE.contains(project.name)) { - return project.projectDir.parentFile.parentFile + if (COMPOSITE_PROJECTS_TO_INCLUDE.contains(project.name) && project.childProjects.isNotEmpty()) { + return when (project.name) { + "tor", "bitcoind" -> project.projectDir.parentFile.parentFile + else -> project.projectDir.parentFile + } } return project.projectDir.parentFile } @@ -157,6 +168,6 @@ class LocalMavenPublishPlugin : Plugin { if (COMPOSITE_PROJECTS_TO_INCLUDE.contains(project.name)) { return project.name } - return "bisq" + return DEFAULT_GROUP } } \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 52b2a36aca..39b23bdaf7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -80,6 +80,8 @@ tasks.register("publishAll") { ":support:publishToMavenLocal", ":trade:publishToMavenLocal", ":user:publishToMavenLocal", + ":wallets:publishToMavenLocal", + ":wallets:bitcoind:publishToMavenLocal", ).forEach { exec { println("Executing Publish To Maven Local: $it") diff --git a/chat/build.gradle.kts b/chat/build.gradle.kts index 142fc201d7..c93c5a62d6 100644 --- a/chat/build.gradle.kts +++ b/chat/build.gradle.kts @@ -15,8 +15,8 @@ dependencies { implementation(project(":presentation")) implementation(project(":bonded-roles")) - implementation("network:network") - implementation("network:network-identity") + implementation("network:network:$version") + implementation("network:network-identity:$version") implementation(libs.chimp.jsocks) implementation(libs.google.gson) diff --git a/contract/build.gradle.kts b/contract/build.gradle.kts index ad1ee19563..04838392ee 100644 --- a/contract/build.gradle.kts +++ b/contract/build.gradle.kts @@ -12,6 +12,6 @@ dependencies { implementation(project(":account")) implementation(project(":offer")) - implementation("network:network") - implementation("network:network-identity") + implementation("network:network:$version") + implementation("network:network-identity:$version") } diff --git a/identity/build.gradle.kts b/identity/build.gradle.kts index f60ab6cebe..5be7810ea4 100644 --- a/identity/build.gradle.kts +++ b/identity/build.gradle.kts @@ -8,8 +8,8 @@ dependencies { implementation(project(":persistence")) implementation(project(":security")) - implementation("network:network") - implementation("network:network-identity") + implementation("network:network:$version") + implementation("network:network-identity:$version") implementation(libs.typesafe.config) } diff --git a/network/build.gradle.kts b/network/build.gradle.kts index 9378ad6d7e..aa2cb643c7 100644 --- a/network/build.gradle.kts +++ b/network/build.gradle.kts @@ -1,3 +1,12 @@ +import java.util.* + +// Function to read properties from a file - TODO find a way to reuse this code instead of copying when needed +fun readPropertiesFile(filePath: String): Properties { + val properties = Properties() + file(filePath).inputStream().use { properties.load(it) } + return properties +} + plugins { java id("bisq.gradle.maven_publisher.LocalMavenPublishPlugin") @@ -10,4 +19,8 @@ tasks.named("clean") { extensions.findByName("buildScan")?.withGroovyBuilder { setProperty("termsOfServiceUrl", "https://gradle.com/terms-of-service") setProperty("termsOfServiceAgree", "yes") -} \ No newline at end of file +} + +val properties = readPropertiesFile("../gradle.properties") +val rootVersion = properties.getProperty("version", "unspecified") +version = rootVersion \ No newline at end of file diff --git a/network/network/build.gradle.kts b/network/network/build.gradle.kts index 391717b68e..a9df6f9e74 100644 --- a/network/network/build.gradle.kts +++ b/network/network/build.gradle.kts @@ -4,6 +4,8 @@ plugins { id("bisq.java-integration-tests") } +version = rootProject.version + dependencies { implementation("bisq:common") implementation("bisq:security") @@ -11,7 +13,7 @@ dependencies { implementation(project(":network-identity")) implementation(project(":i2p")) - implementation("tor:tor") + implementation("tor:tor:$version") implementation(libs.bouncycastle) implementation(libs.failsafe) @@ -21,4 +23,4 @@ dependencies { implementation(libs.chimp.jsocks) integrationTestImplementation(libs.mockito) -} +} \ No newline at end of file diff --git a/network/socks5-socket-channel/build.gradle.kts b/network/socks5-socket-channel/build.gradle.kts index 49fb8d8e7a..340163a443 100644 --- a/network/socks5-socket-channel/build.gradle.kts +++ b/network/socks5-socket-channel/build.gradle.kts @@ -1,4 +1,6 @@ plugins { id("bisq.java-library") id("bisq.java-integration-tests") -} \ No newline at end of file +} + +version = rootProject.version \ No newline at end of file diff --git a/network/tor/tor/build.gradle.kts b/network/tor/tor/build.gradle.kts index ce08bb8d86..c689a7224d 100644 --- a/network/tor/tor/build.gradle.kts +++ b/network/tor/tor/build.gradle.kts @@ -13,8 +13,10 @@ plugins { id("bisq.gradle.tor_binary.BisqTorBinaryPlugin") } +val properties = readPropertiesFile("../../../gradle.properties") +val bisqVersion: String = properties.getProperty("version", "unspecified") + tor { - val properties = readPropertiesFile("../../../gradle.properties") val torVersion = properties.getProperty("tor.version", "unspecified") version.set(torVersion) } @@ -30,10 +32,10 @@ sourceSets { dependencies { implementation(project(":tor-common")) - implementation("bisq:security") + implementation("bisq:security:$bisqVersion") - implementation("network:network-identity") - implementation("network:socks5-socket-channel") + implementation("network:network-identity:$bisqVersion") + implementation("network:socks5-socket-channel:$bisqVersion") implementation(libs.bouncycastle) implementation(libs.failsafe) diff --git a/offer/build.gradle.kts b/offer/build.gradle.kts index 1ba7bf1e9b..e7f1f402f5 100644 --- a/offer/build.gradle.kts +++ b/offer/build.gradle.kts @@ -13,8 +13,8 @@ dependencies { implementation(project(":presentation")) implementation(project(":bonded-roles")) - implementation("network:network") - implementation("network:network-identity") + implementation("network:network:$version") + implementation("network:network-identity:$version") implementation(libs.google.gson) implementation(libs.chimp.jsocks) diff --git a/platform/build.gradle.kts b/platform/build.gradle.kts index ce5802e270..1900efe952 100644 --- a/platform/build.gradle.kts +++ b/platform/build.gradle.kts @@ -39,5 +39,3 @@ dependencies { } } } - -//version = rootProject.version \ No newline at end of file diff --git a/settings/build.gradle.kts b/settings/build.gradle.kts index 23d4caf127..e2522febd6 100644 --- a/settings/build.gradle.kts +++ b/settings/build.gradle.kts @@ -8,5 +8,5 @@ dependencies { implementation(project(":persistence")) implementation(project(":i18n")) - implementation("network:network") + implementation("network:network:$version") } diff --git a/support/build.gradle.kts b/support/build.gradle.kts index 796d5d1af6..fd67e95cb1 100644 --- a/support/build.gradle.kts +++ b/support/build.gradle.kts @@ -15,8 +15,8 @@ dependencies { implementation(project(":contract")) implementation(project(":bonded-roles")) - implementation("network:network") - implementation("network:network-identity") + implementation("network:network:$version") + implementation("network:network-identity:$version") implementation(libs.google.gson) implementation(libs.typesafe.config) diff --git a/trade/build.gradle.kts b/trade/build.gradle.kts index d33c1cbf1c..fb5ad0a63c 100644 --- a/trade/build.gradle.kts +++ b/trade/build.gradle.kts @@ -19,8 +19,8 @@ dependencies { implementation(project(":presentation")) implementation(project(":bonded-roles")) - implementation("network:network") - implementation("network:network-identity") + implementation("network:network:$version") + implementation("network:network-identity:$version") implementation(libs.typesafe.config) } diff --git a/user/build.gradle.kts b/user/build.gradle.kts index 1eaa3b102d..de93fa7d28 100644 --- a/user/build.gradle.kts +++ b/user/build.gradle.kts @@ -11,8 +11,8 @@ dependencies { implementation(project(":identity")) implementation(project(":bonded-roles")) - implementation("network:network") - implementation("network:network-identity") + implementation("network:network:$version") + implementation("network:network-identity:$version") implementation(libs.google.gson) implementation(libs.typesafe.config) diff --git a/wallets/bitcoind/bitcoind/build.gradle.kts b/wallets/bitcoind/bitcoind/build.gradle.kts index b2af4646c1..697d25a3eb 100644 --- a/wallets/bitcoind/bitcoind/build.gradle.kts +++ b/wallets/bitcoind/bitcoind/build.gradle.kts @@ -10,4 +10,4 @@ dependencies { implementation(libs.jeromq) integrationTestImplementation(project(":regtest")) -} \ No newline at end of file +} diff --git a/wallets/bitcoind/build-logic/commons/src/main/kotlin/bisq.java-library.gradle.kts b/wallets/bitcoind/build-logic/commons/src/main/kotlin/bisq.java-library.gradle.kts index 45435fe2d9..d545c48ab6 100644 --- a/wallets/bitcoind/build-logic/commons/src/main/kotlin/bisq.java-library.gradle.kts +++ b/wallets/bitcoind/build-logic/commons/src/main/kotlin/bisq.java-library.gradle.kts @@ -1,3 +1,13 @@ +import kotlin.jvm.optionals.getOrNull + plugins { id("bisq.java-conventions") +} + +val bisqVersion = extensions.getByType().named("libs").findVersion("bisq").getOrNull() +//println("wallets:bisq.java-library: BISQ version for platform $bisqVersion") + +dependencies { + api(platform("bisq:platform:$bisqVersion")) + implementation("bisq:common") } \ No newline at end of file diff --git a/wallets/bitcoind/build.gradle.kts b/wallets/bitcoind/build.gradle.kts index 8e31e0f340..bf4a18099d 100644 --- a/wallets/bitcoind/build.gradle.kts +++ b/wallets/bitcoind/build.gradle.kts @@ -1,4 +1,22 @@ +import java.util.* + +// Function to read properties from a file - TODO find a way to reuse this code instead of copying when needed +fun readPropertiesFile(filePath: String): Properties { + val properties = Properties() + file(filePath).inputStream().use { properties.load(it) } + return properties +} + +plugins { + java + id("bisq.gradle.maven_publisher.LocalMavenPublishPlugin") +} + extensions.findByName("buildScan")?.withGroovyBuilder { setProperty("termsOfServiceUrl", "https://gradle.com/terms-of-service") setProperty("termsOfServiceAgree", "yes") -} \ No newline at end of file +} + +val properties = readPropertiesFile("../../gradle.properties") +val rootVersion = properties.getProperty("version", "unspecified") +version = rootVersion \ No newline at end of file diff --git a/wallets/bitcoind/gradle/libs.versions.toml b/wallets/bitcoind/gradle/libs.versions.toml index 752099c50f..b209088002 100644 --- a/wallets/bitcoind/gradle/libs.versions.toml +++ b/wallets/bitcoind/gradle/libs.versions.toml @@ -1,4 +1,5 @@ [versions] +bisq = '2.1.2' assertj-core-lib = { strictly = '3.22.0' } bouncycastle-lib = { strictly = '1.69' } # Oldest version without known CVEs google-guava-lib = { strictly = '31.1-jre' } diff --git a/wallets/bitcoind/settings.gradle.kts b/wallets/bitcoind/settings.gradle.kts index b36c5a98da..68273cddc9 100644 --- a/wallets/bitcoind/settings.gradle.kts +++ b/wallets/bitcoind/settings.gradle.kts @@ -2,7 +2,7 @@ pluginManagement { repositories { gradlePluginPortal() } - includeBuild("build-logic") + includeBuild("../../build-logic") } include("core") diff --git a/wallets/build.gradle.kts b/wallets/build.gradle.kts index a7385d9099..7a1e4b020b 100644 --- a/wallets/build.gradle.kts +++ b/wallets/build.gradle.kts @@ -1,5 +1,15 @@ +import java.util.* + +// Function to read properties from a file - TODO find a way to reuse this code instead of copying when needed +fun readPropertiesFile(filePath: String): Properties { + val properties = Properties() + file(filePath).inputStream().use { properties.load(it) } + return properties +} + plugins { java + id("bisq.gradle.maven_publisher.LocalMavenPublishPlugin") } tasks.named("clean") { @@ -9,4 +19,8 @@ tasks.named("clean") { extensions.findByName("buildScan")?.withGroovyBuilder { setProperty("termsOfServiceUrl", "https://gradle.com/terms-of-service") setProperty("termsOfServiceAgree", "yes") -} \ No newline at end of file +} + +val properties = readPropertiesFile("../gradle.properties") +val rootVersion: String = properties.getProperty("version", "unspecified") +version = rootVersion \ No newline at end of file diff --git a/wallets/wallet/build.gradle.kts b/wallets/wallet/build.gradle.kts index 70c9aa80a9..58150dbc23 100644 --- a/wallets/wallet/build.gradle.kts +++ b/wallets/wallet/build.gradle.kts @@ -4,11 +4,13 @@ plugins { id("bisq.protobuf") } +version = rootProject.version + dependencies { implementation("bisq:persistence") - implementation("bitcoind:core") - implementation("bitcoind:bitcoind") + implementation("bitcoind:core:$version") + implementation("bitcoind:bitcoind:$version") implementation("bitcoind:json-rpc") implementation(libs.typesafe.config)