Meta Issue: Planned breaking changes for new major (5.0) #2961
Closed
Description
Here is a list of breaking changes that we would like to include in the next major release. Timming for this release is not yet known.
- Solidity 0.8.4 Custom Errors #2839
- [5.0.0 Breaking change] Using user defined value type for timers #2962
Fix data packing with nested structures smaller than one slot. In particular, theGovernor.ProposalCore
structure is not effectively packed. We might remove theTimers
struct in exchange for alias touint64
. - Include address(this) when computing Governor proposal ids #3926
- Use diamond storage instead of gaps in upgradeable contracts #2964
- Don't rename interfaces IWhatever -> IWhateverUpgradeable #3928
- Make some contract libraries (ERC1967)
- Make some storage values constant (see 712)
- Make ERC20Votes independent from ERC20Permit #3816
- New abstractions for better nonce system #3927
- Replace
abi.encodeWithSelector
byabi.encodeCall
#3693