Redesigning Access Control for the OpenZeppelin Contracts

Great job @nventuro, I like how you have simplified a lot of my preconceptions, and using 0x0 as the default admin role id is a very elegant touch.

My only comment at this point is that renounceRole might not be something that everyone wants. I can’t see many use cases in which a user might want to renounce a role (now that we don’t have transfer), and I think this might result mostly in unwanted use that leads to request admins to grant the role back.

I’ve got some concerns about getRoleMember(), but they relate to EnumerableSet so I’ve opened a different topic for that one.

I’ll try AccessControl as the base for a number of my contracts, and revert back if I have more feedback.

Enjoy your holidays!

1 Like