Commit Graph

1370 Commits

Author SHA1 Message Date
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
Kris Nuttycombe 57f3b7ada6 Extend the timeout for upload to Maven repositories to 10 minutes
Also extend the setup timeout by 10 minutes.
2023-09-13 08:57:55 -06:00
Kris Nuttycombe 4d99ad10ac Merge branch 'fast-spendability' 2023-09-12 16:20:44 -06:00
Kris Nuttycombe 82757353f6 Update version & changelog for 2.0.0-rc.1 release.
Fixes #1237
2023-09-12 13:08:34 -06:00
Kris Nuttycombe 5037102faf Update to zcash_client_sqlite-0.8.0-rc.3 2023-09-12 12:38:39 -06:00
Honza Rychnovský 9b18fe12d9
Add encode_scan_progress documentation
Co-authored-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-12 19:36:39 +02:00
Honza Rychnovský 96aeec2e9d
Add throws documentation
Co-authored-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-12 19:29:39 +02:00
Honza 11b031a6af Exit execution when retry limit reached 2023-09-12 19:27:20 +02:00
Jack Grigg d775421f5a rust: Migrate to `zcash_client_backend 0.10.0-rc.2` etc 2023-09-12 15:24:45 +00:00
Jack Grigg d162cdf35f rust: Migrate to `hdwallet 0.4` to de-duplicate dependencies 2023-09-12 15:15:58 +00:00
Jack Grigg 01e9b058cb rust: Handle zero-conf transparent funds the same way as iOS 2023-09-12 15:15:58 +00: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 916f9e957b Update PersistableWallet API
These required changes came from the latest SDK acceptance testing with Zashi wallet.
2023-09-11 13:37:12 +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 Rychnovský 4c38354f01
Update Changelog
Co-authored-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-10 11:50:59 +02:00
Honza Rychnovský c9d3085001
Update Changelog
Co-authored-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-10 11:47:46 +02:00
Honza Rychnovský fe7edf3ec5
Fix Changelog typos
Co-authored-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-09-10 11:45:53 +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 5e85c39b78 Silent rust compile error
mismatched types: expected `&u64`, found integer
2023-09-09 19:32:35 +02:00
Honza 1b6039c368 Reverting denominator constraint back
The Rust layer now filters out the zero denominator but keeping the ScanProgress new safe ratio function with its test.
2023-09-09 19:11:58 +02:00
Honza ffc1c99738 JniScanRange height parameters constraint 2023-09-09 19:11:58 +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ý d3d54d7f15
Filter out zero denominator in Rust layer
Co-authored-by: Kris Nuttycombe <kris@electriccoin.co>
2023-09-09 19:07:52 +02:00
Jack Grigg 9284e60e2a rust: dlopen2 0.6 2023-09-08 21:49:01 +01:00
Jack Grigg ab6a831f50 Migrate to release candidates of Rust crates 2023-09-08 21:49:01 +01:00
Jack Grigg 1ef0304f92 rust: cargo update 2023-09-08 21:49:01 +01:00
Honza 0d001495d5 Documentation update 2023-09-08 20:28:49 +02:00
Honza Rychnovský 899b487ee4 [#1219] Remove calculated sync progress
Closes #1219
2023-09-08 20:23:37 +02:00
Honza Rychnovský 3721b8b6c4 [#1225] Disable deprecated darkside tests
* [#1225] Disable deprecated darkside tests

- Closes #1225
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
Jack Grigg 9207dd0b58 Migrate to Rust version with bugfixes
This also reverts the prior change to `getBalance` / `getVerifiedBalance`
now that the fix for zcash/librustzcash#948 is present.
2023-09-08 20:22:40 +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
Jack Grigg 14d854f96e rust: Return 0 from `getBalance` and `getVerifiedBalance` for unknown accounts
This works around zcash/librustzcash#948, where known accounts without
history are not reported in the `WalletSummary`. We assume that the
Kotlin side of the SDK does not call these FFI methods with unknown
accounts.
2023-09-08 20:19:51 +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 83ea5b55c3 Fix ktlint warning 2023-09-08 20:19:51 +02:00
Honza c1d917244a Update usage of SyncAlgorithm in Demo-app 2023-09-08 20:19:51 +02:00