24th May 2024
6 min read

ARK Development Report - May 24, 2024

Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, we have been finalizing the Send, Receive, and Address Book functions that will be available natively in ARK Connect. The ARK Scan team has continued to work on WebSockets to determine how much performance can be improved with their integration and has prepared a new release with a few fixes and improvements. The ARK Vault team has been finalizing the multisignature server codebase and its integration. Meanwhile, Mainsail has been working on some additions to the public API, making general improvements, and working on the EVM implementation.

Development Summary

Below is a breakdown of total commits and authors by project for development activity over the last week from May 17th through May 24th, 2024.

Project Commits Authors
ARK Connect 25 3
ARK Scan 52 2
ARK Vault 12 3
Mainsail 13 2

Overall, the team has demonstrated consistent productivity and engagement over this period, with a total of 102 commits across all projects.

The number of commits and data for each project will fluctuate every week depending on internal sprints, objectives, and difficulty.

ARK Connect Weekly Progress

ARK Connect has continued working on the ‘Send’, ‘Receive,’ and ‘Address Book’ features that will be part of the upcoming release, along with some general improvements. Here is the work done this week:

  • Focus on the input field after the user selects a suggestion, preventing the display value from showing unless the user clicks outside of the address dropdown input.
  • After saving the form when editing a contact, the user is now redirected to the address book page.
  • Updated the message on the toast alert when editing a contact.
  • Adjusted the use of delegate-named properties in the public API.
  • Contact name is now displayed on approval pages for transfer actions.
  • Fixed the address validation in AddressBook to identify the given address’s network and validate it accordingly.
  • Display the contacts filtered by the wallet’s network on the address book dropdown.
  • Implemented the fee section for the Send page.
  • Improved QR code visibility on the Receive page in dark mode by adding a white border to it.
  • Fixed an issue where pressing the ‘Max’ button could provide negative numbers. Now, a maximum of 8 decimal digits is set, and trailing zeros are removed when clicking it.
  • Display the full balance in a tooltip if the balance is less than 0.01.
  • Display the correct transaction fee on approval pages when using a Ledger device.
  • Added a fix to avoid double scrollbars when the address dropdown is open.
  • The send page now broadcasts the transaction to the network.

Next week, we’ll finalize all pending tasks and bugs reported for the new features and work on preparing a release. After this, we’ll start a new development sprint, which will include adding the ‘Themes’ feature, similar to ARK Vault, and introducing a new blue color scheme.

ARK Scan Weekly Progress

We released a new ARK Scan update (version v2.27.0) this week, with several improvements and fixes for ARK Connect integration. We’ve made it easier to access your address by adding a dropdown link when using ARK Connect.

For the complete release changelog, visit GitHub .

This week, we’ve also focused on implementing WebSockets to enhance performance. Other work includes:

  • Refactoring transactions and wallet page webhooks.
  • Adding webhook management commands for php artisan.
  • Documenting the setup process for WebSockets and Reverb.

Next week, we’ll continue refining the WebSockets implementation and addressing any reported issues.

ARK Vault Weekly Progress

The ARK Vault team has been working hard on the final stretch to get the multisignature server codebase working with Mainsail and implementing it inside ARK Vault. This has taken most of our time over the last two weeks, and we are nearing completion. Apart from that, work done this week included:

  • Upgraded Platform SDK (PSDK) to the latest version in ARK Vault.
  • Upgraded the codebase to work with Node version 20.
  • Fixed a failing ‘send registration’ test.

The multisignature server codebase for Mainsail included this work:

  • Fixing an issue to use the provided bignumber amount properly.
  • Fixing an issue to remove hardcoded zero amounts in transaction storing.
  • Implementing the sending of multisig transactions for ‘Vote’ transactions.

Next week, our aim is to finalize the multisignature implementation for Mainsail and start a new development cycle for ARK Vault that will include general UI improvements across the app.

Mainsail Weekly Progress

The Mainsail team has been working hard on all fronts. We have added a few new endpoints to the API and continued work on the EVM. Specifically, the work done this week includes:

  • Added the /rounds/{round} endpoint that allows querying rounds by round number on the public API.
  • Enabled validator registrations from multisignature wallets.
  • Modified the state to allow the export and import of delta changes between blocks. These changes are used to sync the state between core and transaction-pool processes.
  • Added the skipUnknownAttributes option to the state. This skips attributes that are not registered on the transaction-pool process, as we only need transaction-related attributes. For example, the ActiveValidators list can be skipped.
  • Added additional transaction endpoints to the transaction-pool API:
    • transactions/unconfirmed -> shows paginated unconfirmed transactions.
    • transactions/unconfirmed/{transaction_id} -> returns a specific unconfirmed transaction.
    • transactions/types -> returns registered transaction types.
    • transactions/schemas -> returns registered transaction schemas.
  • Made the transaction ID a mandatory field.
  • Implemented client and server logic for JSON-RPC endpoints on the transaction pool:
    • get_transactions -> returns a list of transactions that can be included in the block. This considers max transactions, block size, and expired transactions.
    • commit -> syncs block, failed transactions, and state delta changes.
    • list_snapshots -> lists local snapshots on the transaction pool.
    • import_snapshot -> the core process determines which snapshot should be restored on the transaction pool.
  • Refactored the EVM database persistence logic to improve performance.
  • Matched the evm.mdb format to the existing LMDB layout. Database and lock files are on the same directory level.

Next week, we’ll focus further on the EVM implementation, specifically on gas and fees for it, as well as work on implementing get_status on the transaction pool and handling communication errors.

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.