Commit Graph

2071 Commits

Author SHA1 Message Date
Jack Grigg c7c79d266e zcash_note_encryption: Add `ShieldedOutput::ephemeral_key() -> EphemeralKeyBytes`
This replaces the `ShieldedOutput::epk() -> &Domain::EphemeralPublicKey`
which could not be satisfied by output types that did not parse epk.
2021-06-10 18:35:19 +01:00
str4d 3915abd0a1
Merge pull request #399 from str4d/zip-244-auth-digest-test-vectors
Bring in ZIP 244 auth digest test vectors.
2021-06-08 19:47:55 +01:00
Jack Grigg 684fd504a8 ZIP 244: Write transparent scripts in their consensus encoding 2021-06-08 18:47:34 +01:00
str4d fe07fb3c51
Merge pull request #396 from str4d/394-zip-216
Impl ZIP 216 on SaplingVerificationContext and redjubjub::PublicKey
2021-06-08 18:34:47 +01:00
Kris Nuttycombe 31ea91ced8 Ensure tze digest is only included if TZEs are in the consensus rules. 2021-06-08 11:33:52 -06:00
Jack Grigg acc19a76e2 Bring in ZIP 244 auth digest test vectors.
From https://github.com/zcash-hackworks/zcash-test-vectors/pull/34.
2021-06-08 18:17:30 +01:00
str4d 29c5afe52b
Merge pull request #398 from str4d/zip225-orchard-refactor
Extract ZIP 225 Orchard bundle parsing and serialization into helpers
2021-06-08 17:59:36 +01:00
Jack Grigg 7e23b96a03 Extract ZIP 225 Orchard bundle parsing and serialization into helpers
These will be used by `zcashd` for handling the Orchard component of v5
transactions.
2021-06-08 17:29:04 +01:00
str4d 0bfd1f7544
Merge pull request #375 from nuttycom/feature/zip-225
ZIP 225 & ZIP 244
2021-06-08 17:28:25 +01:00
Kris Nuttycombe eb3d01aa6b
Apply suggestions from code review
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2021-06-08 07:02:52 -06:00
Kris Nuttycombe f70285d243 Fix error in transaction auth digest.
Co-authored-by: str4d <jack@electriccoin.co>
2021-06-07 09:27:05 -06:00
Kris Nuttycombe 371f84dc9b Minor error message improvement.
Co-authored-by: str4d <jack@electriccoin.co>
2021-06-07 09:27:05 -06:00
Kris Nuttycombe 0253442af0 Be more explicit about empty sapling & orchard hashes. 2021-06-07 09:27:05 -06:00
str4d 2f3e4989ba
Merge pull request #352 from str4d/zcash_address
New component: zcash_address crate
2021-06-07 00:36:48 +01:00
Jack Grigg af02e1142b zcash_address: Fix clippy lint 2021-06-07 00:13:21 +01:00
str4d 1590565f04
zcash_address: Minor cleanups
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2021-06-06 23:58:52 +01:00
str4d f36034cfac
zcash_address: Use exhaustive matching in Display impl
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2021-06-06 23:54:11 +01:00
Jack Grigg e2fb5e6402 Impl ZIP 216 on SaplingVerificationContext and redjubjub::PublicKey
`PublicKey::verify` now always uses post-ZIP 216 validation rules, which
is fine in non-consensus contexts.

`SaplingVerificationContext` is used by `zcashd`'s consensus rules.
2021-06-06 23:45:15 +01:00
Kris Nuttycombe b93c503263 Deserialize signatures directly into actions.
Co-authored-by: str4d <jack@electriccoin.co>
2021-06-05 10:19:36 -06:00
Kris Nuttycombe 4f764c3c80 Use Vector read/write operations where possible instead of Array
Co-authored-by: str4d <jack@electriccoin.co>
2021-06-05 10:12:39 -06:00
Kris Nuttycombe 97bef30582 Remove consensus branch id from roundtrip serialization check.
Possible now that it's part of the transaction.
2021-06-05 09:48:52 -06:00
Kris Nuttycombe 47ce97c3d2 Keep builder spend data in spend_auth_sig fields. 2021-06-05 09:45:55 -06:00
Kris Nuttycombe 69e5a491ff Fix generation of arbitrary jubjub points. 2021-06-04 17:28:44 -06:00
Kris Nuttycombe d0a911cb87 Fix rustdocs 2021-06-04 16:38:01 -06:00
Kris Nuttycombe 28d3f481cd Apply suggestions from code review. 2021-06-04 16:38:01 -06:00
Kris Nuttycombe e71a1ce345 Rename Vector::write_items -> Array::write and Vector::read_count -> Array::read 2021-06-04 16:38:01 -06:00
Kris Nuttycombe 4623f98d9a Fix bugs in construction of Sapling txid hashes. 2021-06-04 16:38:01 -06:00
Kris Nuttycombe df0095ebba Add ZIP-244 test vectors. 2021-06-04 15:45:39 -06:00
Kris Nuttycombe 6348400cf4 Store patial authorizing data for sapling components in bundle authorization. 2021-06-04 15:45:39 -06:00
Kris Nuttycombe 6635895e55 Clean up TZE signature generation. 2021-06-04 15:45:39 -06:00
Kris Nuttycombe ab1b31ebf6 Store partial authorizing data for transparent txs in transparent authorization. 2021-06-04 15:45:39 -06:00
Kris Nuttycombe dac68ce2aa Drop proptest space size to reduce test runtime. 2021-06-04 15:45:39 -06:00
Kris Nuttycombe 38b864c100 Implement V5 transaction serialization & roundtrip property tests. 2021-06-04 15:45:39 -06:00
Kris Nuttycombe e828dbf5d0 Add v5 parsing and serialization for Sapling components. 2021-06-04 15:45:39 -06:00
Kris Nuttycombe 1a5aad723b Use generalized signature_hash for transaction builder. 2021-06-04 15:45:39 -06:00
Kris Nuttycombe 55d1090f70 Add v5 txid & signature hashing. 2021-06-04 15:45:39 -06:00
Kris Nuttycombe 1138343c89 Add data structures for transaction digests. 2021-06-04 15:45:39 -06:00
Kris Nuttycombe fd1790fec2 Move sighash.rs -> sighash_v4.rs 2021-06-04 15:45:39 -06:00
Kris Nuttycombe 4bcad97ba1 Add amount conversion for Orchard values. 2021-06-04 15:45:39 -06:00
Kris Nuttycombe 2ae55b4145 Add more flexibility to vector serialization. 2021-06-04 15:45:39 -06:00
str4d 2ba8073971
Merge pull request #395 from str4d/bump-deps
Migrate to bitvec 0.22, ff 0.10, etc.
2021-06-04 22:36:29 +01:00
Jack Grigg 4aa83d3048 bellman 0.10 2021-06-04 22:20:25 +01:00
Jack Grigg 1222391dd7 Migrate to bitvec 0.22, ff 0.10, etc.
Requires patching three dependencies:

- bellman is pending a new release.
- nom is part of the funty breakage; we are blocking on a new release.
- orchard is in development.
2021-06-04 22:02:48 +01:00
str4d 4c4d226f40
Merge pull request #392 from nuttycom/feature/zip-225-bundles
ZIP-225/244 #3: Create separate bundles for each part of the transaction.
2021-06-04 03:43:15 +01:00
Kris Nuttycombe 9149d48afc
Apply suggestions from code review
Co-authored-by: str4d <jack@electriccoin.co>
2021-06-03 20:25:10 -06:00
Kris Nuttycombe 231aa5d01a
Apply suggestions from code review
Co-authored-by: str4d <jack@electriccoin.co>
2021-06-03 18:47:49 -06:00
Kris Nuttycombe cc9dbf8bde Fix clippy complaint. 2021-06-03 18:46:38 -06:00
Kris Nuttycombe 732b97d021 Update changelog. 2021-06-03 18:46:38 -06:00
Kris Nuttycombe a305760bb1 Move TZE components to a bundle within TransactionData 2021-06-03 18:46:38 -06:00
Kris Nuttycombe 523424e50b Move Transparent components to a bundle within TransactionData 2021-06-03 18:46:38 -06:00