IAccessControl
View Source: contracts/interfaces/IAccessControl.sol
IAccessControl
Functions
- hasRole(bytes32 role, address account)
- getRoleAdmin(bytes32 role)
- grantRole(bytes32 role, address account)
- revokeRole(bytes32 role, address account)
- renounceRole(bytes32 role, address account)
hasRole
Returns true
if account
has been granted role
.
function hasRole(bytes32 role,
address account)
external
view
returns(bool)
Arguments
Name | Type | Description |
---|---|---|
role | bytes32 | |
account | address |
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
Name | Type | Description |
---|---|---|
role | bytes32 |
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
Name | Type | Description |
---|---|---|
role | bytes32 | |
account | address |
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
Name | Type | Description |
---|---|---|
role | bytes32 | |
account | address |
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
Name | Type | Description |
---|---|---|
role | bytes32 | |
account | address |
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
Name | Type | Description |
---|---|---|
role | bytes32 | |
previousAdminRole | bytes32 | |
newAdminRole | bytes32 |
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
Name | Type | Description |
---|---|---|
role | bytes32 | |
account | address | |
sender | address |
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
Name | Type | Description |
---|---|---|
role | bytes32 | |
account | address | |
sender | address |