18th Apr 2025
7 min read

ARK Development Report - April 18, 2025

Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, the ARK Scan team focused on Foundation package fixes and resolving number display issues, while updates were made across the documentation site, Platform SDK, and Python and TypeScript packages. ARK Vault continued addressing internal testing feedback, resolving reported issues, advancing Ledger hardware wallet integration, and refining UI elements. Meanwhile, the Mainsail team made progress on snapshot support and EVM schema rename compatibility.

Development Activity Summary (April 11 – April 18, 2025)

Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from April 11, 2025, to April 18, 2025.

Project Commits Authors
ARK Connect 0 0
ARK Scan 7 2
ARK SDKs & Docs 33 3
ARK Vault 45 4
Mainsail 23 2

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

Work done this week included Foundation package fixes and updates to number display issues. To be precise:

  • Updated the Foundation package to fix build issues encountered with the recent Node.js version.
  • Fixed a 500 error caused by improper pagination handling. Reviewed and updated all other instances of pagination across the app to ensure consistent and error-free behavior.
  • Fixed the issue where multipayments were not being counted in stats by ensuring the proxy contract address is used when handling multipayment transactions.
  • Refactored the supply display logic by adding a rounding method to ensure no decimals are shown. This prevents potential formatting issues if the returned supply value includes decimals in the future.
  • Updated the fee display logic to remove decimals from Gwei values. This ensures consistency with the Vault implementation and improves readability by avoiding excessively long numbers.
  • Prepared PRs for the next Mainsail version that affects database column naming.

Next week we’ll fix any other reported issues from the internal team.

ARK SDKs and Documentation Weekly Report

This week, we made several updates across our documentation site, Platform SDK, and Python and TypeScript packages. Here’s a summary of the work completed:

  • ARK Documentation Site:

    • Standardized “new instance” examples for consistency.
    • Removed convert to JSON examples from all Transaction Builders, except for Abstract in py-crypto, where it remains relevant.
    • Fixed toArray examples in typescript-crypto to return an object instead of an array.
    • Corrected toDict examples in py-crypto to return dictionaries rather than JSON strings.
    • Updated the transfer builder in ts-crypto to handle BigNumber values correctly.
    • Ensured builder examples in py-crypto return the builder itself, not the serialized object.
    • Reordered Transaction Builder examples across SDKs for consistency and clarity.
  • Platform SDK Package:

    • Fixed an issue with the multipayment amount field that caused errors when sending multipayment transactions.
    • Refactored to export the config manager, enabling access to milestone values from the API. This allows accurate validation of gas price and gas limit using network configuration.
    • Improved syncByProfile to sync wallets for specified networks, enhancing network-specific wallet sync behavior.
    • Added support for second signatures on the Mainsail network with a new isSecondSignature method.
    • Updated the syncByProfile signature and added an auto-refresh mechanism on the Portfolio page. Balances and transaction tables now refresh automatically every 8 seconds.
  • Python Crypto Package:

    • Refactored decode_payload and get_signature by prefixing them with an underscore (_) to indicate they are intended for internal use only, following Python’s convention for pseudo-private methods.
    • Prepared PRs for incoming Mainsail attribute changes.
  • PHP Crypto Package:

    • Prepared PRs for incoming Mainsail attribute changes.
  • TypeScript Crypto Package:

    • Prepared PRs for incoming Mainsail attribute changes.
  • TypeScript Client Package:

    • Added explicit TypeScript types for all API endpoint responses. This improves developer experience by providing:
      • Better type safety
      • Improved autocompletion
      • Clearer method return values
      • Reduced risk of runtime errors due to incorrect assumptions

We’ll continue enhancing Mainsail EVM compatibility across all client and crypto packages, as well as the Platform SDK. Documentation updates will also continue in line with these changes.

ARK Vault Weekly Report

We’ve continued focusing on internal testing feedback and resolved reported issues. Progress also continued on Ledger hardware wallet integration and UI improvements. Here’s what was completed:

  • Refactored address and message services to use typescript-crypto for signing and verifying messages, improving consistency and security.
  • A placeholder in the side panel is added when no results are found during address search.
  • Removed a random ‘´’ character that was incorrectly rendered under navbar buttons.
  • Implemented a refresh of the transactions table to trigger an API call when sorting is changed.
  • Added a second signature icon to the Mainsail interface.
  • Fixed Ledger import tests by updating LedgerImportStep and LedgerConnectionStep for Mainsail compatibility.
  • Updated the transactions table to show “To Contract” for username registration transactions.
  • Added missing periods to the contact section for better grammar and consistency.
  • Added a shadow to the side panel when scrollable to indicate more content is available.
  • Set an upper limit for gas price and gas limit based on the active milestone to prevent transaction errors.
  • Replaced the EVM builder for transfer transactions with typescript-crypto for better compatibility.
  • Updated transaction handling to use typescript-crypto for all remaining types, including validator registration/resignation, vote, and username transactions.
  • Improved username validation by enforcing local character checks before network requests. Requests are now aborted if input changes.
  • Added proper handling for aborted username validation requests to avoid false errors or incorrect “previously registered” flags.
  • Added support for displaying contract creation transactions in the transactions table.
  • Wallet balances in multiview now refresh every n seconds to reflect external incoming transactions.
  • Portfolio page now auto-refreshes every 8 seconds for updated balances and transaction data.
  • Fixed display issues in pending transactions, correcting decimal amounts and showing the sender address.
  • Refactored DTOs to match Mainsail, removing unsupported types like IPFS and trimming unused properties.
  • Implemented Ledger HW transaction signing with typescript-crypto.
  • Removed deprecated crypto code from lib/crypto and lib/mainsail/crypto.
  • Removed MultiSignature logic from the libs and refactored arkvault to bypass these checks with minimal changes.
  • Fixed back button behavior on the Verify page to correctly return to /dashboard.
  • Updated the import address encryption tooltip to show accurate availability messages based on the import method.

Next week, we’ll continue resolving reported issues and focus on further design unification across more Vault features.

Mainsail Weekly Report

This week, progress was made on snapshot support, EVM schema rename compatibility, and streamlining the codebase. Specifically, the following tasks were completed:

  • Upgraded the EVM database to use the latest heed (v22).
  • Added verification of legacy wallet attributes to the block processor (if present).
  • Improved the V3 snapshot generator and added initial e2e tests.
  • Renamed validation schemas in the EVM API.
  • Renamed “local testnet” to “devnet” to align with the new naming convention.
  • Removed obsolete environment variables.

Next week, we’ll focus on finalizing full pnpm v10 support and implementing V3 BLS key registration support.

Missed our recent Mainsail blog post on the latest advancements? Have a read here.

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.