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
Kris Nuttycombe
4eaa41affa
zcash_primitives: Remove and relocate `InputView` traits.
2023-12-06 20:17:43 -07: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
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
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
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
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
Kris Nuttycombe
1e5d253c9c
Fix dependencies to repair `cargo -p` subproject builds.
2023-11-29 12:37:18 -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
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
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
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
236cd569ee
Merge pull request #891 from nuttycom/proposal-ffi
...
Add protobuf representation for transaction proposals
2023-11-15 15:47:46 -07:00
Daira Emma Hopwood
e32cf8b5ac
Use `{ENC,OUT}_CIPHERTEXT_SIZE` constants in `zcash_primitives::transaction::components::sapling`.
...
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-11-10 20:38:50 +00:00
Daira Emma Hopwood
e5bdc72b52
Use `{ENC,OUT}_CIPHERTEXT_SIZE` constants in `zcash_primitives::sapling::bundle`.
...
Signed-off-by: Daira Emma Hopwood <daira@jacaranda.org>
2023-11-10 20:30:31 +00:00
Kris Nuttycombe
33169719ce
zcash_client_backend: Add serialization & parsing for protobuf Proposal representation.
2023-11-09 20:07:16 -07:00
Jack Grigg
c6dd9ad858
zcash_primitives: Expose Sapling bundle component parsers needed by zcashd
...
These can be removed after future zcashd refactors.
2023-11-10 02:09:22 +00:00
Jack Grigg
68ae453e5d
zcash_primitives: Move Sapling bundle parsing into `transaction::components::sapling`
2023-11-10 02:09:22 +00:00
Jack Grigg
e1a5539094
zcash_primitives: Rework Sapling parsers to be plain functions
...
Once `zcash_primitives::sapling` is extracted to `sapling-crypto`, these
would have become orphan impls.
2023-11-10 01:06:18 +00:00
Jack Grigg
54eb03e34e
zcash_primitives: Move Sapling bundle types into `sapling` module
2023-11-09 04:04:07 +00:00
Jack Grigg
f5595122f9
zcash_primitives: Move `builder` module to `zcash_primitives::sapling`
2023-11-09 04:02:19 +00:00
str4d
64d657ed31
Merge pull request #1033 from zcash/sapling-params-refactor
...
Introduce newtypes for Sapling circuit parameters
2023-11-08 21:01:30 +00:00
str4d
e4b9d73d0c
Merge pull request #1003 from nuttycom/wallet/reusable_input_selection
...
zcash_client_backend: Factor out `InputSource` from `WalletRead`
2023-11-08 20:20:03 +00:00
Kris Nuttycombe
aa063ae3fd
zcash_client_backend: Factor out input source traits from `WalletRead`
...
Prior to this change, it's necessary to implement the entirety of the
`WalletRead` trait in order to be able to use the input selection
functionality provided by `zcash_client_backend::data_api::input_selection`.
This change factors out the minimal operations required for transaction
proposal construction to better reflect the principle of least authority
and make the input selection code reusable in more contexts.
In order to minimize the operations of the newly-created `InputSource`
and `ShieldingSource` traits, this change also removes the
`min_confirmations` field from transaction proposals, in favor of
storing explicit target and anchor heights. This has the effect of
limiting the lifetime of transaction proposals to `PRUNING_DEPTH -
min_confirmations` blocks.
2023-11-08 12:41:49 -07:00
Jack Grigg
82535112c2
zcash_primitives: Add Sapling verification key newtypes
2023-11-07 03:11:15 +00:00
Jack Grigg
1b9f26c984
Move `{Spend,Output}Parameters` from `zcash_proofs` to `zcash_primitives`
2023-11-07 03:09:25 +00:00
Jack Grigg
8bb9c4e7ba
Move Sapling proof verifiers from `zcash_proofs` to `zcash_primitives`
2023-11-07 03:08:43 +00:00
Jack Grigg
3b8c932ab9
zcash_primitives: Implement `Clone` on bundle marker types
...
This enables unauthorized Sapling bundles to be cloned, for example when
loading them into a `TransactionData` for signature hashing.
2023-11-04 04:27:07 +00:00
Jack Grigg
b20641ae58
zcash_primitives: Remove `sapling::prover::TxProver`
...
Removed
-------
- `zcash_primitives::sapling`:
- `prover::TxProver` (use `SpendProver` and `OutputProver` instead).
- `prover::mock::MockTxProver` (use `MockSpendProver` and `MockOutputProver`
instead).
2023-11-03 21:08:37 +00:00
Jack Grigg
a77b6c631c
Add missing unreleased changelog entries
2023-11-03 00:56:56 +00:00
Jack Grigg
bed5bc6cf6
Clean up unreleased changelog entries
2023-11-03 00:56:26 +00:00
Jack Grigg
b2ff29db78
Refactor Sapling builder to separate out proof generation
...
Closes zcash/librustzcash#741 .
2023-10-31 22:01:34 +00:00