IAccessControl
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
globalAccessManager
address
The address of the global access manager
updateAccessManager
Update the access manager
function updateAccessManager(address newManager) external;
Parameters
newManager
address
The new access manager address
getAccessManager
Get the current access manager
function getAccessManager() external view returns (address);
Returns
<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
account
address
The address to check
role
uint64
The role to check for
Returns
<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
functionSig
bytes4
The function signature to check
Returns
<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
<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
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?