Commit Graph

3 Commits

Author SHA1 Message Date
Jack Grigg be2fdeaaf3
Upgrade librustzcash to 0.2.0
librustzcash now requires a minimum of Rust 1.36.0.

The proc-macro2, quote, syn, and unicode-xid dependencies are pulled in
because we moved to using ff_derive inside pairing to derive the
BLS12-381 fields. We will be going back to explicit implementations with
the jubjub and bls12_381 crates, so these dependencies will disappear
once that is done.

The autocfg crate is pulled in by the upgraded num-integer crate, which
is transitively used by fpe. Rewriting fpe to not use num-bigint would
drop:

- autocfg
- num-bigint
- num-integer
- num-traits

We primarily depend on rand_core in our crates. The rand crate, and its
other dependencies, are pulled in for two reasons:

- The group crate exposes testing helper functions in its public API
  that use distribution sampling APIs in the rand crate.

- zcash_primitives::transaction::Builder uses rand::seq::SliceRandom to
  shuffle the order of Sapling spends and outputs.

Refactoring these in order to drop rand would additionally drop:

- c2-chacha
- rand_chacha
- rand_hc
- rand_xorshift
2019-10-20 19:10:34 +13:00
Jack Grigg eff2938e46
Migrate to current librustzcash
The only upstream change relative to the previous commit is that the
various Zcash-specific dependencies have been pulled into a cargo
workspace. The dependecies in the workspace use the same commits as the
crates we had previously vendored.

The patches are necessary to handle the fact that cargo requires that
dev dependencies are available even if not used, and we would otherwise
need to vendor all the underlying crates.
2018-10-27 17:03:47 +13:00
Jack Grigg f8d65e8f03
Update librustzcash with ZIP 32 APIs 2018-09-03 10:27:52 +01:00