From 4a6838831a54177d9fedcb1716f4480208a2f69e Mon Sep 17 00:00:00 2001
From: HashMapsData2Value
<83883690+HashMapsData2Value@users.noreply.github.com>
Date: Mon, 25 Mar 2024 17:45:07 +0100
Subject: [PATCH] feat: Produce a self-contained .aar file for lib (#19)
* feat: Separates Android (with all-inclusive .aar) from Desktop
* fix: add .gitkeeps
* chore: remove debug printer
* feat: add .gitignore
* fix: since initialize.sh already builds, it is enough of a test
* docs: update README
* remove gradlew step that is part of initialize.sh
* feat: if any step in initialize fails, all fails
* updates gitignore and appcompat
* chore: comment out CBOR until it has been implemented elsewhere
* docs: clarify build
* docs: update workflow name
* fix: removes unnecessary check on decoded data
* docs: clarify github workflow
---
.github/workflows/gradlew-test.yaml | 12 +-
.gitignore | 3 +
README.md | 8 +
android/.gitignore | 170 ++++++++++++
android/bip32ed25519/.idea/gradle.xml | 16 ++
android/bip32ed25519/.idea/misc.xml | 4 +
android/bip32ed25519/.idea/workspace.xml | 44 ++++
android/bip32ed25519/build.gradle | 67 +++++
android/bip32ed25519/libs/.gitkeep | 0
android/bip32ed25519/lint-baseline.xml | 194 ++++++++++++++
.../src/main/jniLibs/arm64-v8a/libsodium.so | Bin 0 -> 283336 bytes
.../src/main/jniLibs/armeabi-v7a/libsodium.so | Bin 0 -> 319588 bytes
.../src/main/jniLibs/armeabi/libsodium.so | Bin 0 -> 330064 bytes
.../src/main/jniLibs/x86/libsodium.so | Bin 0 -> 459060 bytes
.../src/main/jniLibs/x86_64/libsodium.so | Bin 0 -> 392608 bytes
.../bip32ed25519/Bip32Ed25519Android.kt | 20 +-
.../src/main/kotlin/bip32ed25519/utils.kt | 2 +-
android/build.gradle.kts | 6 +
android/gradle/libs.versions.toml | 23 ++
.../gradle}/wrapper/gradle-wrapper.jar | Bin
.../gradle}/wrapper/gradle-wrapper.properties | 0
gradlew => android/gradlew | 0
gradlew.bat => android/gradlew.bat | 0
android/settings.gradle.kts | 31 +++
desktop/.gitignore | 36 +++
.../bip32ed25519}/build.gradle.kts | 0
desktop/bip32ed25519/libs/.gitkeep | 0
.../main/kotlin/bip32ed25519/Bip32Ed25519.kt | 21 +-
.../src/main/kotlin/bip32ed25519/utils.kt | 19 ++
.../kotlin/bip32ed25519/Bip32Ed25519Test.kt | 196 +++++++-------
.../testWithSandbox/AlgoLocalNetTest.kt | 0
.../src/test/resources/auth.request.json | 0
.../src/test/resources/msg.schema.json | 0
{gradle => desktop/gradle}/libs.versions.toml | 0
desktop/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43462 bytes
.../gradle/wrapper/gradle-wrapper.properties | 7 +
desktop/gradlew | 249 ++++++++++++++++++
desktop/gradlew.bat | 92 +++++++
.../settings.gradle.kts | 0
initialize.sh | 25 +-
40 files changed, 1112 insertions(+), 133 deletions(-)
create mode 100644 android/.gitignore
create mode 100644 android/bip32ed25519/.idea/gradle.xml
create mode 100644 android/bip32ed25519/.idea/misc.xml
create mode 100644 android/bip32ed25519/.idea/workspace.xml
create mode 100644 android/bip32ed25519/build.gradle
create mode 100644 android/bip32ed25519/libs/.gitkeep
create mode 100644 android/bip32ed25519/lint-baseline.xml
create mode 100755 android/bip32ed25519/src/main/jniLibs/arm64-v8a/libsodium.so
create mode 100755 android/bip32ed25519/src/main/jniLibs/armeabi-v7a/libsodium.so
create mode 100755 android/bip32ed25519/src/main/jniLibs/armeabi/libsodium.so
create mode 100755 android/bip32ed25519/src/main/jniLibs/x86/libsodium.so
create mode 100755 android/bip32ed25519/src/main/jniLibs/x86_64/libsodium.so
rename {bip32ed25519 => android/bip32ed25519}/src/main/kotlin/bip32ed25519/Bip32Ed25519Android.kt (97%)
rename {bip32ed25519 => android/bip32ed25519}/src/main/kotlin/bip32ed25519/utils.kt (84%)
create mode 100644 android/build.gradle.kts
create mode 100644 android/gradle/libs.versions.toml
rename {gradle => android/gradle}/wrapper/gradle-wrapper.jar (100%)
rename {gradle => android/gradle}/wrapper/gradle-wrapper.properties (100%)
rename gradlew => android/gradlew (100%)
rename gradlew.bat => android/gradlew.bat (100%)
create mode 100644 android/settings.gradle.kts
create mode 100644 desktop/.gitignore
rename {bip32ed25519 => desktop/bip32ed25519}/build.gradle.kts (100%)
create mode 100644 desktop/bip32ed25519/libs/.gitkeep
rename {bip32ed25519 => desktop/bip32ed25519}/src/main/kotlin/bip32ed25519/Bip32Ed25519.kt (97%)
create mode 100644 desktop/bip32ed25519/src/main/kotlin/bip32ed25519/utils.kt
rename {bip32ed25519 => desktop/bip32ed25519}/src/test/kotlin/bip32ed25519/Bip32Ed25519Test.kt (91%)
rename {bip32ed25519 => desktop/bip32ed25519}/src/test/kotlin/bip32ed25519/testWithSandbox/AlgoLocalNetTest.kt (100%)
rename {bip32ed25519 => desktop/bip32ed25519}/src/test/resources/auth.request.json (100%)
rename {bip32ed25519 => desktop/bip32ed25519}/src/test/resources/msg.schema.json (100%)
rename {gradle => desktop/gradle}/libs.versions.toml (100%)
create mode 100644 desktop/gradle/wrapper/gradle-wrapper.jar
create mode 100644 desktop/gradle/wrapper/gradle-wrapper.properties
create mode 100755 desktop/gradlew
create mode 100644 desktop/gradlew.bat
rename settings.gradle.kts => desktop/settings.gradle.kts (100%)
diff --git a/.github/workflows/gradlew-test.yaml b/.github/workflows/gradlew-test.yaml
index de946a85..a9648adf 100644
--- a/.github/workflows/gradlew-test.yaml
+++ b/.github/workflows/gradlew-test.yaml
@@ -1,11 +1,11 @@
-name: Run Gradle Test
+name: Attempt a build with Gradle
on:
pull_request:
branches: [main]
jobs:
- test-and-build:
+ run-initialize-sh:
runs-on: ubuntu-latest
steps:
@@ -23,11 +23,5 @@ jobs:
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
- - name: Run Gradle Wrapper
- run: chmod +x gradlew && gradle wrapper
-
- - name: Initialize Repo and Jars
+ - name: Initialize submodule, generate jars, and build (including tests)
run: chmod +x initialize.sh && ./initialize.sh
-
- - name: Run tests
- run: ./gradlew test --info
diff --git a/.gitignore b/.gitignore
index f432293a..663443bd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,6 +23,9 @@
hs_err_pid*
replay_pid*
+# Ignore build outputs
+dist/
+
# Ignore Gradle project-specific cache directory
.gradle
diff --git a/README.md b/README.md
index d647ac5c..309f1d2d 100644
--- a/README.md
+++ b/README.md
@@ -4,6 +4,8 @@ A Kotlin implementation of ARC-0052 Algorand, in accordance with the paper BIP32
Note that this library has not undergone audit and is not recommended for production use.
+Currently there are two folders, one to create an .aar file for use in Android, another to prepare .jar files for use in standard Kotlin desktop use-cases.
+
## Installation
This library uses a forked version of LazySodium-Java that exposes Ed25519 operations. The fork has been added as a Git Submodule. It needs to be initialized, built and have its .jar files moved into lib/libs at the root level of this repository.
@@ -12,6 +14,8 @@ This library uses a forked version of LazySodium-Java that exposes Ed25519 opera
./initialize.sh
```
+Running this will create a dist/ folder containing the .aar and .jar files respectively. These can be imported in your project.
+
### Note: For Linux Users
LazySodium-Java bundles up the LibSodium binaries and expose them as part of the .jar files. By default this library will attempt to use the bundled up binaries, but falls back to any system-wide installation of LibSodium.
@@ -26,6 +30,10 @@ apt-get install -y libsodium-dev
You might be required to install using `sudo` privileges.
+## CI/CD
+
+Github Workflows are used. `./initialize.sh`is called, which attempts to build the Android and Desktop libraries and output .aar respectively .jar files. By default `./gradlew build` also runs `./gradlew test`.
+
## How to Use
Initialize an instance of Bip32Ed25519 with seed bytes:
diff --git a/android/.gitignore b/android/.gitignore
new file mode 100644
index 00000000..a81cffc4
--- /dev/null
+++ b/android/.gitignore
@@ -0,0 +1,170 @@
+# Created by https://www.toptal.com/developers/gitignore/api/android,androidstudio
+# Edit at https://www.toptal.com/developers/gitignore?templates=android,androidstudio
+
+### Android ###
+# Gradle files
+.gradle/
+build/
+
+# Local configuration file (sdk path, etc)
+local.properties
+
+# Log/OS Files
+*.log
+
+# Android Studio generated files and folders
+captures/
+.externalNativeBuild/
+.cxx/
+*.apk
+output.json
+
+# IntelliJ
+*.iml
+.idea/
+misc.xml
+deploymentTargetDropDown.xml
+render.experimental.xml
+
+# Keystore files
+*.jks
+*.keystore
+
+# Google Services (e.g. APIs or Firebase)
+google-services.json
+
+# Android Profiling
+*.hprof
+
+### Android Patch ###
+gen-external-apklibs
+
+# Replacement of .externalNativeBuild directories introduced
+# with Android Studio 3.5.
+
+### AndroidStudio ###
+# Covers files to be ignored for android development using Android Studio.
+
+# Built application files
+*.ap_
+*.aab
+
+# Files for the ART/Dalvik VM
+*.dex
+
+# Java class files
+*.class
+
+# Generated files
+bin/
+gen/
+out/
+
+# Gradle files
+.gradle
+
+# Signing files
+.signing/
+
+# Local configuration file (sdk path, etc)
+
+# Proguard folder generated by Eclipse
+proguard/
+
+# Log Files
+
+# Android Studio
+/*/build/
+/*/local.properties
+/*/out
+/*/*/build
+/*/*/production
+.navigation/
+*.ipr
+*~
+*.swp
+
+# Keystore files
+
+# Google Services (e.g. APIs or Firebase)
+# google-services.json
+
+# Android Patch
+
+# External native build folder generated in Android Studio 2.2 and later
+.externalNativeBuild
+
+# NDK
+obj/
+
+# IntelliJ IDEA
+*.iws
+/out/
+
+# User-specific configurations
+.idea/caches/
+.idea/libraries/
+.idea/shelf/
+.idea/workspace.xml
+.idea/tasks.xml
+.idea/.name
+.idea/compiler.xml
+.idea/copyright/profiles_settings.xml
+.idea/encodings.xml
+.idea/misc.xml
+.idea/modules.xml
+.idea/scopes/scope_settings.xml
+.idea/dictionaries
+.idea/vcs.xml
+.idea/jsLibraryMappings.xml
+.idea/datasources.xml
+.idea/dataSources.ids
+.idea/sqlDataSources.xml
+.idea/dynamic.xml
+.idea/uiDesigner.xml
+.idea/assetWizardSettings.xml
+.idea/gradle.xml
+.idea/jarRepositories.xml
+.idea/navEditor.xml
+
+# Legacy Eclipse project files
+.classpath
+.project
+.cproject
+.settings/
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.war
+*.ear
+
+# virtual machine crash logs (Reference: http://www.java.com/en/download/help/error_hotspot.xml)
+hs_err_pid*
+
+## Plugin-specific files:
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Mongo Explorer plugin
+.idea/mongoSettings.xml
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+### AndroidStudio Patch ###
+
+!/gradle/wrapper/gradle-wrapper.jar
+
+# End of https://www.toptal.com/developers/gitignore/api/android,androidstudio
+
+# Ignore the bip32ed25519kotlin .aar file
+*.aar
\ No newline at end of file
diff --git a/android/bip32ed25519/.idea/gradle.xml b/android/bip32ed25519/.idea/gradle.xml
new file mode 100644
index 00000000..4224d25f
--- /dev/null
+++ b/android/bip32ed25519/.idea/gradle.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/android/bip32ed25519/.idea/misc.xml b/android/bip32ed25519/.idea/misc.xml
new file mode 100644
index 00000000..6ed36dd3
--- /dev/null
+++ b/android/bip32ed25519/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/android/bip32ed25519/.idea/workspace.xml b/android/bip32ed25519/.idea/workspace.xml
new file mode 100644
index 00000000..e4c1656b
--- /dev/null
+++ b/android/bip32ed25519/.idea/workspace.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1711030245922
+
+
+ 1711030245922
+
+
+
+
\ No newline at end of file
diff --git a/android/bip32ed25519/build.gradle b/android/bip32ed25519/build.gradle
new file mode 100644
index 00000000..df15d879
--- /dev/null
+++ b/android/bip32ed25519/build.gradle
@@ -0,0 +1,67 @@
+version = "0.1.0"
+group = "com.algorandfoundation.bip32ed25519"
+
+apply plugin: 'com.android.library'
+apply plugin: 'kotlin-android'
+apply plugin: 'kotlin-kapt'
+
+android {
+ compileSdkVersion 34
+ buildToolsVersion "33.0.3"
+
+ buildFeatures {
+ viewBinding = true
+ }
+
+ defaultConfig {
+ namespace "com.algorandfoundation.bip32ed25519"
+ minSdkVersion 19
+ targetSdkVersion 33
+ versionCode 16
+ versionName "0.1.0"
+ testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+ multiDexEnabled true
+ }
+
+ lint {
+ baseline = file("lint-baseline.xml")
+ }
+
+ sourceSets {
+ main {
+ jni.srcDirs = []
+ jniLibs.srcDirs = ['src/main/jniLibs']
+ }
+ }
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_17
+ targetCompatibility JavaVersion.VERSION_17
+ }
+}
+
+dependencies {
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
+ implementation 'net.java.dev.jna:jna:5.12.1'
+ implementation 'com.goterl:resource-loader:2.0.2'
+ implementation 'cash.z.ecc.android:kotlin-bip39:1.0.7'
+ implementation 'net.pwall.json:json-kotlin-schema:0.46'
+ implementation 'com.algorand:algosdk:2.4.0'
+ implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3'
+ implementation 'org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.3'
+ implementation 'com.fasterxml.jackson.core:jackson-databind:2.16.1'
+ implementation 'com.fasterxml.jackson.core:jackson-core:2.16.1'
+ implementation 'org.msgpack:jackson-dataformat-msgpack:0.9.8'
+ implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.16.1'
+ testImplementation 'org.jetbrains.kotlin:kotlin-test-junit5'
+ testImplementation libs.junit.jupiter.engine
+ testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
+ api libs.commons.math3
+ implementation libs.guava
+}
+
+java {
+ toolchain {
+ languageVersion.set(JavaLanguageVersion.of(17))
+ }
+}
\ No newline at end of file
diff --git a/android/bip32ed25519/libs/.gitkeep b/android/bip32ed25519/libs/.gitkeep
new file mode 100644
index 00000000..e69de29b
diff --git a/android/bip32ed25519/lint-baseline.xml b/android/bip32ed25519/lint-baseline.xml
new file mode 100644
index 00000000..b3058fcd
--- /dev/null
+++ b/android/bip32ed25519/lint-baseline.xml
@@ -0,0 +1,194 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/android/bip32ed25519/src/main/jniLibs/arm64-v8a/libsodium.so b/android/bip32ed25519/src/main/jniLibs/arm64-v8a/libsodium.so
new file mode 100755
index 0000000000000000000000000000000000000000..02f443ba91ee0de9259cf36102fa9ae87cfc879a
GIT binary patch
literal 283336
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