[Grant Update] Zcash Wallet Community Developer - Milestone 2
Hello community!
I’m posting the second update to the ZWCD Grant
Milestone 2 - Sep 1st to 14th
This milestone is stipulated for the first half of the month. Second half I had a trip planned ahead of time. Even though I checked IM and web every few days looking for anything that might have needed my attention (e.g: sec incidents, outages, support request). Fortunately nothing of the sort came out.
Estimated tasks from Grant Proposal:
Deliverable 2.1
Zingo Labs: pull request review and support development
Deliverable 2.2
Prepare For ECC’s announced mobile development pause
Deliverable 2.3
Preparations for needed updates for iOS 17 public release usually mid september
Deliverable 2.4
Nighthawk Apps: Pull request reviews
Deliverable 2.5
Ecosystem outreach: Support partners (Unstoppable and Edge) adopting ECC’s SDKs (which will be paused)
Deliverable 2.6
LCWG, Arborist and other community tasks
Effective estimated tasks for milestone 2 after milestone 1 and team progresses
Some of the deliverables of this period relied on publicly available SDK release dates from ECC which delayed and bulk of their RC and releases bled into the second half of September. I repurposed that portion of the work on preparing tooling for all SDKs and Wallets to use instead by starting to create new datasets that allow wallets to test the advanced ReOrg tests originally available on the iOS SDK for v4 Sapling transactions, to be ran on v5 transactions using Orchard.
Deliverable 2.1
Zingo Labs: pull request review and support development + General Tooling: Generalize and update Advanced ReOrg Tests Datasets from ECC’s iOS SDK into its own repository. Create tools for these tests to be updated periodically or as needed when NU’s happen.
Status: Delivered
Achievements:
- We were able to complete the SFoE dataset and workaround to craft the 100k blocks set in a quick and reproducible way
- The whole process is documented
- The scripts started to turn RPC code into a simple API for python to interact with a Zcashd instance through RPC calls in python locally, via docker or remotely.
- I created the base dataset for Advanced Re Org tests and documented them
Remarks:
- Zcashd wallet has some issues when it comes to spending notes and this originates a lot of errors when generating the datasets that can’t be really prevented, instead I built workarounds so that the wallet has more notes to pick from and avoid double spends on dataset generating scripts
- Zebra is the new official node and Zcashd is being sunsetted and switched into maintenance mode, but it still does not have any of the features needed to do integration testing like Regtest mode. There’s part of this work that will have to be re-done for Zebra when it is feature complete.
Detail of some of the tasks:
Task | URL |
---|---|
Complete SFoE dataset and 100k Block generation scripts | Expand sfoe to 1000 blocks long by pacu · Pull Request #10 · zingolabs/darksidewalletd-datasets · GitHub |
Document how SFoE dataset is used | Expand sfoe to 1000 blocks long by pacu · Pull Request #10 · zingolabs/darksidewalletd-datasets · GitHub |
Detach --regtest from local zcashd setup | [Zingolib] Detach --regtest from local zcashd environment setup · Issue #26 · pacu/zwcd · GitHub |
Regtest AdvancedReOrgTests dataset for Orchard and Sapling | Regtest AdvancedReOrgTests dataset for Orchard and Sapling · Issue #34 · pacu/zwcd · GitHub |
Deliverable 2.2 (repurposed)
Considering the publicly available timelines from ECC, the grant estimated that Mobile SDKs would have been released by the time of this milestone and that the Apps would have been ready for review as well. Given the change in the release timelines, I repurposed this deliverable to focus mainly on reviewing PRs from ECC when available.
Status: Delivered
Achievements:
- Detect and fix division by zero error on the iOS SDK.
- Review PRs of early pre-RC code on librustzcash, ffi code and SDK code
Setbacks and other remarks:
- RC process and publicly available testing releases took place in the second half of the month so I was not available to provide any support, review or testing.
Detail of some of the tasks:
Task | URL |
---|---|
Review Sbs iOS For ECC pass 2 | https://github.com/zcash/ZcashLightClientKit/pull/1257 |
Protobuf PR review pass 2 | https://github.com/zcash/librustzcash/pull/891 |
Fix a Division by Zero Error on iOS SDK | [#1267] Avoid Division By Zero in ScanProgress type by pacu · Pull Request #1268 · zcash/ZcashLightClientKit · GitHub |
Deliverable 2.3
Preparations for needed updates for iOS 17 public release usually mid september
Status: Delivered
There weren’t outstanding issues on existing apps running the iOS 17 beta.
Deliverable 2.4
Nighthawk Apps is in the process of releasing their new apps, featuring a whole new design and architecture. They are departing from the codebase of the “secant” app from ECC to build their own set of features and product decisions. This involves a lot of code changes that I help them review and test.
Achievements:
- Successfully review and request changes different PRs that contributed to better code quality, test code coverage and app stability
- Helped test migration code manually
- Beta tested NH v2.0
Remarks:
- The nighthawk team was able detach from the Secant code and delete a lot of unused code that came from the previous design of the ECC Secant code before it was redesigned to the “Zashi” wallet.
- Reviewing that refactor took some time but I estimate that it will bring a lot of benefits for NH and the community as a whole. NH will be the only Zcash wallet offering KYC-less on-ramps and then using autoshielding to bring funds from other chains to the shielded pool.
Detail of some of the tasks:
Task | URL |
---|---|
Review PR from NH | Implement Face ID / Touch ID + Refactors + The Great Divorce (cleanup unused code) by tw0po1nt · Pull Request #12 · nighthawk-apps/nighthawk-ios-wallet · GitHub |
Review Bugfixes on NH 2.0 beta | https://github.com/nighthawk-apps/nighthawk-ios-wallet/pull/22#pullrequestreview-1651407986 |
Manual testing of NH 2.0 beta | Reported Via Testflight |
Deliverable 2.5
Ecosystem outreach: Support partners (Unstoppable and Edge) adopting ECC’s SDKs (which will be paused)
Status: delayed
Given the RC process was delayed much of it started on the second half of September and partners are adopting the SDKs currently (Oct 2023)
Deliverable 2.6
LCWG, Arborist and other community tasks
Status: delivered
Detail of some of the tasks:
Task | URL |
---|---|
LCWG 60 | [#62] LCWG Call 60 - Sep 7th by pacu · Pull Request #63 · zcash/lcwg · GitHub |
Zcash Dev Fund 2024: Community Town Hall #3 | Twitter Spaces |
Respond to Unstoppable user issue | Unstoppable wallet HELP |
Investigate Ywallet unavailable in App Store | Ywallet not listed in Argentina's App Store |
Estimated Tasks For Milestone 3
- Update Advanced Re Org Tests datasets to v5 transactions supporting sapling, transparent and orchard
- Document the tests and make them available to all wallet developers
- Do first integration with Zingo, then work with the rest of the wallets.
- Report testing integration outcomes to Zingo folks
- NH wallet 2.0 release support: PR review and beta testing of Sbs and ZIP-317
- ZIP-317 outreach w/ ZF
- Community calls:
- FROST
- Arborist
- LCWG
- Dev Fund 2024 Twitter space
- [Tentative] ZIP-321 support for NH
- [Tentative] Mobile SDK Support tasks (depending on ECC planning outcome of next week.)
- Regtest Support for ECC SDKs
- PR Reviews (at request)
- Office Hours:
- Zavax Bridge team
- Chainsafe Team on Zcash Javascript SDK