[Grant Updates] Zcash Wallet Community Developer

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