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;

Parameters

NameTypeDescription
role_bytes32
addr_address

removeRole​

Function to revoke policy-defined roles from some address. Can only be called by admin.

function removeRole(bytes32 role_, address addr_) external virtual;

Parameters

NameTypeDescription
role_bytes32
addr_address

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;

Parameters

NameTypeDescription
role_bytes32
caller_address

ensureValidRole​

Function that checks if role is valid (all lower case)

function ensureValidRole(bytes32 role_) external pure virtual;

Parameters

NameTypeDescription
role_bytes32

Events​

RoleGranted​

event RoleGranted(bytes32 indexed role_, address indexed addr_);

Parameters

NameTypeDescription
role_bytes32
addr_address

RoleRevoked​

event RoleRevoked(bytes32 indexed role_, address indexed addr_);

Parameters

NameTypeDescription
role_bytes32
addr_address

Errors​

ROLES_InvalidRole​

error ROLES_InvalidRole(bytes32 role_);

Parameters

NameTypeDescription
role_bytes32

ROLES_RequireRole​

error ROLES_RequireRole(bytes32 role_);

Parameters

NameTypeDescription
role_bytes32

ROLES_AddressAlreadyHasRole​

error ROLES_AddressAlreadyHasRole(address addr_, bytes32 role_);

Parameters

NameTypeDescription
addr_address
role_bytes32

ROLES_AddressDoesNotHaveRole​

error ROLES_AddressDoesNotHaveRole(address addr_, bytes32 role_);

Parameters

NameTypeDescription
addr_address
role_bytes32

ROLES_RoleDoesNotExist​

error ROLES_RoleDoesNotExist(bytes32 role_);

Parameters

NameTypeDescription
role_bytes32