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