-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathAccessManager.sol
More file actions
26 lines (20 loc) · 840 Bytes
/
AccessManager.sol
File metadata and controls
26 lines (20 loc) · 840 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.30;
import "@openzeppelin/contracts/access/AccessControl.sol";
import "./Roles.sol";
contract AccessManager is AccessControl {
using Roles for bytes32;
constructor() {
_grantRole(DEFAULT_ADMIN_ROLE, msg.sender);
_setRoleAdmin(Roles.MULTISIG_ADMIN_ROLE, DEFAULT_ADMIN_ROLE);
}
function addMultisigAdmin(address _multisigAdmin) external onlyRole(DEFAULT_ADMIN_ROLE) {
_grantRole(Roles.MULTISIG_ADMIN_ROLE, _multisigAdmin);
}
function removeMultisigAdmin(address _multisigAdmin) external onlyRole(DEFAULT_ADMIN_ROLE) {
_revokeRole(Roles.MULTISIG_ADMIN_ROLE, _multisigAdmin);
}
function isMultisigAdmin(address _address) external view returns (bool) {
return hasRole(Roles.MULTISIG_ADMIN_ROLE, _address);
}
}