96 lines
2.1 KiB
Solidity
96 lines
2.1 KiB
Solidity
// SPDX-License-Identifier: MIT
|
|
|
|
pragma solidity 0.6.12;
|
|
|
|
|
|
/**
|
|
* @dev Contract module which allows children to implement an emergency stop
|
|
* mechanism that can be triggered by an authorized account.
|
|
*
|
|
* This is a stripped down version of Open zeppelin's Pausable contract.
|
|
* https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/EnumerableSet.sol
|
|
*
|
|
*/
|
|
contract Pausable {
|
|
/**
|
|
* @dev Emitted when the pause is triggered by `account`.
|
|
*/
|
|
event Paused(address account);
|
|
|
|
/**
|
|
* @dev Emitted when the pause is lifted by `account`.
|
|
*/
|
|
event Unpaused(address account);
|
|
|
|
bool private _paused;
|
|
|
|
/**
|
|
* @dev Initializes the contract in unpaused state.
|
|
*/
|
|
constructor () internal {
|
|
_paused = false;
|
|
}
|
|
|
|
/**
|
|
* @dev Returns true if the contract is paused, and false otherwise.
|
|
*/
|
|
function paused() public view returns (bool) {
|
|
return _paused;
|
|
}
|
|
|
|
/**
|
|
* @dev Modifier to make a function callable only when the contract is not paused.
|
|
*
|
|
* Requirements:
|
|
*
|
|
* - The contract must not be paused.
|
|
*/
|
|
modifier whenNotPaused() {
|
|
_whenNotPaused();
|
|
_;
|
|
}
|
|
|
|
function _whenNotPaused() private view {
|
|
require(!_paused, "Pausable: paused");
|
|
}
|
|
|
|
/**
|
|
* @dev Modifier to make a function callable only when the contract is not paused.
|
|
*
|
|
* Requirements:
|
|
*
|
|
* - The contract must not be paused.
|
|
*/
|
|
modifier whenPaused() {
|
|
_whenPaused();
|
|
_;
|
|
}
|
|
|
|
function _whenPaused() private view {
|
|
require(_paused, "Pausable: not paused");
|
|
}
|
|
|
|
/**
|
|
* @dev Triggers stopped state.
|
|
*
|
|
* Requirements:
|
|
*
|
|
* - The contract must not be paused.
|
|
*/
|
|
function _pause() internal virtual whenNotPaused {
|
|
_paused = true;
|
|
emit Paused(msg.sender);
|
|
}
|
|
|
|
/**
|
|
* @dev Returns to normal state.
|
|
*
|
|
* Requirements:
|
|
*
|
|
* - The contract must be paused.
|
|
*/
|
|
function _unpause() internal virtual whenPaused {
|
|
_paused = false;
|
|
emit Unpaused(msg.sender);
|
|
}
|
|
} |