* Replace Sapling balance and scan progress FFIs with wallet summary FFI
Closeszcash/zcash-android-wallet-sdk#1282.
* Using test fixture for JniAccountBalance
* Minor documentation changes
* Fix typo
---------
Co-authored-by: Honza <rychnovsky.honza@gmail.com>
- 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
* [#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
- 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.
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.
* [#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.
* Add JniScanProgressTest
* Remove unnecessary testnet workaround
As this was fixed with the last rust changes.
* Simplify batchCount calculating
* Fix ratio typo
* Docummentation comments changes
- 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.
* [#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
* [#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
* 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
* [#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
* 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