MellowACL is a lightweight but extendable access control layer that wraps OpenZeppelin’s AccessControlEnumerableUpgradeable. It introduces automatic tracking and enumeration of active roles to improve governance transparency.
This contract is intended to be inherited by modules that require dynamic role management and storage-isolated initialization.
Responsibilities
Grant and revoke access control roles to addresses
Keep track of all active (i.e., assigned) roles in a dedicated set
Expose enumerable functions for external auditing of granted roles
Emit structured events when roles are added or fully revoked
Revokes the specified role from an account. If the role has no remaining members afterward, it is removed from supportedRoles, and RoleRemoved is emitted.
Inherits from AccessControlUpgradeable._revokeRole
Emits:
Constructor
Computes a deterministic storage slot using SlotLibrary
Disables initializer to prevent accidental direct deployment
Should be initialized later via proxy-aware module constructor
Events
event RoleAdded(bytes32 indexed role)
Emitted when a new role is introduced into the system
event RoleRemoved(bytes32 indexed role)
Emitted when the last holder of a role is revoked and the role becomes inactive