Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, we focused on the ARK Connect demo site and began updating the ARK Connect extension to align with the latest changes from Mainsail. The ARK Scan team worked on optimizing loading times and addressing Composer warnings, while improvements to the documentation site included user experience enhancements and the addition of ABI definitions to the PHP Crypto SDK. In ARK Vault, development continued with fixes and improvements driven by recent internal testing and Mainsail updates. Meanwhile, the Mainsail team addressed issues reported by the development team and continued work on legacy support features.
Development Activity Summary (July 4 – July 11, 2025)
Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from July 4, 2025, to July 11, 2025.
Project | Commits | Authors |
---|---|---|
ARK Connect | 22 | 1 |
ARK Scan | 7 | 1 |
ARK SDKs & Docs | 14 | 2 |
ARK Vault | 76 | 4 |
Mainsail | 13 | 2 |
During this period, the team maintained strong productivity and engagement, delivering 132 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 Connect Weekly Report
This week, we focused on the ARK Connect demo site and began updating the ARK Connect extension to incorporate the latest changes from Mainsail. Work completed includes:
-
ARK Connect Demo Site:
- Fixed an issue where the vote modal did not correctly display the currently voted validator, ensuring the voting state is accurately reflected in the UI.
- Adjusted the validators list to display the username when available and fall back to the address otherwise, while also updating the filter logic to search by both username and address.
-
ARK Connect Extension:
- Replaced all instances of “Delegate” with “Validator” across the codebase to reflect updated terminology and ensure consistency with current protocol language.
- Fixed the vote transaction sending logic to ensure the voting flow works correctly, allowing users to successfully broadcast their vote transactions.
- Fixed the logic for checking transaction confirmation status to ensure accurate detection and updates of confirmed transactions.
- Removed the network field from the
contact
object and updated the contact creation and editing pages accordingly. Simplifies the address validation logic for cleaner and more consistent handling. - Adjusted the
useExchangeRate
hook to use the activeprofile
for retrieving exchange rates instead of relying on the global environment object. - Removed the network selection step from the create/import wallet flow and added a “Use Testnet” switch in the dropdown menu for testing purposes. Also refactored the
useActiveNetwork
hook to derive the active network from the profile. - Fixed address truncation across multiple pages to ensure addresses display correctly.
- Fixed the UI to hide the validator username labels when the validator has no username set, so “Vote Validator Name” and “Unvote Validator Name” entries no longer show empty or placeholder text.
- Fixed the recent transactions list to correctly display vote and unvote transactions by falling back to the address when the validator’s username is not set and hiding helper text for unvote transactions.
Next week, we will continue implementing the necessary Mainsail updates in the extension and make further improvements to the demo site.
ARK Scan Weekly Report
This week, we focused on improving loading times and addressing Composer warnings. The work completed includes:
- Optimized performance by improving how “voted for” wallets are handled in transaction tables and how delegates are fetched for missed blocks, reducing redundant queries and enhancing load times.
- Refactored support for the
updateValidator
transaction by displaying the correct method name and showing the BLS public key being set, rather than relying on the raw method signature. - Resolved Composer warnings, updated the Foundation package, and fixed failing tests related to toast notifications to ensure a clean build and consistent test results.
Next week, we’ll address any issues reported by our internal testing team and continue working on further performance optimizations.
ARK SDKs and Documentation Site Weekly Report
This week, we focused on user experience improvements for the documentation site and added ABI definitions to the PHP Crypto SDK. Specifically, the work completed includes:
-
Documentation Site:
- Refactored to support additional Meilisearch indexes, allowing separate Meilisearch instances per documentation set (e.g., SDK and Mainsail) within a single-site setup. This introduces endpoint-based isolation to ensure each instance is scoped to its respective domain.
- Enhanced the search functionality to prioritize and filter results based on the currently selected language (e.g., Python, JavaScript), improving result relevance. The active language is now highlighted in search results for better clarity and usability.
- Updated scraper workflows to use new configuration files, aligning with recent structural changes and improving long-term maintainability.
-
TypeScript Crypto Package:
- Refactored transaction handling to export ABI definitions for all known contracts (e.g., consensus, multipayment, usernames) and dynamically resolve contract method names. This enables the transaction table to display human-readable method names and parameters, eliminating the need for hardcoded signature mappings and improving clarity and maintainability.
Next week, we’ll continue refining the SDKs based on feedback from the development team and begin documenting the upcoming Mainsail public devnet.
ARK Vault Weekly Report
This week, we worked on improvements and fixes based on recent internal testing and updates from Mainsail. Highlights include:
- Refactored the transaction table to display raw method signatures (e.g.,
0x9f5523eb
) for unknown contract methods instead of defaulting to “Contract Deployment,” improving transparency and debugging accuracy. - Fixed the “Load More” button behavior in the transaction table. Previously, it would reset the view after a few seconds. Now, loaded transactions persist without disruption.
- Enhanced validator registration: If an address is already a validator without a
validatorPublicKey
, the flow now usesupdateValidator
instead ofregisterValidator
, bypassing fund locking and displaying a relevant message to support legacy delegates. - Resolved a bug in “Single View” mode where deleting an address would clear the entire profile. Now, the app correctly falls back to another imported address.
- Added deeplink support for voting, allowing links to trigger the voting flow using a validator’s name, public key, or legacy delegate name.
- Enabled deeplink support for message signing. The deep link now triggers the signing panel directly from the dashboard, aligning with the new side panel layout.
- Refactored the dim theme selection: it now appears as a dropdown on mobile while retaining button groups on larger screens. Added unit tests to cover these changes.
- Fixed padding issues in the contacts page header for consistent alignment with other views.
- Refactored the address select dropdown component to clarify whether changes apply globally or only to specific forms like transfer and signing, taking into account wallet balance display.
- Fixed an error when importing a Ledger wallet and immediately sending a transaction. The wallet now syncs with the network correctly upon import, avoiding milestone configuration errors.
- Adjusted spacing and button layout in the Ledger side panel to better align with design specifications.
- Fixed alignment issues in mobile views by removing excess margin in transaction review and approval pages.
- Standardized label usage across transaction flow pages by replacing all “Category” labels with “Method” in the Action section.
- Fixed mobile layout of the transaction table by truncating the “failed” label to prevent overflow. Added tests for this behavior.
- Improved mobile readability by adjusting font sizes: import buttons, success steps, recipient cards (14px), and sign message sidepanel close button (16px).
- Updated the empty state UI on the Contacts page for mobile to match design specifications.
- Revised the verify message form content and styling to match the latest designs. Updated success screen titles and corresponding test snapshots. (Note: header and padding updates to follow separately.)
- Enhanced the portfolio header to display the full address on desktop instead of truncating, improving visibility and clarity.
- Fixed and re-enabled E2E tests for the
profile
domain to improve test coverage and reliability.
Next week, we’ll continue addressing feedback from internal testing and refining the UI based on recent tester remarks.
Mainsail Weekly Report
This week, we focused on resolving issues reported by the development team and continued work on legacy support. Key updates include:
- Fixed an issue where the username attribute was missing under certain conditions.
- Updated legacy second signatures to use raw ECDSA values (
r
,s
,v
). - Removed the obsolete
timestamp
field from transactions. - Cleaned up the
api-development
package by removing unused and broken endpoints.
Next week, we’ll conduct a final round of internal testing and begin preparations for the first Public Mainsail Devnet.
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.