16th May 2025
5 min read

ARK Development Report - May 16, 2025

Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, the ARK Scan team implemented support for the new BLS public key registration transaction type, while the ARK Vault team continued refining the Side Panel by simplifying its architecture, enabling additional tests, and applying a series of targeted fixes. Over on the Mainsail side, the team focused on a range of improvements, updated dependencies, and made updates on Core v3 in preparation for the upcoming Mainsail upgrade.

Development Activity Summary (May 9 – May 16, 2025)

Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from May 9, 2025, to May 16, 2025.

Project Commits Authors
ARK Connect 0 0
ARK Scan 2 1
ARK SDKs & Docs 0 0
ARK Vault 42 4
Mainsail 19 2

During this period, the team maintained strong productivity and engagement, delivering 63 merged commits across all projects.

It’s important to note that weekly commit counts and project-specific data may fluctuate based on the focus of internal sprints, evolving objectives, and the complexity of tasks undertaken.

ARK Scan Weekly Report

This week, we implemented support for the new BLS public key registration transaction type in Core v3. This allows existing delegates to register their BLS keys ahead of the Mainsail migration, ensuring their keys are included in the snapshot and enabling them to forge as validators on the Mainsail network at launch. ARK Scan has been updated to recognize and display this new transaction type appropriately.

Next week, we’ll continue testing and begin implementing any additional features required for Mainsail.

ARK Vault Weekly Report

This week, we focused on further improving the Side Panel by simplifying its architecture, enabling new tests, and addressing various fixes:

  • Decoupled the Wallet from the Coin abstraction to simplify the architecture, as multi-coin support is no longer required for Mainsail. This involved:
    • Removing the wallet.coin() method and instead using the profile’s active network to determine network-specific behavior.
    • Dropping the Coin interface and related IoC containers.
    • Replacing complex SDK inheritance with straightforward, modular service classes for clearer and more maintainable logic.
  • Fixed the issue where outgoing and incoming transaction filters were not applied when selecting the corresponding tab, specifically in scenarios where the user has more than one wallet. Now, transactions are correctly filtered based on direction regardless of the number of wallets.
  • Cleaned up the network domain by moving the NetworkIcon component to app/components and removing the unused network domain module along with its associated tests.
  • Implemented debouncing in the ServerFormModal component for API server input validations, introducing a 500ms delay before triggering validation to improve performance and user experience.
  • Removed an initial set of unused files identified after recent refactors, helping to clean up the codebase without affecting any functionality. Additional files will be removed in future SDK cleanup phases.
  • Added UsernameCircledCheckMark to the icon set and integrated it into the WalletIcons component. The username icon now appears in single view whenever a wallet has a username registered on-chain.
  • Improved accessibility for the wallet import flow by refactoring the Option component in MethodStep into a button element, allowing for better focus management and custom focus state styling.
  • Removed the following unused dependencies from the codebase to reduce bloat and improve maintainability: create-xpub, crypto-js, get-random-values, hdkey, multiformats, react-linkify, react-range, rollup-plugin-polyfill-node.
  • Fixed the issue where importing a profile with a password would fail due to an error in profile.validator.ts. The validation logic now checks if missing properties are due to encrypted data and, if so, throws a PasswordRequired error instead of a generic validation failure, allowing for proper handling of encrypted profile imports.
  • Refactored the Side Panel component to improve UX/UI and support new props: title, subtitle, titleIcon, hasSteps, totalSteps, and activeStep. Updated the component to align with the new designs and applied these improvements to the “Import address”, “Create address”, and “Address management” flows.
  • Enabled and fixed the following test suites to ensure full coverage and functionality:
    • Transactions domain P–S tests,
    • Wallet, router, and util domain tests,
    • Message and network domain tests,
    • Transactions domain T–Z tests,
    • Profile domain tests,
    • Vote domain tests.

Next week, we’ll continue enhancing test coverage, refining the Side Panel, and resolving any reported issues.

Mainsail Weekly Report

This week, we focused on various improvements and updated several dependencies. Specifically:

  • Upgraded inversify to the latest version.
  • A CodeQL workflow for semantic code analysis was added.
  • Enabled snapshot compression.
  • Enhanced transaction inclusion logic:
    • Transactions are now optimistically included in a block if their gas limit exceeds the remaining gas in the block.
    • If the block runs out of gas, the last transaction is reverted.

We also worked on Core v3 in preparation for the Mainsail upgrade:

  • Added support for the BlsPublicKeyRegistration transaction, allowing delegates to register new BLS12-381 public keys on-chain for future use.
  • Prepared and released Core v3.10.0-rc.0 for the public devnet to begin testing the new features.

Next week, we will focus on generating test coverage reports and writing unit tests for the Mainsail upgrade.

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.

Share:

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.