Implementation Analysis: Coin Control on the Zcoin Rich Client

Rasikh Morani
Feb 17 · 3 min read
Image for post
Image for post

As promised in our previous article covering our last contribution to the Zcoin community, we have returned with another Implementation Analysis! This implementation analysis is particularly special, as it’s the first one funded solely by the Zcoin Community Funding Tool, the “ZCS”, a tool that allows for community members to fund projects of interest for the Zcoin Community.

Arcadia recently completed integrating ZCS Proposal #7, “Integrating Coin Control Functionality into the Zcoin Rich Client”

The Zcoin Rich Client, is a more user-friendly implementation of the traditional Zcoin Wallet, with the same security spec.

This was an interesting first project on the Zcoin Rich Client, as there was a learning curve on the side of how ZMQ communications were implemented, specific implementation choices, and functionality on how Sigma mints are treated when they are being spent.

Our UI/UX process began with our team going and reviewing the existing implementation of Coin Control on the reference Wallet, then attempting to replicate that on the Rich Client while adding some easier UI elements for accounting for Znodes among other considerations.

Our development process began with a run-through of how coin control on the primary wallet (QT) worked on a user flow level, and on an operational level. At the same time, we began reviewing the architecture and compilation processes for the coin control functionality.

Image for post
Image for post
One of the Initial Mockup Designs that Was Introduced for The Zcoin Rich Client

We ran into some initial issues with compilation and testing but after some extensive communication with the maintainers, we were able to get a good idea on where we were erring.

After our environments were set and we were able to quickly compile and were somewhat familiar with the codebase, we began implementing the expected API calls on the side of the daemon (ZMQ API).

Once that was complete, we began the process of building out the frontend UI for the rich client and hooking it up to the previously created APIs for Coin Control functions for both the Sigma and Normal Transaction Screens.

After the integrations were done, we did some remediation with the Zcoin Team, where they gave us some pointers on how we could modify the handling of Transaction Events to be more efficient and user-friendly for users with a large number of transactions. As well as updating some UI/UX updates for a better experience.

This project was a bit different than what we were used to, but overall it was definitely a success. We’d like to thank Tadhg Riordon for the major assistance in working with the Rich Client codebase of which he and Praxit are the primary maintainers. We’d also like to thank Reuben Yap for the amazing support and coordination.

The Arcadia Group

Software Development can be a costly, clustered, and…

Rasikh Morani

Written by

CTO at The Arcadia Group

The Arcadia Group

Software Development can be a costly, clustered, and complicated process. This goes doubly so for machine learning and blockchain projects. While this is often the case in projects industry wide, with Arcadia it doesn’t have to be.

Rasikh Morani

Written by

CTO at The Arcadia Group

The Arcadia Group

Software Development can be a costly, clustered, and complicated process. This goes doubly so for machine learning and blockchain projects. While this is often the case in projects industry wide, with Arcadia it doesn’t have to be.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store