IAccessControl

Git Source

Unified interface for access control functionality across all factory diamonds

Provides standardized access control functions that all factories should implement

Functions

initializeAccessControl

Initialize the access control with a global access manager

function initializeAccessControl(address globalAccessManager) external;

Parameters

Name
Type
Description

globalAccessManager

address

The address of the global access manager

updateAccessManager

Update the access manager

function updateAccessManager(address newManager) external;

Parameters

Name
Type
Description

newManager

address

The new access manager address

getAccessManager

Get the current access manager

function getAccessManager() external view returns (address);

Returns

Name
Type
Description

<none>

address

The address of the current access manager

hasRole

Check if an address has a specific role

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

Parameters

Name
Type
Description

account

address

The address to check

role

uint64

The role to check for

Returns

Name
Type
Description

<none>

bool

True if the account has the role

isAuthorized

Check if the caller is authorized for a specific function

function isAuthorized(bytes4 functionSig) external view returns (bool);

Parameters

Name
Type
Description

functionSig

bytes4

The function signature to check

Returns

Name
Type
Description

<none>

bool

True if the caller is authorized

pause

Pause the factory, preventing new deployments

function pause() external;

unpause

Unpause the factory, allowing new deployments

function unpause() external;

paused

Check if the factory is paused

function paused() external view returns (bool);

Returns

Name
Type
Description

<none>

bool

True if the factory is paused

emergencyStop

Activate emergency stop, halting all operations

function emergencyStop() external;

liftEmergencyStop

Lift emergency stop, resuming normal operations

function liftEmergencyStop() external;

emergencyStoppedState

Check if emergency stop is active

function emergencyStoppedState() external view returns (bool isEmergencyStopped);

Returns

Name
Type
Description

isEmergencyStopped

bool

True if emergency stop is active

requireRestricted

Require that the caller is authorized

This is exposed as a function so other facets can use it

function requireRestricted() external view;

requireNotEmergencyStopped

Require that emergency stop is not active

This is exposed as a function so other facets can use it

function requireNotEmergencyStopped() external view;

Events

AccessManagerUpdated

event AccessManagerUpdated(address indexed oldManager, address indexed newManager);

EmergencyStop

event EmergencyStop(address indexed account);

EmergencyStopLifted

event EmergencyStopLifted(address indexed account);

Last updated

Was this helpful?