1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- pragma solidity ^0.5.0;
- import "../../GSN/Context.sol";
- import "../Roles.sol";
- contract PauserRole is Context {
- using Roles for Roles.Role;
- event PauserAdded(address indexed account);
- event PauserRemoved(address indexed account);
- Roles.Role private _pausers;
- constructor () internal {
- _addPauser(_msgSender());
- }
- modifier onlyPauser() {
- require(isPauser(_msgSender()), "PauserRole: caller does not have the Pauser role");
- _;
- }
- function isPauser(address account) public view returns (bool) {
- return _pausers.has(account);
- }
- function addPauser(address account) public onlyPauser {
- _addPauser(account);
- }
- function renouncePauser() public {
- _removePauser(_msgSender());
- }
- function _addPauser(address account) internal {
- _pausers.add(account);
- emit PauserAdded(account);
- }
- function _removePauser(address account) internal {
- _pausers.remove(account);
- emit PauserRemoved(account);
- }
- }
|