123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- pragma solidity ^0.5.2;
- import "../access/roles/PauserRole.sol";
- /**
- * @title Pausable
- * @dev Base contract which allows children to implement an emergency stop mechanism.
- */
- contract Pausable is PauserRole {
- event Paused(address account);
- event Unpaused(address account);
- bool private _paused;
- constructor () internal {
- _paused = false;
- }
- /**
- * @return True if the contract is paused, false otherwise.
- */
- function paused() public view returns (bool) {
- return _paused;
- }
- /**
- * @dev Modifier to make a function callable only when the contract is not paused.
- */
- modifier whenNotPaused() {
- require(!_paused);
- _;
- }
- /**
- * @dev Modifier to make a function callable only when the contract is paused.
- */
- modifier whenPaused() {
- require(_paused);
- _;
- }
- /**
- * @dev Called by a pauser to pause, triggers stopped state.
- */
- function pause() public onlyPauser whenNotPaused {
- _paused = true;
- emit Paused(msg.sender);
- }
- /**
- * @dev Called by a pauser to unpause, returns to normal state.
- */
- function unpause() public onlyPauser whenPaused {
- _paused = false;
- emit Unpaused(msg.sender);
- }
- }
|