123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- // SPDX-License-Identifier: MIT
- // OpenZeppelin Contracts (last updated v4.7.0) (security/Pausable.sol)
- pragma solidity ^0.8.0;
- import "../utils/Context.sol";
- /**
- * @dev Contract module which allows children to implement an emergency stop
- * mechanism that can be triggered by an authorized account.
- *
- * This module is used through inheritance. It will make available the
- * modifiers `whenNotPaused` and `whenPaused`, which can be applied to
- * the functions of your contract. Note that they will not be pausable by
- * simply including this module, only once the modifiers are put in place.
- */
- abstract contract Pausable is Context {
- /**
- * @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() {
- _paused = false;
- }
- /**
- * @dev Modifier to make a function callable only when the contract is not paused.
- *
- * Requirements:
- *
- * - The contract must not be paused.
- */
- modifier whenNotPaused() {
- _requireNotPaused();
- _;
- }
- /**
- * @dev Modifier to make a function callable only when the contract is paused.
- *
- * Requirements:
- *
- * - The contract must be paused.
- */
- modifier whenPaused() {
- _requirePaused();
- _;
- }
- /**
- * @dev Returns true if the contract is paused, and false otherwise.
- */
- function paused() public view virtual returns (bool) {
- return _paused;
- }
- /**
- * @dev Throws if the contract is paused.
- */
- function _requireNotPaused() internal view virtual {
- require(!paused(), "Pausable: paused");
- }
- /**
- * @dev Throws if the contract is not paused.
- */
- function _requirePaused() internal view virtual {
- 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(_msgSender());
- }
- /**
- * @dev Returns to normal state.
- *
- * Requirements:
- *
- * - The contract must be paused.
- */
- function _unpause() internal virtual whenPaused {
- _paused = false;
- emit Unpaused(_msgSender());
- }
- }
|