13th Dec 2024
6 min read

ARK Development Report - December 13, 2024

Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. The ARK Scan team has made further progress on EVM support and integration. Additionally, we’ve been extending EVM support in the Platform SDK and other SDKs. The ARK Vault team has been focused on implementing Mainsail EVM support, while the Mainsail team has worked on enhancing Core V3 data import functionality and adding RLP support.

Development Summary

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

Project Commits Authors
ARK Connect 0 0
ARK Scan 89 2
ARK SDKs & Docs 67 4
ARK Vault 120 4
Mainsail 12 2

Overall, the team has demonstrated consistent productivity and engagement over this period, with a total of 288 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 Scan Weekly Report

This week, our primary focus remained on advancing Mainsail EVM support and integration, with significant progress made on various tasks:

  • Tests & Fixes:
    • Fixed block table tests & transaction factory encoding.
    • Resolved an issue where transaction controller tests were not displayed.
    • Fixed and updated:
      • Transactions controller tests
      • Block view model tests
      • Webhook controller tests
      • Cache fees command tests
      • Cache validator tests
      • DTO tests
      • Webhook jobs test
      • Failing model tests
      • Transactions view model tests
  • Library Updates:
    • Moved selected methods to the php-crypto library.
  • New Tests Added:
    • Transaction historical fee aggregates.
    • Home transactions.
    • Statistics components.
    • Transaction validators header stats.
    • Recent votes.
  • UI Enhancements:
    • Added contract deployment method as a type in the user interface.
  • Miscellaneous Fixes:
    • Fixed data stream issue when creating multiple records through factories.
    • Export blocks now use the address instead of the public key.
    • Renamed the recipient_id column in the transaction repository.
    • Resolved a 500 error caused by failed token transfers.
    • Output username for username registration transactions, showing the username in the “action” section.
    • Updated the failed status icon to display properly for failed transactions.
  • Performance Improvements:
    • Refactored the filter query for transaction types to load much quicker.

Looking ahead, we will continue enhancing EVM integration, refining tests, and addressing any newly reported issues related to the integration.

ARK SDKs and Docs Weekly Report

This week, our primary efforts focused on advancing the Platform SDK along with updates to supporting libraries and docs site:

  • Platform SDK:
    • Refactored to use an empty string ("") for transfer transactions due to API inconsistencies.
    • Removed VendorField (memo) logic as it is not part of EVM specifications.
    • Updated to use the method name hash as the type for non-predefined transactions.
    • Adjusted voting methods for the Mainsail network to align with its naming conventions (e.g., vote swaps now appear as votes).
    • Unsupported transaction types were removed from the signed transaction class.
    • Fixed fee unit display in signed and confirmed transaction DTOs.
  • Documentation site:
    • Added new documentation for:
      • PHP argument decoder.
      • Java Crypto SDK, including recent EVM-related additions.
  • PHP Crypto Library:
    • Refactored the argument decoder:
      • Made methods static.
      • Added support for unit conversions (wei, gwei, ark).
      • Improved helper methods and resolved style violations.
      • Added a string-decoding method.
    • Removed deprecated and obsolete code.
  • Python Crypto Library:
    • Updated transaction builders and added ABI encoding/decoding.
    • Removed deprecated functionality.
    • Improved serializers/deserializers.
    • Made extensive test adjustments.

Next week, we will continue making the necessary changes and enhancements for EVM integration and further improve project documentation.

ARK Vault Weekly Report

This week our primary focus was on enhancing EVM support and addressing issues identified during internal testing:

  • Validator Enhancements:
    • Worked on EVM validator registration/resignation methods and refactored to use “validator” terminology instead of “delegate.”
    • The validator public key is now displayed instead of the name, as a username is no longer required for validator registration.
    • Updated the vote domain to use “validator” instead of “delegate.”
    • Adjusted the “Validator Name” column title to “Validator” on the votes page.
    • Added validator address display in the wallet voting section.
    • Added the ability to show the validator address in the vote flow.
  • EVM-Specific Changes:
    • Removed the memo field across the app, as it is not part of EVM.
    • Transactions can now support up to 18 decimals for networks configured as Mainsail EVM, instead of being capped at 8 decimals.
  • UI Improvements:
    • Failed transaction status is now displayed in the “Confirmed Details” modal.
    • Transactions that are not of predefined types now display their method names.
  • Refactoring Components:
    • Refactored components using emotion:
      • Common reusable components starting with letters A to I.
      • Wallet, Vote, Form, Input (text, textarea, radio), and Navigation components.
      • Removed emotion or twin.macro dependencies, including css(), tw(), and styled() functions.
      • Introduced a new media query in the Tailwind config for devices that support not all and (hover: none).
      • Replaced small, non-exported components with simple HTML tags.
    • Removed dozens of unused components.
  • Transaction Fixes:
    • Refactored contract deployments to be treated as contract transactions.
    • Fixed signed transaction type lookup, ensuring proper transaction signing.
    • Addressed an issue in transfer transaction rows:
      • Added validation to check if a transaction is not mistakenly identified as a contract.
      • Correctly displays the “To (Contact) [Address]” information.

We’ll continue to improve EVM integration and implement the required UI changes.

Mainsail Weekly Report

This week we continued working on V3 import functionality and adding RLP support. Here’s a summary of the progress:

  • Legacy Second Signatures:
    • Added partial support for legacy second signatures.
    • Wallets with secondSignature are imported, and the second signature is stored on the EVM account.
  • Legacy Multi-Signatures:
    • Added partial support for legacy multi-signatures.
  • Database Service Fix:
    • Resolved an issue with the database service to use the correct height when fetching the last commit.
  • Transaction Serialization and Deserialization:
    • Updated the transaction serializer and deserializer to use RLP (Recursive-Length Prefix).
    • Transactions are now compatible with Ethereum EIP-1559, with the following differences:
      • access_list: Always set to an empty array ([]) since REVM does not support this field.
      • Fee Strategy: Mainsail does not use the same gas fee strategy as Ethereum (GasFee and PriorityFee).
        • maxPriorityFeePerGas is always 0.
        • Mainsail uses max_fee_per_gas as gasPrice.
        • Transaction fee is calculated as max_fee_per_gas * gasUsed and added to the generator balance instead of being burned.

Next week, we will focus on adding new JSON_RPC methods to the EVM API and updating the TX tools to simplify testing and incorporate support for the latest 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.