IAuthorizer_v1.sol

Git Source

Inherits: IAccessControlEnumerable

Functions

checkForRole

Checks whether an address holds the required role to execute the current transaction.

The calling contract needs to generate the right role ID using its own address and the role identifier. In modules, this function should be used instead of hasRole, as there are Authorizer-specific checks that need to be performed.

function checkForRole(bytes32 role, address who) external view returns (bool);

Parameters

Name
Type
Description

role

bytes32

The identifier of the role we want to check

who

address

The address on which to perform the check.

Returns

Name
Type
Description

<none>

bool

bool Returns if the address holds the role

generateRoleId

Helper function to generate a bytes32 role hash for a module role.

function generateRoleId(address module, bytes32 role)
    external
    pure
    returns (bytes32);

Parameters

Name
Type
Description

module

address

The address of the module to generate the hash for.

role

bytes32

The ID number of the role to generate the hash for.

Returns

Name
Type
Description

<none>

bytes32

bytes32 Returns the generated role hash.

grantRoleFromModule

Used by a Module to grant a role to a user.

function grantRoleFromModule(bytes32 role, address target) external;

Parameters

Name
Type
Description

role

bytes32

The identifier of the role to grant.

target

address

The address to which to grant the role.

grantRoleFromModuleBatched

Used by a Module to grant a role to a set of users.

function grantRoleFromModuleBatched(bytes32 role, address[] calldata targets)
    external;

Parameters

Name
Type
Description

role

bytes32

The identifier of the role to grant.

targets

address[]

The addresses to which to grant the role.

revokeRoleFromModule

Used by a Module to revoke a role from a user.

function revokeRoleFromModule(bytes32 role, address target) external;

Parameters

Name
Type
Description

role

bytes32

The identifier of the role to revoke.

target

address

The address to revoke the role from.

revokeRoleFromModuleBatched

Used by a Module to revoke a role from a set of users.

function revokeRoleFromModuleBatched(bytes32 role, address[] calldata targets)
    external;

Parameters

Name
Type
Description

role

bytes32

The identifier of the role to revoke.

targets

address[]

The address to revoke the role from.

transferAdminRole

Transfer the admin rights to a given role.

function transferAdminRole(bytes32 roleId, bytes32 newAdmin) external;

Parameters

Name
Type
Description

roleId

bytes32

The role on which to peform the admin transfer.

newAdmin

bytes32

The new role to which to transfer admin access to.

burnAdminFromModuleRole

Irreversibly burns the admin of a given role.

The module itself can still grant and revoke it's own roles. This only burns third-party access to the role.

function burnAdminFromModuleRole(bytes32 role) external;

Parameters

Name
Type
Description

role

bytes32

The role to remove admin access from.

grantGlobalRole

Grants a global role to a target.

Only the addresses with the Admin role should be able to call this function.

function grantGlobalRole(bytes32 role, address target) external;

Parameters

Name
Type
Description

role

bytes32

The role to grant.

target

address

The address to grant the role to.

grantGlobalRoleBatched

Grants a global role to a set of targets.

Only the addresses with the Admin role should be able to call this function.

function grantGlobalRoleBatched(bytes32 role, address[] calldata targets)
    external;

Parameters

Name
Type
Description

role

bytes32

The role to grant.

targets

address[]

The addresses to grant the role to.

revokeGlobalRole

Revokes a global role from a target.

Only the addresses with the Admin role should be able to call this function.

function revokeGlobalRole(bytes32 role, address target) external;

Parameters

Name
Type
Description

role

bytes32

The role to grant.

target

address

The address to grant the role to.

revokeGlobalRoleBatched

Revokes a global role from a set of targets.

Only the addresses with the Admin role should be able to call this function.

function revokeGlobalRoleBatched(bytes32 role, address[] calldata targets)
    external;

Parameters

Name
Type
Description

role

bytes32

The role to grant.

targets

address[]

The addresses to grant the role to.

getAdminRole

Returns the role ID of the admin role.

function getAdminRole() external view returns (bytes32);

Returns

Name
Type
Description

<none>

bytes32

The role ID.

Errors

Module__Authorizer__NotActiveModule

The function is only callable by an active Module.

error Module__Authorizer__NotActiveModule(address module);

Parameters

Name
Type
Description

module

address

The address of the module.

Module__Authorizer__ModuleNotSelfManaged

The function is only callable if the Module is self-managing its roles.

error Module__Authorizer__ModuleNotSelfManaged();

Module__Authorizer__AdminRoleCannotBeEmpty

There always needs to be at least one admin.

error Module__Authorizer__AdminRoleCannotBeEmpty();

Module__Authorizer__OrchestratorCannotHaveAdminRole

The orchestrator cannot own itself.

error Module__Authorizer__OrchestratorCannotHaveAdminRole();

Module__Authorizer__InvalidInitialAdmin

The provided initial admin address is invalid.

error Module__Authorizer__InvalidInitialAdmin();

Last updated