feat(zcash): add NU6.3 Ironwood transactions - #381
Merged
Conversation
BitHighlander
force-pushed
the
agent/zcash-ironwood
branch
from
July 30, 2026 20:24
d549224 to
2517e19
Compare
BitHighlander
force-pushed
the
agent/zcash-ironwood
branch
from
July 30, 2026 20:44
2517e19 to
d527cb3
Compare
BitHighlander
commented
Jul 31, 2026
BitHighlander
left a comment
Collaborator
Author
There was a problem hiding this comment.
Reviewed the complete 19-file Ironwood/Vault diff and its dependency-pin changes. I found no blocking correctness or integration issue.
Review points verified:
- transaction-v6 construction requires the NU6.3 branch ID and uses the separate Ironwood ZIP-229 digest slot
- Orchard and Ironwood notes, balances, nullifiers, trees, and scan data remain explicitly separated; the database migration classifies existing rows as legacy Orchard
- finalization revalidates bundle version, proof/signatures/binding authorization, component digest, and consensus sighash before serialization
- Vault pins the validated protocol and hdwallet staging commits and uses the repository's locked module build flow
- legacy Orchard notes remain visible but are deliberately not mixed into normal Ironwood v6 sends; migration remains a documented follow-up
Validation repeated at head 6722fa14:
cargo fmt --checkpassedcargo testpassed: 66 passed, 1 fixture test intentionally ignoredgit diff --checkpassed- canonical GitHub Actions passed on Linux and macOS
- hardware/mainnet transparent-to-Ironwood shield was already confirmed in block 3430876
No unresolved review threads or remaining code-review blockers.
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.
Why
NU6.3 separates Ironwood from the legacy Orchard value pool. The previous Vault runtime still sent a v5/Orchard
ZcashSignPCZT, so transparent shielding produced a negative Orchard value balance and every node rejected the transaction.What changed
f2246cebea8f96fcd7ec2883588a784a60b430ae94ed6cdb525708f3eb14933ec4a68b291c151431, which consumes@bithighlander/device-protocol@7.17.0through the established npm staging flowdeveloppushes and pull requestsThe temporary Vault-side protocol source-build and SOP rewrite were reverted. Vault retains its established packaging flow.
Legacy Orchard notes remain scanned and visible, but this spike intentionally does not combine legacy Orchard spends with Ironwood outputs in one v6 transaction. New transaction builders spend Ironwood notes only; a cross-pool migration flow is follow-up work.
Validation
cargo fmt --checkcargo test— 66 passed, 1 intentionally ignoredmake modules-buildpassedmake buildpassed, including release-mode sidecar, backend bundle, Vite renderer, dependency collection, and Electrobun app buildac7f54975154f9c242a49fa151bcbc2badbb7591a8877ff9f75dbba305fdf2fd, confirmed in block 3430876 for 14,742,242 ZATThe sandbox cannot bind the test HTTP server used by
tron-memo-inject.test.ts; the remaining deterministic unit suites passed locally. GitHub Actions is the authoritative clean-environment gate and now runs on thisdevelopPR.Staging graph
keepkey/device-protocol:f2246cebea8f96fcd7ec2883588a784a60b430aekeepkey/python-keepkey:d88a073a5af2d83e0f1f19574665ca1a44789414, nested protocol pinf2246cekeepkey/hdwallet#59:94ed6cdb525708f3eb14933ec4a68b291c151431, published staging package@bithighlander/device-protocol@7.17.0, canonical GitHub Actions green6722fa142a059c4682ad43d1e3109bc3d15d4bbc, protocol submodulef2246ce, hdwallet submodule94ed6cdbmodules/keepkey-firmwareis an emulator fixture and is not a Vault release gate under the repository SOP. No upstream firmware release promotion is part of this PR.Remaining gate
Keep this PR draft until its newly enabled GitHub Actions matrix is green and the human review is complete.