Commit Graph

323 Commits

Author SHA1 Message Date
Jack Grigg 96bd59b942 Migrate to ff 0.8 and bellman 0.8
bellman 0.8 includes fixes for several performance regressions.

MSRV is now 1.44.0, matching the ff crate.
2020-09-09 00:27:51 +01:00
Jack Grigg 40e135783c zcash_primitives: Support ovk = ⊥ in note encryption
Closes zcash/librustzcash#259.
2020-08-28 21:17:16 +01:00
Jack Grigg 3f06d92eec Depend on published versions of subtree crates 2020-08-27 23:25:20 +01:00
Jack Grigg 0a3752c088 zcash_client_backend 0.3.0 2020-08-23 16:23:53 +01:00
Jack Grigg e25a7dacdf zcash_primitives 0.3.0 2020-08-23 16:23:53 +01:00
Jack Grigg d112add8a3 jubjub 0.4.0 2020-08-23 16:23:53 +01:00
Jack Grigg 5f99c52143 bls12_381 0.2.0 2020-08-23 16:23:53 +01:00
Jack Grigg bdb42bcbc8 pairing 0.17.0 2020-08-23 15:31:09 +01:00
Jack Grigg ee3e8fbfbb group 0.7.0 2020-08-23 15:31:09 +01:00
Jack Grigg 55fa366730 ff 0.7.0 2020-08-23 15:31:09 +01:00
Jack Grigg d15acf8acc zcash_primitives: Rename Note::cm to Note::cmu 2020-08-21 18:35:04 +01:00
Jack Grigg fdf06032e3 s/{pairing::bls12_381, zcash_primitives::jubjub}/{bls12_381, jubjub}
FINALLY.
2020-08-19 23:08:19 +01:00
Jack Grigg bc8a839c61 Migrate to hex 0.4 2020-08-14 17:44:17 +01:00
therealyingtong c3d89644e2
Revert SaplingNoteEncryption::new() API to take rng instead of esk 2020-08-06 12:47:35 +08:00
therealyingtong 4f22077cf6
Remove const activation heights from consensus.rs 2020-08-06 12:30:48 +08:00
therealyingtong 9970a8aefd
Hard-code NetworkUpgrade::Canopy in generate_random_rseed 2020-08-06 12:27:20 +08:00
therealyingtong 88072d64ec
Remove network cfg from zcash_client_backend and zcash_primitives 2020-08-06 11:35:05 +08:00
therealyingtong 2ed9b6f881
Refactor contextual random rseed generation into util method in zcash_primitives 2020-08-05 15:21:42 +08:00
therealyingtong a25348dfba
Revert passing Parameters to methods 2020-08-05 12:47:29 +08:00
therealyingtong 74b2f0a79e
Pass height to decrypt_transaction() 2020-08-04 21:05:29 +08:00
therealyingtong 895e251793
Fix tests 2020-07-31 22:40:48 +08:00
therealyingtong b537f0f712
Pass height to methods which encrypt or decrypt Sapling outputs 2020-07-31 12:39:39 +08:00
Jack Grigg b1a2e8172d zcash_client_backend: Add account to DecryptedOutput 2020-06-25 18:54:41 +12:00
Jack Grigg 5ff81049b4 Pin protobuf 2.14 until our MSRV passes 1.44.1 2020-06-24 19:45:27 +12:00
str4d 121231199c
Merge pull request #205 from str4d/taddr-encoding
Implement TransparentAddress encoding and decoding
2020-05-23 12:22:01 +12:00
Jack Grigg 2892cf94c1 Migrate to protobuf-codegen-pure 2.14 2020-05-22 18:55:46 +12:00
Jack Grigg c597db59a6 ff: Rename PrimeField::into_repr -> PrimeField::to_repr 2020-05-02 18:55:13 +12:00
Jack Grigg 49f119fb03 ff: Remove PrimeFieldRepr trait
The ff::PrimeField::Repr associated type now has the minimal necessary
bounds, which can be satisfied by a newtype around a byte array.
2020-04-23 18:15:14 +12:00
Jack Grigg 932f1c9737 Implement TransparentAddress encoding and decoding 2020-03-26 08:55:54 +13:00
Sean Bowe 100878cd14
Version bump of all crates (except librustzcash) 2020-03-12 15:59:19 -06:00
François Garillot 865275e2a2
Correcting some trivial Rust option/iterator warts 2020-01-29 13:53:05 -08:00
Jack Grigg d5ed684701
zcash_client_backend::decrypt_transaction 2019-11-27 15:45:13 +00:00
str4d 88e02329eb
Merge pull request #129 from adityapk00/regtest_constants
Add regtest constants
2019-11-13 13:54:55 +00:00
Jack Grigg 7fda177da8
Doc link fixes 2019-11-07 17:33:22 +00:00
Jack Grigg bc35a62e10
Remove rand_os dependency 2019-10-31 18:57:52 +00:00
Jack Grigg ac4acfa26e
Fix rand_os warning in tests 2019-10-31 16:36:54 +00:00
Aditya Kulkarni 4d290e7a32 Add regtest constants 2019-10-14 22:20:58 -07:00
Jack Grigg e9f94119bc
Store witness inside WalletShieldedOutput 2019-10-09 14:12:30 +13:00
Jack Grigg b44653e686
Move cmu and epk parsing onto CompactOutput struct 2019-10-09 14:12:30 +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 2bbd25b36b
Add prevHash field to CompactBlock
This enables basic verification of chain validity when CompactBlocks are
received without the full header.
2019-10-09 14:11:14 +13:00
Jack Grigg b66ac11775
Update new witnesses with subsequent transactions in the same block 2019-10-09 14:11:14 +13:00
Jack Grigg e746f7b6f9
Add tx index within block to WalletTx struct 2019-10-09 14:11:14 +13:00
Jack Grigg 3b9dfc1e0b
Detect change notes while scanning blocks 2019-10-09 14:11:14 +13:00
Jack Grigg fb9e9bb12f
Check for spent notes while scanning blocks 2019-10-09 14:11:14 +13:00
Jack Grigg 2b71121681
Return the entire note and recipient address when scanning an output 2019-10-09 14:11:14 +13:00
Jack Grigg f899ecfce5
Increment the commitment tree and witnesses while scanning blocks 2019-10-09 14:11:14 +13:00
Jack Grigg 591b1fc28f
Parse compact blocks to find wallet transactions 2019-10-09 14:11:12 +13:00
Jack Grigg af7e263bcc
Build protobufs for compact formats 2019-10-09 14:09:41 +13:00
Jack Grigg b0ba7fe4d2
zcash_client_backend 0.1.0 2019-10-08 17:43:33 +13:00
str4d 39971891d5
Merge pull request #131 from str4d/119-key-encoding-tests
Unit tests for key encodings
2019-10-08 13:48:05 +13:00
Jack Grigg e7b5329e95
Unit tests for key encodings
Closes #119.
2019-09-24 17:47:10 +01:00
Jack Grigg 4ad3988e43
Crate docs 2019-09-24 14:23:59 +01:00
Jack Grigg 7f3036d2c8
Update READMEs 2019-09-24 14:23:55 +01:00
Jack Grigg 1fbf38280e
Fix intra-doc links 2019-09-24 10:42:49 +01:00
Jack Grigg d9a0b9c83f
CI: Check intra-doc links
Credit: https://twitter.com/tomaka17/status/1176017851410526208
2019-09-24 10:35:12 +01:00
Jack Grigg 1d02363752
Add READMEs to Cargo.toml files
This will cause crates.io to render each crate's README as its
information page.
2019-09-23 14:42:38 +01:00
Jack Grigg 450087e280
Add test for spending_key panic on short seed 2019-09-17 23:58:14 +01:00
Jack Grigg 9377b78b35
Panic if spending_key is given a seed shorter than 32 bytes
This enforces the MUST requirement in ZIP 32. A panic is used instead of
an error because this should be considered an implementation error.
Ideally the type system would prevent this from occurring at all.

Closes #125.
2019-09-17 21:28:23 +01: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
Eirik Ogilvie-Wigley a7c5993597 cargo fmt 2019-08-15 10:41:48 -06:00
Jack Grigg 5fb9b86ba0
Move Jubjub, Pedersen hash and primitives into zcash_primitives 2019-08-14 10:47:22 +01:00
Jack Grigg ec321382e1
Upgrade to bech32 0.7 2019-08-14 01:12:25 +01: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 ccf75c39c1
Migrate remaining crates to rand 0.5 2019-07-19 00:35:06 +02: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 fae919ec1c
Rename zcash_wallet to zcash_client_backend, set to 2018 edition 2019-06-27 16:02:12 +01:00