mirror of https://github.com/embarklabs/embark.git
47 lines
1.1 KiB
Solidity
47 lines
1.1 KiB
Solidity
|
pragma solidity >=0.5.0 <0.6.0;
|
||
|
|
||
|
import "./Ownable.sol";
|
||
|
|
||
|
/**
|
||
|
* @title Pausable
|
||
|
* @dev Makes contract functions pausable by the owner
|
||
|
*/
|
||
|
contract Pausable is Ownable {
|
||
|
|
||
|
event Paused();
|
||
|
event Unpaused();
|
||
|
|
||
|
bool public paused;
|
||
|
|
||
|
constructor () internal {
|
||
|
paused = false;
|
||
|
}
|
||
|
|
||
|
modifier whenNotPaused() {
|
||
|
require(!paused, "Contract must be unpaused");
|
||
|
_;
|
||
|
}
|
||
|
|
||
|
modifier whenPaused() {
|
||
|
require(paused, "Contract must be paused");
|
||
|
_;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @dev Disables contract functions marked with "whenNotPaused" and enables the use of functions marked with "whenPaused"
|
||
|
* Only the owner of the contract can invoke this function
|
||
|
*/
|
||
|
function pause() external onlyOwner whenNotPaused {
|
||
|
paused = true;
|
||
|
emit Paused();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @dev Enables contract functions marked with "whenNotPaused" and disables the use of functions marked with "whenPaused"
|
||
|
* Only the owner of the contract can invoke this function
|
||
|
*/
|
||
|
function unpause() external onlyOwner whenPaused {
|
||
|
paused = false;
|
||
|
emit Unpaused();
|
||
|
}
|
||
|
}
|