Commit Graph

271 Commits

Author SHA1 Message Date
Honza Rychnovský 2ee4140080
[#1307] Gradle 8.5
* [#1307] Gradle 8.5

Closes #1307

* Changelog update

* Flank 23.10.1
2024-01-04 10:47:46 +01:00
Honza Rychnovský 0cdba6a69c
[#1294] Checkpoints update
Closes #1294
2023-11-08 15:22:07 +01:00
Honza Rychnovský 7d7cf4f84f
[#1292] Expose Data database file path
- Implemented as part of synchronizer API
- Closes #1292
- Documentation updated
2023-11-08 12:27:14 +01:00
str4d ae2d7152aa
Replace Sapling balance and scan progress FFIs with wallet summary FFI
* Replace Sapling balance and scan progress FFIs with wallet summary FFI

Closes zcash/zcash-android-wallet-sdk#1282.

* Using test fixture for JniAccountBalance

* Minor documentation changes

* Fix typo

---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2023-11-08 10:57:23 +01:00
Honza Rychnovský 6ae8259466
[#1288] Checkpoints update 2023-10-20 14:46:47 +02:00
Honza Rychnovský ddffd170d1
[#1273] 10_000-ZAT Miners fee
- Removed all uses of the incorrect 1000-ZAT fee as defined with  deprecated zip-313
- Default is now 10k zatoshi, the minimum defined by zip-317
- Changelog updated
- Closes  #1273
2023-10-02 12:49:36 +02:00
Honza Rychnovský ebde156c6c
[#1276] Checkpoints update
- Closes #1276
2023-10-02 12:48:59 +02:00
Honza Rychnovský c8e5a7e125
[#1249] Continuity error rewind
* [#1249] Continuity error rewind

- Fixed the Rust FFI bug that caused us to be unable to catch the Continuity error
- Improved logging
- Moved handling the Continuity error to the outer synchronization loop, which works better with synchronization mutex
- Closes #1249

* Resolve minor comments from older PR #1247
2023-09-21 16:11:02 +02:00
Honza f56146fa05 [#1255] Checkpoints update 2023-09-20 12:59:42 -06:00
Honza 38ee6a80e9 Link fetchTransaction pass txId twice TODO 2023-09-20 08:56:29 -06:00
Honza 83c69fdd9f FirstClassByteArray toString formatting 2023-09-20 15:51:37 +02:00
Honza 55222aad50 Poll UTXOs regularly 2023-09-20 14:10:11 +02:00
Jack Grigg 5e40ff6920 Fix bugs in `TransactionOverview.transactionState` initialization
- Off-by-one in determining whether a transaction is confirmed.
- Expiry logic was inverted for non-zero expiry heights.
  - Transactions with zero (disabled) expiry heights happened to work
    because this case is currently detected in the database logic and
    mapped to `null`, which the old code mapped to `Long.MAX_VALUE`
    which gave the correct result for the old conditional expression.
2023-09-19 23:22:47 +01:00
Jack Grigg 89eb42e473 Fix `BlockHeight` difference type
Block heights are absolute, not relative. Adding heights does not make
sense, and the difference between two heights is an integer.
2023-09-19 23:22:47 +01:00
Jack Grigg 905fb1e1a8 Improve debug printing of `FirstClassByteArray` 2023-09-19 22:59:31 +01:00
Jack Grigg 233acebc2f Migrate to Rust revision with fixes to table views
With the fixes to `v_transactions` and `v_tx_outputs`, there are
several more data fields that may have no data (for rows corresponding
to purely-transparent transactions); their fields are made nullable.
2023-09-19 22:59:31 +01:00
Honza Rychnovský c0c4506664
[#1241][#1243][#1222] Rewinding when ContinuityError
* [#1241] Remove rewind for every verify scan range

- The original solution comes from the pseudocode requirement: Download the blocks in `scan_range` into the block source, overwriting any existing blocks in this range.
- Removed

* [#1243] Rewind only after continuity-error

- Rewind is done only when Continuity-error appears now. In case of other sync failures, the sync loop sleeps for a short time and then retries. Internal actions like fetching subtree roots, fetching chain tip, downloading, scanning, etc., still have their internal retry mechanisms.
- For the calculation of the rewind height, we use the existing checkContinuityErrorResult method, originally used only for validation use cases but later incorrectly used for other failures too.
- Closes #1243
- Closes #1222 as it was created to determine which failure type comes and don’t rewind for all of them
- Tested manually in several scenarios, e.g. lost internet connection or app going to background

* Handle Continuity and other sync errors

- Call handleContinutyError and its rewind logic directly without checking failed attempts. This ensures that we keep trying to reorg.
- And return the correct type of error in that case.
- Add fail logic to the handling of the other types of errors.
2023-09-19 15:47:56 +02:00
Honza Rychnovský 9869fd4300
[#1239] Post-v2.0.0-rc1 cleanup
* Add JniScanProgressTest

* Remove unnecessary testnet workaround

As this was fixed with the last rust changes.

* Simplify batchCount calculating

* Fix ratio typo

* Docummentation comments changes
2023-09-18 16:51:26 +02:00
Honza Rychnovský 62fc5d7cfa
[#1242] ScanRange fails when no matching priority (#1246)
Tests added
2023-09-18 08:15:18 -06:00
Honza 11b031a6af Exit execution when retry limit reached 2023-09-12 19:27:20 +02:00
Honza 39ba2b48b0 Fix ktlint warning 2023-09-11 20:22:41 +02:00
Honza c7125f4183 Update createAccountAndGetSpendingKey API
- TypesafeBackend.createAccountAndGetSpendingKey now works with a type-safe TreeState model class instead of ByteArray.
- New type-safe TreeState added. Once we get the TreeState object from the lightwalletd server, potential validation comes into this object.
2023-09-11 19:11:03 +02:00
Honza Rychnovský a082fe9034
[#1231] GetConsensusBranchId works with chain tip (#1232)
* [#1231] GetConsensusBranchId works with chain tip

Closes #1231
2023-09-11 09:11:01 +02:00
Honza 4c8c32587b Add note on scan continuity error texts 2023-09-10 10:31:56 +02:00
Honza a8813277f7 retryUpToAndContinue exception wrapper trigger fix 2023-09-10 10:19:08 +02:00
Honza 95da0f25ab BlockHeight subtraction fix 2023-09-09 19:56:56 +02:00
Honza 79ba05f23b Change denominator requirement
- Added safe progress ratio calculating function
- Added test
2023-09-09 19:11:58 +02:00
Honza a43c5f130e Change createAccountAndGetSpendingKey API
The checkpoint parameter changed for treeState: ByteArray
2023-09-09 19:11:58 +02:00
Honza Rychnovský 899b487ee4 [#1219] Remove calculated sync progress
Closes #1219
2023-09-08 20:23:37 +02:00
Honza Rychnovský c6032b47bd [#1208][#1215] Pass proper `recoverUntil`
- Closes #1208
- CLoses #1215
2023-09-08 20:23:37 +02:00
Honza Rychnovský 59ab627c82 [#1218] Adopt new getScanProgress API 2023-09-08 20:22:40 +02:00
Honza Rychnovský fc14082a1c [#1213] Remove `BlockTable` and its APIs
* [#1213] Remove `count()` from BlockTable API

* [#1213] Remove `firstScannedHeight()` from BlockTable API

* [#1213] Remove `findBlockHash()` from BlockTable

* [#1213] Remove `lastScannedHeight()` from BlockTable

* [#1213] Remove `BlockTable` entirely
2023-09-08 20:22:40 +02:00
Honza Rychnovský 33a7a2000f [#1210] Eliminate LINEAR sync support 2023-09-08 20:19:51 +02:00
Jack Grigg 42cf9d6466 Migrate to Rust revision that exposes scanned heights 2023-09-08 20:19:51 +02:00
Honza 7b7275b5bd Migrate to latest Rust revision follow-up changes 2023-09-08 20:19:51 +02:00
Honza Rychnovský 9e334fd375 [#1109][#1206] Regular balance flows emission
* [#1206] Optimize SYNC_BATCH_SIZE

* [#1109] Regular balance flows emission
2023-09-08 20:19:51 +02:00
Jack Grigg 11d9529f2b Migrate to latest Rust revision
- Account birthdays
- Scan progress
- Bugfixes
2023-09-08 20:19:51 +02:00
Honza Rychnovský 648b31a555 [#1170] Regular transaction flow emitting
* [#1170] Regular transaction flow emitting

Although zcash/librustzcash#918 will provide information on when to trigger transaction polling, this partly solves the issue as well

* Update changelog
2023-09-08 20:19:51 +02:00
Honza Rychnovský 10a7aa7f3f [#1180] Frequent SbS synchronization restarting
* [#1180] Frequent SbS synchronization restarting

- Processing blocks with SbS split into preparation and processing functions, which can be called repeatedly.
- Refactored other parts of the synchronization mechanism
- Closes #1180
- This also partly solves #1137

* Update .gitignore

* Update LINCENSE documentation

* [#1177] Checkpoints update

* Fix Ktlint warning
2023-09-08 20:19:51 +02:00
Honza f23aca38a6 Update getSuggestScanRangePriority fallback value 2023-09-08 20:19:51 +02:00
Jack Grigg 32069bea0a Migrate to Rust revision with scan queue initialization 2023-09-08 20:19:51 +02:00
Honza Rychnovský 0e40b3a807 [#1181] Stop update balance before updateChainTip 2023-09-08 20:19:51 +02:00
Honza Rychnovský 9795610bb9 [#1136] Tests for the new helper extensions
* Jni objects attribute constraint tests


* Extend continuity error test

* ScanRange model tests

* [#1174] Move model classes out of the CompactBlockProcessor

* [#1174] SbS: Move model classes out of the CompactBlockProcessor

* Move SyncingResult out of the processor

* Add issue link
2023-09-08 20:19:51 +02:00
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