Skip to content
This repository was archived by the owner on Mar 26, 2026. It is now read-only.
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion core
Submodule core updated 394 files
3 changes: 1 addition & 2 deletions gemcore/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -53,8 +53,7 @@ android {
}

dependencies {
//noinspection UseTomlInstead
api(libs.gemstone)
api(project(":gemstone"))

api(libs.kotlinx.serialization.json)
implementation(libs.compose.runtime.android)
Expand Down
98 changes: 98 additions & 0 deletions gemstone/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

plugins {
id("com.android.library")
id("org.jetbrains.kotlin.android")
}

val gemstoneRoot = rootProject.projectDir.resolve("core/gemstone")
val gemstoneSrc = gemstoneRoot.resolve("android/gemstone/src")
val rustSrcDir = gemstoneRoot.resolve("src")
val cratesDir = rootProject.projectDir.resolve("core/crates")
val jniLibsDir = gemstoneSrc.resolve("main/jniLibs")
val generatedKotlinDir = gemstoneSrc.resolve("main/java")

android {
namespace = "com.gemwallet.gemstone"
compileSdk = 36
Comment thread
0xh3rman marked this conversation as resolved.

defaultConfig {
minSdk = 28
consumerProguardFiles(gemstoneRoot.resolve("android/gemstone/consumer-rules.pro"))
}

buildTypes {
release {
isMinifyEnabled = false
Comment thread
0xh3rman marked this conversation as resolved.
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
Comment thread
0xh3rman marked this conversation as resolved.
Outdated
}

sourceSets {
getByName("main") {
java.srcDirs(generatedKotlinDir)
jniLibs.srcDirs(jniLibsDir)
manifest.srcFile(gemstoneSrc.resolve("main/AndroidManifest.xml"))
}
getByName("androidTest") {
java.srcDirs(gemstoneSrc.resolve("androidTest/java"))
}
}
}

kotlin {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_1_8)
Comment thread
0xh3rman marked this conversation as resolved.
Outdated
}
}

val bindgenKotlin = tasks.register<Exec>("bindgenKotlin") {
description = "Generate Kotlin bindings from gemstone via uniffi"
workingDir = gemstoneRoot
inputs.dir(rustSrcDir)
inputs.dir(cratesDir)
inputs.file(gemstoneRoot.resolve("Cargo.toml"))
outputs.dir(generatedKotlinDir.resolve("uniffi"))
commandLine("just", "bindgen-kotlin")
}

val buildCargoNdk = tasks.register<Exec>("buildCargoNdk") {
description = "Build gemstone native libraries using cargo-ndk"
workingDir = gemstoneRoot
inputs.dir(rustSrcDir)
inputs.dir(cratesDir)
inputs.file(gemstoneRoot.resolve("Cargo.toml"))
outputs.dir(jniLibsDir)
commandLine(
"cargo", "ndk",
"-t", "arm64-v8a",
"-t", "armeabi-v7a",
"-t", "x86_64",
"-o", jniLibsDir.absolutePath,
"build", "--lib"
)
}

afterEvaluate {
tasks.matching { it.name.matches(Regex("compile(Debug|Release)Kotlin")) }.configureEach {
dependsOn(bindgenKotlin)
}
tasks.matching { it.name.matches(Regex("merge(Debug|Release)JniLibFolders")) }.configureEach {
dependsOn(buildCargoNdk)
}
}
Comment thread
0xh3rman marked this conversation as resolved.
Outdated

dependencies {
api("net.java.dev.jna:jna:5.18.1@aar")
implementation("androidx.core:core-ktx:1.17.0")
androidTestImplementation("androidx.test.ext:junit:1.3.0")
androidTestImplementation("androidx.test.espresso:espresso-core:3.7.0")
}
4 changes: 0 additions & 4 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@ mockkVersion = "1.14.9"
espressoCore = "3.7.0"

wallet-core = "4.3.22"
gemstone = "1.0.11"

glance-widgets = "1.1.1"

Expand Down Expand Up @@ -120,9 +119,6 @@ walletconnect-web3wallet = { module = "com.reown:walletkit" }
# Wallet - core
wallet-core = { module = "com.trustwallet:wallet-core", version.ref = "wallet-core" }

# Gem Stone
gemstone = { module = "com.gemwallet.gemstone:gemstone", version.ref = "gemstone" }

# qr code scanning
zxing-core = { module = "com.google.zxing:core", version.ref = "zxing-core" }
camera-view = { module = "androidx.camera:camera-view", version.ref = "camera2" }
Expand Down
1 change: 1 addition & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ pluginManagement {
}
}
rootProject.name = "wallet"
include(":gemstone")
include (":app")
include(":blockchain")
include(":gemcore")
Expand Down
Loading