Go to file
Kris Nuttycombe 50ea2a5b0f zcash_client_sqlite: Only select notes for which witnesses can be constructed.
This change modifies the implementation of `get_spendable_sapling_notes`
and `select_spendable_sapling_notes` to only return notes at positions
where the associated note commitment tree shard has been fully scanned.
This is slightly more conservative than it needs to be, because
there could be cases where witnesses imported into the tree in the
`shardtree_support` migration cover the complete range of a subtree (and
hence that subtree doesn't need to be re-scanned). However, we can't
detect or depend upon that condition in general without attempting to
create a witness for each note retrieved.

A possible alternative to this approach would be to not bound our query
results on the requested total, and instead attempt to construct a
witness for each note we retrieve, skipping the note if we cannot
construct a witness. However, given that accessing the note commitment
tree can be a costly operation requiring nontrivial deserialization
costs, the more conservative database-oriented approach is perhaps
better.
2023-08-17 16:20:54 -06:00
.github Bump codecov/codecov-action from 3.1.3 to 3.1.4 2023-05-16 05:57:59 +00:00
components Release zcash_address version 0.3.0 2023-06-06 15:53:16 -06:00
librustzcash Remove librustzcash crate 2020-03-14 10:50:04 +13:00
zcash_client_backend zcash_client_sqlite: Ensure that target and anchor heights are relative to the chain tip. 2023-08-16 11:53:24 -06:00
zcash_client_sqlite zcash_client_sqlite: Only select notes for which witnesses can be constructed. 2023-08-17 16:20:54 -06:00
zcash_extensions Add Orchard support to `zcash_primitives::transaction::builder::Builder` 2023-06-23 14:09:59 -06:00
zcash_history Bump MSRV for `zcash_primitives` and dependents to 1.65 2023-05-16 15:37:07 +00:00
zcash_primitives Add more debug and trace logging 2023-07-18 17:23:57 +00:00
zcash_proofs zcash_proofs 0.12.1 2023-06-28 18:37:37 +01:00
.gitattributes zcash_client_backend: Add gRPC bindings behind feature flag 2022-11-02 06:22:02 +00:00
.gitignore Add Cargo.lock to .gitignore 2020-03-25 17:24:50 +13:00
.gitlab-ci.yml Remove duplicate test stage for rust lastest 2018-10-09 09:34:10 -07:00
COPYING.md Ensure that GitHub's "View license" link points to complete license information. 2022-01-18 14:19:53 +00:00
Cargo.toml Migrate to latest `shardtree` revision 2023-07-25 20:57:49 +00:00
LICENSE-APACHE Add license files. 2017-03-17 11:09:05 -06:00
LICENSE-MIT Update copyright year in LICENSE-MIT. 2022-01-18 14:19:53 +00:00
README.md Address feedback about the use of "permissive". 2022-06-28 16:46:13 +01:00
rust-toolchain.toml Bump MSRV for `zcash_primitives` and dependents to 1.65 2023-05-16 15:37:07 +00:00

README.md

Zcash Rust crates

This repository contains a (work-in-progress) set of Rust crates for working with Zcash.

Security Warnings

These libraries are currently under development and have not been fully-reviewed.

License

All code in this workspace is licensed under either of

at your option.

Downstream code forks should note that some (but not all) of these crates and components depend on the 'orchard' crate, which is licensed under the Bootstrap Open Source License. A license exception is provided allowing some derived works that are linked or combined with the 'orchard' crate to be copied or distributed under the original licenses (in this case MIT / Apache 2.0), provided that the included portions of the 'orchard' code remain subject to BOSL. See https://github.com/zcash/orchard/blob/main/COPYING for details of which derived works can make use of this exception, and the README.md files in subdirectories for which crates and components this applies to.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.