Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, we updated the Mainsail contract transfers script across the Python, TypeScript, and PHP clients to remove reliance on the deprecated txHash field, ensuring stable, error-free data handling using supported alternatives. In ARK Vault, work continued on expanding test coverage and refining the UI/UX based on user feedback and reported issues. Meanwhile, the Mainsail team made further progress on test coverage and improved snapshot restore performance. Development Activity Summary (May 16 – May 23, 2025) Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from May 16, 2025, to May 23, 2025.
During this period, the team maintained strong productivity and engagement, delivering 78 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 Scan Weekly Report Fixed the issue where the Gas Limit field was not being populated in transaction details. It now correctly displays the gas limit value as expected.Implemented support for exporting BLS Registration transactions alongside other types. Ensured correct handling of export details, including:Fee displayZero transaction amountProper transaction type naming as “BLS Registration”A second signature icon was added to indicate when a wallet has a second passphrase based on data from the core snapshot. This visual cue now appears alongside address details where applicable.Updated transaction list sorting to include block position in addition to timestamp. This ensures transactions within the same block are ordered correctly, for example, a vote will now appear before the corresponding unvote if both are in the same block. ARK SDKs and Documentation Site This week, we fixed the Mainsail contract transfers script by removing reliance on txHash, which is not supported by the API. The script now uses supported fields to fetch and process contract transfer data without errors. This was fixed in all three client packages - Python, TypeScript, and PHP. We have also adjusted the EthCall implementation to allow for the caller to define the full body to allow for a variety of RPC methods to be called with it. Next week, we’ll work on resolving any reported issues and continue improving data consistency and reliability across all package implementations. ARK Vault Weekly Report This week we continued working on test coverage and improving the UI/UX based on feedback and reported issues. Work completed includes: Refactored the HTTP client into a standalone class, removing inheritance from AbstractRequest. The AbstractRequest class was removed from the SDK entirely. Both the HTTP client and cache modules were moved to lib/mainsail for improved organization and Mainsail-specific focus.Cleaned up the SDK structure by removing lib/sdk and relocating all active services and contract files into lib/mainsail, streamlining the codebase and aligning it with the Mainsail implementation.Enabled and fixed tests for the settings domain, including coverage for creating and displaying all three custom server endpoints to ensure proper functionality.Restored BIP39 compatibility checks to validate mnemonics during address import, maintaining a smooth and secure user experience.Enabled and fixed tests for the transactions hooks domain, ensuring comprehensive coverage of transaction-related logic.Simplified the Fee service by removing all references to “static” and “dynamic” fee types across the app. This included refactoring lib/mainsail/fee.service.ts and updating related hooks and components for a unified fee handling approach.Updated the Ledger wallet import flow to show accurate on-chain balances for each address, resolving an issue where all addresses incorrectly appeared with a zero balance.Dropped unused crypto services from lib/mainsail/crypto, including support for WIF, encrypted WIF, and private key-based wallet functionality. This cleanup reduces complexity and aligns with current authentication methods.Updated CI workflows to run on Node.js 22, the latest LTS version. Configured the build process to run on both Node.js 20 and 22 to ensure compatibility and catch potential issues early.Removed profile.coins() and all associated coin services, eliminating the now-unnecessary multi-coin abstraction. IoC architecture, including containers, globals, and bindings, was also removed. Most unused SDK services were cleaned up to simplify the codebase.Improved accessibility by enabling keyboard tab navigation for dropdowns. This included adding a focus manager, implementing onKeyDown handlers for the transaction type filter and validator page dropdowns, and disabling label focus on the transaction type filter dropdown.Fixed an issue where signing transactions failed when using an encrypted password. Users can now sign transactions successfully with encrypted authentication.Prevented event bubbling on the “copy address” button in the side panel. Pressing Enter while focused now only triggers the copy action without affecting the row’s selection state, improving keyboard interaction.Fixed the address panel mode selector on extra small screens to match the intended mobile layout and improve usability on smaller devices.Added unit tests for dropdown tabbing behavior to ensure accessibility features are properly validated and to restore full test coverage.Enabled and fixed tests for the transaction pages domain, ensuring proper test coverage and validation of transaction-related UI and logic.Tweaked the default node status icon to reflect the combined status of public, transaction, and EVM APIs. Fixed a bug with host status storage in the configuration object and added unit tests to ensure correct behavior. Next week, we’ll continue resolving reported issues, increasing test coverage, and making further improvements to the Side Panel. Mainsail Weekly Report This week, we continued enhancing test coverage, improved snapshot restore performance, and made several other updates. Specifically: Set up Codecov to report coverage across TypeScript, Rust, and Solidity codebases. Added a codecov.yml file to exclude non-production code.Reduced block time in end-to-end tests to speed up CI workflows. Introduced logic to generate networks for both end-to-end and functional tests.Fixed caching and permissions issues in GitHub workflows to improve performance.Increased test coverage for Solidity smart contracts.Enhanced snapshot restore performance by batching wallet storage operations. Next week, we plan to work on transaction broadcast fixes and continue improving the Consensus contract based on feedback from internal testing. 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: Mainsail - https://github.com/ArkEcosystem/mainsail/issuesARK Connect (Extension) - https://github.com/ArdentHQ/arkconnect-extension/issuesARK Connect (Demo) - https://github.com/ArdentHQ/arkconnect-demo/issuesARK Scan - https://github.com/ArdentHQ/arkscan/issuesARK Vault - https://github.com/ArdentHQ/arkvault/issues Follow on Twitter (X) Follow us on X (https://x.com/ArkEcosystem) 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.
Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, the ARK Scan team implemented support for the new BLS public key registration transaction type, while the ARK Vault team continued refining the Side Panel by simplifying its architecture, enabling additional tests, and applying a series of targeted fixes. Over on the Mainsail side, the team focused on a range of improvements, updated dependencies, and made updates on Core v3 in preparation for the upcoming Mainsail upgrade. Development Activity Summary (May 9 – May 16, 2025) Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from May 9, 2025, to May 16, 2025.
During this period, the team maintained strong productivity and engagement, delivering 63 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 Scan Weekly Report This week, we implemented support for the new BLS public key registration transaction type in Core v3. This allows existing delegates to register their BLS keys ahead of the Mainsail migration, ensuring their keys are included in the snapshot and enabling them to forge as validators on the Mainsail network at launch. ARK Scan has been updated to recognize and display this new transaction type appropriately. Next week, we’ll continue testing and begin implementing any additional features required for Mainsail. ARK Vault Weekly Report This week, we focused on further improving the Side Panel by simplifying its architecture, enabling new tests, and addressing various fixes: Decoupled the Wallet from the Coin abstraction to simplify the architecture, as multi-coin support is no longer required for Mainsail. This involved:Removing the wallet.coin() method and instead using the profile’s active network to determine network-specific behavior.Dropping the Coin interface and related IoC containers.Replacing complex SDK inheritance with straightforward, modular service classes for clearer and more maintainable logic.Fixed the issue where outgoing and incoming transaction filters were not applied when selecting the corresponding tab, specifically in scenarios where the user has more than one wallet. Now, transactions are correctly filtered based on direction regardless of the number of wallets.Cleaned up the network domain by moving the NetworkIcon component to app/components and removing the unused network domain module along with its associated tests.Implemented debouncing in the ServerFormModal component for API server input validations, introducing a 500ms delay before triggering validation to improve performance and user experience.Removed an initial set of unused files identified after recent refactors, helping to clean up the codebase without affecting any functionality. Additional files will be removed in future SDK cleanup phases.Added UsernameCircledCheckMark to the icon set and integrated it into the WalletIcons component. The username icon now appears in single view whenever a wallet has a username registered on-chain.Improved accessibility for the wallet import flow by refactoring the Option component in MethodStep into a button element, allowing for better focus management and custom focus state styling.Removed the following unused dependencies from the codebase to reduce bloat and improve maintainability: create-xpub, crypto-js, get-random-values, hdkey, multiformats, react-linkify, react-range, rollup-plugin-polyfill-node.Fixed the issue where importing a profile with a password would fail due to an error in profile.validator.ts. The validation logic now checks if missing properties are due to encrypted data and, if so, throws a PasswordRequired error instead of a generic validation failure, allowing for proper handling of encrypted profile imports.Refactored the Side Panel component to improve UX/UI and support new props: title, subtitle, titleIcon, hasSteps, totalSteps, and activeStep. Updated the component to align with the new designs and applied these improvements to the “Import address”, “Create address”, and “Address management” flows.Enabled and fixed the following test suites to ensure full coverage and functionality:Transactions domain P–S tests,Wallet, router, and util domain tests,Message and network domain tests,Transactions domain T–Z tests,Profile domain tests,Vote domain tests. Next week, we’ll continue enhancing test coverage, refining the Side Panel, and resolving any reported issues. Mainsail Weekly Report This week, we focused on various improvements and updated several dependencies. Specifically: Upgraded inversify to the latest version.A CodeQL workflow for semantic code analysis was added.Enabled snapshot compression.Enhanced transaction inclusion logic:Transactions are now optimistically included in a block if their gas limit exceeds the remaining gas in the block.If the block runs out of gas, the last transaction is reverted. We also worked on Core v3 in preparation for the Mainsail upgrade: Added support for the BlsPublicKeyRegistration transaction, allowing delegates to register new BLS12-381 public keys on-chain for future use.Prepared and released Core v3.10.0-rc.0 for the public devnet to begin testing the new features. Next week, we will focus on generating test coverage reports and writing unit tests for the Mainsail upgrade. 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: Mainsail - https://github.com/ArkEcosystem/mainsail/issuesARK Connect (Extension) - https://github.com/ArdentHQ/arkconnect-extension/issuesARK Connect (Demo) - https://github.com/ArdentHQ/arkconnect-demo/issuesARK Scan - https://github.com/ArdentHQ/arkscan/issuesARK Vault - https://github.com/ArdentHQ/arkvault/issues Follow on Twitter (X) Follow us on X (https://x.com/ArkEcosystem) 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.
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.
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 or Buffer is passed to @noble/curves instead of ArrayBuffer.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 with toUtf8Bytes from ethers to resolve a TypeError: invalid BytesLike value encountered during testing. 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 updating maxRecipients, which was previously set to 0.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 version 0.0.7. The publicKeyExists method was refactored to pass validation when a 404 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 sendingAPI response validationAdded 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: Mainsail - https://github.com/ArkEcosystem/mainsail/issuesARK Connect (Extension) - https://github.com/ArdentHQ/arkconnect-extension/issuesARK Connect (Demo) - https://github.com/ArdentHQ/arkconnect-demo/issuesARK Scan - https://github.com/ArdentHQ/arkscan/issuesARK Vault - https://github.com/ArdentHQ/arkvault/issues Follow on Twitter (X) Follow us on X (https://x.com/ArkEcosystem) 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. $ARK
Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, the ARK Scan team focused on resolving reported Mainsail compatibility issues. At the same time, progress continued on the TypeScript client and the introduction of Vault Crypto—a lighter, purpose-built SDK tailored for ARK Vault. The ARK Vault team pushed forward with Mainsail EVM integration and began replacing the existing PSDK package with the newly introduced Vault Crypto. Meanwhile, the Mainsail team concentrated on general improvements and bug fixes. Development Activity Summary (April 25 – May 2, 2025) Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from April 25, 2025, to May 2, 2025.
During this period, the team maintained strong productivity and engagement, delivering 88 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 Scan Weekly Report This week, we focused on resolving reported Mainsail compatibility issues. The work completed includes: Corrected missed or incorrect block height values to ensure accurate chronological ordering and consistent block data across multiple days.Updated transaction fee handling to support new decimal formats, addressing issues where total and average fees used an incorrect number of decimals.Added support for incoming multipayments, ensuring they are properly recognized and displayed alongside other incoming transactions for each address.Adjusted the application to work with the breaking changes in database columns and API responses for the newly released Mainsail version. Next week, our focus will shift to addressing any additional compatibility issues or bugs reported by the team. ARK SDKs and Docs Weekly Report This week, we made progress on the TypeScript client and introduced a new SDK - Vault Crypto. As we began integrating the Platform SDK (PSDK) into ARK Vault, we ran into compatibility issues with some of the cryptographic libraries when building with Vite, the tool used by ARK Vault. To address this, we developed Vault Crypto as a standalone package to isolate and manage these dependencies. This allows us to build these cryptographic components through Webpack, ensuring they work in a browser environment. Work done this week includes: TypeScript Client Package:Updated ethCall to accept a single PayloadData object instead of an array. This change resolves API issues caused by nested parameters.Added contracts endpoint to the API, enabling contract-related requests directly from the client.Vault Crypto Package:Implemented cryptographic methods** using modern libraries and testing tools:Replaced micro-bip39 with @scure/bip39.Switched from crypto-js to @noble/hashes/pbkdf2 for PBKDF2 operations.All adapted tests now pass using Jest.Exported classes and types, fully replacing @ardenthq/sdk-cryptography with arkvault-crypto. Verified functionality remains consistent, especially around profile encryption.Removed the @ardenthq/sdk-cryptography dependency entirely.Added a Webpack config to ensure browser-compatible builds that run successfully in a web environment.Implemented BLS key verification.. Most updates to the Platform, Python, PHP, and TypeScript SDKs are now in place. Next week, we’ll focus on resolving reported issues and continuing development on arkvault-crypto to ensure full integration within ARK Vault. Additionally, we’ll be expanding content on the documentation site. ARK Vault Weekly Report This week, we continued working on the Mainsail EVM integration and began integrating the new, leaner Vault Crypto package to replace the existing PSDK package. Work completed includes: Moved away from external PSDK dependencies by integrating them directly into ARK Vault, streamlining the solution for Mainsail and EVM networks, and removing unnecessary multi-coin complexity.Replaced all instances of @ardenthq/sdk-cryptography with the arkvault-crypto package.Set the single address view as the default display mode for the addresses side panel.Refactored the DateTime class from lib/intl to integrate the timezone plugin from dayjs, enabling the display of transaction timestamps in the user’s local timezone.Updated hosts in networks/mainsail.devnet and networks/mainsail.mainnet to adjust for transaction sending.Fixed the “Sign Message” button hover state by moving the class names applied to the div wrapper into the button’s class name container within the Clipboard button variant.Fixed transaction fetching parameters for both the dashboard page and transaction export, ensuring accurate data retrieval.Restored the validation for minimum and maximum gas limits and gas prices.Fixed the issue with multipayment transactions failing due to insufficient gas limits by making sure it increases with every added recipient.Made adjustments to Vault for compatibility with the next Mainsail release, including updates to transaction API attributes to align with the new version.Refactored the custom servers table and added a custom server form to support three endpoints, enhancing the server management interface.Integrated typescript-client by replacing the custom Request implementation across all Mainsail coin API calls, including fees, transactions, and EVM calls.Moved maximum length validation for usernames to the custom validation rules section, ensuring that usernames longer than 20 characters are correctly flagged and not treated as false positives.Implemented state reset for side panel consumers after the component is unmounted, ensuring that the state is cleared following the close transition.Renamed all instances of “delegate(s)” to “validator(s)” across the lib packages and React components. This includes renaming delegate.service to validator.service, updating related types, methods, interfaces, constants, API endpoints (e.g., /delegates to /validators), and refactoring component names and logic to align with the new terminology, along with minor type adjustments to prevent TypeScript errors. Next week we’ll keep working on making Vault Crypto package integration changes and updates as well as other Mainsail EVM related improvements as well as UI updates. Mainsail Weekly Report This week, we focused on general improvements and bug fixes. Highlights include: Enabled the EVM API by default.Configured snapshot writing to the config directory during new network generation.Updated Docker configuration to support the latest release.Fixed CI workflows for external contributors.Added end-to-end tests for transactions and the Public API. Next week, we’ll be working on V3 BLS key registration in ARK Core and improving test coverage. 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: Mainsail - https://github.com/ArkEcosystem/mainsail/issuesARK Connect (Extension) - https://github.com/ArdentHQ/arkconnect-extension/issuesARK Connect (Demo) - https://github.com/ArdentHQ/arkconnect-demo/issuesARK Scan - https://github.com/ArdentHQ/arkscan/issuesARK Vault - https://github.com/ArdentHQ/arkvault/issues Follow on Twitter (X) Follow us on X (https://x.com/ArkEcosystem) 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. $ARK
Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, across the ecosystem, the ARK Vault team focused on resolving issues surfaced during internal testing while also tidying up the codebase for improved maintainability. Meanwhile, significant attention went into updating the documentation site to reflect recent changes, along with enhancements to our PHP, Python, and TypeScript packages—introducing new features and aligning them with the latest Mainsail EVM updates. On the Mainsail front, work continued on strengthening legacy import support from Core, cleaning up legacy code, and rolling out various general improvements. Development Activity Summary (April 18 – April 25, 2025) Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from April 18, 2025, to April 25, 2025.
During this period, the team maintained strong productivity and engagement, delivering 79 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 Scan Weekly Report The ARK Scan team has been actively testing the app to identify bugs and determine any additional changes needed for Mainsail. They’ve also done some code updates, including: Adjusting the transaction and block export functionality to be compatible with upcoming changes in the Mainsail API. Next week, testing will continue alongside the documentation of any remaining issues or required adjustments for Mainsail EVM. ARK SDKs and Docs Weekly Report This week, a lot of focus has been on updating the documentation site with all of the latest changes. We have also worked on PHP, Python, and TypeScript packages by adding new features and adjusting to Mainsail EVM changes. To be precise: Documentation site:Updated wording from delegate to validator across TypeScript, Python, and PHP crypto and client implementations, in accordance with recent schema changes.Additional crypto updates:Added Address.validate method (Python Crypto).Removed internal deserializer methods (Python Crypto).Removed old serializer methods (Python Crypto).Updated Message section to match PHP/TS (Python Crypto).Added missing PrivateKey.sign method (Python & PHP Crypto).Improved Serializer and Deserializer examples (Python Crypto).Updated Slot examples to match PHP/TS (Python Crypto).Ensured all Inherits from references use full namespace paths.Renamed duplicate “convert message to json” to toString (PHP Crypto).Checked PublicKey.recover_from_signature method (Python & PHP Crypto).Standardized API headings and order across SDKs.Ensured examples import relevant packages.Refactored PrivateKey class (PHP Crypto).Verified consistency of example return types.Updated the node fee response example in the docs to reflect the current structure post-Mainsail EVM transition, replacing the outdated pre-EVM format.Removed outdated transaction endpoints from the /api/transactions documentation that are no longer relevant to Mainsail:/transactions/types/transactions/fees/transactions/schemasAdded documentation for the new /api/contracts endpoint.Updated the transaction response example in the docs to reflect changes in the /api/transactions endpoint. The endpoint now accepts a ?fullReceipt=true parameter to include full receipt details, and the success attribute has been moved to the receipt object.Python Crypto Package:Added validate method to provide address format validation.Updated slot epoch to return an int instead of a datetime.Refactored PublicKey to be a class instead of a string wrapper, allowing for future extensions and added functionality.Updated the Message class in the Python Crypto package to align with PHP and TypeScript by adding a new method for creating a message instance. Also added the str helper to support string casting of the object.Adjusted the crypto package to align with recent API schema changes.Python Client Package:Added the new /api/contracts endpoint.Adjusted the client package to align with recent API schema changes.TypeScript Crypto Package:Updated schema to accommodate recent API changes, ensuring continued compatibility and functionality.Improved utils code coverage and removed unused decodePayload methods to streamline the codebase and enhance test reliability.TypeScript Client Package:Refactored schema by renaming ‘delegates’ to ‘validators’, updating the ‘Nodes’ type filename to ‘Node’, and applying other structural improvements for consistency and clarity.PHP Crypto Package:Refactored the PublicKey class to align with TypeScript, removing the wrapper/helper structure to allow for easier extensibility, replacing the previous return of a BitWasp PublicKey instance.Refactored the PrivateKey class and removed the unused gmpToHex method from the AbstractTransaction class to improve code clarity and efficiency.Renamed ‘delegates’ to ‘validators’ and updated the ‘Nodes’ type filename to ‘Node’, along with other schema adjustments for improved consistency and clarity.PHP Client Package:Updated the client package to ensure compatibility with recent API changes.Added the /api/contracts endpoint to support contract-related features and enhance API functionality. Next week, we’ll continue working on any necessary updates to the documentation site and additions to our SDK packages to be in line with Mainsail EVM changes. ARK Vault Weekly Update The ARK Vault team focused on testing, resolving issues from internal QA, and cleaning up the codebase. This week’s completed work includes: Fixed an issue where the wallet encryption message could disappear when tabbing into the input field.Moved sdk-profiles internally and removed the external dependency @ardenthq/sdk-profiles to streamline the project structure.Updated transaction API attributes to align with the upcoming Mainsail changes.Removed the @ardenthq/sdk dependency to reduce external dependencies and simplify the project structure.Removed the remaining multisignature logic from Vault, including refactoring or deleting unused hooks, components, methods, translations, and validations.Fixed the issue where block height was showing as NaN by renaming the blockId prop to blockHash in the useBlockHeight hook and updating the API response from data.height to data.number.Moved @ardenthq/sdk-markets internally, following the same approach used for sdk-profiles, to streamline dependencies and project structure. Next week, the team will continue refining reported issues and will work on moving additional flows to the side panel feature. Mainsail Weekly Update This week, we focused on enhancing legacy import support from Core, cleaning up parts of the codebase, and implementing several general improvements. Highlights include: Renamed the testnet network to devnet. New naming convention:Mainnet → Main public networkTestnet → Public test networkDevnet → Local development networkAdded verification logic for legacy second signatures.Made various improvements to the legacy importer.Enabled management of api-sync and api-database plugins via the MAINSAIL_API_SYNC_ENABLED environment variable.Replaced all CORE_ environment variable prefixes with MAINSAIL_.Removed obsolete .env variables from test configurations. Next week, we will focus on adding V3 BLS key registration support in ARK Core, resolving issues with snapshot file paths, and updating both Docker and installation scripts to incorporate the latest changes. 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: Mainsail - https://github.com/ArkEcosystem/mainsail/issuesARK Connect (Extension) - https://github.com/ArdentHQ/arkconnect-extension/issuesARK Connect (Demo) - https://github.com/ArdentHQ/arkconnect-demo/issuesARK Scan - https://github.com/ArdentHQ/arkscan/issuesARK Vault - https://github.com/ArdentHQ/arkvault/issues Follow on Twitter (X) Follow us on X (https://x.com/ArkEcosystem) 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.
Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, the ARK Scan team focused on Foundation package fixes and resolving number display issues, while updates were made across the documentation site, Platform SDK, and Python and TypeScript packages. ARK Vault continued addressing internal testing feedback, resolving reported issues, advancing Ledger hardware wallet integration, and refining UI elements. Meanwhile, the Mainsail team made progress on snapshot support and EVM schema rename compatibility. Development Activity Summary (April 11 – April 18, 2025) Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from April 11, 2025, to April 18, 2025.
During this period, the team maintained strong productivity and engagement, delivering 108 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 Scan Weekly Report Work done this week included Foundation package fixes and updates to number display issues. To be precise: Updated the Foundation package to fix build issues encountered with the recent Node.js version.Fixed a 500 error caused by improper pagination handling. Reviewed and updated all other instances of pagination across the app to ensure consistent and error-free behavior.Fixed the issue where multipayments were not being counted in stats by ensuring the proxy contract address is used when handling multipayment transactions.Refactored the supply display logic by adding a rounding method to ensure no decimals are shown. This prevents potential formatting issues if the returned supply value includes decimals in the future.Updated the fee display logic to remove decimals from Gwei values. This ensures consistency with the Vault implementation and improves readability by avoiding excessively long numbers.Prepared PRs for the next Mainsail version that affects database column naming. Next week we’ll fix any other reported issues from the internal team. ARK SDKs and Documentation Weekly Report This week, we made several updates across our documentation site, Platform SDK, and Python and TypeScript packages. Here’s a summary of the work completed: ARK Documentation Site:Standardized “new instance” examples for consistency.Removed convert to JSON examples from all Transaction Builders, except for Abstract in py-crypto, where it remains relevant.Fixed toArray examples in typescript-crypto to return an object instead of an array.Corrected toDict examples in py-crypto to return dictionaries rather than JSON strings.Updated the transfer builder in ts-crypto to handle BigNumber values correctly.Ensured builder examples in py-crypto return the builder itself, not the serialized object.Reordered Transaction Builder examples across SDKs for consistency and clarity.Platform SDK Package:Fixed an issue with the multipayment amount field that caused errors when sending multipayment transactions.Refactored to export the config manager, enabling access to milestone values from the API. This allows accurate validation of gas price and gas limit using network configuration.Improved syncByProfile to sync wallets for specified networks, enhancing network-specific wallet sync behavior.Added support for second signatures on the Mainsail network with a new isSecondSignature method.Updated the syncByProfile signature and added an auto-refresh mechanism on the Portfolio page. Balances and transaction tables now refresh automatically every 8 seconds.Python Crypto Package:Refactored decode_payload and get_signature by prefixing them with an underscore (_) to indicate they are intended for internal use only, following Python’s convention for pseudo-private methods.Prepared PRs for incoming Mainsail attribute changes.PHP Crypto Package:Prepared PRs for incoming Mainsail attribute changes.TypeScript Crypto Package:Prepared PRs for incoming Mainsail attribute changes.TypeScript Client Package:Added explicit TypeScript types for all API endpoint responses. This improves developer experience by providing:Better type safetyImproved autocompletionClearer method return valuesReduced risk of runtime errors due to incorrect assumptions We’ll continue enhancing Mainsail EVM compatibility across all client and crypto packages, as well as the Platform SDK. Documentation updates will also continue in line with these changes. ARK Vault Weekly Report We’ve continued focusing on internal testing feedback and resolved reported issues. Progress also continued on Ledger hardware wallet integration and UI improvements. Here’s what was completed: Refactored address and message services to use typescript-crypto for signing and verifying messages, improving consistency and security.A placeholder in the side panel is added when no results are found during address search.Removed a random ‘´’ character that was incorrectly rendered under navbar buttons.Implemented a refresh of the transactions table to trigger an API call when sorting is changed.Added a second signature icon to the Mainsail interface.Fixed Ledger import tests by updating LedgerImportStep and LedgerConnectionStep for Mainsail compatibility.Updated the transactions table to show “To Contract” for username registration transactions.Added missing periods to the contact section for better grammar and consistency.Added a shadow to the side panel when scrollable to indicate more content is available.Set an upper limit for gas price and gas limit based on the active milestone to prevent transaction errors.Replaced the EVM builder for transfer transactions with typescript-crypto for better compatibility.Updated transaction handling to use typescript-crypto for all remaining types, including validator registration/resignation, vote, and username transactions.Improved username validation by enforcing local character checks before network requests. Requests are now aborted if input changes.Added proper handling for aborted username validation requests to avoid false errors or incorrect “previously registered” flags.Added support for displaying contract creation transactions in the transactions table.Wallet balances in multiview now refresh every n seconds to reflect external incoming transactions.Portfolio page now auto-refreshes every 8 seconds for updated balances and transaction data.Fixed display issues in pending transactions, correcting decimal amounts and showing the sender address.Refactored DTOs to match Mainsail, removing unsupported types like IPFS and trimming unused properties.Implemented Ledger HW transaction signing with typescript-crypto.Removed deprecated crypto code from lib/crypto and lib/mainsail/crypto.Removed MultiSignature logic from the libs and refactored arkvault to bypass these checks with minimal changes.Fixed back button behavior on the Verify page to correctly return to /dashboard.Updated the import address encryption tooltip to show accurate availability messages based on the import method. Next week, we’ll continue resolving reported issues and focus on further design unification across more Vault features. Mainsail Weekly Report This week, progress was made on snapshot support, EVM schema rename compatibility, and streamlining the codebase. Specifically, the following tasks were completed: Upgraded the EVM database to use the latest heed (v22).Added verification of legacy wallet attributes to the block processor (if present).Improved the V3 snapshot generator and added initial e2e tests.Renamed validation schemas in the EVM API.Renamed “local testnet” to “devnet” to align with the new naming convention.Removed obsolete environment variables. Next week, we’ll focus on finalizing full pnpm v10 support and implementing V3 BLS key registration support. Missed our recent Mainsail blog post on the latest advancements? Have a read here. - https://arkscic.com/blog/mainsail-evm-development-highlights-whats-coming 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: Mainsail - https://github.com/ArkEcosystem/mainsail/issuesARK Connect (Extension) - https://github.com/ArdentHQ/arkconnect-extension/issuesARK Connect (Demo) - https://github.com/ArdentHQ/arkconnect-demo/issuesARK Scan - https://github.com/ArdentHQ/arkscan/issuesARK Vault - https://github.com/ArdentHQ/arkvault/issues Follow on Twitter (X) Follow us on X (https://x.com/ArkEcosystem) 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. $ARK
Mainsail EVM: Development Highlights & What’s Coming
Since our last update, we’ve been busy refining and expanding Mainsail EVM across multiple fronts. From new features and performance improvements to foundational refactors, things are moving fast — and we’re now in the final stretch of development and fixes before launching the initial Mainsail EVM public testnet. Here’s a closer look at what’s been happening behind the scenes. New Block Structure & Serialization Enhancements One of the key changes is the addition of the LogsBloom field to blocks. This 256-byte (2048-bit) data structure allows for efficient checks to determine whether a block might contain specific log entries, without scanning each one individually, making log lookups much faster. We’ve also refined how block gas is calculated. Instead of summing up transaction gas limits, we now sum only the actual gas used, giving a more accurate view of block consumption. Transaction sizes are now stored using a 4-byte uint32 instead of 2 bytes, paving the way for large transactions that might fill an entire block. This change future-proofs the system for increasing block sizes and gas limits. In another step toward Ethereum compatibility, the v signature value for transactions now uses 0 and 1, replacing the older 27 and 28 values inherited from Bitcoin — a change aligned with Ethereum clients. Dependency & Tooling Updates We’ve updated nearly all project dependencies to their latest stable versions. Importantly, we lock package versions in production builds to ensure stability and prevent unexpected behavior from packages that might not follow strict semantic versioning. Core development tools like TypeScript and ESLint received major updates, and we’ve made the necessary code adjustments to accommodate new rules and breaking changes. On the Rust side, we’ve upgraded to 2024 Edition, along with a full update of all Rust dependencies. Our CI pipelines now run on Node.js 22.x LTS, ensuring we’re aligned with the latest runtime improvements. Cleaner, Leaner Codebase We’ve introduced a new package, blockchain-utils, which centralizes shared logic such as RoundCalculator, SupplyCalculator, and FeeCalculator. Previously, these were scattered in the kernel package, but this move helps keep responsibilities well-separated. Utility functions like assertions and IP validation now live in a general utils package, and we’ve taken the opportunity to remove unused legacy code like ExpirationService and DynamicFeeMatcher, which no longer align with the updated transaction handling mechanism. Legacy Compatibility We’re also ensuring smoother migration paths by adding legacy support for second signatures. The system detects whether an account has a registered second signature and, if present, validates it using an extended RLP serialization format. Since we plan to import data from the existing ARK network, we’re implementing a block offset mechanism. This means Mainsail’s genesis block won’t start at height 0 — it will follow directly after the latest block from the current network. Smarter EVM Handling Our EVM implementation now supports multiple pending commits at the same block height. This is especially useful when a block doesn’t reach consensus in the first round. The system caches multiple processed block versions, avoiding redundant computation. Once a block receives +2/3 validator commits, it becomes finalized and can no longer be reverted. Database Unification We’ve consolidated our data storage by removing the standalone LMDB implementation from @mainsail/database and migrating it entirely into our Rust EVM implementation, which uses the heed library (also based on LMDB). This integration enables atomic commits, where all relevant data — from state changes to blocks, transactions, and commit proofs — are stored in a single, fail-safe operation. Aligning with Ethereum Naming Conventions To make Mainsail’s API and internal structures more familiar to Ethereum developers, we’re undergoing a major refactor to align field names with Ethereum standards. This will affect both the public API and internal code structures. Here are a few examples of the field changes: Block Field Mappings OldNewidhashheightnumberpreviousBlockparentHashstateHashstateRootnumberOfTransactionstransactionsCounttotalGasUsedgasUsedtotalAmountamounttotalFeefeepayloadLengthpayloadSizepayloadHashtransactionsRootgeneratorAddressproposer Transaction Field Mappings OldNewidhashsenderAddressfromrecipientAddresstogasLimitgassequencetransactionIndexblockIdblockHashblockHeightblockNumber What’s Next? In the coming few weeks, we plan to complete the remaining features needed to launch a new network that chains directly from our existing development testnet. As part of this process, we’ll later on introduce support for registering new BLS public keys. Validators will then be able to register their BLS keys on the devnet, which will then be used by validators in Mainsail to sign consensus messages and block proposals. We’re incredibly excited about the progress and can’t wait to welcome early adopters and contributors onto the Mainsail EVM testnet soon. Stay tuned — the sails are almost set. Follow on Twitter (X) Follow us on X (https://x.com/ArkEcosystem) 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.
Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, the focus continued on refining the client and crypto packages, with updates to the documentation site reflecting recent changes and the addition of a new feature in PSDK. The ARK Vault team has been addressing feedback from internal testing, resolving reported issues, implementing design updates, and enhancing the user experience with a new side panel. Over at Mainsail, work has been underway on renaming fields for the public HTTP API and adding support for the latest Node.js 22.x. Development Activity Summary (April 4 – April 11, 2025) Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from April 4, 2025, to April 11, 2025.
During this period, the team maintained strong productivity and engagement, delivering 70 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 Documentation Weekly Report This week, we focused on enhancements across the client and crypto packages, along with updates to the documentation site and a new feature addition in PSDK. Below is a summary of the completed tasks: Documentation Site:Updated TypeScript definitions for BigNumber handling, particularly for transfer values in ts-crypto.Removed the getBytes method in TypeScript.Removed outdated complementary examples.Refreshed network documentation.Added builder types, including support for username and multipayment transactions.Improved example type hints for clarity and consistency.Python Crypto Package:Refactored the Network, Address, Slot, and Wif modules to be class-based, enhancing structure and maintainability.Removed the unused to_hex method from the PublicKey class.Updated internal Deserializer methods to be private, improving encapsulation and discouraging external usage.TypeScript Crypto Package:Renamed getWif to wif in the network module for consistency across SDKs.Made Deserializer methods private to enforce encapsulation.Added support for BigNumber values in transaction fields: transfer value, multipayment recipient value, gas price, and gas limit.Renamed toArray methods to toObject to better represent the returned structure and reduce confusion.TypeScript Client Package:Exposed the ArkHttpException type for better error handling and assertions in TypeScript applications.PHP Crypto Package:Introduced the wif method in the network module to match other SDKs.Removed fromMultiSignatureAsset from the Address class.Platform SDK (PSDK):Added a new feature to return the host selector from the environment, enabling:Accurate request URL resolution.Generation of precise cache keys.Selective clearing of cache entries before transactions. Next week, we’ll continue improving Mainsail EVM compatibility across all client and crypto packages, as well as the Platform SDK. Further updates to the documentation site are also planned. ARK Vault Weekly Report We’ve continued focusing on feedback from the internal testing team—resolving reported issues, refining the design, and enhancing the user experience, particularly around the new side panel. Here’s what was completed: The side panel now automatically closes when switching addresses in single view mode, reducing unnecessary clicks and improving usability.Refactored hooks tests to use the Mainsail network, replacing all Ark-related dependencies for consistency.Added logic to refetch the latest wallet attributes before starting transaction flows to minimise issues due to stale data.Removed the sdk-ark package and deprecated the ARK coin, cleaned up all related code, and fixed impacted tests.Further cleanup of ARK-related logic included:Removing temporary flags added during the migration.Dropping the onlyMainsail argument from mockProfileWithPublicAndTestNetworks.Deleting ARK-specific mock files and MSW handlers.Updating tests to use Mainsail fixtures for full consistency.Updated tests across the codebase—including app/components, app/contexts, and utils—to align with the Mainsail network.Adjusted the copy-to-clipboard icon:Aligned it with the header for visual consistency.Changed its color to gray to match design guidelines.Fixed a nonce issue that could occur when sending a vote in quick succession.A warning block was added to notify users if a username is already registered to an address. It now warns users that registering a new name will overwrite the current one.Introduced tooltips for the “Send” and “Receive” navbar buttons, providing clear hover-based descriptions.Enabled unit tests for SendExchangeTransfer to validate exchange-related transfer logic.Migrated sdk-mainsail directly into the arkvault project for better integration and maintainability.Fixed wrapping issues in the “addressing” column of the transaction table—content now stays aligned even when only contract interactions are present.Ensured all new text content is properly punctuated for grammatical consistency.Added tooltips to all remaining navbar buttons, rounding out the interface enhancements.Refactored the address and message services to use the typescript-crypto library, strengthening cryptographic handling and unifying service logic. Next week, we’ll continue resolving reported issues. We’re also very close to finalizing the initial version of ARK Vault with full Mainsail support. Mainsail Weekly Report This week, we continued our work on the latest Node.js support and made progress on Ethereum’s naming conventions. The work completed includes: Added missing HTTPS support to the HTTP client, addressing issues introduced by Node.js 22.x.Corrected the commit key usage for blocks with a height offset in the consensus mechanism.Renamed block, transaction, and receipt fields in both the Public API and consensus modules.Removed the transform option from the Public API. Next week, we’ll be wrapping up full support for pnpm v10 and beginning preparations for a custom repository for the Heed fork. 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: Mainsail - https://github.com/ArkEcosystem/mainsail/issuesARK Connect (Extension) - https://github.com/ArdentHQ/arkconnect-extension/issuesARK Connect (Demo) - https://github.com/ArdentHQ/arkconnect-demo/issuesARK Scan - https://github.com/ArdentHQ/arkscan/issuesARK Vault - https://github.com/ArdentHQ/arkvault/issues Follow on Twitter (X) Follow us on X (https://x.com/ArkEcosystem) 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.
Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week’s ARK SDKs development centered on refining the client and crypto packages while rolling out a minor update to the documentation site. Meanwhile, ARK Vault saw ongoing improvements based on internal testing feedback, with issue fixes, design improvements, and the initial Ledger HW support. Over at Mainsail, efforts were directed toward boosting EVM performance, updating packages, and applying various fixes. Development Activity Summary (March 28 – April 4, 2025) Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from March 28, 2025, to April 4, 2025.
During this period, the team maintained strong productivity and engagement, delivering 117 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 Documentation Weekly Report This week’s work primarily focused on the client and crypto packages, along with a minor update to the documentation site. Key tasks completed include: Platform SDK Package:Updated CI to use Node.js version 20.18 as 20.19 causes issues with dependencies. This is a temporary downgrade until we upgrade it to work with node 22.Fixed the outgoing tab labeling issue where, in single view in Vault, selecting the Outgoing tab could incorrectly display transactions as incoming instead of outgoing.Added support for signing all transactions using Ledger hardware wallet addresses in combination with the Ethereum Ledger app.Refactored Ledger public key reading by exposing a pageSize prop on the Ledger scan method for better control. Improved performance when fetching public keys and added a retry mechanism to handle “device busy” errors.Python Client Package:Added the receipts API endpoint and a configuration endpoint for the transactions API, while removing the old transaction endpoints.Refactored the delegates method arguments by updating the delegates.blocks and delegates.voters endpoints for consistency with other SDKs.Renamed wallet transaction methods to align with naming conventions used in other SDKs.Refactored the blocks transactions endpoint to support wildcard arguments.Added the EVM API endpoint and included missing with_endpoint('api') references for several endpoints. This prevents the issue where EVM or create transaction calls could cause subsequent calls (like Blocks.all() or Votes.all()) to be performed on the wrong API.Added a coverage threshold to the test workflow for the Python client, ensuring it fails if coverage falls below 100%. Also addressed any missing coverage in the tests.Python Crypto Package:Removed the get_bytes method from AbstractTransaction as it duplicated the functionality of the serialize method, making it redundant.Added a method to the PrivateKey class to create a private key from a WIF, ensuring consistency across SDKs.Refactored message signing by removing the original PrivateKey#sign method and renaming the sign_compact method. Also removed the Keccak hasher method, as it’s now possible to pass in a hashed message, skipping the hasher on CoinCurve’s side.TypeScript Crypto PackageAdded additional unit converter tests to improve handling of larger numbers, ensuring accurate conversions and preventing potential overflow or inaccuracies.Refactored transaction types coverage by adding tests to improve coverage and removing unused methods.Added tests for the Network configuration file to ensure proper handling of network-related settings and functionality.Refactored the code coverage for Serializer and Builders.Set up a formatting workflow to run Linter and Prettier on PRs, ensuring consistent code formatting and resolving issues with mixed tabs and spaces.TypeScript Client Package:Fixed the create transaction type by adjusting it to string[], as it now correctly expects an array of hex strings instead of a single string.Refactored the blocks.transactions client endpoint to align with other SDKs by adjusting the accepted arguments to match the consistent format of blockId, page, and limit, ensuring uniformity across packages.Updated the pnpm version in the workflows to ensure compatibility with the latest features and improvements.Refactored the delegates method arguments and fixed a type issue with the voters method, where it was previously incorrectly set to votes.Renamed the wallet transaction methods to match other SDKs by updating transactionsSent to sentTransactions and transactionsReceived to receivedTransactions, ensuring consistency across platforms.Refactored the transactions API by adding a new configuration endpoint and removing the old transaction endpoints.Refactored the code by renaming show methods to get for consistency and clarity, following standard naming conventions.PHP Crypto Package:Removed the getBytes method from AbstractTransaction, as it duplicated the functionality of the serialize method and was no longer necessary.Updated the message signing and verification process by removing support for backwards compatibility, including the v1/v2 message fixtures and the publickey/signatory JSON keys. The new signatures are not backward compatible and have been streamlined to reflect the updated signing mechanism.Refactored the PHP test suite to use Pest syntax, aligning with ARKScan’s testing style. Replaced class-based tests with the it('should...') format.PHP Client Package:Removed the types, fees, and schema endpoints from the Transactions API, as they are no longer relevant or needed in the updated implementation.Renamed show methods to get in the client to align with common naming conventions and improve consistency across the codebase.Documentation Site:Updated client examples for Python, PHP, and TypeScript packages to ensure consistency and accuracy.Updated the SDK crypto documentation site with the latest changes to the Python crypto package. Next week, our focus remains on bringing up the compatibility of Mainsail EVM across all client and crypto packages, as well as updating the documentation site. ARK Vault Weekly Update We’ve been continuing to work on feedback from the internal testing team, addressing reported issues, making additional design updates, and implementing Ledger HW support. Work completed included: Removed all references to PortfolioBreakdown, as the new design no longer includes a breakdown feature.Updated the upload avatar component to match the new design. Since avatars are now square, removed the circular cutout from the image preview.Updated profile, settings, and portfolio domain tests to use the Mainsail network, ensuring consistency across all test suites.Adjusted the radio button size on the side panel to match the checkboxes in “multi view”.Updated the side panel behavior to prevent the hover state from appearing when an address is selected for deletion, maintaining a consistent border style.Fixed an issue on the Votes page where clicking the Import/Create buttons in an empty profile redirected to the main page instead of triggering the intended import/create action.Updated the exchange page design to align with the votes and contact pages, incorporating the same header icon styling for consistency across the application.Fixed extra padding in the contacts page header, ensuring alignment with the votes page for a consistent layout.Fixed an issue by adding a new useEffect to clear the alias when the address is cleared in the multipayments form. This ensures the alias resets properly, as the clearFields method in the parent component does not handle alias input.Ensured that votes are synced when updating the profile and selected address on the Votes page.Added a hover state to the “Back” button on the side panel address selection when on the “Manage” page.Refactored the useTabs hook to support a disabled prop, and added new class names and styles for tabs and tab buttons to handle disabled states. Tabs on the side panel are now disabled when entering manage mode to prevent interaction.Ensured that an address is displayed as selected in the address panel’s single view if the previously selected address is deleted.Updated the vote and wallet domain tests to use the Mainsail network, ensuring consistency with the updated network configuration.Moved the psdk SDK helpers to an internal lib folder, transferring only the methods used in Vault along with their internal dependencies (which are not currently exported at the root level).Updated CI workflows to run on pnpm 10, ensuring compatibility with the latest version and taking advantage of its new features.Fixed the scan modal issue by moving the navbar out of the div with margin, allowing it to cover the entire page as intended.Fixed the hover state for the address row component in the side panel when entering deletion mode, ensuring consistent behavior during interactions.Added support for signing all transactions from a Ledger address, including transactions sent from subsequent derived addresses, ensuring full functionality with Ledger hardware wallets.Removed unused components and their respective tests to streamline the codebase and improve maintainability. Next week, we’ll continue addressing reported issues and finalize Ledger HW support for Mainsail EVM as we near full support for Mainsail EVM functions. Mainsail Weekly Report This week, our focus has been on improving overall EVM performance, updating packages, and implementing various fixes. Work completed includes: A separate EVM instance was used for JSON RPC actions.Updated EVM Rust packages to the latest version.Added support for multiple pending commits in EVM.Internal Mainsail transaction fields were renamed to match the EVM structure.Improved EVM performance by removing unnecessary clones of state_hash and logs_bloom. Next week, we’ll work on renaming fields for the public HTTP API and adding support for pnpm v10. 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: Mainsail - https://github.com/ArkEcosystem/mainsail/issuesARK Connect (Extension) - https://github.com/ArdentHQ/arkconnect-extension/issuesARK Connect (Demo) - https://github.com/ArdentHQ/arkconnect-demo/issuesARK Scan - https://github.com/ArdentHQ/arkscan/issuesARK Vault - https://github.com/ArdentHQ/arkvault/issues Follow on Twitter (X) Follow us on X (https://x.com/ArkEcosystem) 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.
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.
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 SiteUpdated the TypeScript client docs to align method parameters with the changes in the implementation.TypeScript Client PackageImplemented 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 PackageAdded 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 in ts-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 and Balance 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 than 768px, 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 than 640px 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 the options variant in the dropdown Wrapper and Item 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 and 0.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: Mainsail - https://github.com/ArkEcosystem/mainsail/issuesARK Connect (Extension) - https://github.com/ArdentHQ/arkconnect-extension/issuesARK Connect (Demo) - https://github.com/ArdentHQ/arkconnect-demo/issuesARK Scan - https://github.com/ArdentHQ/arkscan/issuesARK Vault - https://github.com/ArdentHQ/arkvault/issues Follow on Twitter (X) Follow us on X (https://x.com/ArkEcosystem) 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.
Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, we made strides in enhancing the Platform SDK and the upcoming new documentation site by adding fresh content, while also rolling out updates to the TypeScript Crypto package. The ARK Vault team focused on refining Mainsail EVM with key improvements and Ledger integration, alongside resolving issues and bugs reported by our internal testing team. The Mainsail team continued refining the codebase with general fixes, updates, and optimizations. Development Activity Summary (March 14 – March 21, 2025) Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from March 14, 2025, to March 21, 2025.
During this period, the team maintained strong productivity and engagement, delivering 79 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, we’ve made progress in enhancing the Platform SDK and upcoming new documentation site by adding new documentation. We’ve also rolled out updates to the TypeScript Crypto package. The completed tasks include: ARK Documentation Site:Added TypeScript crypto setup documentation to provide clear guidance for developers on configuration and usage.Added initial TypeScript crypto API documentation to provide a reference for developers on its usage and implementation.Updated crypto SDK examples by adding TypeScript and missing Python examples, while correcting any inaccuracies to improve clarity and accuracy.Added TypeScript crypto utils API documentation.Platform SDK:Deprecated ARK endpoints were removed from the Mainsail mainnet config to ensure a clean and up-to-date configuration.Updated the avatar component to use solid random colors and aligned the upload avatar component with the design for consistency.Typescript Crypto Package:Adjusted message signing to use the existing signCompact method that’s used across all SDK languages, ensuring consistency and signing the hashed message correctly.Implemented an argument decoder to parse and process function arguments effectively.Refactored the deserializer to automatically determine the transaction type by decoding the transaction, improving its ability to handle various transaction types.Refactored builders to include generic types, allowing the correct type to be passed and ensuring TypeScript properly supports method chaining for specific builders.Included ABI JSON files in the build to support handling transaction types beyond transfers.Refactored custom ABI handling to ensure compatibility with browser environments, allowing inclusion in projects like ARK Vault, and removed the use of require.js for ABI JSON imports in Next.js projects.Refactored the code to replace the bcrypto package with the lightweight noble library, focusing solely on secp256k1 to reduce unnecessary dependencies.Added a release workflow and updated the README to improve the release process and provide clear project documentation.Refactored with small adjustments and updated the return type for the refresh payload data to ensure accuracy and consistency. As we look to the week ahead, our focus will remain on further enhancing the documentation site, while also updating packages and the PSDK to align with the latest changes in Mainsail EVM. ARK Vault Weekly Report This week, our efforts were centered around refining Mainsail EVM with key improvements and Ledger integration. We also worked on resolving issues and bugs reported by our internal testing team. The tasks completed include: Updated the onboarding message to use “Address” instead of “Wallet” for consistency.Updated contact domain tests to use the Mainsail network, replacing the ARK network for improved consistency and removal of legacy dependencies.Fixed UI issues on the Create Profile page by aligning the icon with the header and adjusting the profile creation container width to the correct size.Refactored the meta image to reflect the updated UI in the metatags.Moved fee options to the review step for validator and username transactions to streamline the transaction process.Added margin to the X-axis in the dropdown items’ hover state for improved visual spacing.Fixed progress line styles by updating the StepStyled component height and radius to 4px, and adjusting the StepIndicator div containers’ width to “min” to prevent it from reducing. This resulted in thicker progress step lines.Added support for importing and saving Ledger addresses to the profile, ensuring proper scanning and listing of addresses in the ledger import flow.Fixed the tooltip blur issue by ensuring that toasts remain above the overlay, while tooltips and other elements, including the PWA message, are correctly positioned below the overlay.Moved the fee input to the review step for vote transactions, adjusting the vote flow to include fee options in the review step and skipping the form step if the sender address is already selected.Implemented the updated address encryption design by creating a new WalletEncryptionBanner component, replacing the previous implementations in the Create and Import wallet flows. The new toggle introduces an “Accept Responsibility” checkbox, which is now required for enabling address encryption. Dark mode designs were also updated, along with unit tests and translation files.Adjusted the settings page UI to match the new design, including updates to the side menu, adding a settings page icon, and making general UI adjustments for each settings tab.Updated dashboard tests to use the Mainsail network, fixing failing tests and refactoring them for improved compatibility.Fixed failing exchange and message domain tests and refactored them to use the Mainsail network.Moved the “Send All” button to the opposite side of the “Amount” label and adjusted the selected address balance to align with the design. These changes were also reflected in dark mode. New unit tests were added, and snapshots were updated to support the changes.Updated the “Manage” button with a hover state by changing its button variant to primary-transparent and adjusting the padding to align with the designs.Refactored the address switch button to support the primary-transparent button styles, including the hover state.Fixed the transaction review padding by adjusting it to 24px and adding the necessary padding between the Old Validator and New Validator titles and addresses.Updated the padding and font size of the user balance in the navigation bar to match the designs. Adjusted the border radius of the avatar and refactored the HideBalance component to display the user balance with a new hover effect.Updated the SVGs for avatar upload images in profile settings to align with the latest design.Updated the font size for confirmation text on mobile to 14px, while keeping it at 16px for other views. Next week, we’ll prioritize resolving additional fixes and making changes based on feedback from our internal testing team. In addition, we’ll continue working on integrating the Ledger app to fully support Mainsail EVM. Mainsail Weekly Report This week, we continued working on general fixes and updates to the Mainsail codebase based on internal testing, along with further improvements. Work completed includes: Improved error handling during the bootstrap procedure.Updated ESLint and TypeScript to the latest versions and applied code fixes.Removed the 27 offset on signatures’ v value. The v value is now represented as 0 and 1 to match the ETH v2 transaction type.Resolved circular dependencies and added a GitHub workflow to check for them.Fixed benchmarks in the utils package.Deduplicated wallets for upsert in api-sync.Added support for signing transactions with a legacy second signature.Implemented snapshot restore fixes. Next week, we will rename fields to match the Ethereum naming convention. Additionally, we will move the LMDB database into EVM to support atomic commits for block and state changes. 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: Mainsail - https://github.com/ArkEcosystem/mainsail/issuesARK Connect (Extension) - https://github.com/ArdentHQ/arkconnect-extension/issuesARK Connect (Demo) - https://github.com/ArdentHQ/arkconnect-demo/issuesARK Scan - https://github.com/ArdentHQ/arkscan/issuesARK Vault - https://github.com/ArdentHQ/arkvault/issues Follow on Twitter (X) Follow us on X, https://x.com/ArkEcosystem (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. $ARK
Welcome to our latest Weekly Development Report, where we spotlight the valiant efforts of our development team. This week, we advanced the Platform SDK with the release of a new alpha version and worked on the TypeScript Crypto package to ensure compatibility with Mainsail EVM. At the same time, the ARK Vault team focused on enhancing Mainsail EVM with additional improvements and integrations while addressing reports and bugs from our internal testing team. Additionally, the Mainsail team has been working on fee improvements and updating packages. Development Activity Summary (March 7 – March 14, 2025) Below is a breakdown of the total number of merged commits and contributing authors by project, highlighting development activity from March 7, 2025, to March 14, 2025.
During this period, the team maintained strong productivity and engagement, delivering 70 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, we’ve made progress on the Platform SDK and released a new alpha version. Additionally, we’ve made updates to the TypeScript Crypto package. The work completed includes: TypeScript Crypto:Added an abstract transaction by implementing a transaction class.Implemented a serializer and removed the redundant getBytes method, as it duplicated the functionality of serialize.Implemented a deserializer and added the Transfer type for testing specific elements.Implemented generic transaction builders, including a placeholder for Vote/Unvote types (requiring AbiEncoder) and fixtures for all transaction types.Implemented ABI encoder and decoder with support for consensus, multipayment, and username contracts.Enabled builds for certain dependencies when using pnpm v10+, as they are disabled by default in that version.Added transaction builders and types for all remaining transaction types supported by Mainsail.Implemented a Slot class, adding slots and corresponding tests.Refactored to use bigint for multipayment amounts and string for fees, enabling compatibility with both bignumber and bigint values.Implemented message sign and verify with ECDSA signatures.Refactored to replace the bcrypto secp256k1 package with a more lightweight alternative, focusing solely on secp256k1 to reduce unnecessary dependencies.Platform SDK:Refactored the ledger service to accept a transport instance as a parameter, reducing bundle size in Mainsail and preventing deployment failures in arkvault while maintaining SDK compatibility.Fixed an issue in the PSDK Ledger server to ensure it scans five addresses instead of just the first, aligning with the default page size. Looking ahead to next week, we’ll continue prioritizing improvements to our documentation site alongside updating packages to ensure they’re in sync with the latest changes in Mainsail EVM. ARK Vault Weekly Report This week, we focused on enhancing Mainsail EVM with additional improvements and integrations, as well as addressing reports and bugs from the internal testing group. The work completed includes: Fixed the side panel width issue and resolved truncation problems on mobile screens.Corrected selected addresses in the side panel to properly reflect the UI after address import and addressed the sidebar retaining the old state.Updated the design of the votes page to align with the recent design changes.Adjusted the import options order to follow the vault-defined array instead of the network config.Improved the import flow to remove added wallets when the user navigates back to the enter mnemonic step, closes the sidebar early, and handles invalid password entry before returning to the mnemonic screen.Restored the Ethereum ledger app dependency and resolved related build issues.Fixed the welcome images by adjusting the title width to prevent spacing issues and updating images for each slide across both dark and light modes on desktop and mobile views.Enhanced the notifications dropdown with a dashed border for dark mode rows, modified padding and margins to match designs, and updated snapshots for tests.Implemented scanning and importing of Ledger addresses, ensuring proper listing in the import flow, storage in the vault, and visibility after import.Overhauled the contact page design to improve layout and user experience.Corrected the vote block on the Portfolio header to update and display the voting state correctly, preventing errors where a validator was shown without vote transactions.Fixed an error during Ledger address import from the side panel when the Ledger app was not connected by handling pending scan errors related to device state changes.Resolved the iOS side panel click issue by switching the mouse action to pointerdown, preventing the side panels from closing when used on iOS devices.Addressed missing action buttons on mobile screens by changing h-screen to h-dvh, which accounts for dynamic viewport height in mobile browsers.Fixed the AddressesSidePanel focus issue by directing focus from the search input to the address rows upon opening, preventing the mobile keyboard from being triggered.Updated the Ledger import flow UI to improve the user experience and align it with the latest designs.Moved the fee input to the review step for transfer transactions and adjusted the “Send All” button to deduct 5 * 21,000 before setting the amount.Increased the width for transaction pages by adding a new value in the Tailwind config (max-width: 43rem), and updated max width for various steps in Transfer, Vote, Sign/Verify message, and Username registration transactions from 576px to 688px.Adjusted the hide/view icon color for password inputs in light mode to gray-700.Fixed the import flow to prevent early form submission when the Enter key is pressed.Capitalized the ‘Confirmation Time’ text in both the simple/advanced fee sections and the review steps for transaction forms.Updated the alias for Ledger-imported addresses to prefix with “Ledger #” instead of “Address #”, and implemented a separate alias counter for Ledger addresses from non-Ledger addresses.Refined the addressing section in contract transactions to remove the “To” row in the details modal.Resolved UI issues in the vote form by aligning the border color in dark mode and adjusting the border radius for the sender section.Fixed the issue where newly imported Ledger addresses were not selected by default when the profile already had available addresses. Next week, we will focus on addressing further fixes and enhancements driven by feedback from our internal testing team while also introducing new features to improve compatibility with Mainsail EVM. Mainsail Weekly Report This week, we have been working on fee improvements as well as updating packages. Work done this week included: Improved eth_estimateGas and gas error handling. The action calculates the gas required for a transaction to be accepted.Support for a genesis block with a non-zero height. A height offset is added to support snapshot imports and chain the genesis block to the last imported block.Updated all package dependencies to the latest version. Next week, we’ll focus on renaming fields to match the Ethereum naming convention, updating ESLint and TypeScript to the latest version, and moving the LMDB database into EVM to support atomic commits for block and state changes. 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: Mainsail ARK Connect (Extension) ARK Connect (Demo) ARK Scan ARK Vault 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.