Commit Graph

163 Commits

Author SHA1 Message Date
Carter Jernigan 1c76ea6998 [#880] Create sdk-incubator-lib
Add dependency link between lib and incubator

Make AndroidApiVersion internal in SDK
2023-02-09 15:44:22 -05:00
Carter Jernigan 8df7a5d3ec
[#917] Min API 24
Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2023-02-09 06:52:10 -05:00
Carter Jernigan 3a4ea7eefd [#907] Remove Guava dependency 2023-02-06 09:51:47 -05:00
Carter Jernigan 28be779fc3 [#906] Enable non-transitive R classes 2023-02-06 09:51:31 -05:00
Carter Jernigan c0a2c11418
[#615] Refactor lightwalletd client
* [#615] Refactor lightwalletd client

This moves the lightwalletd client code to a separate Gradle module, but does not yet do much clean up the public API (e.g. hiding generated GRPC objects).  That will be a followon change via #673

I’ve prototyped a safer version of the API that would be implemented for #673 for two specific calls: obtaining the current block height and obtaining the light wallet info.  These were the easiest endpoints to update and they provide a useful exploration for the future changes needed.

* Fix benchmarking for networking module

- Moved to fixture and build type check components to the new networking module, so it's accessible from all needed parts of the projects
- Changed fixture return type to fit to all needed usages

* Align with previous review comment

* Fix wrong merge

* Add basic sanity test

- To satisfy tests requirements on emulators.wtf service

* Remove grpc dependency from sdk-lib module

* Repackage cash.z.wallet.sdk.rpc to cash.z.wallet.sdk.internal.rpc

* Fix BuildConfig path

* Update demo-app paths to rpc

* Fix broken grpc services locations

- Our aim here is to change only the local services location (package name), the server location can't be changed due to backward compatibility.

* Enhance GRPC Response model

* Adopt enhanced GRPC response model

- Adopted in a few endpoints

* Enhance Connection failure type

* Add simple fixture test

* Refactor fetchTransaction() to work with Response

- Refactored this server call to adopt our new Response mechanism
- GrpsStatusResolver.resolveFailureFromStatus() now accepts Throwable input
- Added Response.Failure.toThrowable() to satisfy subsequent server calls results processing
- A few other minor refactoring changes

* Remove commented out log

* Unify return type of collection returning methods

- Switched fetchUtxos() to return Sequence instead of List
- Added a check on empty tAddress input

* fetchUtxos returns flow

- Switched fetchUtxos() to return Flow of Service.GetAddressUtxosReply
- Internally it calls getAddressUtxosStream() instead of getAddressUtxos() from GRPC layer

* Update unsafe suffix documentation

* Address several minor change requests

* Remove code parameter

- Removed from the locally triggered failures with default codes.

* Rename local variable

* Switch from empty response to exception

- Our server calls now rather throw IllegalArgumentException than return an empty response
- Removed commented out log message
- Updated javadocs

* Update proto files

- Plus related api changes adoption

* Unify new clients instances name

* AGP 7.4.0 changes

-  packagingOptions -> androidComponents in sdk-lib and lightwallet-client-lib modules

* SDK version bump

* Response resolver tests

* Release build upload timeout increase

* Release build upload timeout increase fix

* Revert timeout

- As Github has some infrastructure troubles and we need to wait

* Add migrations documentation

* Sort packaging filters

* Remove private field from public documentation

* Hide private variables

* Remove package from Android Manifest

* Throw exception instead of custom error

- This step unify our approach to validation on client side across all server calls

* Replace setAddresses index const with number

* Fix indentation in proto file

---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2023-02-01 11:14:55 +01:00
Honza Rychnovsky 7d065ceaf7
[#843] Ktlint 0.48.2
- Removed semicolon in enum classes suppression
- Created and linked issue for test wallets values
2023-01-31 15:17:51 +01:00
Carter Jernigan 17018422fa [#874] GRPC 1.52.1 2023-01-24 06:22:44 -05:00
Carter Jernigan 5fefee2380 [#892] Emulator.wtf Gradle Plugin 0.0.15 2023-01-24 06:22:27 -05:00
Carter Jernigan 5806801132 [#888] Android Gradle Plugin 7.4 2023-01-18 11:23:25 -05:00
Carter Jernigan 30979e5ebf [#851] Androidx Updates
Note that the APIs for Room, Sqlite, and Compose changed slightly with these dependency updates
2023-01-18 11:23:25 -05:00
Carter Jernigan 6e89805ee1 [#851] Kotlin 1.8 2023-01-18 11:23:25 -05:00
Carter Jernigan 4ad1da49d0
[#886] Support null block heights
Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2023-01-12 11:32:43 -05:00
Carter Jernigan 285d2e8b9b
[#860] Flank 23.01.0 2023-01-10 10:40:56 -05:00
Carter Jernigan a4a6b25bfb
[#631] Initial Compose scaffolding for demo app
* [#631] Initial Compose scaffolding for demo app

* Bump Compose Compiler

- To bypass Kotlin version incompatibility

* Switch ConfigureSeed from Column to Scaffold

- To unify our screens UI components
- And to have a fullscreen content, and thus avoid another background color out of column (e.g. in system dark mode)

* Split addresses to two rows

- To reduce a risk of a user overlooks other addresses scrolled out of the screen

* Additional code migrated from Secant

- Added just missing test files, fixtures and model classes
- Fix previously broken dependencies imports

* Link issue to code

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2022-12-23 11:00:37 +01:00
Honza Rychnovsky e784ddf353
[#841] Ktlint 0.48.0
* [#841] Ktlint 0.48.0

* Update + Suppress

- Missing-trailing-comma globally
- Broken no-semi rule locally
- Fixed few other minor formatting troubles
2022-12-20 09:25:04 +01:00
Honza Rychnovsky c3e41a68c2
[#795] Detekt 1.22.0
* [#795] Detekt 1.22.0

* Fix rules/its findings
2022-12-19 08:08:25 +01:00
Honza Rychnovsky a77f3a629c
[#820] Kotlin 1.7.21 + KSP 1.7.21
* [#820] Kotlin 1.7.21 + KSP 1.7.21

* Re-generate locks after merge

* Update Changelog
2022-12-16 14:11:09 +01:00
Honza Rychnovsky 653a5250dd
[#819] Dokka 1.7.20 2022-12-15 17:24:22 +01:00
Honza Rychnovsky f3299a0d88
[#815] Gradle Versions Plugin 0.44.0 2022-12-15 17:20:11 +01:00
Honza Rychnovsky 7ba47d9db6
[#834] Protoc 3.21.11 2022-12-15 13:49:21 +01:00
Honza Rychnovsky e524486192
[#822] Emulator.wtf Gradle Plugin 0.0.12 2022-12-15 13:46:38 +01:00
Honza Rychnovsky 62b9370682
[#821] JUnit 5.9.1 + Mockito 4.9.0 2022-12-15 08:25:37 +01:00
Honza Rychnovsky 42857c0c13
[#816] Material Components 1.7.0 2022-12-15 08:24:56 +01:00
Honza Rychnovsky 870041a809
[#814] AndroidX Dependencies Update 2022-12-14 16:49:13 +01:00
Carter Jernigan 2ab6d038ed
[#742] Prevent multiple synchronizer instances
Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2022-12-14 10:33:18 -05:00
Honza Rychnovsky 97c0628798
[#789] Benchmarking Demo-app
* [#789] Add Benchmark module to Demo-app

* Code cleanup

* Opti-in experimental coroutines api in tests

* Add Testing documentation

* Documentation update + ktlint

* Check screen on and keyguard unlocked in each test

* Introduce UiAutomator extensions

* Enhance BenchmarkTrace events definition

* Remove unnecessary mutex

* Change blocks range

* Increase sync blockchain timeout

- To always fit in the Balances screen timeout for the selected blocks range

* Remove unnecessary fun suspend modifiers

* Macrobenchmark lib bump to 1.2.0-alpha8

* Remove duplicate label attr in app/manifest

* File and link benchmark on CI task

* Add proguard keep rules

* Documentation update
2022-12-13 14:25:09 +01:00
Carter Jernigan b24e4fc2bb [#708] gRPC 1.51.0 2022-12-03 09:00:54 -05:00
Carter Jernigan b4ffff9a78
[#791] Flank 22.10.0
* [#791] Flank 22.10.0

This should resolve issues with `flankAuth` task

* Update documentation

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2022-11-24 14:54:41 +01:00
Carter Jernigan b1f38ab912
[#786] Simplify signing during development 2022-11-22 09:34:09 +01:00
Carter Jernigan ee99b36798
Merge branch 'main' into feature/zip-316-and-latest-upstream 2022-11-08 10:13:43 -05:00
Carter Jernigan d1e9b28c91 [#771] Update documentation for SDK 1.10.0 2022-11-08 09:32:07 -05:00
Carter Jernigan b0ec6229f6
Bump version to 1.9.0-beta05 2022-11-04 07:13:30 -04:00
Carter Jernigan 4c2807aefd
[#705] Roomoval
The Android and Rust code have previously managed joint custody of the derived data database.  With more complex migrations now required, we need to make the Android side read-only.  To achieve that, the Android side will remove Room and instead rely on more primitive SQLite APIs for read-only access.

As part of implementing this change, database management throughout the SDK is being refactored.

There will be multiple representations of the data:
 - Database representation (and some Entity representations in the places that Room hasn’t been removed yet).  These representations are not as type safe and don’t match Kotlin best practices in all cases.
 - Once #615 is implemented there will also be network representations
 - Type safe models, which often appear in the public API  The Database and Network representations will be converted to and from the type safe model representation.
2022-10-19 16:52:54 -04:00
Alex 9fe7fc9935
[#726] Kotlin 1.7.20 (#731) 2022-10-19 12:18:01 +02:00
Honza Rychnovsky 9614a63f89
[#706] Fix crashes identified by robo tests
* [#706] Fix crashes identified by robo tests

- Removed unused xml layouts
- Fixed several xml attributes to be backward compatible

* Reduce number of unnecessary logs in console

* Bump min Android SDK version from 19 to 21

* Bump demo-app minSdk to version 21 too

* Update changelog

Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2022-10-04 16:27:09 +02:00
Carter Jernigan 2d2e838fed Bump version to 1.9.0-beta04 2022-09-26 08:11:42 -04:00
Carter Jernigan 0873ae73e1 [#711] Android Gradle Plugin 7.3 2022-09-22 16:06:00 -04:00
Alex 2ed60a37c8
[#695] ktlint 0.47.1
* 695 ktlint version update (4.7.1)
2022-09-20 14:25:56 +02:00
Carter Jernigan 251bb4dbfc
[#697] Fix running robo test (#698) 2022-08-31 11:17:47 -04:00
Honza Rychnovsky 1fae5beab6
[#509] Remove OkHttp and Okio dependencies
* [#509] Remove OkHttp and Okio dependencies
- Okio -> Java NIO anf OkHttp -> HttpURLConnection in SaplingParamTool class
- Both replaced also in the test packages
- Removed dependencies to the replaced components
- Again switched a few assertions from JUnit to kotlin.test
- Created readLinesInFlow() function which is now reused in few places and runs without OkHttp
- Added subsequent TODOs to code base
- Wrapped to withContext to move it to an IO thread.
- Added use function on the stream and close() at the end of the channels use.
Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2022-08-25 14:36:57 +02:00
Honza Rychnovsky 150778f008
[#367] Fix Kotlin compiler warnings
* Fix missing room schema export directory
* Fix returned unused fields from cursor
* Fix missing db column index
* Improved TODO. Added suppress warning
* Changed parameters name to correspond to their supertype
* Changed type to Kotlin variant
* Use priority parameter
* Unified parameter names
* Suppress unchecked type warning
* Removed inline function
* Suppress obsolete coroutine warnings
* Improve previous commit
* Fix unnecessary safe call warning
* Remove unused parameter
* Unreachable code
* toLowerCase where possible
* Changed parameter name
* Suppress several "unused" warnings
* Fixed fromHtml() deprecation
* Suppress intentionally unused parameter warning
* Remove redundant initializer
* Remove inline function
* Suppress intentionally used deprecated code
* Unreachable code
* Suppress obsolete coroutine warnings
* Suppress intentionally unused parameter
* Remove unused expression
* Supertype parameter name
* Warnings of GetBlockRangeFragment.kt
* Deprecated onActivityCreated
* Suppress obsolete coroutine/flow warnings
* Unnecessary null check
* Suppress intentionally unused parameter
* Suppress intentionally unused parameters
* Deprecated onActivityCreated
* Predetermined type
* ListUtxosFragment clean code
* Suppress intentionally unused parameter
* Lint checks warnings fix
* Add data db migration
* Enable treating Kotlin compiler warnings as errors
* Solve several darkside-test-lib tests warnings
* Solve several demo-app tests warnings
* Solve several sdk-lib tests warnings
* Ktlint check result fix
* Remove parentheses now that Synchronizer is not cast
* Remove wildcard imports for java.util
* Revert "Add data db migration"
* Revert "Fix missing db column index"
* Suppress missing indexes on data db entities

Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2022-08-17 15:48:02 +02:00
Carter Jernigan 10d0652a8d
[#252] Replace third party publishing Gradle plugin
The third party plugin that we’ve used for publishing has introduced multiple breaking changes recently.

By migrating to more standard Gradle publishing APIs, the deployment process is more explicit for those unfamiliar with Gradle.  It also will simplify some upcoming changes to modularize this SDK project.
2022-08-16 08:53:23 -04:00
Honza Rychnovsky c721a5e24e
[#343] Store database files in no_backup folder
Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2022-08-12 11:05:00 -04:00
Carter Jernigan bc0212f77c [#659] Detekt 1.21.0 2022-08-09 16:45:27 -04:00
Carter Jernigan 1cb63e590a [#641] bip-39 1.0.4 2022-08-05 08:11:58 -04:00
Carter Jernigan 2f1ae4b6f6 [#652] GRPC 1.48.1 2022-08-05 08:11:58 -04:00
Carter Jernigan 7050c73ea2 [#651] AGP 7.2.2 2022-08-05 08:11:58 -04:00
Carter Jernigan 9e3a1af23c Bump version to prepare for 1.9-beta01
This ensures that further commits to the main branch deploy snapshots under the 1.9 version
2022-07-29 11:00:53 -04:00
Carter Jernigan ecba4884b2 [#642] gRPC 1.8.0 2022-07-28 17:06:47 -04:00
Carter Jernigan 8ec216dac6 [#643] Protoc .21.4 2022-07-28 17:06:47 -04:00