Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. ARK Scan has been focused on developing Mainsail EVM support. The ARK SDK team has primarily worked on updates and new features for the Platform SDK to support EVM. The ARK Vault team has released a new version with additional fixes and has also begun work on Mainsail EVM support and related features. The Mainsail team has continued updating contracts, introducing new features, and implementing general improvements and fixes for Mainsail.
Below is a breakdown of total commits and authors by project for development activity over the last week from November 15th through November 22nd, 2024.
Overall, the team has demonstrated consistent productivity and engagement over this period, with a total of 160 commits across all projects.
The number of commits and data for each project will fluctuate every week depending on internal sprints, objectives, and difficulty.
This week, we focused on enhancing Mainsail EVM features and implementing design updates. Here’s the progress we made:
- Developed a new feature to cache and display gas tracker data where applicable.
- Resolved a “division by zero” error on the Top Accounts and Validators page, which prevented the page from being displayed.
- Fixed an issue where validatorRank wasn’t applied to wallet attributes, causing no validators to appear on the validators page.
- Addressed a bug where validator status always showed as “resigned”; it now displays the correct status.
- Corrected payload formatting for unknown contracts.
- Fixed missing amounts in transaction details, ensuring they were displayed properly.
- Upgraded to the latest php-crypto library, which now supports AbiDecode, improving payload handling.
- Updated the “More Details” section in transaction details to use real data instead of placeholders.
- Highlighted failed transactions in overviews, displaying their transaction ID in red with a cross icon.
- A visual indicator (icon and text) for contract recipients in transaction details was added.
- Ensured known contract methods interaction isdisplayed correctly as action in transaction details and method in overviews.
- Refactored transaction details to properly show output contract addresses for contract interactions.
- Made contract recipients clickable, linking directly to the contract address.
Next week, we’ll continue refining Mainsail EVM support and making design adjustments to accommodate new features and required changes.
This week, we focused on improving the Platform SDK (PSDK) and adding new features. Here’s what we accomplished:
- Updated the PSDK to point to the latest Mainsail EVM releases.
- Adjusted the number of decimals for ARK Mainnet and Devnet from 1e8 (8 decimals) to 1e18 (18 decimals).
- Added new constants for the different multipliers and their decimals.
- Created and updated formatUnits and parseUnits methods based on the PHP versions, along with unit tests to support these changes.
- Disabled outdated Mainsail transaction packages due to binding errors with the container. These methods now throw exceptions and will be implemented once Mainsail properly supports them.
- Removed IPFS and Second Signature transaction types and handling for them throughout the PSDK.
- Disabled the musig transaction type for Mainsail EVM.
- Enabled Mainsail tests in the CI workflow and fixed imports in Mainsail unit tests.
- Refactored the Mainsail transaction fee calculation to address issues with its functionality.
Next week, we will continue working on PSDK improvements and features needed for Mainsail EVM. We will also focus on updates to the new documentation site and its content.
This week, we released ARK Vault v1.19.0, featuring fixes and improvements based on user reports. The release includes:
- After creating a profile, you are now automatically redirected to the dashboard.
- Accordion preferences are stored, and accordions open by default for better accessibility.
- Enhanced hover styles for dropdown items and transaction type filters.
- Fixed issues with signing multipayments from musig addresses.
- Added hints for multipayments in the transaction summary modal.
- Adjusted transaction detail font sizes for better readability.
- Resolved flaky transaction tests and corrected transaction block ID issues.
- Disabled transaction type filters when no transactions are available.
The latest version is live at app.arkvault.io . For full details, see the Changelog .
We have started work on a new branch to support Mainsail EVM and implement the required changes. Progress this week includes:
- Enabled the Mainsail network and set it as the default.
- Removed IPFS and Second Signature transaction types from the app.
- Refactored wallet controls and Ledger tabs to be disabled temporarily when the network is Mainsail.
- Renamed all references from “Delegate(s)” to “Validator(s)” when the network is Mainsail.
- Added BLS public key support for Validator registrations.
Next week, we will address reported issues and continue enhancing support and making changes for EVM.
We continued working on contract improvements, addressing reported issues, and implementing general fixes for Mainsail along with new features. Work completed this week included:
- Contracts updatesPrevented validator resignation below the minimal value.
Added support to import votes and validators in the contract to enable data import from V3.
Introduced a new Usernames contract.
Replaced DirectTransfer with a MultiPayment contract containing a single pay method for multiple payments.
Integrated OpenZeppelin’s OwnableUpgradeable contract to include the onlyOwner modifier.
- General Mainsail updatesImproved nonce exception messages to indicate that the signature for the wallet might be invalid when the nonce is 0. This happens because the ECDSA public key restoration points to a random wallet when the original signature is modified or invalid.
Fixed API synchronization by restoring the state table.
Resolved GitHub workflow issues for contracts.
Added /receipts/{id} endpoint to the public API.
Updated the heed database library and used a fork with cursor support to improve performance.
Enriched transaction response with receipt data, including fields: success, deployedContractAddress, and gasUsed.
We will continue improving the API based on developer feedback and begin working on the initial proof of concept (PoC) for importing data from Core V3 of the development network.
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 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.