Commit Graph

1055 Commits

Author SHA1 Message Date
Eirik Ogilvie-Wigley 9a4f6812f1 cargo fmt bellman 2019-08-15 10:38:41 -06:00
Eirik Ogilvie-Wigley bc7ea564d3 cargo fmt pairing 2019-08-15 10:38:40 -06: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
str4d 4a6c9ec425
Comment that we support a minimal set of script opcodes
Co-Authored-By: Daira Hopwood <daira@jacaranda.org>
2019-08-14 00:30:18 +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
Marco Stronati 3891fe57d4 Make initialization of sprout validation key optional
This makes the C interface behave like `zcash_proofs` and allows to
init the library without downloading the heavy sprout parameters.
In the special case where `librustzcash_init_zksnark_params` is called
with the sprout arguments path set to NULL and length set to 0, the
arguments are passed as None to `load_parameters`.
2019-08-07 18:01:12 +02: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 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