Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week on the SDK front, the focus was on enhancing the new Vault Crypto package used by ARK Vault, along with refactoring parts of the PHP and TypeScript packages for better consistency and performance. In ARK Vault, efforts centered on fixing the multipayment bug, improving and re-enabling a range of tests, and upgrading to the latest version of Vault Crypto. Meanwhile, the Mainsail team continued working on legacy support from Core v3 and made solid progress on expanding test coverage.
Development Activity Summary (May 2 – May 9, 2025)
Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from May 2, 2025, to May 9, 2025.
Project | Commits | Authors |
---|---|---|
ARK Connect | 0 | 0 |
ARK Scan | 0 | 0 |
ARK SDKs & Docs | 9 | 2 |
ARK Vault | 24 | 4 |
Mainsail | 18 | 2 |
During this period, the team maintained strong productivity and engagement, delivering 51 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 Report
This week, our primary focus was on enhancing the new Vault Crypto package used by ARK Vault. We also carried out several refactors across the PHP and TypeScript packages. The key updates include:
-
Vault Crypto Package:
- Exposed the BLS class and added BLS key support to enable proper validation, resolving issues caused by previously missing checks.
- Removed the redundant
secp256k1
package from arkvault-crypto and replaced it with the@noble/curves
implementation. Added tests to ensure all functionality remains consistent. - Updated the PBKDF2 implementation to prevent exceptions in the Node.js environment used by ARK Vault, ensuring stable performance.
- Fixed the “invalid private key” error by ensuring
Uint8Array
orBuffer
is passed to@noble/curves
instead ofArrayBuffer
.
-
PHP Client Package:
- Reorganized API endpoint definitions and connection handling logic to align with the Python and TypeScript SDK structures. The SDK now clearly defines endpoints and separates connection concerns from the main client logic.
-
TypeScript Crypto Package:
- Replaced
Buffer.from
withtoUtf8Bytes
fromethers
to resolve aTypeError: invalid BytesLike value
encountered during testing.
- Replaced
Next week, we will continue focusing on the Vault Crypto package, aiming to further enhance and integrate essential features required by ARK Vault.
ARK Vault Weekly Report
This week, the focus was on resolving the multipayment bug, improving and enabling various tests, and updating to the latest Vault Crypto package. Work completed includes:
- Fixed the issue preventing users from adding recipients in multipayment transactions by adjusting properties in
network.ts
to correctly reflect the network configuration—specifically updatingmaxRecipients
, which was previously set to0
. - Enabled BLS key validation by integrating the necessary checks into the transaction flow. To verify, send a validator transaction and confirm the BLS key is properly validated during submission.
- Refactored the onboarding hint tooltip to appear only when more than one wallet is imported in single address mode, and updated the tooltip text to better reflect that context.
- Updated username and validator public key validations to use the hosts configuration via
hostSelector
instead of hard-coded URLs. This enables dynamic public API selection and supports request cancellation to avoid false positives. - Enabled and fixed tests across multiple domains and components:
- Application components/hooks tests: Ensured core components and hooks are properly tested.
- Transactions domain A–O tests: Fixed tests related to error handling and exchange logic.
- Dashboard domain tests: Ensured complete test coverage for dashboard features.
- Portfolio domain tests: Enabled and fixed tests within the portfolio domain.
- Contact domain tests: Enabled and resolved issues with contact-related tests.
- Fixed a bug where the BLS key was never accepted by updating the
arkvault-crypto
package to version0.0.7
. ThepublicKeyExists
method was refactored to pass validation when a404
is returned from the public keys endpoint, indicating that the public key is available for use.
Next week we’ll continue work on Vault Crypto package integration to make ARK Vault even more lean. In addition, we plan to implement further Side Panel updates based on recent feedback.
Mainsail Weekly Report
This week, our focus has been on legacy support from Core v3, along with improvements to our test coverage. Key highlights include:
- Implemented default configuration path for storing legacy snapshot files.
- The configuration generator now saves the snapshot file to this path.
- The snapshot importer reads from it during Mainsail boot.
- Added an end-to-end (E2E) test to verify import from a legacy snapshot.
- Expanded E2E tests to include:
- Transaction sending
- API response validation
- Added support for the
activeValidators
milestone change. - Updated EVM Rust dependencies.
- Enabled support for specifying a BLS private key or passphrase for validators in the
validators.json
file.
Next week, we plan to upgrade inversify
to the latest version and focus on optimizing transaction inclusion within blocks.
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.