ERC725Alliance / ERC725

Repository for code and discussion around ERC725 and related standards
Apache License 2.0
127 stars 66 forks source link

refactor!: remove `Core` contracts and `OwnableUnset` #253

Closed CJ42 closed 1 month ago

CJ42 commented 2 months ago

What does this PR introduce?

This PR is a big ♻️ refactor that aims to help simplifying the overall inheritance of the ERC725 contracts and any contract that inherit them.

⚠️ BREAKING CHANGES

OwnableUnset is a bad architectural choice because it is an inheritance fork of Ownable from OpenZeppelin. This creates friction when inheriting these contracts with other contracts from OpenZeppelin that also inherit from Ownable or OwnableUpradeable. For instance, compiler errors around which event to pick, etc... (screenshots below)

To create less frictions, use the Ownable and OwnableUpgradeable from OZ in the ERC725 inheritance. This makes the inheritance graph easier and simpler. Other child contracts can then re-derive from the same AST node in the inheritance tree

Also note that OwnableUnset is barely used at all anywhere in eth ecosystem.

📦 Build

Contract Size Difference

image

PR Checklist