MVP Workshop has completed its 3rd milestone in the Filecoin grant to improve the overall experience of Solidity developers
We are thrilled to announce the successful completion of Milestone 3 in the Filecoin Solidity Optimization project. This milestone, focusing on developer ergonomics, marks a significant step forward in enhancing the usability and documentation of the library. The dedicated efforts of our development team over the past 4 weeks have resulted in valuable improvements.
- Codebase Refactoring: We have diligently followed guidance from the Developer Ergonomics epic to enhance the overall structure and functionality of the codebase.
- NatSpec and Documentation Improvements: Our team has worked on refining documentation using the widely adopted NatSpec format, providing more accurate and detailed information on functions.
We believe that these enhancements will contribute to a more seamless and user-friendly experience for Solidity developers working in the Filecoin ecosystem.
Filecoin Solidity Optimization grant explained
Filecoin has Solidity libraries that provide low-level access to Filecoin protocol methods, actors, and state, to the initial wave of applications deployed on FEVM following its mainnet launch on March 14, 2023.
However, there are a number of core areas that can be improved, namely enabling optimizability, mirroring the ergonomics of popular Solidity libraries (e.g. OpenZeppelin), and minimising footprint. Furthermore, there’s an active backlog of smaller issues that need to be fixed as part of continued maintenance.
This grant aims to tackle all of these issues, and improve the overall experience of writing Solidity code for Filecoin projects.
Milestone 1 & 2 Achievements
In Milestone 1, spanning 3 weeks, our primary focus was on ensuring the compatibility of the filecoin-solidity library with various Solidity compiler optimizers. This involved extensive work to make the library compatible with Standard, YUL, and –via–ir optimizers. Additionally, we set the EVM Version property of the Solidity compiler to paris, addressing potential issues with versions 0.8.20 and above.
Moving on to Milestone 2, a 12-week endeavor, we diligently tackled and closed numerous backlog items. Key achievements include enabling read-only “view” methods for protocol accessors, refactoring callByAddress and callByID functions to be read-only, and ensuring delegatecalls on contracts using Actor.sol are feasible with various Solidity Proxy Mechanisms. We prioritized error handling from precompiles in lieu of simple reverts from the library, added toEthAddress functionality in FilAddresses.sol util, and implemented constructors for types, among other critical tasks. This comprehensive approach aimed at refining the library’s functionality and addressing diverse issues outlined in the backlog.
The success of Milestones 1 and 2 laid a robust foundation for subsequent phases, demonstrating our commitment to technical excellence and systematic progress through the project roadmap.
As we move forward, our commitment to excellence remains unwavering. The upcoming Milestone 4 will focus on Maintenance, ensuring the sustained quality and support for the project. We plan to continue producing tests for the source code, addressing network or core tech upgrades, and actively supporting the backlog of future improvements alongside the Filecoin community.