ROLESv1
Inherits: Module
State Variables
hasRole
Mapping for if an address has a policy-defined role.
mapping(address => mapping(bytes32 => bool)) public hasRole;
Functions
saveRole
Function to grant policy-defined roles to some address. Can only be called by admin.
function saveRole(bytes32 role_, address addr_) external virtual;
removeRole
Function to revoke policy-defined roles from some address. Can only be called by admin.
function removeRole(bytes32 role_, address addr_) external virtual;
requireRole
"Modifier" to restrict policy function access to certain addresses with a role.
Roles are defined in the policy and granted by the ROLES admin.
function requireRole(bytes32 role_, address caller_) external virtual;
ensureValidRole
Function that checks if role is valid (all lower case)
function ensureValidRole(bytes32 role_) external pure virtual;
Events
RoleGranted
event RoleGranted(bytes32 indexed role_, address indexed addr_);
RoleRevoked
event RoleRevoked(bytes32 indexed role_, address indexed addr_);
Errors
ROLES_InvalidRole
error ROLES_InvalidRole(bytes32 role_);
ROLES_RequireRole
error ROLES_RequireRole(bytes32 role_);
ROLES_AddressAlreadyHasRole
error ROLES_AddressAlreadyHasRole(address addr_, bytes32 role_);
ROLES_AddressDoesNotHaveRole
error ROLES_AddressDoesNotHaveRole(address addr_, bytes32 role_);
ROLES_RoleDoesNotExist
error ROLES_RoleDoesNotExist(bytes32 role_);