openzeppelin-contracts icon indicating copy to clipboard operation
openzeppelin-contracts copied to clipboard

Meta Issue: Planned breaking changes for new major (5.0)

Open Amxx opened this issue 4 years ago • 1 comments

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.

  • https://github.com/OpenZeppelin/openzeppelin-contracts/issues/2839
  • #2962 Fix data packing with nested structures smaller than one slot. In particular, the Governor.ProposalCore structure is not effectively packed. We might remove the Timers struct in exchange for alias to uint64.
  • Use address(this) in the computation of Governor's proposal ids
  • Change upgradeability for the current gap system to a "diamond storage" system
    • Only transpile contracts that include storage slots. All other contracts (interfaces/library should not be transpiled and should be fetched from the vanilla contract through a dependency
    • Make some contract libraries (ERC1967)
    • Make some storage values constant (see 712)
  • Use Votes in ERC20Votes
  • Have a multi-timeline "nounce" module, that can be used by Permit/Votes/...
  • https://github.com/OpenZeppelin/openzeppelin-contracts/issues/3693

Amxx avatar Nov 11 '21 13:11 Amxx

We should break this up into multiple issues except those that should be implemented and reviewed together.

We might just need the milestone to track these items instead of the meta issue.

frangio avatar Sep 16 '22 18:09 frangio

Most of these items have their own issues by now so I will close this issue.

The missing ones are:

  • Make some contract libraries (ERC1967)

We can't make ERC1967Upgrade into a library because it needs to emit events. I don't know if there are others like this.

  • Make some storage values constant (see 712)

Not sure exactly what this means. We do have https://github.com/OpenZeppelin/openzeppelin-contracts/issues/2538 and https://github.com/OpenZeppelin/openzeppelin-contracts/issues/2638, none of those are about EIP712.

frangio avatar Jan 04 '23 20:01 frangio