20th Jun 2025
7 min read

ARK Development Report - June 20, 2025

Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, work progressed on the ARK Connect demo website to support MetaMask integration, while the ARK Scan team resolved issues with multipayment calculation logic and improved validator transaction detail displays. We also updated the TypeScript Crypto package to enable validator registration with a locked amount. In ARK Vault, development continued on Dim Theme components, the Validator Registration flow, and further improvements to test coverage. Meanwhile, the Mainsail team focused on general fixes and continued refining the validator contracts.

Development Activity Summary (June 13 – June 20, 2025)

Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from June 13, 2025, to June 20, 2025.

Project Commits Authors
ARK Connect 8 1
ARK Scan 5 1
ARK SDKs & Docs 2 1
ARK Vault 42 4
Mainsail 31 2

During this period, the team maintained strong productivity and engagement, delivering 88 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 Connect Weekly Report

Continued working on the ARK Connect demo website with MetaMask integration. Work done included:

  • Support was implemented for sending vote transactions via MetaMask. Users can now initiate and sign vote transactions directly through the MetaMask app.
  • Replaced all references of delegate with validator throughout the codebase and updated the fetching logic to retrieve 53 active validators (instead of 51). Also adjusted property handling to ensure correct data is pulled and displayed, and replaced instances of .username() with .address() to reflect the updated data structure.
  • Fixed a fee calculation issue when sending transactions by setting the priority fee to 0. This resolves RPC-related errors that were previously blocking transaction submission.
  • Implemented message signing through MetaMask. When a user initiates message signing, the request is sent to MetaMask and signed using the selected account. Currently, the signed message is output to the developer console.

Next week, we will continue working on the MetaMask integration via the ARK Connect demo site for Mainsail EVM. We will also address and fix any issues reported during testing.

ARK Scan Weekly Report

Focused on fixing multipayment calculation logic and enhancing the validator transaction details. Key updates include

  • Fixed the multipayment calculation logic to properly handle cases where the sender is also a recipient. Previously, amounts sent back to the sender were incorrectly counted as outgoing, leading to inaccurate negative totals in the transaction table. Now, only actual outgoing payments to other addresses are included in the displayed amount.
  • Refactored the validator registration transaction to include the locked amount value. This ensures that the amount being locked during validator registration is shown on the transaction details page.
  • Updated the validator resignation transaction to include the unlocked amount, so it is also displayed on the transaction details page.

Next week, we’ll be addressing any additional issues reported during internal devnet testing.

ARK SDKs & Docs Weekly Report

This week, we updated the TypeScript Crypto package to support validator registration with a locked amount. The registration transaction now includes lockedAmount parameter, which defaults to 250 ARK if not specified.

Next week, we’ll begin updating the remaining SDK packages to support both locked and unlocked amounts for Validator Registration and Resignation transactions.

ARK Vault Weekly Report

This week continued working on Dim Theme components, as well as working on the Validator Registration flow and improving test coverage. Work done includes:

  • Dim theme support has been added to key UI components across the transactions page, including Checkbox, Divider, Dropdown, Tooltip, Tabs, Navbar wrapper, Mobile card, Portfolio header, Transaction row (both desktop and mobile), and Wallet header. With these updates, the portfolio page now fully supports the dim theme.
  • Dim theme support has been added to the error pages by introducing new icons specifically designed for use in dim mode. This ensures a consistent visual experience and clarity.
  • The transaction details modal now supports dim theme. This includes updates to the detail wrapper, the info variant of the label component, the address component, and all related utility components within the modal.
  • The validator registration flow has been updated to fetch the current registration fee from the active milestone and display it in the registration UI. The transaction process has been verified to work correctly with this fee included. Additionally, the transaction details for validator registration now show the validator’s locked funds, providing clear visibility of the locked amount involved.
  • Dim theme support has been added to the exchange pages. The updates include the Spinner Loaded component, Card component, the secondary-icon button variant, and the form, review, and status step components related to exchange forms. These changes ensure the exchange pages properly support the dim theme.
  • The contacts page has been updated so that all its components now fully support the dim theme. This includes the header component, input placeholders, mobile table elements, contact list items, and contact buttons.
  • Dim theme support has been added for several components, including radio buttons, input password fields, disabled buttons, side panel, progress bars, and multi-entry item lists. The address selection, import address (except Ledger tabs), and create address side panel have been refactored to fully support it.
  • React Router and React Router DOM dependencies have been updated to major version 7.6.1. This update includes breaking changes such as the removal of useHistory and the deprecation of Prompt for blocking navigation, among other adjustments. Code has been refactored accordingly to accommodate these changes.
  • The dependencies have been updated to the latest major versions, including react-datepicker, i18next, react-toastify, tailwind-merge, locale-currency, browser-fs-access, and @tailwindcss/forms.
  • The ESLint configuration has been fixed to ensure that running ESLint via the local binary works without errors. The config and any related scripts were adjusted so that running node_modules/.bin/eslint src/app/i18n/common/i18n.ts --fix completes successfully. This also restores autofix functionality within IDEs for a smoother development experience.
  • Tests have been added and coverage increased for key application libraries, including markets, internationalization (intl), and profile-related modules. This improves overall test reliability and code quality in those areas.

Next week, we will continue working on finalizing Dim Theme support, improving test coverage, and implementing further improvements to the Validator Registration and Resignation flows.

Mainsail Weekly Report

This week, we continued working on general fixes and made further improvements to the validator contracts. The work completed includes:

  • Renamed statHash to stateRoot.
  • Registered missing logger bindings in the snapshot exporter.
  • Synced validator registration fee to the API database.
  • Added support for snapshot download in the config:publish:custom command.
  • Used fallback wallet for genesis block lookup to fix block responses with the genesis wallet.
  • Removed maxTransactions for the block milestone. Block transactions are now limited by gasUsed and size constraints.
  • Renamed remaining occurrences of height to blockNumber.
  • Updated Rust dependencies.
  • Preserved registrationFee on validator data after resignation to track the returned value.
  • Fixed missing logs by redirecting worker logs to the main process.
  • Removed the amount field from blocks. This field is no longer relevant due to the inability to control whether a transaction is accepted or reverted, or how contract logic handles the received amount.

Next week, we’ll continue reviewing and adding support for legacy transactions to ensure broader client compatibility, based on our internal testnet using Core V3 data.

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.