Commit Graph

1022 Commits

Author SHA1 Message Date
Jack Grigg
54ef63bace Place zcash_proofs::prover::LocalTxProver behind a feature flag
This enables zcash_proofs to be compiled to WASM, which the directories
crate doesn't support.
2019-07-27 00:28:03 +01:00
Jack Grigg
a1cd9dfbac transaction::Builder::add_transparent_output() 2019-07-27 00:28:02 +01:00
Jack Grigg
c26188a0bb TransparentAddress struct for P2PKH and P2SH 2019-07-27 00:28:01 +01:00
Jack Grigg
dab3c002b7 Script opcode and data support
Overrides the shift-left operator for pushing opcodes onto the Script,
matching the notation used in zcashd.
2019-07-27 00:28:00 +01:00
Jack Grigg
1862354ea6 Sapling transaction builder 2019-07-27 00:27:50 +01:00
Jack Grigg
01618038bf TxProver trait to abstract over the circuit parameters
An implementation using local parameters is provided in the zcash_proofs
crate.
2019-07-26 23:56:00 +01:00
str4d
05f098e893 Merge pull request #91 from str4d/upgrade-rand
Upgrade rand crate dependency to 0.7
2019-07-26 23:31:42 +01:00
str4d
0255dca16e Clarify masking of bits in Field::random impls
Co-Authored-By: Daira Hopwood <daira@jacaranda.org>
2019-07-26 19:43:42 +01:00
str4d
5a48d179b8 Merge pull request #90 from adityapk00/paperwallet
Make some methods pub for use in External Wallet Generators

The exposed APIs may change in future crate versions.
2019-07-22 13:25:25 +01:00
Aditya Kulkarni
7f60f0f881 Make some methods in DiversifierKey, DiversiferIndex pub 2019-07-18 16:19:45 -07:00
Jack Grigg
c4e14ad0b1 Address libc deprecations 2019-07-19 00:47:42 +02:00
Jack Grigg
6f9083b5ab Migrate to rand 0.7 2019-07-19 00:47:40 +02:00
Jack Grigg
b0913afdd7 Migrate remaining crates to rand_core 0.4 2019-07-19 00:46:37 +02:00
Jack Grigg
8f7adec0d9 Migrate zcash_primitives to rand_core 0.4 2019-07-19 00:46:37 +02:00
Jack Grigg
60d344a0a7 Migrate sapling-crypto to rand_core 0.4 2019-07-19 00:46:34 +02:00
Jack Grigg
83e1af104e Migrate ff, group, pairing, and bellman to rand 0.6 2019-07-19 00:42:39 +02:00
Jack Grigg
5728bda2c1 Replace rust-crypto with sha2 in sapling-crypto dev-dependencies
This removes rand < 0.5 from our Cargo.lock.
2019-07-19 00:35:06 +02:00
Jack Grigg
ccf75c39c1 Migrate remaining crates to rand 0.5 2019-07-19 00:35:06 +02:00
Jack Grigg
6149166ccb Migrate zcash_primitives to rand 0.5 2019-07-19 00:35:06 +02:00
Jack Grigg
adfc88926b Migrate sapling-crypto to rand 0.5 2019-07-19 00:35:06 +02:00
Jack Grigg
4606a0cefb Migrate bellman to rand 0.5 2019-07-19 00:35:06 +02:00
Jack Grigg
a7e22b3550 Migrate pairing to rand 0.5 2019-07-19 00:35:06 +02:00
Jack Grigg
ce6e2a5825 Migrate group to rand 0.5 2019-07-19 00:35:06 +02:00
Jack Grigg
7a6642b221 Migrate ff to rand_core 0.3 (used by rand 0.5) 2019-07-19 00:35:06 +02:00
str4d
9e758dc7d9 Merge pull request #83 from str4d/blake2_simd
Migrate to blake2b_simd and blake2s_simd crates
2019-07-18 17:41:59 +01:00
str4d
8361674efc Merge branch 'master' into blake2_simd 2019-07-18 18:22:20 +02:00
str4d
5e3409ea85 Merge pull request #68 from str4d/sapling-commitment-tree
Sapling commitment tree
2019-07-15 16:52:46 +02:00
Jack Grigg
504c3eaeae Address Daira's review comments 2019-07-15 16:33:43 +02:00
Jack Grigg
07dbfbef59 Address Eirik's review comments 2019-07-10 13:53:22 -04:00
Jack Grigg
79006ecbdf Unify Sapling tree depth constants
When sapling-crypto is refactored, the zcash_primitives::sapling
constant would become the canonical one.
2019-07-10 13:53:22 -04:00
Jack Grigg
e67560b154 Document merkle_tree module 2019-07-10 13:53:22 -04:00
Jack Grigg
b9cea33804 Move merkle_tree::Node into sapling module
This makes the merkle_tree module properly generic over the tree hash.
It still hard-codes a depth 32 tree, because Rust doesn't yet support
generic sizes, and we are unlikely to need to alter the tree depth in
future circuit changes.
2019-07-10 13:53:22 -04:00
Jack Grigg
263bbe1207 Use Iterator::all() in place of Iterator::fold() 2019-07-10 13:53:22 -04:00
Jack Grigg
98d7621135 Don't assert when parsing a CommitmentTreeWitness 2019-07-10 13:53:22 -04:00
Jack Grigg
9b4186705a Add serialization APIs to CommitmentTree and IncrementalWitness 2019-07-10 13:53:22 -04:00
Jack Grigg
70a7069058 Helper for serializing Option<T> 2019-07-10 13:53:22 -04:00
Jack Grigg
667d6101c9 Sapling incremental witnesses 2019-07-10 13:53:20 -04:00
Jack Grigg
bf74915053 Move CommitmentTreeWitness into zcash_primitives 2019-07-10 13:52:47 -04:00
Jack Grigg
f4059a5faa Sapling commitment tree 2019-07-10 13:44:21 -04:00
Jack Grigg
8f3f95ee08 Sapling commitment tree empty roots 2019-07-10 13:44:21 -04:00
Jack Grigg
785f22ca5a Move Sapling commitment tree hash into zcash_primitives 2019-07-10 13:44:19 -04:00
Jack Grigg
d1ce6749fe Bump minimum Rust version to 1.36 2019-07-10 13:12:26 -04:00
Jack Grigg
999dcbfcab Migrate to blake2b_simd and blake2s_simd crates
The primary reason for migrating is that these crates provide APIs for
setting the personalisation string. This enables us to depend solely on
published crates, and thus publish our own crates.

The SIMD implementations are ported from libsodium.

Closes #67.
2019-07-10 13:12:14 -04:00
str4d
91c6b0b3f0 Merge pull request #88 from str4d/address-encodings
Sapling address encodings
2019-07-10 07:04:37 -04:00
Jack Grigg
a3a9ee2682 Validate PaymentAddress diversifier when decoding 2019-07-02 00:07:48 +01:00
Jack Grigg
dd9c9ffa3f Add encodings for ExtendedSpendingKey and ExtendedFullViewingKey 2019-06-27 16:21:32 +01:00
Jack Grigg
17f60a0354 Implement PaymentAddress encoding and decoding 2019-06-27 16:21:00 +01:00
Jack Grigg
81b2b1b554 Wallet spending key derivation path 2019-06-27 16:19:33 +01:00
Jack Grigg
f25a8a557e Convert zip32 crate into a module of zcash_primitives 2019-06-27 16:14:24 +01:00
Jack Grigg
fae919ec1c Rename zcash_wallet to zcash_client_backend, set to 2018 edition 2019-06-27 16:02:12 +01:00