Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, the ARK Scan team has been working on expanding Mainsail support. Updates to the documentation site included improved API documentation and various other enhancements. Meanwhile, the ARK Vault team continued developing the multi-address view and additional Mainsail-related updates. The Mainsail team has been working on JSON-RPC API improvements and legacy support for Core v3.
Weekly Development Summary
Below is a breakdown of total commits and contributing authors by project, highlighting development activity from January 31st, 2025, through February 7th, 2025.
Project | Commits | Authors |
---|---|---|
ARK Connect | 0 | 0 |
ARK Scan | 30 | 2 |
ARK SDKs & Docs | 12 | 2 |
ARK Vault | 288 | 4 |
Mainsail | 12 | 3 |
During this period, the team maintained strong productivity and engagement, delivering a total of 342 commits across all projects.
It’s important to note that weekly commit counts and project-specific data may vary depending on the focus of internal sprints, evolving objectives, and the complexity of tasks undertaken.
ARK Scan Weekly Report
This week, we continued working on additional support for Mainsail and addressing related issues. The work completed includes:
- On the transaction details page, update the ‘To’ address to read ‘Interacted with’ when interacting with a contract for better clarity.
- On the recent votes, fixed sorting to ensure known wallet names are included.
- On the block detail page, added a button or link (depending on the breakpoint) to navigate to the next or previous block.
- Renamed the Confirmations heading to Status to reflect both transaction status and confirmation count.
- Improved ARK Scan to show usernames (when available) instead of just public addresses.
- Updated the repository to stop looking for
asset
properties, as they no longer exist. - Fixed intermittent issues with validators tests.
- Removed unnecessary caching of
CryptoDataCache
, as the data is never used. - Cleaned up code by removing unused commented-out sections for better readability.
Next week, we aim to continue working on additional Mainsail support and implement any necessary changes and fixes based on internal testing.
ARK SDKs & Docs Weekly Report
This week, we worked on PSDK and the documentation site. The completed work includes:
-
Platform SDK:
- Fixed an issue where an invalid cursor (
cursor: undefined
) was used when fetching transactions, causing the API to return an “Unprocessable content” response.
- Fixed an issue where an invalid cursor (
-
Documentation Site:
- Clarified that the public API documentation covers client SDKs.
- Improved main page navigation by ensuring the generic page opens in the same tab and preventing child nodes from triggering the parent
onclick
event. - Added
.prettierignore
to exclude example files for crypto and client, preventing unwanted newlines and indentation issues withinCodeGroup
tags. - Merged separate example pages for each language into a single combined page, as all SDKs follow a similar setup. This prevents duplication of guiding texts and makes maintenance easier.
- Improved PHP Crypto examples to use
formatUnits
andparseUnits
when working with amounts.
Next week, we will add any necessary new features and fixes based on implementation requirements from the front-facing applications.
ARK Vault Weekly Report
This week, we continued working on the updated flow for the multi-address view coming with Mainsail, fixing issues from the previous week, and adding Mainsail support. The work completed includes:
- Clicking the ‘Send’ button from the portfolio page now prompts an address selection for the sender when coming from a multi-address portfolio.
- Fixed a semantic issue when an address is not voting for any validator.
- Moved Dashboard vs. Empty Dashboard rendering checks to the top level (a new Portfolio page) to prevent sub-hooks and components from accessing deleted addresses, reducing error-prone references.
- Fixed a race condition between the dashboard page and profile synchronizer that was affecting the default address selection.
- Added logic to mark newly created or imported addresses as selected.
- Persisted selection on profile export/import. If a profile has no pre-selected addresses on import, all are marked as selected.
- Improved syncing of the selected state between profile configuration and the address side panel’s internal state.
- Deleting the only selected address now results in automatically selecting the next available address.
-
wallet.currency
is now used to correctly format and display multiple address currencies in the address header. - Changed the import dropdown to be the only selection option instead of an input field.
- Added proper handling for From/To addresses in the multi-address view.
- Enabled the address options dropdown when multiple addresses are selected and refactored send validator registration logic to support address selection.
- Cleaned up settings options that are no longer relevant.
- Ensured the correct node peer status check is performed.
- Added multi-address support for mobile skeleton loading.
- Refactored desktop transactions table skeleton loaders.
- Added a new check in the
usePortfolio
hook to prevent unnecessary updates tosetConfiguration
, which caused issues when no address was imported in a profile. - Improved sender address handling in the sender transfer form.
- Refactored the
get-default-alias
hook to assign names to newly imported addresses regardless of the network. - Fixed synchronization on the portfolio page for the latest transactions when switching addresses with the same selection size.
- Set the correct dark background color on transaction rows in the mobile view.
- Adjusted transaction row addresses to occupy the available space.
- Refactored
TransactionTotalLabel
to support a variant without label styles. - Enabled the ‘Sign Message’ option in the multi-address view.
- Set the correct width for transaction row addresses on larger screens.
- Restored the ‘Transaction History,’ ‘Address Name,’ and ‘Receive Funds’ modals and their functionality when a single address is selected.
- Adjusted the transaction export option to support multiple addresses.
- Ensured usernames are properly displayed in the transaction details modal.
Next week, we will continue working on Mainsail support and updating the UI based on the latest designs. We will also address any reported issues from internal testing.
Mainsail Weekly Report
This week, we focused on enhancing JSON-API RPC features and providing legacy support for Core v3. The work completed includes:
- Added support for batched JSON-RPC requests on the EVM API, enabling compatibility with Ethers.js.
- Implemented
eth_getPrice
to support MetaMask. - Enhanced transaction and block resources and adjusted JSON-RPC schemas for better support with Ethers.js and Viem.js.
- Restored basic functional tests for
evm-call
transactions. - Added support for legacy cold wallets, along with sync and restore functionality for the API database.
- Added support for pnpm version 10.
- Set up examples demonstrating how to retrieve basic network data, send transactions, deploy and interact with contracts using Ethers.js, Viem.js, and Web3.js.
- Enabled basic transaction sending using MetaMask.
Next week we will add support for fetching data from older blocks for methods with default parameters to ensure full MetaMask compatibility. We will also create a MetaMask example for deploying and interacting with contracts.
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.