-
Notifications
You must be signed in to change notification settings - Fork 14
feat: make Solidity V8 migration non breaking
#306
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: chore/solidity-v8
Are you sure you want to change the base?
feat: make Solidity V8 migration non breaking
#306
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request removes the IexecEscrowTokenSwapFacet and migrates the codebase from Solidity v0.6.0 to v0.8.0, making the v8 migration non-breaking by consolidating storage libraries and updating registry contracts to use OpenZeppelin v5.
Key changes:
- Removed
IexecEscrowTokenSwapFacetand related token swap functionality - Upgraded Solidity version from 0.6.0 to 0.8.0 across registry and test contracts
- Consolidated
PocoStorageLib.v8.solintoPocoStorageLib.sol - Updated registry contracts to use OpenZeppelin contracts v5 (ERC721Enumerable, Ownable)
Reviewed Changes
Copilot reviewed 73 out of 73 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| utils/proxy-tools.ts | Removed imports and references to IexecEscrowTokenSwapFacet |
| scripts/tools/sol-to-uml.mjs | Removed IexecEscrowTokenSwapFacet from UML diagram generation |
| hardhat.config.ts | Removed exclusions for files that no longer exist |
| docs/solidity/index.md | Regenerated documentation with updated structure and removed TokenSwap references |
| deploy/0_deploy.ts | Fixed import path for Ownable factory and removed TokenSwap deployment comment |
| contracts/tools/testing/*.sol | Upgraded Solidity version to 0.8.0 and removed unnecessary constructors |
| contracts/registries/**/*.sol | Upgraded to Solidity 0.8.0, OpenZeppelin v5, and updated type casting for address-to-uint conversions |
| contracts/registries/proxy/*.sol | Added proxy contracts copied from iexec-solidity with pragma updates |
| contracts/libs/PocoStorageLib.sol | Consolidated v8 storage lib, updated imports, and fixed assembly syntax |
| contracts/interfaces/* | Created IexecHubV3Interface, removed IexecEscrowTokenSwap, updated event declarations |
| contracts/facets/*.sol | Updated all facets to use consolidated PocoStorageLib and replaced SafeMathExtended with native operators |
| abis/contracts/**/*.json | Updated ABIs to reflect OpenZeppelin v5 error types and parameter name changes |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…y, and WorkerpoolRegistry for enhanced deployment handling
…y documentation for Iexec interfaces and methods
…f JSON files and updating initialization logic in Registry contract
…y documentation for new methods in Iexec contracts
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 13 out of 13 changed files in this pull request and generated 7 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…acet to prevent underflow and ensure backward compatibility
…y documentation for Iexec contracts
…statements in test files for consistency
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 15 out of 15 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## chore/solidity-v8 #306 +/- ##
=====================================================
+ Coverage 96.26% 96.32% +0.06%
=====================================================
Files 34 34
Lines 1099 1117 +18
Branches 203 209 +6
=====================================================
+ Hits 1058 1076 +18
Misses 41 41 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 12 out of 15 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 28 out of 28 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| import {IexecERC20Common} from "./IexecERC20Common.sol"; |
Copilot
AI
Oct 30, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The pragma experimental ABIEncoderV2; directive is unnecessary and deprecated in Solidity 0.8.0+. ABIEncoderV2 is enabled by default in Solidity 0.8.0 and later versions, so this pragma should be removed.
| import {IexecERC20Common} from "./IexecERC20Common.sol"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
possible to remove or should we consider to keep ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it have been done in this PR. #308
My goal here was simply to patch the functions to make the tests pass.
As discuss Timelock will be removed in a dedicated PR
|
Are we sure we want to set |
… storing account balance in a variable
… adding new escrow facets
…ying balance retrieval
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 28 out of 28 changed files in this pull request and generated no new comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…to streamline deployment by consolidating migration checks into _mintCreate function. This change enhances backward compatibility and prepares for future updates.
…aset structures, update function signatures, and enhance clarity by removing outdated interfaces. This update includes the addition of new methods for managing categories, datasets, and worker pools, ensuring better organization and maintainability.
Co-authored-by: Zied Guesmi <[email protected]>
Co-authored-by: Zied Guesmi <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 28 out of 28 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…nd WorkerpoolRegistry to improve readability by directly returning the result of the _mintCreate function, eliminating intermediate variables.
…es, enhancing clarity and maintainability. This update introduces new methods for interacting with PoCo contracts, updates function signatures, and ensures backward compatibility with existing SDK references.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 24 out of 24 changed files in this pull request and generated 3 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well done!
|
To not be merged yet! |
Gas Study