Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, we concentrated on refining our SDK and documentation, ensuring TypeScript package compatibility with Mainsail EVM while outlining the necessary steps for Python support. Simultaneously, we continued improving ARK Vault based on internal feedback, introducing a side panel feature that lets users toggle between Single and Multiple views for a smoother experience. Meanwhile, Mainsail saw further improvements as we addressed issues from internal testing and rolled out updated internal versions with these refinements.
Development Activity Summary (March 21 – March 28, 2025)
Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from March 21, 2025, to March 28, 2025.
Project | Commits | Authors |
---|---|---|
ARK Connect | 0 | 0 |
ARK Scan | 0 | 0 |
ARK SDKs & Docs | 47 | 3 |
ARK Vault | 31 | 4 |
Mainsail | 67 | 2 |
During this period, the team maintained strong productivity and engagement, delivering 145 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 SDKs and Docs Weekly Update
This week, our focus has primarily been on TypeScript packages to ensure compatibility with Mainsail EVM. Additionally, we have outlined the necessary work for Python packages. Below is a summary of the work completed this week:
-
ARK Documentation Site
- Updated the TypeScript client docs to align method parameters with the changes in the implementation.
-
TypeScript Client Package
- Implemented a connection class using the ARK client class.
- Added a GitHub test workflow, PR template, and project initialization setup.
- Implemented a GitHub workflow to enforce code formatting with Linter and Prettier.
- Added support for all Mainsail endpoints for the client.
- Fixed response return types to correctly return JSON data instead of the raw response, ensuring accurate type definitions.
-
TypeScript Crypto Package
- Added a type exports entry point for improved type management.
- Added the client to the
sdk-tester
package for further testing. - Refactored serialized buffer handling to correctly use
toString('binary')
for return values. - Fixed crypto validator public key handling by removing the
"0x"
prefix, improving compatibility with other SDKs, and resolving issues ints-crypto
.
Next week, we will continue working on package updates, with a focus on Python and any additional changes required in PSDK.
ARK Vault Weekly Report
This week, we continued polishing Vault based on internal testing feedback and introduced a new feature for the side panel, allowing users to switch between Single and Multiple views for an improved user experience. Work completed this week includes:
- A new toggle for the address management side panel was added, which appears only when multiple addresses are added to a profile. The “Select All” button is hidden in “Single View” mode. View states are stored in local storage per profile, ensuring selections persist when switching profiles. By default, “Multiple View” is selected, and a radio input appears in
AddressRow
for “Single View.” - Prevented the “Continue” button from being enabled when the form is in an invalid state, ensuring the import form cannot be submitted with incorrect data.
- Refactored the
Fiat Balance
andBalance
sections in the portfolio header to align with the design when multiple wallets are selected. - Adjusted the parent’s z-index to 30 to counteract Tippy’s z-index of 9999, preventing tooltip overlap without affecting other tooltips.
- Updated the header description font-size to 14px on mobile and hid import flow icons on mobile for better responsiveness.
- Modified the
use-profile-synchronizer
hook to handle status updates separately for each profile. - Adjusted the height of the “Create Profile” page for desktop views to ensure the header is visible. Added bottom padding to match designs. Set the form width to
688px
for screens wider than768px
, adding a custom value in Tailwind config. - Set the minimum height of the “Create Profile” page to
100vh - navbar height
and removed bottom padding for screens wider than640px
to prevent layout issues. - Updated import subtitles for clarity and fixed the title, which was incorrectly displaying as “Import Ledger.”
- Updated the transaction history modal by adjusting the
InputDate
icon color to match designs. Export modal styles were also updated to align with the new designs, and snapshots were refreshed to reflect these updates. - Support for a
variant
prop was added in dropdown render helpers. Updated styles for theoptions
variant in the dropdownWrapper
andItem
components. Ensured the double-check icon is displayed for selected options in this variant. - Fixed an issue where switching between single and multiple addresses caused the portfolio to enter a mixed state, leading to incorrect addresses in the transaction table.
- Ensured voting with a specific address syncs properly after Vault enters a certain state.
- Updated the layout and styling for the custom peers and multisign sections in settings.
- Reset the imported address state whenever the side panel is closed to ensure a clean state upon reopening.
- Moved preference storage for the side panel to the PSDK. Encapsulated logic in a hook and introduced an enum for handling single and multiple view options.
- Refactored
AddressViewType
into an enum, ensuring the selected view type persists when importing or creating new addresses.
Next week, we will continue implementing fixes based on further testing and feedback. ARK Vault is now in a strong position for Mainsail EVM compatibility.
Mainsail Weekly Report
This week, we focused on implementing additional fixes based on findings from internal testing and released new internal versions incorporating these improvements. Key updates completed this week include:
- Upgraded Node.js version: Increased the Node.js version used in GitHub workflows to 22.x, ensuring better performance, security, and compatibility with the latest dependencies.
- Released
Mainsail 0.0.1-emv.15
and0.0.1-emv.16
, incorporating various stability and feature enhancements. - Resolved an issue where wallet data was not syncing correctly with the API database, improving consistency and reliability.
- Moved the ledger containing blocks and transactions from a custom LMDB database to the EVM database. This transition enables atomic commits, ensuring that state changes, blocks, and transactions are stored together in a more efficient and consistent manner.
- Renamed Mainsail block fields to align more closely with the Ethereum Virtual Machine (EVM) structure, making it easier to integrate with existing Ethereum-based tooling.
Next week, we will continue refining field names to match Ethereum’s official naming conventions, ensuring seamless interoperability. Additionally, we plan to upgrade REVM to the latest version to benefit from performance improvements, bug fixes, and new features.
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.