str4d
2b6fbfd2d1
Merge pull request #109 from str4d/paymentaddress-encapsulation
...
PaymentAddress encapsulation
2019-09-06 15:43:48 -04:00
Jack Grigg
d6f6b50ecd
Check try_sapling_output_recovery fails with identity as pk_d
2019-09-04 19:48:39 -04:00
Jack Grigg
abbd43ff57
Make pk_d validity an invariant of PaymentAddress
...
Introduces a PaymentAddress::from_parts constructor, and getters for
the diversifier and pk_d fields (which are now private).
2019-09-04 19:48:35 -04:00
Jack Grigg
86142d044c
PaymentAddress::to_bytes
2019-09-04 19:46:46 -04:00
Jack Grigg
73ee19239c
Replace manual address decoding with PaymentAddress::from_bytes
2019-09-04 19:46:46 -04:00
str4d
b19b40ccf0
Merge pull request #110 from str4d/crate-cleanups
...
Crate cleanups
2019-09-04 19:44:47 -04:00
str4d
0da4921055
Merge pull request #116 from str4d/code-coverage
...
Add code coverage with cargo-tarpaulin and Codecov
2019-08-29 09:58:19 +01:00
Jack Grigg
c00b65bb78
Extend Travis CI timeout
2019-08-29 01:06:41 +01:00
Jack Grigg
ee9c88ecb0
Exclude slow tests from code coverage
2019-08-28 20:46:23 +01:00
Jack Grigg
f9f17b291f
Add code coverage with cargo-tarpaulin and Codecov
2019-08-28 12:26:54 +01:00
str4d
563961e606
Merge pull request #115 from str4d/windows-typo
...
librustzcash: Fix typo in Windows parameter init; Correctly map sprout_path. Includes a GitHub actions improvement
2019-08-26 13:09:57 +01:00
Jack Grigg
0c7eb84d36
impl FromStr for Memo
...
Memo::from_str was previously shadowing a built-in trait method.
2019-08-24 00:40:32 +01:00
Jack Grigg
7c1d4d9a5b
Log distinct error cases in Equihash verification
2019-08-24 00:40:30 +01:00
Jack Grigg
9016548698
Take self directly in into_* functions
2019-08-24 00:39:55 +01:00
Jack Grigg
fe93f2ff6b
Rename into_ -> to_ where &self is used.
2019-08-24 00:39:54 +01:00
Jack Grigg
91541675e2
Address various clippy warnings/errors in zcash_proofs
2019-08-24 00:39:53 +01:00
Jack Grigg
3a8efd9e67
Address various clippy warnings/errors in zcash_primitives
2019-08-24 00:39:49 +01:00
Jack Grigg
d65fe2cda9
Address various clippy warnings/errors in bellman
2019-08-24 00:38:32 +01:00
Jack Grigg
d78c94b2a2
Move Equihash validator into zcash_primitives
2019-08-24 00:37:00 +01:00
str4d
ad33798244
Merge pull request #113 from Eirik0/edition-2018-clean-up
...
Edition 2018 clean up
2019-08-24 00:34:57 +01:00
Jack Grigg
ba3705cb5e
librustzcash: Correctly map sprout_path
2019-08-23 12:26:19 +01:00
Jack Grigg
5e706d5d84
Actions: Trigger testing workflow on pull_request
2019-08-23 12:13:23 +01:00
Jack Grigg
894421f3b5
librustzcash: Fix typo in Windows parameter init
2019-08-23 12:01:01 +01:00
str4d
4014f08105
Merge pull request #112 from zcash/github-workflow
...
Add a GitHub Actions workflow
2019-08-23 09:56:36 +01:00
str4d
724e822d2d
Merge pull request #98 from paracetamolo/optional-sprout-parameters
...
Make initialization of sprout validation key optional
2019-08-22 16:50:27 +01:00
Jack Grigg
7ad0452c01
Add macOS support to GitHub Actions workflow
2019-08-22 15:10:28 +01:00
Jack Grigg
f1b6e88f9f
Add a GitHub Actions workflow for Ubuntu and Windows
2019-08-20 23:46:53 +01:00
str4d
7b11d64cf9
Merge pull request #111 from jimpo/master
...
Fix off-by-one so pedersen_hash doesn't consume too many generators.
2019-08-20 21:14:48 +01:00
str4d
3584485516
Merge pull request #104 from str4d/remove-sapling-crypto
...
Refactor to remove sapling-crypto
2019-08-15 17:20:07 +01:00
Jack Grigg
1b865ecfdf
Remove sapling-crypto
2019-08-14 10:48:06 +01:00
Jack Grigg
5fb9b86ba0
Move Jubjub, Pedersen hash and primitives into zcash_primitives
2019-08-14 10:47:22 +01:00
Jack Grigg
b8af749b40
Move generic circuit gadgets into bellman
2019-08-14 10:45:58 +01:00
Jack Grigg
61c633db1e
Move Jubjub and Pedersen hash gadgets into zcash_proofs
...
These are currently too Zcash-specific to be generalized, and need some
targeted refactoring.
2019-08-14 10:45:57 +01:00
Jack Grigg
2ae5804a67
Move Sprout and Sapling circuits into zcash_proofs
2019-08-14 10:45:55 +01:00
Jack Grigg
7ea6d10480
Move redjubjub into zcash_primitives
2019-08-14 10:43:25 +01:00
str4d
f931562431
Merge pull request #94 from str4d/upgrade-deps
...
Upgrade dependencies
2019-08-14 10:39:42 +01:00
Jack Grigg
81786c24c0
Fix clippy linter errors in pairing crate
2019-08-14 01:14:05 +01:00
Jack Grigg
13933d8c51
Use modern clippy linter syntax
2019-08-14 01:14:04 +01:00
Jack Grigg
3e35dd215c
cargo update
2019-08-14 01:14:02 +01:00
Jack Grigg
3211536324
Upgrade to crypto_api_chachapoly >= 0.2.1
2019-08-14 01:12:26 +01:00
Jack Grigg
ec321382e1
Upgrade to bech32 0.7
2019-08-14 01:12:25 +01:00
Jack Grigg
a12b8053b0
Upgrade to digest 0.8
2019-08-14 01:12:24 +01:00
Jack Grigg
2f1cae62b1
Upgrade to fpe 0.2
2019-08-14 01:12:23 +01:00
str4d
52ea437e11
Merge pull request #92 from str4d/transaction-builder
...
Transaction builder
2019-08-14 01:11:12 +01:00
Jack Grigg
a28d94ff2e
Panic if Amount addition or subtraction overflows
2019-08-14 00:16:09 +01:00
Jack Grigg
1760b275a7
Simplify transaction builder tests
...
Requires impl PartialEq for Transaction, which is implemented as a TxId
comparison (relying on the invariant that Transaction is immutable).
2019-08-13 15:24:08 +01:00
Jack Grigg
3a73f946c5
Simplify structure of transaction builder errors
2019-08-13 15:10:57 +01:00
Jack Grigg
e6663212ff
Improve documentation for Amount
2019-08-08 09:21:09 +01:00
Jack Grigg
7c07914bfd
Separate Amount::{from_i64, from_nonnegative_i64} APIs
...
This is more intuitive than a boolean flag for handling non-negative
Amounts stored in i64 values.
2019-08-08 00:55:23 +01:00
str4d
4255b44b21
Merge pull request #13 from str4d/nullifier-test-vectors
...
Test note nullifier in key component test vectors
2019-08-02 10:03:07 +01:00
Jack Grigg
59ed258c7f
Make Amount opaque, and use it more
...
This helps to ensure type-safety of values that are required to satisfy
zatoshi range bounds.
2019-07-27 00:35:29 +01:00
Jack Grigg
ab60b8804a
impl operators for Amount
2019-07-27 00:35:28 +01:00
Jack Grigg
0ea4408d46
Amount::{zero, is_positive, is_negative}
2019-07-27 00:35:27 +01:00
Jack Grigg
fa50d551c8
Move Amount impl into a submodule
2019-07-27 00:35:26 +01:00
Jack Grigg
17f6bbcc67
Pass tx builder RNG to spend_sig()
2019-07-27 00:35:04 +01:00
Jack Grigg
532299d46e
Allow transaction::Builder RNG to be configured
2019-07-27 00:32:56 +01:00
Jack Grigg
4b61120cd0
Pass tx builder RNG to SaplingNoteEncryption
2019-07-27 00:31:16 +01:00
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
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
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