Commit Graph

143 Commits

Author SHA1 Message Date
Kris Nuttycombe bbb8d1090a Add placeholder for a zip321 crate. 2024-04-03 12:13:47 -06:00
Kris Nuttycombe 777adb871d Release zcash_client_backend version 0.12.0
Closes #1079
2024-03-25 14:03:42 -06:00
Kris Nuttycombe b68d97b614
Merge pull request #1314 from zcash/release-zcash_keys-0.2.0
Release zcash_keys version 0.2.0
2024-03-25 12:13:50 -06:00
Kris Nuttycombe f8c021546d Release zcash_keys version 0.2.0 2024-03-25 11:34:21 -06:00
Kris Nuttycombe 2bda943a2e Release zcash_proofs version 0.15.0 2024-03-25 11:23:53 -06:00
Kris Nuttycombe 4cf8cab6fc zcash_primitives release version 0.15.0 2024-03-25 08:45:23 -06:00
Kris Nuttycombe 4f7c5bd722 zcash_client_sqlite: Fix `scan_complete` tests. 2024-03-19 16:11:57 -06:00
Willem Olding 1775f6525b
Add WASM support to `lightwalletd-tonic` feature flag (#1270)
The transport-specific code is moved behind a new `lightwalletd-tonic-transport` feature flag.
2024-03-15 11:58:13 +00:00
Kris Nuttycombe cc990b60e0 zcash_keys: Remove HdSeedFingerprint as it duplicates `zip32::fingerprint::SeedFingerprint` 2024-03-14 17:09:03 -06:00
Kris Nuttycombe f58263e211 zcash_client_backend: Require the tree state for the start of each scanned range.
In order to support constructing the anchor for multiple pools with a
common anchor height, we must be able to checkpoint each note commitment
tree (and consequently compute the root) at that height. Since we may
not have the information in the tree needed to do so, we require that it
be provided.

As a bonus, this change makes it possible to improve the UX around
spendability, because we will no longer require subtree ranges below
received notes to be fully scanned; the inserted frontier provides
sufficient information to make them spendable.
2024-03-12 18:14:11 -06:00
Kris Nuttycombe 0c5a365c60 zcash_client_sqlite: Update to make use of `orchard::note::Rho` 2024-03-12 17:28:10 -06: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
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 6c6080c99c `impl TestFvk for orchard::keys::FullViewingKey` 2024-03-08 13:28:55 +00:00
Jack Grigg d0673c9bc3 zcash_protocol 0.1.0 2024-03-06 15:07:11 +00:00
Kris Nuttycombe 66c6bba84e Add stub for a `zcash_protocol` crate. 2024-03-05 09:45:24 -07:00
Jack Grigg dfb6c65edd zcash_client_backend 0.11.0
Closes zcash/librustzcash#962.
2024-03-01 01:16:04 +00:00
Jack Grigg 3135c31d1a zcash_keys 0.1.0 2024-03-01 01:14:34 +00:00
Jack Grigg d0c380114a zcash_proofs 0.14.0
Closes zcash/librustzcash#1034.
2024-03-01 01:13:49 +00:00
Jack Grigg 599aa45a56 zcash_primitives 0.14.0 2024-03-01 01:12:43 +00:00
Kris Nuttycombe e5f23b9126 Update `orchard` dependency version to `0.7.1` 2024-02-29 15:39:44 -07:00
Kris Nuttycombe 7e8723bea9 zcash_client_backend: Add Orchard support to batch scanning. 2024-02-29 12:04:53 -07:00
Kris Nuttycombe 74b487e4c9 Apply suggestions from code review
Co-authored-by: str4d <thestr4d@gmail.com>
2024-02-15 20:51:24 -07:00
Kris Nuttycombe 6aabe60d21 zcash_client_backend: Add validation to the `Proposal::multi_step` constructor. 2024-02-15 13:09:52 -07:00
Jack Grigg 8ca1fcee92 Migrate to `sapling-crypto 0.1` and `orchard 0.7` 2024-01-26 20:43:58 +00:00
str4d b6caa483b4
Merge pull request #1116 from zcash/zcash_keys
Split `zcash_keys` crate out from `zcash_client_backend`
2024-01-16 22:09:41 +00:00
Kris Nuttycombe 0ca955336d Split `zcash_keys` crate out from `zcash_client_backend`
This change makes it easier for third parties to make use of the Unified
key infrastructure without incurring a dependency upon the rest of the
`zcash_client_backend` interfaces.
2024-01-16 13:49:42 -07:00
Kris Nuttycombe cc39bf4429 zcash_primitives: Add Orchard bundle metadata to transaction builder. 2024-01-16 13:19:24 -07:00
Jack Grigg 2ea83243a7 Document the feature flags 2024-01-03 20:15:21 +00:00
Kris Nuttycombe 704e8e1144 zcash_primitives: Updates to reflect `sapling-crypto` and `orchard` builder changes. 2024-01-02 13:00:11 -07:00
Jack Grigg dc8094856b Migrate to `sapling-crypto` crate outside this repository 2023-12-11 17:27:34 +00:00
Jack Grigg 6acc64e61c Move `zcash_primitives::sapling` module into `sapling-crypto` 2023-12-11 17:07:45 +00:00
Jack Grigg e7f71c3f1f Revert "Remove sapling-crypto"
This reverts commit 1b865ecfdf.
2023-12-11 17:07:45 +00:00
Jack Grigg ce7b7df0cc zcash_primitives: Switch to type-safe `PRF^expand`
Part of zcash/librustzcash#1044.
2023-12-07 17:09:44 +00:00
Jack Grigg 3dfd478141 Migrate to published `zip32` crate outside this repository 2023-12-06 18:04:09 +00:00
Jack Grigg 5aa0e6c6ee Revert "Convert zip32 crate into a module of zcash_primitives"
This reverts commit f25a8a557e.
2023-12-05 18:07:53 +00:00
Kris Nuttycombe 374882b7bc Move `zcash_note_encryption` component to https://github.com/zcash/zcash_note_encryption
The `zcash_note_encryption` component crate has been factored out to
its own repository, to avoid circular crate dependencies involving
https://github.com/zcash/librustzcash and the
https://github.com/zcash/orchard and
https://github.com/zcash/sapling-crypto repositories.
2023-11-17 20:39:14 -07:00
Kris Nuttycombe aa063ae3fd zcash_client_backend: Factor out input source traits from `WalletRead`
Prior to this change, it's necessary to implement the entirety of the
`WalletRead` trait in order to be able to use the input selection
functionality provided by `zcash_client_backend::data_api::input_selection`.
This change factors out the minimal operations required for transaction
proposal construction to better reflect the principle of least authority
and make the input selection code reusable in more contexts.

In order to minimize the operations of the newly-created `InputSource`
and `ShieldingSource` traits, this change also removes the
`min_confirmations` field from transaction proposals, in favor of
storing explicit target and anchor heights. This has the effect of
limiting the lifetime of transaction proposals to `PRUNING_DEPTH -
min_confirmations` blocks.
2023-11-08 12:41:49 -07:00
Jack Grigg 7e89300db9 Move common package and dependency configs into workspace config
The MSRV for the main crates is 1.65, which is higher than the Rust
version that stabilised workplace dependencies (1.64). The implicit MSRV
for the component crates is still lower than this, so we don't migrate
these crates.
2023-09-26 22:01:32 +00:00
Jack Grigg 94c1f2413d Migrate to `incrementalmerkletree 0.5`, `orchard 0.6` 2023-09-08 18:57:25 +00:00
Jack Grigg facd4ccac5 Migrate to latest `shardtree` revision 2023-07-25 20:57:49 +00:00
Jack Grigg 99ecdf3a89 zcash_client_sqlite: Build subtrees from new commitments in a threadpool
The new `multicore` feature flag can be used to disable this behaviour.
2023-07-25 15:59:03 +00:00
Jack Grigg 98ea08e497 Migrate to latest `shardtree` to improve performance 2023-07-19 14:54:01 +00:00
Jack Grigg a11545459b Bump patched dependencies to bring in shardtree bugfixes 2023-07-06 22:19:21 +00:00
Kris Nuttycombe 3e358bc1c9 zcash_client_backend: Use `shardtree` for note commitments in block scanning.
Also adds a skeleton `zcash_client_sqlite` implementation of
`shardtree::ShardStore` and a skeleton migration for related
database changes.
2023-06-29 15:35:18 -06:00
Kris Nuttycombe 3dd0c63095 Update to `incrementalmerkletree 0.4`, `orchard 0.5` 2023-06-06 14:27:39 -06:00
Kris Nuttycombe ebcfae987d Update the data access API in preparation for shardtree introduction. 2023-06-02 10:59:17 -06:00