Resolve ZcashNames (.zec) in Zcash send and tx history#6000
Conversation
0ccd68b to
b48db4d
Compare
b48db4d to
ceda6c1
Compare
ceda6c1 to
e906437
Compare
2e8cab1 to
e655ef0
Compare
7dbc929 to
96f368e
Compare
987daf2 to
f32a1f7
Compare
| unless existing_defs.include?('_LIBCPP_ENABLE_REMOVED_ALLOCATOR_CONST=1') | ||
| config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] = existing_defs + ['_LIBCPP_ENABLE_REMOVED_ALLOCATOR_CONST=1'] | ||
| end | ||
|
|
There was a problem hiding this comment.
this commit can be dropped. changes were already merged
| "get_started_button": "Get Started", | ||
| "not_now_button": "Not Now", | ||
| "scan_address_modal_title": "Enter Recipient FIO, ENS, or Public Address", | ||
| "scan_address_modal_title": "Enter Recipient ZEC, ENS, or Public Address", |
There was a problem hiding this comment.
I see this was fixed later on
| const handleChangeAddress = useHandler(async () => { | ||
| const nameServices: string[] = [] | ||
| if (fioPlugin != null) nameServices.push('FIO') | ||
| if (coreWallet.currencyInfo.pluginId === 'ethereum') |
There was a problem hiding this comment.
Funny, this matches current behavior but is actually wrong. ENS is multi chain, including non-EVM chains, and works correctly in the address modal. Here in the address tile we've limited ENS lookup to to only ethereum wallets.
There was a problem hiding this comment.
probably not worth fixing on a tight deadline but worth fixing later
There was a problem hiding this comment.
c568391 to
9e416c2
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 9e416c2. Configure here.
c2b9d62 to
873884c
Compare
Localize scan_address_modal_title and add scan_address_modal_title_1s Hand-translated alongside the en_US source-of-truth update from the prior commit. Goes against the usual Crowdin-only-edits-translations practice; that's intentional — Crowdin is being phased out, so editing locale JSON directly here is fine.
873884c to
44b5c23
Compare

CHANGELOG
Does this branch warrant an entry to the CHANGELOG?
Dependencies
noneRequirements
If you have made any visual changes to the GUI. Make sure you have:
Description
Asana: https://app.asana.com/1/9976422036640/project/1213880789473005/task/1214252169890166
Adds ZcashNames (ZNS) — like ENS but for Zcash — to the Zcash send flow and transaction display.
alice.zec(or any.zecname) inAddressTile2/AddressModalfor a Zcash wallet resolves it to the registered unified address. Mirrors the existing ENS / Unstoppable Domains / Zano-alias hooks. Silent fallback toparseUrion miss.useZnsNamehook async-resolves Zcash recipient addresses to their registered.zecname (with in-memory cache + in-flight dedupe) and renders it on the transaction list row and the transaction details screen when no metadata name is set.spendTarget.otherParams.znsNameand is propagated intometadata.nameon broadcast — same pattern aszanoAlias/fioAddress.zcashname-sdk@^0.7.2. Noreact-native-zcashor native code changes. The SDK ships pure-JS deps (bech32,@noble/ed25519); both are added to the JesttransformIgnorePatternswhitelist so the test suite still loads them.Pre-existing lint warnings in
TransactionListRow.tsxare addressed in the first commit so the file can be removed from the warning suppression list cleanly. Verified locally withyarn prepare,yarn lint, andyarn test. Device-level UI verification pending.Note
Medium Risk
Adds a new external name-resolution dependency (
zcashname-sdk) and integrates it into send/address parsing and transaction display, which could affect address handling and UI correctness for Zcash sends. Risk is mitigated by gating tozcashwallets, fallbacks to normal URI parsing, and in-memory caching with logout resets.Overview
Enables ZcashNames resolution for Zcash wallets:
.zcashinputs are forward-resolved to addresses inAddressTile2/AddressModal, preserved asspendTarget.otherParams.znsName, and surfaced in send confirmation/metadata alongside existing FIO/Zano patterns.Adds reverse lookup via new
useZnsName(with in-memory cache + in-flight dedupe) to display recipient ZNS names inTransactionListRowandTransactionDetailsScenewhen no explicit metadata name exists, and clears ZNS caches/client on logout. Updates copy to dynamically list supported name services in the address modal, and adjusts Jest transforms/deps (zcashname-sdk,@noble/ed25519) to keep tests/lint working.Reviewed by Cursor Bugbot for commit 44b5c23. Bugbot is set up for automated code reviews on this repo. Configure here.