[Grant Updates] Zcash Wallet Community Developer

[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