Commit Graph

138 Commits

Author SHA1 Message Date
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 b6907b14e6 Use `sapling-crypto` crate directly outside `zcash_primitives` 2023-12-12 19:50:26 +00: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 1b9eaa8694 Update `Cargo.lock` file with upgraded dependency versions. 2023-11-08 17:00:39 -07:00
str4d 64d657ed31
Merge pull request #1033 from zcash/sapling-params-refactor
Introduce newtypes for Sapling circuit parameters
2023-11-08 21:01:30 +00: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 8bb9c4e7ba Move Sapling proof verifiers from `zcash_proofs` to `zcash_primitives` 2023-11-07 03:08:43 +00:00
Daira Emma Hopwood 77ceb879e6 Merge remote-tracking branch 'origin/release-zcash_client_sqlite-0.8.1' 2023-10-19 01:16:24 +01:00
Jack Grigg db31105067 Move Sapling circuits from `zcash_proofs` to `zcash_primitives::sapling`
Closes zcash/librustzcash#737.
2023-09-29 18:36:54 +00: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 7a47f8494c zcash_client_sqlite 0.8.0 2023-09-25 18:20:44 +00:00
Jack Grigg 4bc65d66b1 zcash_client_backend 0.10.0 2023-09-25 18:19:52 +00:00
Jack Grigg 1a1abb62aa zcash_proofs 0.13.0 2023-09-25 15:11:00 +00:00
Jack Grigg d35d0961ab zcash_primitives 0.13.0 2023-09-25 15:06:57 +00:00
Jack Grigg 30c58ebfb2 zcash_client_sqlite 0.8.0-rc.5 2023-09-22 23:26:43 +01:00
Jack Grigg 4afc24af6a zcash_client_backend 0.10.0-rc.4 2023-09-22 23:25:19 +01:00
Kris Nuttycombe e7b3e9c04e zcash_client_sqlite 0.8.0-rc.4 2023-09-19 15:01:52 -06:00
Kris Nuttycombe 6d2c53111a zcash_client_backend 0.10.0-rc.3 2023-09-19 15:00:51 -06:00
Kris Nuttycombe 45ced4d164 Update Cargo.lock 2023-09-12 12:11:46 -06:00
Kris Nuttycombe e6b34eeaa2 zcash_client_sqlite 0.8.0-rc.2 2023-09-12 08:32:34 -06:00
Kris Nuttycombe 24068cd63a zcash_client_backend 0.10.0-rc.2 2023-09-12 08:31:39 -06:00
Jack Grigg 15fed12e95 cargo update
The `blake2*_simd` updates are ignored because they bump MSRV.
2023-09-11 22:12:52 +00:00
Jack Grigg fad1b91377 Add `Cargo.lock` to repository
This is currently "whatever lockfile happened to last work for str4d",
but going forward will be the lockfile we use for testing our MSRV. See
https://blog.rust-lang.org/2023/08/29/committing-lockfiles for rationale
on this change.
2023-09-11 22:12:52 +00:00
Jack Grigg 3cc32aacbc Remove Cargo.lock
Now that the librustzcash crate has been removed from the repository and
workspace, there are no crates that generate binary artifacts, and cargo
ignores Cargo.lock when publishing library crates.
2020-03-25 17:19:27 +13:00
Jack Grigg 232fb4b7a3 Procedural macro for fixed-exponent variable-base modular exponentiation
Uses the addchain crate to obtain an addition chain for the exponent,
and then generates the corresponding constant-time square-and-multiply
algorithm.
2020-03-14 10:54:22 +13:00
Jack Grigg 2df2a2b2f2 Merge branch 'develop' 2020-03-14 10:36:58 +13:00
Sean Bowe 100878cd14
Version bump of all crates (except librustzcash) 2020-03-12 15:59:19 -06:00
Sean Bowe 5e1a2f9d3f
Rename zcash_mmr to zcash_history.
This crate will contain all chain history logic.
2020-03-03 18:14:40 -07:00
Sean Bowe 9379eec1b8
Bring zcash_mmr into workspace. 2020-03-03 18:04:18 -07:00
Sean Bowe be0ee9eb82
Changes to Cargo.lock to reflect upstream crate changes. 2020-03-03 17:49:24 -07:00
Jack Grigg 6c2c2b58de
Migrate pairing benchmarks to criterion 2019-12-19 16:46:16 -06:00
Jack Grigg 00499b3441
Migrate zcash_primitives benchmarks to criterion 2019-12-19 16:11:11 -06:00
Jack Grigg 7ea1da5d6f
Migrate jubjub benchmarks to criterion 2019-12-19 15:55:01 -06:00
Jack Grigg f44556d7bf
Upgrade to criterion 0.3 2019-12-19 15:08:45 -06:00
Jack Grigg 662be3551f
impl ConditionallySelectable for Field 2019-12-12 23:15:48 +00:00
Sean Bowe a4f7c4eef3
Include jubjub and bls12_381 crates in the workspace. 2019-12-12 11:40:48 -07:00
Nikolay Volf 9ea0427678 MMR trees API (#118)
The main design goals of this mmr implementation were

1. Avoid database callbacks. As it is implemented, calling side must just smartly pre-load MMR nodes from the database (about log2(tree length) for append, twice as much for deletion).

2. Reuse as much code/logic between rust and c++ clients.

3. Close to zero memory consumption.
2019-12-04 21:24:26 +00:00
str4d 67d700feab
Merge pull request #107 from str4d/transaction-builder-transparent-inputs
Add P2PKH transparent input support to transaction::Builder
2019-11-13 22:15:55 +00:00
Jack Grigg d1bc61800c
Move Sprout proof logic into zcash_proofs 2019-11-06 08:58:42 +00:00
Jack Grigg bc35a62e10
Remove rand_os dependency 2019-10-31 18:57:52 +00:00
Jack Grigg 3425eabda2
transaction::Builder::add_transparent_input() 2019-10-15 17:42:46 +13:00
Jack Grigg 1e2bc7f65c
Test nullifiers in constant time
Checking for spent notes in a block is still not completely constant
time, due to filtering out negative results of the constant-time
comparison.

Part of #84.
2019-10-09 14:12:27 +13:00
Jack Grigg 591b1fc28f
Parse compact blocks to find wallet transactions 2019-10-09 14:11:12 +13:00