Commit Graph

228 Commits

Author SHA1 Message Date
Honza 7277a7ecca Fix ktlint warning 2023-09-08 20:19:51 +02:00
Honza 61f618caf9 Remove OpenEndRange type entirely 2023-09-08 20:19:51 +02:00
Honza 6e7d2404dc Fix query db projection in getSaplingOutputIndices 2023-09-08 20:19:51 +02:00
Honza cc3129d0a5 Fix selectionArgs input type 2023-09-08 20:19:51 +02:00
Honza d1ef768b7a Minor formatting changes 2023-09-08 20:19:51 +02:00
Honza Rychnovský fd17e7ef0e [#1159] Update sync progress reporting
* [#1168] Checkpoints update

* [#1159] Updated sync progress reporting

* Increase test_robo_demo_app timeout

* Migrate to ClosedEndRange

It’s better to transform suggested ranges from OpenEndRange to ClosedRange as soon as possible to avoid its handling in the rest of the logic.

* Improve all batch count calculating

* Subsequent SbS sync algorithm renaming
2023-09-08 20:19:51 +02:00
Honza Rychnovský 91f5cbe24d [#1129] Refactor ProcessorInfo
* Add rewind button to Demo app

To be able to test refactored CompactBlockProcessor rewind feature.

* Rename non-linear to spend-before-sync

* [#1129] Refactor lastSyncRange lastSyncedHeight

* Fix updateRange function

As the overallSyncRange needs to be reset in case of all ranges are processed.

* [#1166] Remove alsoClearBlockCache parameter
2023-09-08 20:19:51 +02:00
Honza Rychnovský 70cd1e030c [#1157] Get roots: recover failed communication 2023-09-08 20:19:51 +02:00
Honza Rychnovský 6b487e979e [#1160] New SyncAlgorithm type API 2023-09-08 20:19:50 +02:00
Jack Grigg 54d016e401 Migrate to Rust revision with checkpoint and memo bugfixes 2023-09-08 20:18:10 +02:00
Honza Rychnovský 3c31144963 [#1133] Set the correct getSubtreeRoots inputs
* [#1133] Set the correct getSubtreeRoots inputs

- It also better handles setState calls
- It fixes OpenEndRange -> ClosedRange
- And it improves logging in syncing mechanism

* Increase build CI timeout
2023-09-08 20:18:10 +02:00
Honza Rychnovský 7d098f67b9 [#1146] Process the rest of the ranges
* [#1146] Process the rest of the ranges
2023-09-08 20:18:10 +02:00
Honza Rychnovský 92ac1e926e [#1139][#1138] Process Priority.Verify blocks
* [#1139][#1138] Process Priority.Verify blocks

This makes the new subtask functions more testable.

* Increase CI test timeout

* [#1047][#1140] Improve CBD internal state handling

* [#1047][1140] Improve CBD internal state handling

This improves internal state handling in CompactBlockProcessor. Error handling included. And it prepares us for ContinuityError handling too.

* [#1143] Handle ContinuityError
2023-09-08 20:18:10 +02:00
Honza Rychnovský c8b481a12f [#1130] Initial Suggested Ranges Parsing
* [#1130] Initial suggested ranges parsing
2023-09-08 20:18:10 +02:00
Honza Rychnovský b811305e53 [#1125] Download chain tip metadata 2023-09-08 20:18:10 +02:00
Honza Rychnovský 6a68889df6 [#1123] Linear vs Non-linear decision mechanism 2023-09-08 20:18:10 +02:00
Jack Grigg 3c5d91b112 Expose `putSaplingSubtreeRoots` and `updateChainTip` Rust APIs 2023-09-08 20:18:10 +02:00
Honza 57fe48e9fe Switch to ScanRange model in sdk-lib module 2023-09-08 20:18:10 +02:00
Honza 85388a85c3 Clear validation stage 2023-09-08 20:18:10 +02:00
Honza 7cee1d7203 Make buildable + Solve Lint warnings 2023-09-08 20:18:10 +02:00
Jack Grigg 12c3441778 Migrate to Rust crate versions with fast spendability support 2023-09-08 20:18:10 +02:00
Honza Rychnovský 4f58e5aac9
[#1188] Checkpoints update
Closes #1188
2023-09-08 18:30:45 +02:00
Honza Rychnovský d38bde86ba
[#1176] Rest Dependency Update 2023-09-03 22:18:48 +02:00
Honza Rychnovský 45f1c473b2
[#1111] Poll transactions and balances while syncing
* [#1111] Poll transactions during synchronization

* Poll transactions and balances Demo-app manually
2023-08-16 13:17:00 +02:00
Honza Rychnovský 0be05a1c4c
[#1108] Getting memo for sent transactions 2023-07-31 13:34:41 +02:00
Honza Rychnovský 1936c69cbd
[#1147] Checkpoints update 2023-07-31 11:37:16 +02:00
Honza Rychnovský f1b5e3aade
[#1014] Decorate Backend with Typesafe APIs
* [#1014] Decorate Backend with Typesafe APIs
2023-07-17 12:50:53 +02:00
Honza Rychnovský 0f9b13e454
[#1102] Checkpoints update 2023-07-05 14:19:13 +02:00
Honza Rychnovský 0a3efdbb6c
[#1096] Fix null mined height crash
This handles the state in which is a transaction after it’s created with mined height null. It then doesn’t try to convert such a height into a BlockHeight object which is doing validation on input height. It rather returns null, similarly as for expiry height.
2023-07-05 14:18:49 +02:00
Honza Rychnovský 89ee0190af
[ #1099] Proper transaction state 2023-07-05 14:18:22 +02:00
Honza Rychnovský dc330228ff
[#1097] Adopt Bip39 1.0.5
* [#1097] Adopt Bip39 1.0.5

* Fix Detekt warnings
2023-07-04 14:14:20 +02:00
Honza Rychnovský 166d24ce37
[#953] TransactionOverview fixture
This just checks and validates the already existing TransactionOverview fixture.
2023-06-22 16:19:36 +02:00
Honza Rychnovský ab7928003c
[#1048] Duration instead of Long
- This replaces Long type usage with Kotlin Duration in the calculatePollInterval
2023-06-21 09:41:02 +02:00
Honza Rychnovský 53f5550bf4
[#1066] Detekt enhancement
* [#1083] Detekt Compose 0.1.10

* [#1066] Detekt - MaxLineLength rule turn on

* Remove default values

As we keep only those that differ from the default in the latest Detekt update.

* [#1086] Improve TODO inline occurrence pattern
2023-06-20 11:26:38 +02:00
Honza Rychnovský e1665d7aa6
[ #1078] Checkpoints update 2023-06-12 15:48:09 +02:00
Carter Jernigan 83910888ea
[#921] AGP 8.0.2
* [#921] AGP 7.4.2

* Bump AGP to version 8.0.2

- Includes necessary changes

* Gradle and Rust plugin compatibility workaround

* Release build proguard rules

After bumping to the AGP 8.0.2 some new proguard rules are autogenerated and one new for the io.grpc.okhttp.OkHttpChannelProvider is needed

* Plugins compatibility workaround update

* Disable unnecessary benchmark module minification

As we just need to keep the target module obfuscated.

* [#1067] Gradle 8.1.1

* [#1068] Activity Compose 1.7.2

* [#1069] Protobuf

* [#1070] Tracing 1.2.0-rc01

* [#1071] JUnit 5.9.3

* [#1072] Mockito 5.3.1

* Demo app release build timeout increase

- Our latest change (double build due to Rust integration issue) possibly causes our build timeout to exceed with the latest Gradle version

* Dep issue template update

* Fix deprecated Runtime.exec()

---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2023-06-09 15:18:11 +02:00
Honza Rychnovský b99ab6cdf9
[#920] Rust backend void return
* [#920] Tweak RustBackend public APIs to have void return values

- Contains changes for putUtxo() function

* Changes for scanBlocks() function

* Changes for decryptAndStoreTransaction()

* Changes for rewindToHeight()

* Changes for writeBlockMetadata()

* Changes for initBlocksTable and initAccountsTable
2023-06-09 10:29:33 +02:00
Carter Jernigan 61c83989d9
[#940] Improve reliability of erasing SDK
* [#940] Improve reliability of erasing SDK

* Fix Ktlint warning

---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2023-06-08 08:46:24 +02:00
Honza Rychnovsky 4926e3a24d
[#939] Eliminate default arguments for Account
* [#939] Eliminate default arguments for Account

* Add Account.DEFAULT to demo-app tests

* Update changelog
2023-05-23 13:39:46 +02:00
Honza Rychnovsky 20638afa52
[#1030] Make sdk-lib gRPC objects free
- This follows our goal of having the sdk-lib module completely separated from the networking layer
2023-05-23 13:08:25 +02:00
Honza Rychnovsky 68e7e1f7de
[#1039] Retry enhancing fetch transaction
Enhancing transaction details mechanism was refactored to provide more clarity about its inner phases (fetching and decrypting with storing) and to be able to retry when the transaction fetching fails due to flaky network condition
2023-05-22 17:03:50 +02:00
Honza Rychnovsky b1901c0c8f
[#1053] Checkpoints update 2023-05-22 15:25:27 +02:00
Honza Rychnovsky 138342cec5
[#1027][#1028] CompactBlockProcessor Exception with off-by-one error 2023-05-22 13:41:02 +02:00
Carter Jernigan 65069f76dd [#1031] Revert strictMode violation: LeakedClosableViolation data db
Until we have more time to investigate, I have reverted this issue due to a prelaunch report crash https://github.com/zcash/secant-android-wallet/issues/868

This reverts commit ca0e69d97f.
2023-05-19 14:30:16 -04:00
Honza Rychnovsky 352811cd6b
[#1026] Continuous Batched Enhancing
* [#1026] Consider Enhancing Every 1000 Synced Blocks

* Enhancing refactoring code cleaning

* Query un-enhanced transactions from repository

- And change enhancement range in case of any transaction found
- Changed enhancing trigger appropriately
- Covered also the case when the sync stage ended before the enhancement limit reached
- Cleaned up the code

* File and link sub-stages error handling follow-up

* File and link Duration instead of Long refactoring issue

---------

Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2023-05-19 16:34:05 +03:00
Carter Jernigan bc19797125
[#971] Refactor Rust FFI to separate module
---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2023-05-18 07:36:15 -04:00
Honza Rychnovsky ca0e69d97f
[#1031] StrictMode violation: LeakedClosableViolation data db 2023-05-16 14:26:34 +02:00
Honza Rychnovsky 63a3bfe3e4
[#1034] Checkpoints update 2023-05-16 14:26:07 +02:00
Honza Rychnovsky 15603fcdf1
[#1023] Move Fetch UTXOs Before Block Sync
* [#1023] Move Fetch UTXOs Before Sync

* Add refreshTransparentBalance() after UTXOs fetch

* Add refreshTransactions() after UTXOs fetched
2023-05-11 14:55:58 +02:00
Honza Rychnovsky dfaa827fd1
[#1013] Sync stages parallelization
* [#1013] Sync blockchain sub-phases parallelization

- Remove the unnecessary comment after the latest changes in this code fragment

* Move solely CompactBlockProcessor-related constants

* Simplify sync range update construction

* [#1013] Sync blockchain sub-phases parallelization

* Changelog update

* Block files deletion documentation update

* Leverage buildList API

* CompactBlockRepository documentation update

* Move BlockBatch to internal models
2023-05-10 12:45:23 +02:00