[Grant Updates] Zcash Wallet Community Developer

[Grant Update] Zcash Wallet Community Developer - Milestone 1

Hello community!

I’m posting the first update to the ZWCD Grant

Let’s recap!

Milestone 1: Objectives

Deliverable 1

NightHawk Apps: Support and Review Pull Requests for DAG Sync adoption and customizations in the new Nighthawk Wallet architecture based on Secant. (ongoing)

Deliverable 2
Zingo Labs: General support and Integration tests with Darksidewalletd (ongoing)

Deliverable 3
Zcon4 activities

Deliverable 4
LCWG re-launch: take ownership of the call schedule (Is ECC’s), coordinate with ZF to set up seminar or similar call with a public schedule and per-invite participation.

Deliverable 5

Attend Arborist Call, present myself and announce the position.

Updates on the Proposed deliverables of Milestone 1

In the following sections I will detail:

  • achievements: things that I was able to achieve in the defined objectives
  • Remarks/Comments: Details of things that I learned along the way of situations that
    are worth mentioning too add context of decisions made along the way/

Deliverable 1: Support NH on DAG Sync and other Tasks

Status: Ongoing (delivered but still be ongoing)

Achievements:

  • Helped NH reviewing their code, pointing out possible issues and bugs.
  • Reviewed User Data Migration path from legacy to new codebase and tested.
  • Contributed w/ a better workflow of the migration path that will only delete legacy data after it has been migrated successfully
  • Caught a bug in a 3rd party dependency that wouldn’t make that possible in the first place.

Remarks / Comments:

  • NH’s new app has interesting UX approaches that others wallets should explore.
  • Clean, lean and yet custom designs
  • Interesting feature 1: leverage local notifications that don’t go through Google or Apple servers but still let the OS remind the user to sync the wallet weekly or Monthly if the user chooses to.
  • Interesting feature 2: Crypto on-ramps with non-KYC CEXs

Open Source Contributions

Deliverable 2: Zingo Labs: support and Integration tests

Status: Ongoing (delivered but still be ongoing)

Achievements:

  • We were able to identify a case that is very important for Zcash wallets called “Second Flush of Enthusiasm” which measures the time that a wallet takes to be fully usable after being offline for 100 days of its user being onboarded.
  • I was able to create the SFoE dataset in a condensed form to later expand using darksidewalletd,
    also to start to document the bumps I hit along the way and even write a tutorial on Free2z

Remarks / Comments:

  • This was the hardest part of the grant because Zingo (formerly ZecWallet) has a complex stack due to dependencies to Zcashd Regtest. Zcashd imposes its limitations and also scarsely documented APIs.
  • I was able to create the SFoE dataset in a condensed form to later expand using darksidewalletd
  • We hit too many bumps on the road because of Zcashd Regtest being slow, resource heavy and not very docker friendly.
  • ZingoLabs is very heavily invested on integration testing and continously improving their codebase. :blush:
  • I’m continously in touch with the Zingo folks and they provide insights and support on questions
    I might have on their codebase and tooling.

Deliverable 3 & 5: Zcon4 Activities and Participating actively on arborist call

Status: delivered

Achievements:

We could identify and follow up on the frustrated attempt on LCWG to take action on the mempool spam issues. It came up that Ecosystem Outreach had been dropped as ECC responsibility and no one was actually informing wallets and exchanges what to do with ZIP-317 fees being now enforced
ZF and ZWCD will team up to carry on an Ecosystem outreach to address this problem.

Remarks / Commments:

The Role has been well received by all teams.

Deliverable 4: Light Client Working Group

Status: mostly delivered. Ongoing.

Achievements

  • Contact ECC Managers and request them to transfer the scheduling, note taking repos and other resources to ZWCD
  • Organize Zoom Seminar or other kind of conference venue
  • gathered feedback of more global times (like arborist call) and propose new cadence
  • Provisional facilitated by Decentralistdan from ZF
  • Contact all wallet teams and previous attendees to invite them again to the LCWG calls those include:
    • Eiger
    • ChainSafe
    • Unstoppable
    • Edge
    • ZF Core team
    • ECC Core Team
    • Nighthawk Apps
    • Hahn / YWallet
  • I could help the ECC and NH teams to come up with action items to face the mempool bloat issue that wallets and nodes were facing because of not wallets not enforcing ZIP-317.

Remarks:

  • The ongoing changes and transitions made this bumpier as one would have predicted it would be, but overall nothing too blocking.
  • There’s a bottleneck on LCWG notes reviews that needs to be addressed. Either by relocating the repo under another Org and Maintainers or by agreeing on repo current maintainers to commit to reviewing the notes.

See Pull requests · zcash/lcwg · GitHub

Miscellaneous or Uncategorized items:

There were some items not categorized as deliverables for this milestone but that were relevant for my duties since they would unblock people and teams.

Ad-Hoc Code Review of Pull Requests for ECC’s Core Team and other tasks for Zec Wallet team.

Task Type Team Date Link
Review Darkside proto PR from iOS SDK Development ECC 8/25/2023 Migrate to latest `darkside.proto` to help fix Darkside tests by str4d · Pull Request #1191 · zcash/ZcashLightClientKit · GitHub
Review of Transaction Proposal Development ECC 8/22/2023 https://github.com/zcash/librustzcash/pull/891#pullrequestreview-1589874205
Respond to ZecWallet Lite Outage incident Community ZecWallet 8/22/2023 Zcash Wallet Community Developer · GitHub
Test and Debug of DAGSync issue reported by NH Community NH & ECC 8/29/2023 [#1223] Requested height [over latestheight] does not exist in the bl… by LukasKorba · Pull Request #1224 · zcash/ZcashLightClientKit · GitHub [Spend-before-Sync] Requested height [over latestheight] does not exist in the block cache · Issue #1223 · zcash/ZcashLightClientKit · GitHub
Review Draft for Possible ZCG Applicant Community To Be disclosed 8/28/2023 N/A
Adminstrative tasks Grant Task ZWCD
Project Management Tasks Grant Task ZWCD
Catching up with forums and community interactions Community ZWCD

Plans for Next Milestone: Sept 1st to Sept 14

These were the estimated task for the next milestone.

  • Zingo Labs: pull request review and support development, ongoing Integration testing work
  • Preparations for needed updates for iOS 17 public release usually mid september
  • Nighthawk Apps: Pull request reviews
  • Ecosystem outreach: Support partners (Unstoppable and Edge) adopting ECC’s SDKs release of Sbs (which will be paused)
  • Ecosystem outreach: ZIP-317 adoption efforts along with @decentralistdan from ZF.
  • LCWG, Arborist and other community tasks

It has to be noted that I won’t be working the second part of september (and it was detailed on the grant).

15 Likes

[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.

Public ZWCD Github project

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:

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:

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:

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
5 Likes

[Grant Update] Zcash Wallet Community Developer - Milestone 3

Hello community!

I’m posting the third update to the ZWCD Grant

Estimated tasks from Grant Proposal: (see proposal)

Deliverable 3.1

General iOS 17 release preparations

  • Support ZingoLabs on iOS 17 issues
  • Support Nighthawk on iOS 17 issues
  • Support Zcash iOS SDK and other affected applications that might report issues.

Deliverable 3.2

Zingo Labs: Pull request reviews

Deliverable 3.3

Nighthawk Apps: Pull request reviews

Deliverable 3.4

Fixed time-boxed Allocations (Community calls, office hours, etc)

As reported on Milestone 2’s section, the release of iOS 17 went by with no further complications than teams checking for regressions. The first 3 items were not needed and I repurposed that time allocation into other tasks.

Effective estimated tasks for milestone 3

Deliverable 3.1

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 Labs

Status: Delivered

Achievements:

Remarks:

This generated quite a PR queue on the Zingo team, they will be working on review and merge of them after their next release.

Detail of the tasks
(all tasks of the milestone can be found here Milestone 3 Milestone · GitHub )

Task URL
Improvement on Address Generation tool Parameterize `generate_address` tool to select different receivers · Issue #56 · pacu/zwcd · GitHub
Implement ReOrg Changes Outbound Tx MinedHeight Tx ID reported on `do_send` does not match the one reported on `summaries` · Issue #621 · zingolabs/zingolib · GitHub
`ValueTransferKind::Sent` turns into `ValueTransferKind::SendToSelf` after ReOrg · Issue #622 · zingolabs/zingolib · GitHub
Implement ReOrg Changes Inbound MinedHeight Advanced ReOrg Test: ReOrg changes tx height by pacu · Pull Request #593 · zingolabs/zingolib · GitHub Implement ReOrg dataset that changes the height of an incoming transaction by pacu · Pull Request #13 · zingolabs/darksidewalletd-datasets · GitHub
Implement ReOrg Removes Incoming Tx Forever on zingo lib reorg expires incoming tx by pacu · Pull Request #615 · zingolabs/zingolib · GitHub reorg expires incoming transaction by pacu · Pull Request #16 · zingolabs/darksidewalletd-datasets · GitHub
Implement Reorg changes Incoming Transaction Index Implement Reorg Test that changes the index of a transaction by pacu · Pull Request #610 · zingolabs/zingolib · GitHub
dataset for changing an incoming tx's index within a block by pacu · Pull Request #14 · zingolabs/darksidewalletd-datasets · GitHub
Implement ReOrg Expires Inbound Transaction reorg expires incoming tx by pacu · Pull Request #615 · zingolabs/zingolib · GitHub
reorg expires incoming transaction by pacu · Pull Request #16 · zingolabs/darksidewalletd-datasets · GitHub
Implement ReOrg Changes Inbound Tx Index In Block Implement Reorg Test that changes the index of a transaction by pacu · Pull Request #610 · zingolabs/zingolib · GitHub
Implement ReOrg Changes Inbound Tx Mined Height for Zingo implement ReOrg test that removes and expires a Sent Tx by pacu · Pull Request #625 · zingolabs/zingolib · GitHub
implement ReOrg Removes Outbound TxAnd Is Never Mined implement ReOrg test that removes and expires a Sent Tx by pacu · Pull Request #625 · zingolabs/zingolib · GitHub
Implement Reorg Changes Outbound Tx Index Implement ReOrg test that changes the index of a sent tx by pacu · Pull Request #627 · zingolabs/zingolib · GitHub

Deliverable 3.2

Nighthawk Apps: Pull request reviews + Testflight testing of NH 2.0

  • Review PRs
  • Support of beta testing of NH 2.0 with Spend Before Sync

Status: Delivered

Achievements:

  • Provided insights on implementation details and how these could be tested in terms of past experience with ECC Wallet Development
  • Supported the review and implementation of very demanded feature that allows to switch to different servers of lightwalletd.com (which is not supported by ECC SDKs)
  • Supported the launch of NH 2.0 by receiving Testflight update NH wallet and use the betas.

Detail of the tasks
(all tasks of the milestone can be found here Milestone 3 Milestone · GitHub )

Deliverable 3.3

Work around Mobile SDKs and other related projects

Status: Delivered

Remarks:

There have not been clear definitions of what ECC’s roadmap will be in terms of its current scope and development plans. The “focus ECC” Blog posts had indicated development pauses, but the timelines haven’t been either met or updated (see blogpost). At the latest LCWG meetings ECC’s EM had communicated that they were planning their next period and that they would release a blog post to tell the Zcash community their near term plans over the points exposed on their last update mentioned above. This was announced at October 5th’s meeting (see notes) and then confirmed at the following meeting (see notes) but there is no announcement yet (Oct 27th at time of writing). In that context, work allocations that had been planned in terms of this announced “pause” are being repurposed to other efforts.

Achievements:

  • Helped review transaction proposal API that will allow complete implementation of ZIP-317 with elements that provide good UX elements.
  • Wrote an analysis on SDK, librustzcash and FFI modules to implement REGTEST support

Detail of the tasks
(all tasks of the milestone can be found here Milestone 3 Milestone · GitHub )

Deliverable 3.4

Fixed time-boxed Allocations (Community calls, office hours, etc)

Status: delivered

Remarks:

Office Hours with AVAX team.

We went over some overall concepts of the ZAVAX bridge. His team is working on implementing the Zcash <> AVAX bridge the same way they did the Bitcoin one for V1 and then iterating to build up a more seamless experience for the user.

I pointed them out to some resources that would be useful for his team like the Protocol section where the difference between Bitcoin and Transparent Zcash are described.

We will be meeting regularly to review some architectural designs and other things related to development and UX.

Office Hours With Chainsafe Team

Meet with Chainsafe Team reps to go over various topics or doubts on their Zcash SDK proposal that I can help address or redirect to the right people.

Met with Danyul from Chainsafe on Thu October 12th 2023. We went over the Zcash Community Grant process in terms of their proposed Statement of Work document

Test Edge Spend Before Sync + UA Staging version for Android

Got in touch with Edge’s team and got beta versions of their next prod release including Spend Before Sync for Android and help them spot a few bugs which they fixed.

5 Likes

Grant Update] Zcash Wallet Community Developer - Milestone 4

Hello community!

I’m posting the fourth update to the ZWCD Grant

Estimated tasks from Grant Proposal: (see proposal)

Deliverable 4.1

Native support for ZIP-321 Payment requests (ongoing)

  • Allows to request Zcash to many parties on a same payment request
  • Applicable for Android, iOS, Kotlin, Java and Swift.
  • Useful for Zashi, Unstoppable, NightHawk
  • Uses minimal dependencies avoiding binary bloat.
  • Combined with ZIP-321 request fulfillment features of librustzcash can act as “transaction builder” to make complex payment from light clients

Status: Delivered first stage (ongoing)

Achievements:

Remarks:

  • Kotlin releases are far more complicated than Swift ones since the process involves publishing to maven central and holding GPG keys and registering to do so. Will evaluate if it’s worth the effort of if devs might prefer to grab from github instead
  • Address validation is left as a thing to compose since it requires dependencies. It will be revisited when implementing the parser.

Detail of the tasks
(all tasks of the milestone can be found here Milestone 4 Milestone · GitHub )

task link
Swift - ZIP-321 URI String construction ZIP-321 URI String construction by pacu · Pull Request #4 · pacu/zcash-swift-payment-uri · GitHub
Swift - GitHub Continuous Integration Create swift.yml by pacu · Pull Request #11 · pacu/zcash-swift-payment-uri · GitHub
Swift - Documentation [#13] Update README.md for initial version by pacu · Pull Request #14 · pacu/zcash-swift-payment-uri · GitHub
Swift - Make Interface Public ​​Surface public interface #15 by pacu · Pull Request #16 · pacu/zcash-swift-payment-uri · GitHub
Swift - release 0.0.1 [#18] Release 0.0.1 by pacu · Pull Request #19 · pacu/zcash-swift-payment-uri · GitHub
Publish zcash-swift-payment-uri into Swift Package Index Publish zcash-swift-payment-uri into Swift Package Index · Issue #67 · pacu/zwcd · GitHub
Kotlin - Remove Junit test style in favor of Kotest Remove Junit test style in favor of Kotest by pacu · Pull Request #2 · pacu/zcash-kotlin-payment-uri · GitHub
Kotlin - Model classes and Amount tests [#5] Model classes and Amount tests by pacu · Pull Request #6 · pacu/zcash-kotlin-payment-uri · GitHub
Kotlin - [#7] Implement MemoBytes and Tests [#7] Implement MemoBytes and Tests by pacu · Pull Request #8 · pacu/zcash-kotlin-payment-uri · GitHub
Kotlin - [#9] recipient address model and tests [#9] recipient address model and tests by pacu · Pull Request #10 · pacu/zcash-kotlin-payment-uri · GitHub
Enforce Kotest plugin Enforce Kotest plugin by pacu · Pull Request #11 · pacu/zcash-kotlin-payment-uri · GitHub
Kotlin - qchar encoding Tests [#13] qchar encoding Tests by pacu · Pull Request #14 · pacu/zcash-kotlin-payment-uri · GitHub
Kotlin - Use Klint [#15] Use Klint by pacu · Pull Request #16 · pacu/zcash-kotlin-payment-uri · GitHub
Kotlin - Detekt Static Scanning and formatting [#17] Detekt Static Scanning and formatting by pacu · Pull Request #18 · pacu/zcash-kotlin-payment-uri · GitHub
Kotlin - Renderer and tests [#19] Renderer and tests by pacu · Pull Request #20 · pacu/zcash-kotlin-payment-uri · GitHub
Kotlin - ZIP-321 Payment request Generation API ZIP-321 Payment request Generation API by pacu · Pull Request #22 · pacu/zcash-kotlin-payment-uri · GitHub
Kotlin - Version 0.0.1 [#23] Version 0.0.1 by pacu · Pull Request #24 · pacu/zcash-kotlin-payment-uri · GitHub

Deliverable 4.2

Zingo Labs: tweaking Integration tests and other support tasks

  • Update existing open PRs to dev branch
  • Update datasets PRs
  • PR review on test scenarios that the Zingo folks created to catch bugs

Status: Delivered

Achievements:

  • Advanced ReOrg Test were finally integrated to Zingo’s codebase as their own module and are integrated into CI running on each PR catching regressions
  • Some serious bugs were caught thanks to the darksidewalletd integration
  • Rebased all the existing PRs and recreated all the Advanced ReOrg Tests submissions to accommodate a huge refactor of the ZingoLib structure

Remarks

  • PRs took too long to be merged and it took me a few days of work to actually figure out how to preserve repo history and rebase the changes I had done
  • Although somehow eclectic, Zingo is a very fast paced team
  • Zingo is heavily invested in benchmarking and performance optimization of the existing codebase

Detail of the tasks
(all tasks of the milestone can be found here Milestone 4 Milestone · GitHub )

Deliverable 4.3

Zcash mobile SDKs re-integration to darksidewalletd tests

This is a many step task which will be ongoing and involves work across many repositories: librustzcash, lightwalletd, zcash-swift-wallet-sdk, zcash-android-wallet-sdk, zcash-light-client-ffi.
The main goal is to provide the same level of integration testing support across the wallet ecosystem.

Status: Delivered (ongoing)

Achievements:

  • Requirement elicitation and validation of regtest support on SDKs (done)
  • Implementation of librustzcash support of regtest (done)
  • Completion of Advanced ReOrg Tests datasets (done)
  • Merge of librustzcash work into main (pending)

Remarks:

There’s work to do in many repositories so the integration to the codebase and release of this development work will take some time given the time of the year, holidays, time-off, etc.

Detail of the tasks
(all tasks of the milestone can be found here Milestone 4 Milestone · GitHub )

Deliverable 4.4

Fixed-time allocations (LCWG, Office Hours, Arborist Calls, FROST, Forums, Discord, etc)

Status: delivered

Achievements:

9 Likes

[Grant Update] Zcash Wallet Community Developer - Milestone 5

Hello community!

I’m posting the Fifth and last update to the ZWCD Grant

Estimated tasks from Grant Proposal: (see proposal)

Deliverable 5.1 (blocked, orchard support not ready)

Nighthawk Apps: Development Support for Orchard adoption and ZIP-315 compliance on NightHawk wallet

Deliverable 5.2

Zingo Labs: Wrap-Up and presentation of Integration tests with Darksidewalletd to the wider-community

Deliverable 5.3

Zcash mobile SDKs: Maintenance. If possible, Darksidewalletd integration testing updates

  • Development of Missing RPCs for Lightwalletd support of Spend before Sync
  • Regtest (aka “local consensus”) support on Librustzcash
  • Fix Advanced Re Org tests on iOS SDK failing because of lack of RPC support

Deliverable 5.4

Fixed time Allocation:

  • LCWG
  • [Tentative] Lead ZIP-315 initiative if no one else offers to
  • Office Hours
  • Arborist

Effective / proposed tasks from Grant Proposal: (see proposal)

Deliverable 5.1

Native support for parsing ZIP-321 Payment requests

  • Allows to request Zcash to many parties on a same payment request
  • Applicable for Android, iOS, Kotlin, Java and Swift.
  • Useful for Zashi, Unstoppable, NightHawk
  • Uses minimal dependencies avoiding binary bloat.
  • Combined with ZIP-321 request fulfillment features of librustzcash can act as “transaction builder” to make complex payment from light clients

Status: Delivered

Achievements:

Remarks:

  • The Kotlin variant is a really good candidate to be turned into Kotlin multi-platform supporting javascript and even iOS for kotlin multi platform wallets!
  • Found a nasty bug in Swift Compiler on Decimal handling. :confused: which is, following their tradition, completely known and ignored by Apple

Detail of the tasks
(all tasks of the milestone can be found here https://github.com/pacu/zwcd/milestone/5 )

Deliverable 5.2

Zingo Labs: Wrap-Up and prepare for presentation of Integration tests with Darksidewalletd to the wider-community

Status: Delivered

Achievements:

  • Introduced Darksidewalletd, an integration testing tool that allows developers to produce their own “on-chain” deterministic test scenarios on a synthetic compact blockchain
  • Prepared, developed and documented a set of initial test cases like “Second Flush of Enthusiasm” to test wallet restore from long periods of user inactivity
  • Prepared, developed and documented a set of advanced ReOrg Tests that allow wallet developers to be prepared for chain ReOrgs in advance of them happening on mainnet and test their wallet in reproducible test scenarios.
  • Contributed to Zingo’s new approach to integration testing and development.
  • Zingo will explore pivoting towards darksidewalletd driven development where they will be replacing their Zcashd Regtest tooling.

Remarks:

  • Advanced ReOrg tests and SFoE datasets are available to all wallet developers.
  • Zingo Viridians and ZWCD have started conversations towards a new wallet testing framework powered by zingo and darksidewalletd

Deliverable 5.3

Zcash mobile SDKs: Maintenance. If possible, Darksidewalletd integration testing updates

  • Development of Missing RPCs for Lightwalletd support of Spend before Sync
  • Regtest (aka “local consensus”) support on Librustzcash
  • Fix Advanced Re Org tests on iOS SDK failing because of lack of RPC support

Status: Delivered (PRs to be merged)

Achievements:

  • Added Continuous Integration Enhancements to zcash-swift-wallet-sdk
  • Ability to provide custom checkpoints on Testing environments (needed regtest support) on iOS and submitted a proposal on how to achieve that in kotlin SDK
  • Working on adding a “LocalNetwork’’ mode for librustzcash that will replace Regtest and serve also for transition to Zebrad and sunsetting Zcashd.
  • Created a PR to add support for spend before sync into darksidewalletd, which got merged with another one that Larry Ruane had been working on.
  • Built lightwalletd with the latest master branch and got Advanced Re Org tests fixed. They now have to be updated to Spend Before Sync logic. They don’t crash any more

Remarks:

  • Some of this PRs depend on other teams to be approved

Detail of the tasks
(all tasks of the milestone can be found here Milestone 5 Milestone · GitHub )

Deliverable 5.4

Fixed time Allocation:

  • LCWG
  • Took Lead ZIP-315 initiative (no one else offered to)
  • Office Hours
  • Arborist

Achievements:

  • Revamped and repurposed Light Client Working Group
    • Started on Three working Initiatives:
      • ZIP-315 support on the wide wallet ecosystem
        • Lead: Pacu
      • ZIP-317 Implementation across the ecosystem
        • Lead: DecentralistDan
      • Decentralize Core Development, Zcashd, lightwalletd and other tooling
        • Lead: Zancas
  • Office Hours:

Status: delivered

2 Likes

Hello! Given this grant is completed. I closed the Github project I used to manage it.

the URL is still available as read-only

1 Like