Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, we updated the Mainsail contract transfers script across the Python, TypeScript, and PHP clients to remove reliance on the deprecated txHash
field, ensuring stable, error-free data handling using supported alternatives. In ARK Vault, work continued on expanding test coverage and refining the UI/UX based on user feedback and reported issues. Meanwhile, the Mainsail team made further progress on test coverage and improved snapshot restore performance.
Development Activity Summary (May 16 – May 23, 2025)
Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from May 16, 2025, to May 23, 2025.
Project | Commits | Authors |
---|---|---|
ARK Connect | 0 | 0 |
ARK Scan | 8 | 1 |
ARK SDKs & Docs | 15 | 1 |
ARK Vault | 38 | 4 |
Mainsail | 17 | 2 |
During this period, the team maintained strong productivity and engagement, delivering 78 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
- Fixed the issue where the Gas Limit field was not being populated in transaction details. It now correctly displays the gas limit value as expected.
- Implemented support for exporting BLS Registration transactions alongside other types. Ensured correct handling of export details, including:
- Fee display
- Zero transaction amount
- Proper transaction type naming as “BLS Registration”
- A second signature icon was added to indicate when a wallet has a second passphrase based on data from the core snapshot. This visual cue now appears alongside address details where applicable.
- Updated transaction list sorting to include block position in addition to timestamp. This ensures transactions within the same block are ordered correctly, for example, a vote will now appear before the corresponding unvote if both are in the same block.
ARK SDKs and Documentation Site
This week, we fixed the Mainsail contract transfers script by removing reliance on txHash
, which is not supported by the API. The script now uses supported fields to fetch and process contract transfer data without errors. This was fixed in all three client packages - Python, TypeScript, and PHP.
We have also adjusted the EthCall
implementation to allow for the caller to define the full body to allow for a variety of RPC methods to be called with it.
Next week, we’ll work on resolving any reported issues and continue improving data consistency and reliability across all package implementations.
ARK Vault Weekly Report
This week we continued working on test coverage and improving the UI/UX based on feedback and reported issues. Work completed includes:
- Refactored the HTTP client into a standalone class, removing inheritance from
AbstractRequest
. TheAbstractRequest
class was removed from the SDK entirely. Both the HTTP client and cache modules were moved tolib/mainsail
for improved organization and Mainsail-specific focus. - Cleaned up the SDK structure by removing
lib/sdk
and relocating all active services and contract files intolib/mainsail
, streamlining the codebase and aligning it with the Mainsail implementation. - Enabled and fixed tests for the settings domain, including coverage for creating and displaying all three custom server endpoints to ensure proper functionality.
- Restored BIP39 compatibility checks to validate mnemonics during address import, maintaining a smooth and secure user experience.
- Enabled and fixed tests for the transactions hooks domain, ensuring comprehensive coverage of transaction-related logic.
- Simplified the Fee service by removing all references to “static” and “dynamic” fee types across the app. This included refactoring
lib/mainsail/fee.service.ts
and updating related hooks and components for a unified fee handling approach. - Updated the Ledger wallet import flow to show accurate on-chain balances for each address, resolving an issue where all addresses incorrectly appeared with a zero balance.
- Dropped unused crypto services from
lib/mainsail/crypto
, including support for WIF, encrypted WIF, and private key-based wallet functionality. This cleanup reduces complexity and aligns with current authentication methods. - Updated CI workflows to run on Node.js 22, the latest LTS version. Configured the build process to run on both Node.js 20 and 22 to ensure compatibility and catch potential issues early.
- Removed
profile.coins()
and all associated coin services, eliminating the now-unnecessary multi-coin abstraction. IoC architecture, including containers, globals, and bindings, was also removed. Most unused SDK services were cleaned up to simplify the codebase. - Improved accessibility by enabling keyboard tab navigation for dropdowns. This included adding a focus manager, implementing
onKeyDown
handlers for the transaction type filter and validator page dropdowns, and disabling label focus on the transaction type filter dropdown. - Fixed an issue where signing transactions failed when using an encrypted password. Users can now sign transactions successfully with encrypted authentication.
- Prevented event bubbling on the “copy address” button in the side panel. Pressing Enter while focused now only triggers the copy action without affecting the row’s selection state, improving keyboard interaction.
- Fixed the address panel mode selector on extra small screens to match the intended mobile layout and improve usability on smaller devices.
- Added unit tests for dropdown tabbing behavior to ensure accessibility features are properly validated and to restore full test coverage.
- Enabled and fixed tests for the transaction pages domain, ensuring proper test coverage and validation of transaction-related UI and logic.
- Tweaked the default node status icon to reflect the combined status of public, transaction, and EVM APIs. Fixed a bug with host status storage in the configuration object and added unit tests to ensure correct behavior.
Next week, we’ll continue resolving reported issues, increasing test coverage, and making further improvements to the Side Panel.
Mainsail Weekly Report
This week, we continued enhancing test coverage, improved snapshot restore performance, and made several other updates. Specifically:
- Set up Codecov to report coverage across TypeScript, Rust, and Solidity codebases. Added a codecov.yml file to exclude non-production code.
- Reduced block time in end-to-end tests to speed up CI workflows. Introduced logic to generate networks for both end-to-end and functional tests.
- Fixed caching and permissions issues in GitHub workflows to improve performance.
- Increased test coverage for Solidity smart contracts.
- Enhanced snapshot restore performance by batching wallet storage operations.
Next week, we plan to work on transaction broadcast fixes and continue improving the Consensus contract based on feedback from internal testing.
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.