28th Mar 2025
6 min read

ARK Development Report - March 28, 2025

Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, we concentrated on refining our SDK and documentation, ensuring TypeScript package compatibility with Mainsail EVM while outlining the necessary steps for Python support. Simultaneously, we continued improving ARK Vault based on internal feedback, introducing a side panel feature that lets users toggle between Single and Multiple views for a smoother experience. Meanwhile, Mainsail saw further improvements as we addressed issues from internal testing and rolled out updated internal versions with these refinements.

Development Activity Summary (March 21 – March 28, 2025)

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

Project Commits Authors
ARK Connect 0 0
ARK Scan 0 0
ARK SDKs & Docs 47 3
ARK Vault 31 4
Mainsail 67 2

During this period, the team maintained strong productivity and engagement, delivering 145 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, our focus has primarily been on TypeScript packages to ensure compatibility with Mainsail EVM. Additionally, we have outlined the necessary work for Python packages. Below is a summary of the work completed this week:

  • ARK Documentation Site
    • Updated the TypeScript client docs to align method parameters with the changes in the implementation.
  • TypeScript Client Package
    • Implemented a connection class using the ARK client class.
    • Added a GitHub test workflow, PR template, and project initialization setup.
    • Implemented a GitHub workflow to enforce code formatting with Linter and Prettier.
    • Added support for all Mainsail endpoints for the client.
    • Fixed response return types to correctly return JSON data instead of the raw response, ensuring accurate type definitions.
  • TypeScript Crypto Package
    • Added a type exports entry point for improved type management.
    • Added the client to the sdk-tester package for further testing.
    • Refactored serialized buffer handling to correctly use toString('binary') for return values.
    • Fixed crypto validator public key handling by removing the "0x" prefix, improving compatibility with other SDKs, and resolving issues in ts-crypto.

Next week, we will continue working on package updates, with a focus on Python and any additional changes required in PSDK.

ARK Vault Weekly Report

This week, we continued polishing Vault based on internal testing feedback and introduced a new feature for the side panel, allowing users to switch between Single and Multiple views for an improved user experience. Work completed this week includes:

  • A new toggle for the address management side panel was added, which appears only when multiple addresses are added to a profile. The “Select All” button is hidden in “Single View” mode. View states are stored in local storage per profile, ensuring selections persist when switching profiles. By default, “Multiple View” is selected, and a radio input appears in AddressRow for “Single View.”
  • Prevented the “Continue” button from being enabled when the form is in an invalid state, ensuring the import form cannot be submitted with incorrect data.
  • Refactored the Fiat Balance and Balance sections in the portfolio header to align with the design when multiple wallets are selected.
  • Adjusted the parent’s z-index to 30 to counteract Tippy’s z-index of 9999, preventing tooltip overlap without affecting other tooltips.
  • Updated the header description font-size to 14px on mobile and hid import flow icons on mobile for better responsiveness.
  • Modified the use-profile-synchronizer hook to handle status updates separately for each profile.
  • Adjusted the height of the “Create Profile” page for desktop views to ensure the header is visible. Added bottom padding to match designs. Set the form width to 688px for screens wider than 768px, adding a custom value in Tailwind config.
  • Set the minimum height of the “Create Profile” page to 100vh - navbar height and removed bottom padding for screens wider than 640px to prevent layout issues.
  • Updated import subtitles for clarity and fixed the title, which was incorrectly displaying as “Import Ledger.”
  • Updated the transaction history modal by adjusting the InputDate icon color to match designs. Export modal styles were also updated to align with the new designs, and snapshots were refreshed to reflect these updates.
  • Support for a variant prop was added in dropdown render helpers. Updated styles for the options variant in the dropdown Wrapper and Item components. Ensured the double-check icon is displayed for selected options in this variant.
  • Fixed an issue where switching between single and multiple addresses caused the portfolio to enter a mixed state, leading to incorrect addresses in the transaction table.
  • Ensured voting with a specific address syncs properly after Vault enters a certain state.
  • Updated the layout and styling for the custom peers and multisign sections in settings.
  • Reset the imported address state whenever the side panel is closed to ensure a clean state upon reopening.
  • Moved preference storage for the side panel to the PSDK. Encapsulated logic in a hook and introduced an enum for handling single and multiple view options.
  • Refactored AddressViewType into an enum, ensuring the selected view type persists when importing or creating new addresses.

Next week, we will continue implementing fixes based on further testing and feedback. ARK Vault is now in a strong position for Mainsail EVM compatibility.

Mainsail Weekly Report

This week, we focused on implementing additional fixes based on findings from internal testing and released new internal versions incorporating these improvements. Key updates completed this week include:

  • Upgraded Node.js version: Increased the Node.js version used in GitHub workflows to 22.x, ensuring better performance, security, and compatibility with the latest dependencies.
  • Released Mainsail 0.0.1-emv.15 and 0.0.1-emv.16, incorporating various stability and feature enhancements.
  • Resolved an issue where wallet data was not syncing correctly with the API database, improving consistency and reliability.
  • Moved the ledger containing blocks and transactions from a custom LMDB database to the EVM database. This transition enables atomic commits, ensuring that state changes, blocks, and transactions are stored together in a more efficient and consistent manner.
  • Renamed Mainsail block fields to align more closely with the Ethereum Virtual Machine (EVM) structure, making it easier to integrate with existing Ethereum-based tooling.

Next week, we will continue refining field names to match Ethereum’s official naming conventions, ensuring seamless interoperability. Additionally, we plan to upgrade REVM to the latest version to benefit from performance improvements, bug fixes, and new features.

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.