Skip to main content

ROLESv1

Git Source

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_);