Access Management
Overview
Architecture
Core Components
1. ProtocolAccessManager
contract ProtocolAccessManager is AccessManager {
// Role definitions
bytes32 public constant ADMIN_ROLE = 0x00;
bytes32 public constant POOL_ADMIN_ROLE = keccak256("POOL_ADMIN_ROLE");
bytes32 public constant ORACLE_ADMIN_ROLE = keccak256("ORACLE_ADMIN_ROLE");
bytes32 public constant VAULT_ADMIN_ROLE = keccak256("VAULT_ADMIN_ROLE");
bytes32 public constant LIQUIDATOR_ROLE = keccak256("LIQUIDATOR_ROLE");
bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE");
bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE");
bytes32 public constant EMERGENCY_ROLE = keccak256("EMERGENCY_ROLE");
}2. AccessManagedUpgradeable
Access Control Flow
Role Definitions
1. ADMIN_ROLE (Root Admin)
2. POOL_ADMIN_ROLE
3. ORACLE_ADMIN_ROLE
4. VAULT_ADMIN_ROLE
5. LIQUIDATOR_ROLE
6. MINTER_ROLE
7. PAUSER_ROLE
8. EMERGENCY_ROLE
Time-Delayed Execution
Timelock Mechanism
Delayed Operation Types
1. Administrative Changes (2 days)
2. Configuration Changes (1 day)
3. Emergency Operations (6 hours)
Execution Process
Multi-Signature Integration
Primary Multisig Configuration
Multisig Operations
Governance Integration
DAO Governance (Future)
Governance Process
Security Features
Role Separation
Cross-Role Validation
Audit Trail
Access Control Best Practices
1. Least Privilege Principle
2. Role Rotation
3. Monitoring and Alerting
Emergency Procedures
Emergency Response Levels
Level 1: Asset Pause
Level 2: Protocol Pause
Level 3: Full Emergency
Emergency Roles Activation
Role Management Interface
Granting Roles
Revoking Roles
Last updated