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 |