Commit Graph

642 Commits

Author SHA1 Message Date
Kris Nuttycombe 71657b4f18 Generalize vector and array writes & reads.
In a number of places, we transform other kinds of collections with
known length information into vectors simply to be able to use them with
`Vector::write` or `Vector::read`. We can avoid these extra allocations
by writing from iterators directly, and similarly by reading directly
into our desired collection types.
2022-03-11 16:48:28 -07:00
Kris Nuttycombe d602c01ef6 Standardize how we write and read usize values for incrementalmerkletree.
Also, make consistent use of helper functions for reading
and writing `Position` values.
2022-03-11 16:48:28 -07:00
Jack Grigg 22ebe95de6 zcash_primitives: Replace custom `Debug` impl on `TransactionData` 2022-02-28 22:39:43 +00:00
Kris Nuttycombe b97d777361 Update the versions of incrementalmerkletree & orchard.
This removes unreleased incrementalmerkletree::BridgeTree serialization
that was zcashd-specific.
2022-02-24 13:54:31 -07:00
Kris Nuttycombe 600c06a408 Update MSRV to 1.56.1 2022-02-24 12:26:14 -07:00
Jack Grigg 54e3dded92 Add `TransactionData::map_bundles`
This is needed for FFI-crossing in `zcashd`.
2022-02-12 02:59:18 +00:00
Kris Nuttycombe f590134ee8 Add transaction::Transaction::into_data 2022-02-11 15:29:44 -07:00
Kris Nuttycombe af9edcea25 Define transaction::TransactionData::map_authorization 2022-02-11 15:29:44 -07:00
Kris Nuttycombe e20de50b84 Make AccountId internal representation private. 2022-02-10 11:30:02 -07:00
Kris Nuttycombe 970b6d6750 Add missing trait impls for AccountId 2022-02-10 09:12:18 -07:00
Kris Nuttycombe a304c3953b Fix Clippy beta linting complaints. 2022-02-02 16:02:45 -07:00
Kris Nuttycombe 1507d1de0a Fix incorrect construction of transparent OVKs. 2022-02-02 10:33:44 -07:00
Kris Nuttycombe b4ff3f368e Add test vectors for transparent OVKs. 2022-02-02 10:33:44 -07:00
therealyingtong 0c80399fe1 zcash_primitives::zip32::tests: Use internal test vectors. 2022-02-02 10:33:44 -07:00
therealyingtong cf4c982483 zcash_primitives::zip32: Include test vectors for internal key components. 2022-02-02 10:33:44 -07:00
Kris Nuttycombe 9c2d485c80 Address comments from code review.
Co-authored-by: str4d <jack@electriccoin.co>
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2022-02-02 10:33:41 -07:00
Kris Nuttycombe 3d51c53d68 Address comments from code review.
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2022-02-02 10:32:33 -07:00
Kris Nuttycombe 8916a16f38 Replace ripemd160 dependency with ripemd 2022-02-02 10:30:43 -07:00
Kris Nuttycombe b3fbf2410d Allow use of internal deprecated pubkey_to_address method. 2022-01-27 21:21:18 -07:00
Kris Nuttycombe 2f1d3da26d Update changelogs. 2022-01-27 16:25:01 -07:00
Kris Nuttycombe 4057b066bd ExtendedFullViewingKey::chain_code should not be public. 2022-01-27 16:18:26 -07:00
Kris Nuttycombe 6e11f2d11a Validate ZIP 321 request by roundtrip through the URI format.
Co-authored-by: str4d <jack@electriccoin.co>
2022-01-27 16:08:04 -07:00
Kris Nuttycombe a1e693d15f Remove the Wif type; it should not be used.
We should attempt to avoid passing spending keys back and forth
across the FFI entirely, but in any case this is no longer the
correct type to use at this boundary; we should use the encoding
of the transparent component of a unified spending key instead.
2022-01-27 16:08:04 -07:00
Kris Nuttycombe 3a20176092 Apply suggestions from code review
Co-authored-by: str4d <jack@electriccoin.co>
2022-01-27 15:00:37 -07:00
Kris Nuttycombe 132df78a31 Add serialization and deserialization for AccountPubKey 2022-01-27 08:52:12 -07:00
Kris Nuttycombe 6fcdfda69e Derive OVKs from transparent account-level key, not child keys.
This also renames a number of legacy key types to better reflect
their intended use.
2022-01-26 13:36:27 -07:00
Kris Nuttycombe 0b43535203 Move OutgoingViewingKey to zcash_primitives::keys 2022-01-25 08:53:51 -07:00
Kris Nuttycombe f58d191439 Move transparent account keys to zcash_primitives. 2022-01-25 08:53:51 -07:00
Kris Nuttycombe 72c2e54a7b Add explicit serialize and deserialize methods to ExternalPubKey
The serialization defined by HDWallet for the fields of ExtendedPubKey
is in the opposite field order from what is defined in ZIP 316.
2022-01-24 16:25:06 -07:00
therealyingtong 8b0c1c4ab2 transparent::ExternalPubKey: impl TryFrom for &[u8; 65]. 2022-01-24 14:41:40 +08:00
Kris Nuttycombe 4068075ffd Merge remote-tracking branch 'upstream/non-consensus-changes-on-branchid-37519621' into autoshield-poc-daa 2022-01-22 23:10:47 -07:00
Kris Nuttycombe 4dac37ffde Ensure that transparent input functionality is correctly feature-flagged. 2022-01-22 22:33:22 -07:00
therealyingtong a7ea5f0bc1 Implement TryFrom<&[u8] for ExternalPubKey. 2022-01-22 22:29:45 -07:00
therealyingtong 6f776aacc3 zcash_primitives::zip316::transparent: Parse Ufvk from zcash_address. 2022-01-22 22:29:45 -07:00
therealyingtong c9fe8402e2 Use transparent internal ovk in shield_transparent_funds(). 2022-01-22 22:29:45 -07:00
therealyingtong 5033d29d2f zip316::transparent: Implement ZIP 316 transparent internal ovk. 2022-01-22 22:29:45 -07:00
therealyingtong a4c9f53a3a Move ExternalPrivKey, ExternalPubKey to zcash_primitives. 2022-01-22 22:29:45 -07:00
therealyingtong 1f9b9fc147 zcash_primitives: Do not gate secp256k1 on transparent-inputs feature flag. 2022-01-22 22:04:32 -07:00
Kris Nuttycombe 54cca8081b Update zcash_primitives/CHANGELOG.md with change key derivation methods. 2022-01-22 19:35:01 -07:00
Kris Nuttycombe 7c03dbdc95 Add convenience method for amount sums. 2022-01-21 16:48:53 -07:00
therealyingtong eb80138cf9 Document new APIs for deriving internal keys. 2022-01-21 10:49:17 +08:00
Kris Nuttycombe 82c1d87dcd
Fix incorrect length of blake2b hashes for internal key derivation.
Co-authored-by: str4d <jack@electriccoin.co>
2022-01-20 18:08:01 -07:00
Kris Nuttycombe 37e6d3a2bc Apply suggestions from code review
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
Co-authored-by: ying tong <yingtong@z.cash>
2022-01-20 16:43:57 -07:00
Kris Nuttycombe 3dd1f310d9 Merge remote-tracking branch 'upstream/non-consensus-changes-on-branchid-37519621' into autoshield-poc-daa 2022-01-20 13:54:38 -07:00
Kris Nuttycombe da3833f906 Fix missing use of `dk` in derivation of sapling internal FVK.
Also, factor out sapling internal fvk derivation so that it only
requires (fvk, dk) since we may not have the full extfvk.
2022-01-20 13:50:12 -07:00
therealyingtong f6f5096ae4 Derive Sapling internal full viewing key.
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2022-01-20 13:50:12 -07:00
therealyingtong a98010a684 Derive Sapling internal spending key.
Co-authored-by: Daira Hopwood <daira@jacaranda.org>
2022-01-20 13:50:12 -07:00
Squirrel c910ffdb41
Remove unused dependencies (#479)
Remove unused dependencies

Co-authored-by: Kris Nuttycombe <kris.nuttycombe@gmail.com>
Co-authored-by: str4d <thestr4d@gmail.com>
2022-01-18 12:04:14 -07:00
Kris Nuttycombe e3c67ffee6 Pin pprof version 2022-01-04 11:48:59 -07:00
Jack Grigg fe05d2dc11 pprof 0.6 2021-12-17 23:47:00 +00:00