Skip to content

Diff from upstream, for ref only#37

Draft
PaulLaux wants to merge 219 commits intomainfrom
zsa1
Draft

Diff from upstream, for ref only#37
PaulLaux wants to merge 219 commits intomainfrom
zsa1

Conversation

@PaulLaux
Copy link
Copy Markdown
Collaborator

No description provided.

vivek-arte and others added 30 commits October 20, 2022 12:44
…textBytes, wrapping the AEADBytes in a struct
ConstanceBeguier and others added 20 commits November 3, 2025 12:36
Add `SighashInfo` (version and associated data) to
- Transparent authorizing signatures.

Update `auth_digest` by adding `SighashInfo` as defined in ZIP246
This PR makes the changes to the Fee Rules in `zcash_primitives` in
order to add the additional computation for issuance of ZSAs

---------

Co-authored-by: Constance Beguier <constance@qed-it.com>
Co-authored-by: Paul <3682187+PaulLaux@users.noreply.github.com>
The `build` function requires the `is_new_asset` parameter, but one call
site was not providing it.
Replace DEFAULT_VANILLA BundleType with DEFAULT
Replace
- orchard_flavor with flavor
- orchard_sighash_versioning with sighash_versioning
- issuance_auth with issuance::auth
- issuance_sighash_versioning with issuance::sighash_versioning
Remove patch on halo2_hadgets
Use zcash_pr471_review branch for orchard

I updated supply-chain/imports.lock so that halo2_gadgets:0.4.0 is
marked as safe to deploy.
This change was made upstream in librustzcash.
builder.build(...) returns
`Result<Option<UnauthorizedBundleWithMetadata<V, FL>>, BuildError>`
instead of `Result<UnauthorizedBundleWithMetadata<V, FL>, BuildError>`
Bump MSRV to 1.85.1
Migrate to Rust 2024 edition
…h Orchard pin (#193)

This PR adds a `zsa-issuance` feature to `Cargo.toml` of
`zcash_primitives` that forwards to `orchard/zsa-issuance`, and enables
it in the default feature set for the ZSA build. `librustzcash` depends
on Orchard with `default-features = false` at the workspace level, so
Orchard’s own default features (including `zsa-issuance`) are not
enabled unless opted in explicitly.

It also updates the Orchard patch dependency and refreshes the pinned
Orchard commit in `Cargo.lock`.

---------

Co-authored-by: Constance Beguier <constance@qed-it.com>
Replace AssetBase::derive with AssetBase::custom
Add a patch in Cargo.toml for zcash_spec


Pin cargo-vet to version 0.10.1 in the CI
With the updated Orchard version, `update_rho` now takes an additional
`rng` parameter.
This is the librustzcash (`zcash_primitives`) side of the fix for
upstream Orchard PR 471 review comments `r2585555720` and `r2602558531`.

We removed the `Clone` bounds from the Orchard `SpendAuth` associated
types, so `#[derive(Clone)]` no longer works for the generic
`OrchardBundle<A>` wrapper.

This change switches `OrchardBundle<A>` to `#[derive(Debug)]` and adds
an explicit `Clone` impl with the bounds needed to clone the contained
`orchard::Bundle`.

---------

Co-authored-by: Constance Beguier <constance@qed-it.com>
…Issue)SighashKind (#200)

Update Orchard sighash handling
Updates the `orchard/issuance_sighash_info_for_kind` signatures to
return `Vec<u8>`.
…for the OrchardZSA review (#207)

This adds fixes for compilation under the --features zip-233 option.

The test vectors are also updated to match the updates from the zcash-test-vectors repository (QED-it/zcash-test-vectors#46 and QED-it/zcash-test-vectors#47). These add support for the ZIP 233 addition to the transaction format, as well as some regeneration that occurs due to changes in the randomness while generating the test vectors.
---------

Co-authored-by: Paul <3682187+PaulLaux@users.noreply.github.com>
…ht validation

- Replace assert! with io::Error in read_transparent_v6 sighash info check
- Replace panic! with Option return in first_nullifier, propagate error at call site
- Enforce expiry_height = 0 consensus rule in V6 tx parser
- Fix proptest arb_txdata to generate expiry_height = 0 for V6 transactions
This PR updates librustzcash to align with the API and architectural
changes from the OrchardZSA review
(zcash/orchard#471). It coversnaming
consistency, structural improvements, bug fixes, and dependency updates
across the workspace.

  Changes:

  API Renames
- (Orchard/Issue)SighashVersioning to (Orchard/Issue)SighashKind
(ZIP-246)
  - AssetBase::native() to AssetBase::zatoshi()
  - AssetBase::derive() to AssetBase::custom(&AssetId::new_v0(...))
  - BundleType::DEFAULT_VANILLA to BundleType::DEFAULT
  - OrchardVersionedSig<T> to OrchardSig<T>
- Module paths simplified: orchard_flavor to flavor, issuance_auth to
issuance::auth, etc.

  Structural Changes
- Sighash kind lookup refactored from BTreeMap + lazy_static! to pure
match-based functions
- builder.build() now returns Result<Option<...>> to handle cases where
no actions satisfy bundle type requirements
- Manual Clone impl for generic OrchardBundle (upstream removed Clone
bound on SpendAuth)
- rho made optional in Note; update_rho now takes additional rng
parameter

  Bug Fixes
  - Fixed rho value for issuance notes
- Fixed ZIP-233 compilation: correct #[cfg] gating, BuildConfig::TxV6 in
tests, added zip-233 feature to zcash_client_memory

  Dependency Updates
  - Rust toolchain updated to 1.85.1 (edition 2024)
  - Orchard pin updated to latest zsa1 branch + enabled zsa-issuance feature in zcash_primitives
@ConstanceBeguier ConstanceBeguier changed the base branch from main to zcash-2.0.1 February 17, 2026 14:36
@ConstanceBeguier ConstanceBeguier changed the base branch from zcash-2.0.1 to main February 17, 2026 14:36
PaulLaux and others added 8 commits February 17, 2026 22:38
Revert rust 2024 edition formatting changes
This PR updates the patched orchard dependency revision in Cargo.toml to
the commit that includes Orchard PR #199 (issue/burn validation
refactor). This keeps librustzcash using the same Orchard version as the
Zebra issue/burn asset-state integration changes.
Changes:

* Remove the v6 `expiry_height == 0` check from
`zcash_primitives/src/transaction/mod.rs`.
* In
`zcash_primitives/src/transaction/components/orchard.rs:read_v6_bundle`,
rename the `timelimit` local variable to `n_ag_expiry_height`, and
update the error message accordingly. `nAGExpiryHeight` (`timelimit`)
was already enforced to be zero, but the local name `timelimit` caused
confusion.
- Move some imports
- memo is no longer an Option since the merge of sapling-crypto with
upstream
- is_finalized flag is now inside a u8 flag in IssueBundle
- Reduce visibility of some functions
- Revert BuildConfig to be either Standard or Coinbase (previously we
could create a Builder with a build_config equal to V6 and a tx_verion
equal to V5)
- Remove Clone from Authorized struct
- Remove halo patch in Cargo.toml
This restores
`zcash_primitives::transaction::components::issuance::read_note` from
`pub(crate)` back to `pub`.

It was changed from `pub` to `pub(crate)` recently in PR #224, which
broke downstream builds in our Zebra fork. Zebra uses this function in
`zebra-chain/src/orchard_zsa/asset_state.rs` to deserialize the
reference note in `AssetState::from_bytes`, so it needs to remain
public.

See the Zebra code here:


https://github.com/QED-it/zebra/blob/2634fd662a4eaca6df901c82b1bc05d2982636d7/zebra-chain/src/orchard_zsa/asset_state.rs#L60

This PR also updates the orchard dependency revision in `Cargo.toml` to
the latest commit on our `zsa1` branch. That update is unrelated, but we
decided to include it here as well.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants