-
Notifications
You must be signed in to change notification settings - Fork 12k
Minimize Interface Pragmas #5649
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: master
Are you sure you want to change the base?
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.
Copilot reviewed 25 out of 45 changed files in this pull request and generated no comments.
Files not reviewed (20)
- contracts/governance/utils/IVotes.sol: Language not supported
- contracts/interfaces/IERC1155.sol: Language not supported
- contracts/interfaces/IERC1155MetadataURI.sol: Language not supported
- contracts/interfaces/IERC1155Receiver.sol: Language not supported
- contracts/interfaces/IERC1271.sol: Language not supported
- contracts/interfaces/IERC1363.sol: Language not supported
- contracts/interfaces/IERC1363Receiver.sol: Language not supported
- contracts/interfaces/IERC1363Spender.sol: Language not supported
- contracts/interfaces/IERC165.sol: Language not supported
- contracts/interfaces/IERC1820Implementer.sol: Language not supported
- contracts/interfaces/IERC1820Registry.sol: Language not supported
- contracts/interfaces/IERC1967.sol: Language not supported
- contracts/interfaces/IERC20.sol: Language not supported
- contracts/interfaces/IERC20Metadata.sol: Language not supported
- contracts/interfaces/IERC2309.sol: Language not supported
- contracts/interfaces/IERC2612.sol: Language not supported
- contracts/interfaces/IERC2981.sol: Language not supported
- contracts/interfaces/IERC3156.sol: Language not supported
- contracts/interfaces/IERC3156FlashBorrower.sol: Language not supported
- contracts/interfaces/IERC3156FlashLender.sol: Language not supported
The pragmas specified on interfaces are generally way more restrictive than necessary. Given that interfaces don't actually have any related bytecode, we just need to ensure that an interface can compile with lower solc versions--we should set the pragmas to be as permissive as possible to allow consumers to use the interfaces in as many ways as possible.
Note: this script ignores draft interfaces and may error on non-draft files with multiple interfaces defined in them.