Skip to content

Move Zcash to zcash-native - #6306

Open
j0ntz wants to merge 1 commit into
developfrom
jon/nu7-zingolib-base
Open

j0ntz wants to merge 1 commit into
developfrom
jon/nu7-zingolib-base

Conversation

@j0ntz

@j0ntz j0ntz commented Oct 31, 2026 •

Copy link
Copy Markdown
Contributor

Description

Asana task

Replaces react-native-zcash 0.13.6 with zcash-native, the Zcash part of 661f308 on paul/nodePlugins, and moves edge-currency-accountbased to the version that uses it. Monero and Zano stay where they are. No app source changes.

The native library comes from the NU7 zingolib base on EdgeApp/zcash-native#1. ios/Podfile.lock loses the Swift gRPC pods the old SDK needed. Its checksums for zcash-native and edge-currency-accountbased come from local builds and get regenerated with the version bump at landing.

Testing

Unit tests pass (verify-repo --skip-install). iOS and Android debug builds pass, with zcash-native and edge-currency-accountbased linked locally.

  • TAZ send, iOS simulator: e6e0fd574afebf755c6c63f6ce90433874d07efba15254025f177343698d6f09
  • TAZ send, Android emulator: 90913d738d6d1f5851dc4e38656356450dda31bef95e4a88eac0bbc6d219322e
  • Send scene: a bad testnet address is rejected and valid testnet addresses are accepted.
  • Change-only updates: a temporary log in the JS pump on the iOS simulator counted 2,822 polls across six wallets over 16 minutes and 8 balance callbacks plus 8 transaction callbacks. Six of each came at startup, and two of each came at a real send, on the sending and receiving wallets only. Polls before and after that send delivered none.
  • Existing mainnet wallets: three wallets opened and synced on both platforms, with no mainnet errors in the log. No mainnet sends. On iOS the old ECC data stays on disk, untouched, and the new wallet files sit in their own folder.

Test-only setup: the TAZ wallets need the testnet plugin from EdgeApp/edge-currency-accountbased#1128 and EdgeApp/edge-react-gui#6282 plus a local corePlugins.zcashtestnet setting. Neither is in this PR.

Frames 01 to 15 ran with zcash-native at 473030b. Frames 16 to 18 are the re-check without a send on the final head, which differs only in a poll error branch. Frame 19 is the wallet during the change-only count on the final head, where the real change was a Node entry send, 04e1472d745cb4279fc80296081748c02588ae804f14cfba35710ead82de5be3. It did not produce a second balance callback at its block confirmation within the 13 minutes watched.

Not exercised: the 32-bit Android library on a device, shielding and Orchard-to-Ironwood, and two wallet folders in one process.

CHANGELOG

Does this branch warrant an entry to the CHANGELOG?

  • Yes
  • No

Dependencies

CI fails at install until both versions are on npm.

Requirements

If you have made any visual changes to the GUI. Make sure you have:

  • Tested on iOS device
  • Tested on Android device
  • Tested on small-screen device (iPod Touch)
  • Tested on large-screen device (tablet)

No visual changes.

Awaiting publish: edge-currency-accountbased@4.104.0 (npm latest when applied: 4.103.0)
Awaiting publish: zcash-native@0.1.0 (npm latest when applied: 0.0.1)

Test evidence

19902ca
Move Zcash to zcash-native
2026-10-31

1. bad testnet address rejected

2. mainnet address routes to zec swap

3. testnet transparent accepted

4. testnet tex accepted

5. testnet unified accepted

6. testnet sapling accepted

7. taz send ready to confirm

8. taz send transaction success

9. mainnet zec wallet open

10. android testnet wallet

11. android bad testnet address rejected

12. android testnet sapling accepted

13. android taz send ready to confirm

14. android taz send transaction success

15. android mainnet zec wallet open

16. ios taz wallet on fix head

17. ios mainnet zec wallet on fix head

18. android taz wallet on fix head

19. ios taz wallet change only probe

Swap react-native-zcash 0.13.6 for zcash-native. This is the Zcash part
of 661f308 on paul/nodePlugins; Monero and Zano stay on that branch.

Pins zcash-native 0.1.0 and edge-currency-accountbased 4.104.0, the next
versions those packages publish. Install fails until they do.
@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ⚠️ Failed 2026-10-31T01:22:37.443987Z
We couldn’t complete this review. Comment @codex review to try again.
19902ca PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@socket-security

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
Addedzcash-native@​0.1.0N/AN/AN/AN/AN/A

View full report

@j0ntz j0ntz added the awaiting-dep-publish CI is red until a dependency publishes. Excuses CI only; see the PR body for the awaited package. label Oct 31, 2026

@j0ntz j0ntz left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Self-review with code-review-sonnet at medium on develop..19902ca55 reported 2 findings, and curation rejected both.

Rejected in curation (2)
  • package-lock.json:128: the lockfile does not match what npm ci can resolve. Rejected: the two pinned versions publish at landing, and the version bump at landing regenerates the lockfile.
  • ios/Podfile.lock:2777: the zcash-native and edge-currency-accountbased checksums come from local builds. Rejected as a code change: this is real and belongs to the landing bump, which regenerates them. The PR body states it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting-dep-publish CI is red until a dependency publishes. Excuses CI only; see the PR body for the awaited package.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant