Repository navigation
CSHLD-789: wasm-utxo v6 transparent txns support - #422
Merged
Merged
Conversation
Contributor
Author
|
@claude review |
Ranjna-G
marked this pull request as ready for review
October 8, 2026 09:40
Ranjna-G
enabled auto-merge
October 8, 2026 09:40
Contributor
Contributor
|
Few methods of Ironwood psbt like getId and verifySignature still require a pczt to be present. These methods would throw error for a transparent to transparent transactions. |
Zcash's NU7 upgrade deactivates v4 transactions entirely, so transparent-only transfers must also build, sign, and extract in v6 wire format. Previously only shielding (t->z) v6 flows worked; a transparent-only v6 PSBT failed during signing and had no extraction path at all. - Relax sign_ironwood_v6's ovk-derivation requirement so a transparent-only PSBT (no PCZT) can be signed by either key first, not just the user key - Fix v6_transparent_sighash to compute a bundle-less digest instead of requiring an Ironwood PCZT to exist - Add extract_transparent_only_v6_tx as the PCZT-free counterpart to combine_ironwood_proof, exposed via extractTransparentOnlyTransaction() - Gate all three fixes behind the existing require_no_shielded_output_ever_added helper so shielded PSBTs are unaffected Ticket: CSHLD-789
Ranjna-G
force-pushed
the
CSHLD-789-support-v6-transparent-txns
branch
from
October 9, 2026 10:07
d75047f to
f7d92bf
Compare
veetragjain
approved these changes
Oct 9, 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.
Summary
Zcash's NU7 upgrade deactivates v4 transactions entirely, so transparent-only (t→t)
transfers must also be built, signed, and extracted in v6 wire format. This PR closes
three PCZT-presence assumptions in the v6 PSBT path that previously made a
transparent-only v6 PSBT unsignable/unextractable, all gated behind the existing
require_no_shielded_output_ever_added()helper so shielded (t→z) flows are unaffected.Linear: CSHLD-789
Changes
sign_ironwood_v6's ovk-derivation requirement so a transparent-only PSBT(no PCZT) can be signed by either key first, not just the user key
v6_transparent_sighashto compute a bundle-less ZIP-244 digest instead ofrequiring an Ironwood PCZT to exist
extract_transparent_only_v6_txas the PCZT-free counterpart tocombine_ironwood_proof, exposed viaextractTransparentOnlyTransaction()zcash_psbt.rs, 627 total in the crate) and a newJS/Mocha
describeblock intest/fixedScript/zcashIronwoodPsbt.ts(64 testsin that file, 1575 total repo-wide)
Test Plan
cargo test --lib— 627 passing, 0 failednpx mocha --recursive 'test/**/*.ts'— 1575 passing, 0 failingovk-order restriction), call
extractTransparentOnlyTransaction()directly(bypassing
combineProof()), assert valid v6 bytes and correct fee accounting