Commit Graph

3274 Commits

Author SHA1 Message Date
str4d ecd5402266
Merge pull request #1061 from zcash/1044-sapling-prf-expand
zcash_primitives: Introduce type-safe `PRF^expand`
2023-12-07 18:03:37 +00:00
Jack Grigg ce7b7df0cc zcash_primitives: Switch to type-safe `PRF^expand`
Part of zcash/librustzcash#1044.
2023-12-07 17:09:44 +00:00
str4d f1fdce499a
Merge pull request #1062 from nuttycom/primitives/remove_sapling_fee_traits
zcash_primitives: Remove and relocate `InputView` traits.
2023-12-07 11:47:00 +00:00
Kris Nuttycombe 4eaa41affa zcash_primitives: Remove and relocate `InputView` traits. 2023-12-06 20:17:43 -07:00
str4d a9d6505148
Merge pull request #1059 from zcash/1044-extract-zip32
Extract `zip32` crate again
2023-12-06 18:46:35 +00:00
Jack Grigg 842ce36f7c Fix clippy lint 2023-12-06 18:19:15 +00:00
Jack Grigg d332aacf98 Merge branch 'main' into 1044-extract-zip32 2023-12-06 18:04:36 +00:00
Jack Grigg 3dfd478141 Migrate to published `zip32` crate outside this repository 2023-12-06 18:04:09 +00:00
Kris Nuttycombe 36cdc35428
Merge pull request #1055 from nuttycom/wallet/note_key_scope
Replace `SaplingReceivedNote` with `ReceivedNote`
2023-12-05 16:20:15 -07:00
Kris Nuttycombe ca54b3489d Apply suggestions from code review
Co-authored-by: Daira Emma Hopwood <daira@jacaranda.org>
Co-authored-by: Jack Grigg <jack@electriccoin.co>
2023-12-05 15:55:52 -07:00
Jack Grigg 5aa0e6c6ee Revert "Convert zip32 crate into a module of zcash_primitives"
This reverts commit f25a8a557e.
2023-12-05 18:07:53 +00:00
Kris Nuttycombe cad4f25b75 zcash_client_backend: Replace `ReceivedSaplingNote` with `ReceivedNote`
`ReceivedNote` now allows Orchard notes to be represented as received
notes. As part of this change, received notes now track whether they
were received using internally- or externally-scoped viewing keys.
This eliminates the need to trial-regenerate notes using the wallet's
IVKs to determine scope at spend time.
2023-12-05 10:55:06 -07:00
Kris Nuttycombe 6b10a6dc86 zcash_client_backend: Move essential wallet types into the `wallet` module. 2023-12-05 10:55:04 -07:00
Kris Nuttycombe 4a7dd2bed2 zcash_client_sqlite: Add receiving key scope information to received notes. 2023-12-05 10:49:35 -07:00
Kris Nuttycombe 8c1480304e zcash_client_backend: Wrap entire Sapling note in `SaplingReceivedNote` 2023-12-05 10:49:35 -07:00
Jack Grigg 54e8dd35c1 zcash_primitives: Remove old Sapling re-exports from `zip32` module 2023-12-05 17:31:17 +00:00
str4d fb424364ce
Merge pull request #1057 from nuttycom/wallet/orchard_balance
Expose Orchard value in balance API & add Orchard components to ScannedBlock
2023-12-05 17:01:10 +00:00
str4d fedc9af1f6
Merge pull request #1058 from zcash/1044-sapling-tree-leaf-refactor
Refactor `sapling::tree::Node`
2023-12-05 12:29:12 +00:00
Kris Nuttycombe 214a3750c5 zcash_client_backend: Make `Balance` and `AccountBalance` fields private.
Public methods for mutation of these fields have been provided that
perform checking for overflow of the valid monetary range as part
of their operation.
2023-12-04 13:53:27 -07:00
Jack Grigg 906e203663 zcash_primitives: Move Sapling `HashSer` impl into `merkle_tree` module
The `HashSer` trait will remain in `zcash_primitives` while the Sapling
type it is implemented for moves to `sapling-crypto`.

Part of zcash/librustzcash#1044.
2023-12-04 20:26:00 +00:00
Jack Grigg 8acc03783e zcash_primitives: Refactor `sapling::tree::Node` around `jubjub::Base` 2023-12-04 20:24:24 +00:00
Daira Emma Hopwood acf146248e
Merge pull request #1056 from zcash/581-use-redjubjub-crate
zcash_primitives: Replace `sapling::redjubjub` with `redjubjub` crate
2023-12-04 18:27:32 +00:00
Tomek Piotrowski 22ad737267
zcash_primitives: Add Network Upgrade 6 to `consensus::NetworkUpgrade` (#1048)
Co-authored-by: Jack Grigg <jack@electriccoin.co>
2023-12-04 14:41:41 +00:00
Jack Grigg ded09f99b5 zcash_primitives: Add RedJubjub test vectors 2023-12-01 14:22:49 +00:00
Jack Grigg 5ccba3e1af zcash_primitives: Introduce newtypes for `ask` and `ak`
The Sapling key components specification places more constraints on the
values of `ask` and `ak` than general RedJubjub signing and verification
keys.
2023-12-01 11:19:31 +00:00
Kris Nuttycombe 9aec53eec9 zcash_client_backend: Add Orchard components to `ScannedBlock` 2023-11-30 13:08:17 -07:00
Kris Nuttycombe c0babd54cd zcash_client_backend: Expose Orchard value in balance API 2023-11-30 12:17:19 -07:00
Jack Grigg de1ed21051 zcash_primitives: Replace `sapling::redjubjub` with `redjubjub` crate
As a side-effect, we remove the ability to verify individual
transactions with pre-ZIP 216 rules (which we already removed from
`zcashd` consensus nodes in zcash/zcash#6000 and zcash/zcash#6399, as
all pre-ZIP 216 transactions on mainnet are also valid under ZIP 216).
2023-11-30 17:52:31 +00:00
Daira Emma Hopwood 764127f952
Merge pull request #1053 from nuttycom/fix_subproject_builds
Fix dependencies to repair `cargo -p` subproject builds.
2023-11-29 21:32:28 +00:00
Kris Nuttycombe 1e5d253c9c Fix dependencies to repair `cargo -p` subproject builds. 2023-11-29 12:37:18 -07:00
Kris Nuttycombe 79e499ea41
Merge pull request #1050 from nuttycom/sapling/use_note_diversifier
Avoid passing duplicate diversifier information to Sapling builder.
2023-11-28 12:02:06 -07:00
Kris Nuttycombe 28174e1ba3 zcash_client_backend: refactor select_key_for_note to avoid needing the extsk
This is in preparation for generalizing how we choose the spending key
for a note to serve `Orchard`.
2023-11-28 10:54:06 -07:00
Kris Nuttycombe 7f3d057a1b zcash_primitives: Avoid passing duplicate diversifier information to Sapling builder.
The note provided to `add_sapling_spend` contains the recipient address,
and we can extract the diversifier from this address, so we should not
pass it separately.
2023-11-28 10:54:06 -07:00
Kris Nuttycombe ed761d5da1
Merge pull request #1049 from zcash/1044-sapling-cleanups
More Sapling cleanups
2023-11-27 21:35:19 -07:00
Jack Grigg 0d06e561bb Update Sapling imports to migrate off re-exports at old paths 2023-11-28 03:40:41 +00:00
Jack Grigg 54fa31e00c zcash_primitives: Separate `GROTH_PROOF_SIZE` constant for `sapling` module 2023-11-28 03:25:14 +00:00
Jack Grigg 106f5a353a Remove `MemoBytes` usage from `zcash_primitives::sapling` 2023-11-28 03:25:14 +00:00
str4d 2f2401d144
Merge pull request #1043 from zcash/zip32-refactor
Refactor ZIP 32 code
2023-11-28 03:18:36 +00:00
Jack Grigg 7064efe697 zcash_primitives: Improve ZIP 32 comments 2023-11-28 01:38:53 +00:00
Jack Grigg f7726141c3 zcash_primitives: Reject non-canonical ZIP 32 Sapling master key encodings 2023-11-28 01:38:53 +00:00
Jack Grigg 7badba29ea zcash_primitives: Move `zip32::sapling` to `sapling::zip32` 2023-11-28 01:38:53 +00:00
Jack Grigg 45ef8b1604 zcash_primitives: Add constructor and getter to `zip32::ChainCode` 2023-11-28 01:38:53 +00:00
Jack Grigg 61bb18d97f zcash_primitives: Refactor `zip32::ChildIndex` to be an opaque struct 2023-11-28 01:38:53 +00:00
Jack Grigg a9310e3969 zcash_primitives: Remove non-hardened Sapling ZIP 32 derivation 2023-11-28 01:34:31 +00:00
str4d 1607d013d1
Merge pull request #1047 from zcash/1044-sapling-bundle-generic-valuebalance
zcash_primitives: Make `value_balance` generic in `sapling::Bundle`
2023-11-28 01:31:34 +00:00
str4d 7e45a5f134
Merge pull request #1045 from zcash/1044-sapling-params-removal
zcash_primitives: Remove `consensus::Parameters` from `sapling` module
2023-11-28 01:22:56 +00:00
Jack Grigg cdd20e8583 zcash_primitives: Make `value_balance` generic in `sapling::Bundle`
This removes the dependency on `Amount`, and matches how we handle this
in the `orchard` crate.

Part of zcash/librustzcash#1044.
2023-11-23 07:08:13 +00:00
Jack Grigg eb0b5a1b24 zcash_primitives: Remove `consensus::Parameters` from `sapling` module
Part of zcash/librustzcash#1044.
2023-11-22 04:29:36 +00:00
Kris Nuttycombe 2c7c7b85e3
Merge pull request #1042 from zcash/fix-generated-proto
Fix generated protobuf file to match source
2023-11-20 19:18:10 -07:00
Jack Grigg c6263d2470 Fix generated protobuf file to match source
A comment change to the source file was made in zcash/librustzcash#891
before merging, but the generated file was not updated to match.
2023-11-21 02:15:12 +00:00