Skip to content

Add Orchard-to-Ironwood migration flow#73

Open
czarcas7ic wants to merge 174 commits into
mainfrom
adam/migration-tab
Open

Add Orchard-to-Ironwood migration flow#73
czarcas7ic wants to merge 174 commits into
mainfrom
adam/migration-tab

Conversation

@czarcas7ic

@czarcas7ic czarcas7ic commented Jun 7, 2026

Copy link
Copy Markdown

Summary

Adds the production Orchard-to-Ironwood migration flow for software and Keystone accounts. Migration becomes available on the selected wallet network once NU6.3 is active. Sync requests and verifies Ironwood state only at or after that network's canonical activation height, including the standard public testnet configuration.

Migration preparation uses base-10 denominations and plans a minimal forest of Orchard split transactions whose bundles are padded to 16 actions. It persists encrypted stage and signature state, broadcasts dependent stages only after predecessor notes reach trusted confirmation depth, and reconciles reorgs and restarts without repeating completed work.

The Keystone path signs all split and migration PCZTs in one session, caps each batch at the firmware's 40-PCZT ceiling, validates request correlation and firmware metadata, and keeps optional-field redaction and signature-only completion inside the migration flow.

The UI reports completed and remaining split stages before migration submissions, refreshes durable run status while confirmations advance, and prevents overlapping timer work. Duplicate broadcasts and accepted transactions that are not yet stored locally remain retryable.

The Rust workspace keeps version requirements in dependency declarations and pins compatible voting and librustzcash revisions in root [patch.crates-io] entries.

czarcas7ic and others added 18 commits June 6, 2026 14:40
Adding the always-visible Migration item surfaced that the sidebar's
Column+Spacer layout overflows when the nav doesn't fit (a 6th item at a
982px window, and latently at the 720px minimum). Wrap the nav in
Expanded + ListView so it scrolls instead of overflowing; the footer
(settings / about / sign out / sync) stays pinned. Scope the accounts
list drag test to the pane's list since the sidebar now also has a ListView.
@czarcas7ic czarcas7ic changed the title Add Ironwood migration showcase (Keystone batch self-sends) DNM: Demo Ironwood migration showcase (Keystone batch self-sends) Jun 7, 2026
Repin librustzcash and zcash_voting to the pczt-elidable-fields
integration heads (plus the crates-io orchard patch) so the graph
resolves to a single orchard node and the builder emits unpadded
migration children: 1 Orchard action + 1 Ironwood action instead of
padded pairs, roughly halving each child PCZT and the resulting QR
loop. Align the ZIP-317 estimates and the test fixture with the
2-logical-action children (10_000 zatoshis) and adapt to the stack's
API (fallible v2 serialize, optional wire nullifier, the extractor's
shared post-NU6.3 circuit).

The wallet still emits full-field PCZTs here; recomputable-field
elision stays on its own branch.
@socket-security

socket-security Bot commented Jul 13, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedcargo/​shardtree@​0.6.2 ⏵ 0.7.010010093100100
Updatedcargo/​orchard@​0.14.0 ⏵ 0.15.010010097100100

View full report

@czarcas7ic czarcas7ic changed the title Add Ironwood migration flow Add Orchard-to-Ironwood migration flow Jul 13, 2026
Delegate the version 6 migration field-omission policy and dummy index validation to zcash_client_backend. Keep Vizor responsible for capturing constructor dummy indices and for its ordinary and legacy signer wire paths.
Delegate version 6 migration batch policy to the librustzcash helper. Remove Vizor dummy-index plumbing and retain only the Keystone-specific Sapling witness omission and legacy serialization behavior.
…edaction

Use librustzcash signer redaction for migration batches
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.

1 participant