feat(wasm-utxo): add ZEC NU6.2 consensus branch id#288
Merged
Conversation
Zcash NU6.2 hard fork (mainnet block 3364600) introduced a new consensus branch id 0x5437f330, re-enabling Orchard after the GHSA-ghc3-g8w4-whf9 emergency soft fork. Without it, ZEC transactions built for heights >= 3364600 carry the stale NU6.1 branch id and are rejected by upgraded nodes. The pinned zebra-chain 7.0 does not yet expose NU6.2, so the value is hardcoded (matching ZcashFoundation/zebra main) and excluded from the zebra parity tests, guarded instead by test_nu6_2_constants until the dependency is bumped (7.0 -> 9.0). Refs: T1-3519 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
davidkaplanbitgo
approved these changes
Jun 3, 2026
lcovar
approved these changes
Jun 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds the NU6.2 Zcash network upgrade to
wasm-utxoso transactions built for heights ≥ 3,364,600 carry the correct consensus branch ID.src/zcash/mod.rs: newNetworkUpgrade::Nu6_2(branch id0x5437f330, mainnet3364600, testnet4052000), added toALL+params().branch_id_for_heightresolves it automatically.Why
Zcash activated the NU6.2 hard fork at mainnet block 3,364,600 (≈00:05 EDT 2026-06-03) with a new consensus branch ID
0x5437f330, re-enabling Orchard with a corrected circuit after the GHSA-ghc3-g8w4-whf9 emergency soft fork. The builder previously topped out at NU6.1 (0x4dec4df0); any ZEC tx built at/after the activation height was signed for the stale branch and rejected by upgraded nodes.Parity-test decoupling (temporary)
The pinned
zebra-chain7.0 does not yet expose NU6.2, so:to_zebra_upgradenow returnsOptionand returnsNonefor NU6.2; the fourparity_with_zebra_chaintests skip it.test_nu6_2_constantsguards the hardcoded values + the activation boundary (3364599 → NU6.1, 3364600 → NU6.2).Follow-up: bump
zebra-chain7.0 → 9.0 and re-couple NU6.2 to the parity tests (remove the skip + the standalone guard).Test
cargo test --lib zcash::→ 26 passed, 0 failed (incl. new test + parity tests).cargo fmt --check+cargo clippyclean.Notes
utxo-corepath, currently shadow-only for ZEC signing. The authoritative withdrawal fix is the parallel@bitgo/utxo-lib(TS) change — also tracked under T1-3519.Refs: T1-3519