Skip to main content

IAccessControl

View Source: contracts/interfaces/IAccessControl.sol

IAccessControl

Functions​

hasRole​

Returns true if account has been granted role.

function hasRole(bytes32 role,
address account)
external
view
returns(bool)

Arguments

NameTypeDescription
rolebytes32
accountaddress

Returns

bool

getRoleAdmin​

Returns the admin role that controls role. See {grantRole} and
{revokeRole}.
To change a role's admin, use {AccessControl-_setRoleAdmin}.

function getRoleAdmin(bytes32 role) 
external
view
returns(bytes32)

Arguments

NameTypeDescription
rolebytes32

Returns

bytes32

grantRole​

Grants role to account.
If account had not been already granted role, emits a {RoleGranted}
event.
Requirements:
- the caller must have role's admin role.

function grantRole(bytes32 role,
address account)
external

Arguments

NameTypeDescription
rolebytes32
accountaddress

revokeRole​

Revokes role from account.
If account had been granted role, emits a {RoleRevoked} event.
Requirements:
- the caller must have role's admin role.

function revokeRole(bytes32 role,
address account)
external

Arguments

NameTypeDescription
rolebytes32
accountaddress

renounceRole​

Revokes role from the calling account.
Roles are often managed via {grantRole} and {revokeRole}: this function's
purpose is to provide a mechanism for accounts to lose their privileges
if they are compromised (such as when a trusted device is misplaced).
If the calling account had been granted role, emits a {RoleRevoked}
event.
Requirements:
- the caller must be account.

function renounceRole(bytes32 role,
address account)
external

Arguments

NameTypeDescription
rolebytes32
accountaddress

Events​

RoleAdminChanged​

Emitted when newAdminRole is set as role's admin role, replacing previousAdminRole
DEFAULT_ADMIN_ROLE is the starting admin for all roles, despite
{RoleAdminChanged} not being emitted signaling this.
Available since v3.1.

event RoleAdminChanged(
bytes32 indexed role
bytes32 indexed previousAdminRole
bytes32 indexed newAdminRole
)

Parameters

NameTypeDescription
rolebytes32
previousAdminRolebytes32
newAdminRolebytes32

RoleGranted​

Emitted when account is granted role.
sender is the account that originated the contract call, an admin role
bearer except when using {AccessControl-_setupRole}.

event RoleGranted(
bytes32 indexed role
address indexed account
address indexed sender
)

Parameters

NameTypeDescription
rolebytes32
accountaddress
senderaddress

RoleRevoked​

Emitted when account is revoked role.
sender is the account that originated the contract call:
- if using revokeRole, it is the admin role bearer
- if using renounceRole, it is the role bearer (i.e. account)

event RoleRevoked(
bytes32 indexed role
address indexed account
address indexed sender
)

Parameters

NameTypeDescription
rolebytes32
accountaddress
senderaddress