22nd Sep 2023
4 min read

ARK Development Report - September 22, 2023

Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, we completed the implementation of a new feature that allows the sorting of table items on the Delegates page in ARK Scan. Additionally, notable progress has been made on the ongoing development of a custom dedicated API for Mansail and improvements to the blockchain state.

Development Summary

Below is a breakdown of total commits and authors by project for development activity over the last week from September 15th through September 22nd, 2023.

Project Commits Authors
Mainsail 16 2
ARK Scan 18 2
ARK Vault 0 0

Overall, the team has demonstrated consistent productivity and engagement over this period, with a total of 34 commits across all projects.

The number of commits and data for each project will fluctuate on a weekly basis depending on internal sprints, objectives, and difficulty.

ARK Scan Weekly Progress

This week, our main focus was on implementing a sorting feature for the ‘Delegates’ page, and we also addressed several identified bugs. Here are the specific improvements we made:

  • Sorting has been added to the tables on the delegate page (delegates list, missed blocks, and recent votes).
  • Missed blocks for standby delegates are now displayed in a gray color
  • Adjustments were made to the presentation of low vote counts for delegates
  • Minor UI improvements to table styles across the application
  • Show tooltips for truncated delegate names and known wallets in transaction overviews
  • Added sorting icons to the loading state of tables

Looking ahead to next week, our goals include releasing an update that introduces the sorting feature on the Delegates page. We will also start work on the redesign of the homepage, which will be our next primary focus.

Mainsail Weekly Report

Throughout this week, we’ve undertaken several optimizations and enhancements to the blockchain state, alongside the development of a new API implementation. To provide a clearer picture, here are the specific improvements:

  • We removed the WalletHolder class. Now, when a wallet is cloned, it maintains a reference to the original wallet. Initial attributes like balance and nonce are set to 0 upon wallet creation. The clone doesn’t duplicate these attributes but calculates them dynamically. If a requested attribute exists in the clone wallet, it’s returned; otherwise, the original wallet is checked. This approach supports multi-level cloning, allowing a wallet clone to be cloned. When committing wallet changes (forgetting and setting attributes), these changes are merged back into the original wallet. This method of implementing lightweight wallet clones ensures good performance, even for wallets with numerous registered attributes.
  • We simplified WalletIndex, which now functions as a straightforward map, containing key-to-wallet mappings. We removed the backreference of wallets to keys because wallet reindexing during cloning is no longer necessary. WalletRepositoryClone now tracks index changes and applies them to the original WalletRepository upon commitment.
  • WalletEvents have been removed. If necessary, they can be reimplemented differently. Users are generally interested in listening to onCommit changes in the blockchain WalletRepository.
  • Wallets now contain a reference to the WalletRepository for marking themselves as dirtyWallets when changes occur. This approach eliminates the need to iterate through all wallets to filter the dirty ones, resulting in improved performance.
  • WalletRepositoryClone is no longer bound to request scope but is created via a factory to support multi-level clones (original WalletRepository -> Clone WalletRepository -> CloneOfClone WalletRepository).
  • Initial support for API integration tests has been introduced. These integration tests utilize a real Postgres database and are executed within the GitHub workflow.
  • We’ve added search criteria and querying support to the API repositories. This means that query parameters can be included in API requests, which are then translated into SQL queries incorporating conditions like or, and, like, lessThan, and more.

In the upcoming week, our focus will be on expanding API implementations with additional features, introducing support for lists within wallets, and working on the export and import of blockchain state.

Feedback & Feature Requests

If you are using our open-source products and would like to provide feedback or request a feature, please feel free to contact us via the contact pages for the specific product you are using or open an issue on GitHub.

Quick access links to GitHub issues pages:

Follow on Twitter (X)

Follow us on X (Formerly Twitter) and keep checking the blog to stay up-to-date on all of our new releases. We post a weekly development report so you can easily see what we’ve been up to and follow along our journey towards making your decentralized future a reality.


Get in Touch!

Whether you want to learn more about ARK Ecosystem, want to apply for developer bounty, become our partner or just want to say Hello, get in touch and we will get back to you.

An Ecosystem of Developers

Join us on our journey to create the future of Web3.