Commit Graph

797 Commits

Author SHA1 Message Date
Kris Nuttycombe 50f5df4c1d zcash_client_sqlite: Implement `WalletDb::get_orchard_nullifiers` 2024-03-11 17:31:04 +00:00
Kris Nuttycombe af4dce9912 zcash_client_sqlite: Implement `wallet::orchard::put_received_note` 2024-03-11 17:31:04 +00:00
Kris Nuttycombe ae9dd25525 zcash_client_sqlite: Add `orchard_received_notes` table and update related views. 2024-03-11 16:35:01 +00:00
Kris Nuttycombe 374ed8cf94 zcash_client_sqlite: Add backend impl for the Orchard note commitment tree 2024-03-11 16:35:01 +00:00
Kris Nuttycombe de58b5a5b1 zcash_client_sqlite: Add a failing test of cross-pool transfer 2024-03-11 11:36:35 +00:00
Kris Nuttycombe 99b3d3c997 zcash_client_sqlite: Generalize chain tests. 2024-03-11 10:27:54 +00:00
Kris Nuttycombe 02562187af zcash_client_sqlite: Make scan_cached_blocks_detects_spends_out_of_order a common single-pool test 2024-03-11 10:27:54 +00:00
Jack Grigg 993102e803 zcash_client_sqlite: Fix `test_with_nu5_birthday_offset` tree setup 2024-03-10 21:47:40 +00:00
Jack Grigg 799574590e zcash_client_sqlite: Fix more test seeds to use valid lengths 2024-03-10 21:47:40 +00:00
Jack Grigg 2a81156520 zcash_client_sqlite: Fix balance APIs in `TestState` to include Orchard 2024-03-10 21:47:40 +00:00
Jack Grigg 6898dbf094 Replace `unstable-nu6` and `zfuture` feature flags with cfg flags
Neither of these should have been feature flags, as they gate breaking
changes to the Zcash consensus rules (and in some ways are incompatible
with each other), while feature flags should be additive.
2024-03-10 18:42:39 +00:00
Jack Grigg 75c5f31ab0 zcash_client_sqlite: Use a seeded RNG in `TestState`
This makes individual instances of `TestState` deterministic, which
helps with debugging.
2024-03-10 01:10:50 +00:00
Jack Grigg 390b536950 zcash_client_sqlite: Use `LocalNetwork` for testing
This enables us to activate Sapling and NU5 at the same height, to
simplify reuse of test logic between Sapling and Orchard.

As a side-effect, `zcash_extensions` is removed from the workspace
because it enables the `zfuture` feature flag unconditionally, which
breaks workspace-level builds because this causes the `zfuture` feature
flag on `zcash_protocol` to be enabled without the corresponding feature
flag on `zcash_client_sqlite` being enabled. We will fix this by moving
from feature flags to config flags for unstable features.
2024-03-10 01:10:28 +00:00
Jack Grigg 798d9154b8 zcash_client_sqlite: Use a valid length for test seeds 2024-03-09 21:12:37 +00:00
Jack Grigg a0b517a93a zcash_client_sqlite: Add `OrchardPoolTester`, run tests with Orchard 2024-03-09 20:44:19 +00:00
Jack Grigg 0891b5fd3a zcash_client_backend: Correctly handle empty frontiers in test birthdays 2024-03-09 18:21:34 +00:00
Jack Grigg f74c2304df zcash_client_sqlite: Track Orchard commitment tree sizes in `TestState` 2024-03-09 18:06:20 +00:00
Jack Grigg dd8808fd83 zcash_client_sqlite: Replace tuple with struct in `TestState` 2024-03-09 17:36:18 +00:00
Kris Nuttycombe 39c750312f
Merge pull request #1247 from zcash/zcs-pool-testing
zcash_client_sqlite: Generalise Sapling tests
2024-03-09 10:11:46 -07:00
Jack Grigg 9d40588a50 zcash_client_sqlite: Generalise `wallet::scanning` tests 2024-03-09 15:28:47 +00:00
Jack Grigg 399ae762b7 zcash_client_sqlite: Generalise `wallet::commitment_tree` tests 2024-03-09 15:20:43 +00:00
Jack Grigg d89b88126d zcash_client_sqlite: Generalise `wallet::sapling` tests
These are all "single shielded pool" tests, and should pass for any
shielded pool implemented in the wallet.
2024-03-09 15:20:40 +00:00
Kris Nuttycombe 19868af84a
Merge pull request #1246 from zcash/zcb-0.11-zcs-0.9-doc-fixes
`zcash_client_backend 0.11.1`, `zcash_client_sqlite 0.9.1` with doc fixes
2024-03-09 08:19:41 -07:00
Jack Grigg c6f1fdb73d zcash_client_sqlite 0.9.1 2024-03-09 11:39:38 +00:00
Jack Grigg 075a155a29 Remove `orchard` feature flag from docs.rs builds while not public 2024-03-09 11:37:25 +00:00
Kris Nuttycombe 5511bacf25 zcash_client_sqlite: Make sapling_received_notes.recipient_key_scope optional.
We will only consider notes spendable when both the UFVK & key scope are available.
2024-03-08 18:34:50 -07:00
Kris Nuttycombe e2ac746e9d zcash_client_sqlite: Generalize `ReceivedNoteId` 2024-03-08 16:43:06 -07:00
Kris Nuttycombe d55edd8dd8 zcash_client_sqlite: Deduplicate `WalletDb::get_sapling_nullifiers` 2024-03-08 16:41:51 -07:00
Kris Nuttycombe 7aacfc3bb0 zcash_client_sqlite: Extract general helpers from Sapling tree logic 2024-03-08 16:41:51 -07:00
Kris Nuttycombe c107f3df11 zcash_client_sqlite: Use errors instead of panics for unimplemented or unsupported down migrations. 2024-03-08 22:19:05 +00:00
Kris Nuttycombe 78e4916899 zcash_client_backend: Generalize `DecryptedOutput` to support Orchard 2024-03-08 13:48:30 -07:00
Kris Nuttycombe 4c5ce32dee zcash_client_backend: Use `NonNegativeAmount` for `select_spendable_notes` 2024-03-08 13:48:30 -07:00
Kris Nuttycombe 8f4de9b235
Merge pull request #1235 from zcash/diverse_accounts
zcash_client_sqlite: Rework accounts to support imported viewing keys
2024-03-08 13:39:08 -07:00
Jack Grigg bfc2278bfe Encode UIVK Sapling component with `sapling-crypto` 2024-03-08 20:22:45 +00:00
Jack Grigg 054b374b5a Add missing feature flag conditional 2024-03-08 19:08:20 +00:00
Jack Grigg f9bf5a173f bugfix: Encode transparent IVK in UIVKs instead of transparent FVK 2024-03-08 19:06:27 +00:00
Andrew Arnott 0c80893ce0 zcash_client_sqlite: Rework accounts to support imported viewing keys 2024-03-08 18:55:18 +00:00
Kris Nuttycombe 63450533dd
Merge pull request #1233 from zcash/test-harness-orchard-fvk
zcash_client_sqlite: Add Orchard support to test harness
2024-03-08 11:37:32 -07:00
Jack Grigg c8d03f69ef Extend `TestState::generate_next_block_spending` with Orchard support 2024-03-08 14:40:25 +00:00
Jack Grigg cc90c4c405 Avoid excessive Orchard dummies in `TestState::generate_next_block_spending` 2024-03-08 13:29:13 +00:00
Jack Grigg 6c6080c99c `impl TestFvk for orchard::keys::FullViewingKey` 2024-03-08 13:28:55 +00:00
Jack Grigg 0a41d65910 Generalise `TestState::generate_*` methods over a `TestFvk` trait 2024-03-08 00:02:28 +00:00
Jack Grigg 291a6f5799 Use correct change address in `TestState::generate_next_block_spending` 2024-03-07 23:26:43 +00:00
Jack Grigg bc0b1aed07 De-duplicate compact Sapling output creation in `TestState` 2024-03-07 23:26:43 +00:00
Jack Grigg f306a0a78a zcash_client_sqlite: Make internal testing functions module-private
This ensures we only access them through `TestState` in future.
2024-03-07 22:14:15 +00:00
Kris Nuttycombe 4532520670 zcash_client_backend: Add Orchard frontier to `AccountBirthday` 2024-03-07 14:45:23 -07:00
Kris Nuttycombe 8955cfc559 Add missing CHANGELOG entries. 2024-03-05 14:37:26 -07:00
Kris Nuttycombe 5675a76f0d zcash_protocol: Use `BalanceError` instead of `()` for monetary range violations. 2024-03-05 13:59:26 -07:00
Kris Nuttycombe 51d4464472 Remove `network_type` calls that are obviated by the blanket impl. 2024-03-05 13:36:15 -07:00
Kris Nuttycombe b8aa5132c2 Apply suggestions from code review
Co-authored-by: str4d <thestr4d@gmail.com>
Co-authored-by: Daira-Emma Hopwood <daira@jacaranda.org>
2024-03-05 13:36:15 -07:00