Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. Another busy week is behind us! This week, we focused on expanding EVM support for ARK Scan and addressed any issues reported from the previous week. The ARK SDKs team worked hard on the Platform SDK, adding more EVM features. The ARK Vault team continued progressing with EVM integrations inside the app, while the Mainsail team added new EVM API endpoints and made initial progress in importing states from Core v3.
Development Summary
Below is a breakdown of total commits and authors by project for development activity over the last week from November 29th, 2024 through December 6th, 2024.
Project | Commits | Authors |
---|---|---|
ARK Connect | 0 | 0 |
ARK Scan | 77 | 2 |
ARK SDKs & Docs | 75 | 3 |
ARK Vault | 35 | 2 |
Mainsail | 35 | 2 |
Overall, the team has demonstrated consistent productivity and engagement over this period, with a total of 222 commits across all projects.
The number of commits and data for each project will fluctuate every week depending on internal sprints, objectives, and difficulty.
ARK Scan Weekly Report
This week, we continued working on implementing changes required for EVM support and fixing reported issues. The work completed this week includes:
- Added a new ‘Gas Tracker’ block on the homepage for a quick view of the current gas for transactions.
- Fixed the alignment of the ‘Copy Code’ button text and icon in the ‘View More’ section on mobile, centering them as intended.
- A formatted HTML tooltip for the gas tracker was added to the mobile view.
- Refactored and moved hardcoded theme colors.
- Refactored the home mobile gas tracker slider to display properly.
- Moved contract hashes to a configuration dependent on the network.
- Refactored statistics updates for transaction types to accommodate the new data format.
- Handling for new transaction types in exports was added.
- Implemented handling for the ERC20 transfer contract method.
- Added support for username registrations and resignations, displaying the username in transaction details.
- Fixed an issue on the recent votes tab where all transaction types were shown, and validator information was missing. It now correctly displays voting and validator details.
Next week, we will continue improving EVM support and address any required design changes to accurately display the necessary information for the new data.
ARK SDKs & Docs Weekly Report
This week, we continued working on the Platform SDK, added more documentation to the docs site, and removed obsolete code from the PHP package. Specifically:
- Added new documentation for the Python crypto SDK, focusing on EVM support.
- Removed deprecated assertions from the PHP crypto package. Platform SDK:
- Implemented validator registrations and resignations for the Mainsail network using
EvmCall
, deprecated the existingdelegateRegistration
anddelegateResignation
methods, and added unit tests for both types. - Updated the consensus contract address with the new one.
- Added a new feature to use
EvmCall
for vote and unvote transactions. - Implemented validator-related methods to enable EVM validator registration/resignation for use in ARK Vault.
- Added feature flags for Mainsail validator transactions.
- Introduced a new feature to expose the transaction success state.
- Updated the address URL segment for Mainsail.
- Added validator methods for transaction classes.
Next week, we aim to continue improving the Platform SDK, add new documentation for an upcoming documentation page, and make additional enhancements to the SDKs.
ARK Vault Weekly Report
This week, we’ve continued developing Mainsail EVM support in the app and addressing issues as they come up. Here’s a summary of what we’ve worked on:
- Implemented a feature to handle EVM transactions, including transfers, voting, unvoting, and validator registration/resignation.
- Fixed an issue with transaction rows to ensure contract labels display correctly.
- Updated contract recipient links to point to the ARK Scan explorer.
- Resolved a problem where text wasn’t wrapping properly in the network notification dropdown.
- Added functionality to highlight failed transactions in the transactions table.
- Included contract labels in the transaction details modal.
Next week, we’ll focus on expanding EVM support further and begin tackling some design updates needed for the transition to EVM.
Mainsail Weekly Report
This week, we continued improving Mainsail and EVM integration while adding new features. We also began work on the initial setup for importing state from V3. Here’s a detailed summary of the work completed:
-
Implemented new EVM API endpoints (Note: Mainsail consensus doesn’t create uncle blocks, so all responses are equivalent to Ethereum blocks without uncle blocks):
The following endpoints were added:
-
eth_getUncleCountByBlockHash
-
eth_getUncleCountByBlockNumber
-
eth_getUncleByBlockHashAndIndex
-
eth_getUncleByBlockNumberAndIndex
-
web3_sha3
-
net_version
-
eth_getBlockTransactionCountByHash
-
eth_getBlockTransactionCountByNumber
-
-
Optimized Mainsail database structure:
- The database was split to separate
proofs
,blockHeaders
,blockTransactionIds
, andtransaction
data. This layout better supports EVM API features like fetching transactions and block headers. Performance improvements were achieved by avoiding the need to deserialize entire commits during requests.
- The database was split to separate
-
Synced and restored usernames:
- Usernames registered in the
usernames
contract are now synced and available in the API database. The username attribute is now included in responses from the/wallets
endpoint.
- Usernames registered in the
-
Initial V3 data import support:
- Two new packages were introduced:
-
snapshot-legacy-exporter
: Connects to the Core V3 database and prepares an export file. -
snapshot-legacy-importer
: Reads the exported file to:- Import wallets and seed EVM accounts with balances and nonces.
- Register validator usernames in the
usernames
contract. - Register validators and votes in the
consensus
contract.
-
- Two new packages were introduced:
Next week, we plan to focus on creating an internal demo showcasing ETH-compatible transactions using RLP serialization. Additionally, we will work on adding new JSON-RPC methods to the EVM API and expanding the V3 import functionality to include second signatures and multi-signatures.
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.