* switch to using Context internally
* add context import
* Add smoke test to make sure enabling GSN support works
* Update test/GSN/ERC721GSNRecipientMock.test.js
Co-Authored-By: Francisco Giordano <frangio.1@gmail.com>
* Upgrade truffle
* add missing awaits
* Revert "Upgrade truffle"
This reverts commit f9b0ba9019.
75 lines
2.0 KiB
Solidity
75 lines
2.0 KiB
Solidity
pragma solidity ^0.5.0;
|
|
|
|
import "../GSN/Context.sol";
|
|
import "../access/roles/PauserRole.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.
|
|
*/
|
|
contract Pausable is Context, PauserRole {
|
|
/**
|
|
* @dev Emitted when the pause is triggered by a pauser (`account`).
|
|
*/
|
|
event Paused(address account);
|
|
|
|
/**
|
|
* @dev Emitted when the pause is lifted by a pauser (`account`).
|
|
*/
|
|
event Unpaused(address account);
|
|
|
|
bool private _paused;
|
|
|
|
/**
|
|
* @dev Initializes the contract in unpaused state. Assigns the Pauser role
|
|
* to the deployer.
|
|
*/
|
|
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.
|
|
*/
|
|
modifier whenNotPaused() {
|
|
require(!_paused, "Pausable: paused");
|
|
_;
|
|
}
|
|
|
|
/**
|
|
* @dev Modifier to make a function callable only when the contract is paused.
|
|
*/
|
|
modifier whenPaused() {
|
|
require(_paused, "Pausable: not paused");
|
|
_;
|
|
}
|
|
|
|
/**
|
|
* @dev Called by a pauser to pause, triggers stopped state.
|
|
*/
|
|
function pause() public onlyPauser whenNotPaused {
|
|
_paused = true;
|
|
emit Paused(_msgSender());
|
|
}
|
|
|
|
/**
|
|
* @dev Called by a pauser to unpause, returns to normal state.
|
|
*/
|
|
function unpause() public onlyPauser whenPaused {
|
|
_paused = false;
|
|
emit Unpaused(_msgSender());
|
|
}
|
|
}
|