Funds Requested: $10,000 Bounty Recipient: Cartman
The Beefy contracts library is battle tested, but the large number of strategies has held back progression to newer compiler versions that bring security and efficiency benefits. This has led to the team developing some of the latest innovative strategies independently of the existing strategy library. While this has not stopped innovation on novel strategies, it has made maintenance of the strategy library as a whole more difficult due to that divergence. As one of the industry’s premier open source projects, Beefy contracts are relied upon and trusted by many outside projects and stakeholders. It is imperative that we provide the product quality that is needed in that role. This request is to fund a thorough review, curation, update and verification of the core vault and strategy contracts.
The end result of this proposal is to enable a much cleaner and updated contract library that simplifies the work that strategists and community contributors do in order to innovate and grow the platform’s capabilities.
We establish the following key objectives for this activity:
Upgrade the development environment core dependencies and tools. Review included configs and scripts for capability and simplicity, to ensure that core strategist and developer tasks can be conducted efficiently. Ensuring configs and scripts seamlessly adapt between deployed chains and local dev environment with fewer configuration changes will help strategists be more productive and more likely to test prior to deployment.
Upgrade common core library contracts to Solidity v0.8. A small subset of robust contracts (25 contracts, 30 interfaces) are used wherever possible by the team, and cover many common strategies and platforms. Bringing this code base up to date is the most valuable of these objectives, but this critical portion of the code base also needs the most thorough review and regression testing. These updated contracts will form the baseline of reusable components for the larger contract library.
Upgrade platform-tailored and unique contracts to Solidity v0.8. The extensive library of strategy (148) and interface (89) contracts needs thorough manual revision to function correctly and align with the updated compiler, imports, and interfaces. Completing this tranche of updates in one session will ensure that the code base is not fractured and contributors do not need to support two code bases or a protracted transition. This will provide a vetted library of v0.8 contracts that can be used as needed for emerging projects and strategies.
Develop a thorough, robust, and repeatable regression test for strategies that can be completed in a realistic, forked local environment. Upgraded strategies need to be regression tested in a representative environment prior to being used in production. The existing production test can be adapted and updated to suit this purpose. This will also add value for strategists, who can simulate their deployment and test locally prior to spending the gas for a production deployment.
Update documentation and readme content for contributing, testing, and deploying of contracts to match the latest best practices. Explain the testing and deployment process, and how it is driven by Beefy’s SAFU Practices. Use simple and repeatable checklists to increase first-time quality and minimize reviewer workload.
Development work will be executed by Cartman. Work will be supported, reviewed and approved by Core team members Kexley, Weso, and Roman. They will ensure that contract revisions are carefully considered, minimal, and thoroughly tested.
Delivery is estimated for mid July (15th). 100% of the requested amount will be paid to Cartman upon delivery.
Detailed estimate is available: Contracts Upgrade Estimate: https://docs.google.com/spreadsheets/d/17vyFo51z4X13BukcF5EC_iufAlnDmInLwX_4AAYmVx8/edit?usp=sharing