14th Mar 2025
6 min read

ARK Development Report - March 14, 2025

Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, we advanced the Platform SDK with the release of a new alpha version and worked on the TypeScript Crypto package to ensure compatibility with Mainsail EVM. At the same time, the ARK Vault team focused on enhancing Mainsail EVM with additional improvements and integrations while addressing reports and bugs from our internal testing team. Additionally, the Mainsail team has been working on fee improvements and updating packages.

Development Activity Summary (March 7 – March 14, 2025)

Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from March 7, 2025, to March 14, 2025.

Project Commits Authors
ARK Connect 0 0
ARK Scan 0 0
ARK SDKs & Docs 26 3
ARK Vault 33 4
Mainsail 11 2

During this period, the team maintained strong productivity and engagement, delivering 70 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 SDKs and Docs Weekly Update

This week, we’ve made progress on the Platform SDK and released a new alpha version. Additionally, we’ve made updates to the TypeScript Crypto package. The work completed includes:

  • TypeScript Crypto:
    • Added an abstract transaction by implementing a transaction class.
    • Implemented a serializer and removed the redundant getBytes method, as it duplicated the functionality of serialize.
    • Implemented a deserializer and added the Transfer type for testing specific elements.
    • Implemented generic transaction builders, including a placeholder for Vote/Unvote types (requiring AbiEncoder) and fixtures for all transaction types.
    • Implemented ABI encoder and decoder with support for consensus, multipayment, and username contracts.
    • Enabled builds for certain dependencies when using pnpm v10+, as they are disabled by default in that version.
    • Added transaction builders and types for all remaining transaction types supported by Mainsail.
    • Implemented a Slot class, adding slots and corresponding tests.
    • Refactored to use bigint for multipayment amounts and string for fees, enabling compatibility with both bignumber and bigint values.
    • Implemented message sign and verify with ECDSA signatures.
    • Refactored to replace the bcrypto secp256k1 package with a more lightweight alternative, focusing solely on secp256k1 to reduce unnecessary dependencies.
  • Platform SDK:
    • Refactored the ledger service to accept a transport instance as a parameter, reducing bundle size in Mainsail and preventing deployment failures in arkvault while maintaining SDK compatibility.
    • Fixed an issue in the PSDK Ledger server to ensure it scans five addresses instead of just the first, aligning with the default page size.

Looking ahead to next week, we’ll continue prioritizing improvements to our documentation site alongside updating packages to ensure they’re in sync with the latest changes in Mainsail EVM.

ARK Vault Weekly Report

This week, we focused on enhancing Mainsail EVM with additional improvements and integrations, as well as addressing reports and bugs from the internal testing group. The work completed includes:

  • Fixed the side panel width issue and resolved truncation problems on mobile screens.
  • Corrected selected addresses in the side panel to properly reflect the UI after address import and addressed the sidebar retaining the old state.
  • Updated the design of the votes page to align with the recent design changes.
  • Adjusted the import options order to follow the vault-defined array instead of the network config.
  • Improved the import flow to remove added wallets when the user navigates back to the enter mnemonic step, closes the sidebar early, and handles invalid password entry before returning to the mnemonic screen.
  • Restored the Ethereum ledger app dependency and resolved related build issues.
  • Fixed the welcome images by adjusting the title width to prevent spacing issues and updating images for each slide across both dark and light modes on desktop and mobile views.
  • Enhanced the notifications dropdown with a dashed border for dark mode rows, modified padding and margins to match designs, and updated snapshots for tests.
  • Implemented scanning and importing of Ledger addresses, ensuring proper listing in the import flow, storage in the vault, and visibility after import.
  • Overhauled the contact page design to improve layout and user experience.
  • Corrected the vote block on the Portfolio header to update and display the voting state correctly, preventing errors where a validator was shown without vote transactions.
  • Fixed an error during Ledger address import from the side panel when the Ledger app was not connected by handling pending scan errors related to device state changes.
  • Resolved the iOS side panel click issue by switching the mouse action to pointerdown, preventing the side panels from closing when used on iOS devices.
  • Addressed missing action buttons on mobile screens by changing h-screen to h-dvh, which accounts for dynamic viewport height in mobile browsers.
  • Fixed the AddressesSidePanel focus issue by directing focus from the search input to the address rows upon opening, preventing the mobile keyboard from being triggered.
  • Updated the Ledger import flow UI to improve the user experience and align it with the latest designs.
  • Moved the fee input to the review step for transfer transactions and adjusted the “Send All” button to deduct 5 * 21,000 before setting the amount.
  • Increased the width for transaction pages by adding a new value in the Tailwind config (max-width: 43rem), and updated max width for various steps in Transfer, Vote, Sign/Verify message, and Username registration transactions from 576px to 688px.
  • Adjusted the hide/view icon color for password inputs in light mode to gray-700.
  • Fixed the import flow to prevent early form submission when the Enter key is pressed.
  • Capitalized the ‘Confirmation Time’ text in both the simple/advanced fee sections and the review steps for transaction forms.
  • Updated the alias for Ledger-imported addresses to prefix with “Ledger #” instead of “Address #”, and implemented a separate alias counter for Ledger addresses from non-Ledger addresses.
  • Refined the addressing section in contract transactions to remove the “To” row in the details modal.
  • Resolved UI issues in the vote form by aligning the border color in dark mode and adjusting the border radius for the sender section.
  • Fixed the issue where newly imported Ledger addresses were not selected by default when the profile already had available addresses.

Next week, we will focus on addressing further fixes and enhancements driven by feedback from our internal testing team while also introducing new features to improve compatibility with Mainsail EVM.

Mainsail Weekly Report

This week, we have been working on fee improvements as well as updating packages. Work done this week included:

  • Improved eth_estimateGas and gas error handling. The action calculates the gas required for a transaction to be accepted.
  • Support for a genesis block with a non-zero height. A height offset is added to support snapshot imports and chain the genesis block to the last imported block.
  • Updated all package dependencies to the latest version.

Next week, we’ll focus on renaming fields to match the Ethereum naming convention, updating ESLint and TypeScript to the latest version, and moving the LMDB database into EVM to support atomic commits for block and state changes.

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.