Skip to content

Vendor the Ironwood (NU6.3) pre-release SDK, building libzcashlc from source - #70

Closed
j0ntz wants to merge 1 commit into
masterfrom
jon/zcash-ironwood-nu63
Closed

Vendor the Ironwood (NU6.3) pre-release SDK, building libzcashlc from source#70
j0ntz wants to merge 1 commit into
masterfrom
jon/zcash-ironwood-nu63

Conversation

@j0ntz

@j0ntz j0ntz commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

CHANGELOG

Does this branch warrant an entry to the CHANGELOG?

  • Yes
  • No

Dependencies

Upstream: ECC's unreleased Ironwood branch zcash/zcash-swift-wallet-sdk harry/ironwood-nu6.3-deps (pinned by commit), which itself pins zcash/librustzcash feat/ironwood. No published NU6.3 mobile SDK release exists yet on either platform.

Description

Asana task

DRAFT: eager integration of the Zcash Ironwood (NU6.3) network upgrade, activating July 28, 2026 at block 3,428,143. Kept as a draft until ECC publishes the audited NU6.3 mobile SDK release (expected imminently; librustzcash core shipped NU6.3 on 2026-07-09), or until we decide to ship this pre-release pin. Un-draft and repoint at the release tag when it lands.

What this does:

  • Pins scripts/updateSources.ts to ECC's Ironwood integration branch commit 6668193 and builds libzcashlc from the SDK's in-repo Rust source (cargo, aarch64-apple-ios + aarch64-apple-ios-sim, cbindgen header), replacing the prebuilt libzcashlc.xcframework.zip download that has no NU6.3 release asset to point at. Restoring the prebuilt download when ECC publishes is a small revert (see git history).
  • Excludes the SDK's self-contained voting backend Swift (Rust/Voting/) from vendoring: upstream defers the voting cargo feature on this branch (its zcash_voting dep does not resolve against the feat/ironwood pins), so the FFI has no zcashlc_voting_* symbols. Nothing in react-native-zcash's API uses voting. Without the exclusion the app fails to link.
  • No RNZcash.swift changes needed: every consumed SDK symbol keeps a compatible signature on this branch (the 2.6.0-alpha Broadcaster redesign is confined to the separate Broadcaster protocol; the streaming createProposedTransactions convenience the bridge uses remains). The new Ironwood surface is the planOrchardDenominationSplit/DenominationPlan migration-planning API; AccountBalance gains no new pool, so the existing transparent/sapling/orchard BalanceEvent stays correct.
  • Android stays on the published zcash-android-sdk 2.5.2 (NU6.2): no NU6.3 artifact exists on Maven, and building the Android SDK from source needs an NDK/cargo-ndk toolchain. Documented in android/build.gradle; bump when ECC publishes.
  • Checkpoints refreshed through mainnet block 3,410,000.

Verified in Edge (edge-react-gui, iOS sim): full app build and link against the vendored Ironwood kit, launch, login, and a maestro-driven open of the funded Zcash wallet: balance 0.00798102 ZEC rendered by the NU6.3 SDK's synchronizer with sync in progress (test evidence attached below). The FFI binary was symbol-verified: 201 zcashlc_* symbols including the Ironwood migration API, zero voting symbols.

For Edge, Ironwood requires no user action and no new UI: the Orchard to Ironwood turnstile migration is handled inside the SDK's proposal logic. This upgrade is purely at the SDK layer.

Asana: https://app.asana.com/1/9976422036640/project/1213843652804305/task/1216467071647813

… source

Pin scripts/updateSources.ts to ECC's Ironwood integration branch
(harry/ironwood-nu6.3-deps), which tracks librustzcash's feat/ironwood
work for the July 28, 2026 network upgrade at block 3428143. No upstream
release ships NU6.3 yet, so the prebuilt libzcashlc.xcframework download
is replaced with a cargo build of the SDK's in-repo Rust source for the
aarch64-apple-ios and aarch64-apple-ios-sim targets, with the header
taken from the crate's cbindgen output.

The vendored Swift kit needs no RNZcash.swift changes: every consumed
symbol keeps a compatible signature (the 2.6.0-alpha Broadcaster
redesign is confined to the separate Broadcaster protocol, and the
streaming createProposedTransactions convenience remains).

Android stays on the published 2.5.2 (NU6.2) SDK until ECC ships an
NU6.3 zcash-android-sdk on Maven; noted in android/build.gradle.
@j0ntz

j0ntz commented Jul 14, 2026

Copy link
Copy Markdown
Contributor Author

📸 Test evidence: Edge iOS build on the Ironwood (NU6.3) SDK

agent proof 1216467071647813 02 zcash balance ironwood sdk

agent proof 1216467071647813 02 zcash balance ironwood sdk

agent proof 1216467071647813 03 zcash wallet detail ironwood sdk

agent proof 1216467071647813 03 zcash wallet detail ironwood sdk

Captured by the agent's in-app test run (build-and-test).

@j0ntz

j0ntz commented Jul 29, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by EdgeApp/react-native-zcash#71, which carries the Ironwood (NU6.3) SDK plus the Orchard to Ironwood migration bridge. This draft was an initial pass at vendoring the pre-release SDK; closing in favor of that work.

@j0ntz j0ntz closed this Jul 29, 2026
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