diff options
Diffstat (limited to 'test/compilationTests/zeppelin/lifecycle/Pausable.sol')
-rw-r--r-- | test/compilationTests/zeppelin/lifecycle/Pausable.sol | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/test/compilationTests/zeppelin/lifecycle/Pausable.sol b/test/compilationTests/zeppelin/lifecycle/Pausable.sol new file mode 100644 index 00000000..b14f8767 --- /dev/null +++ b/test/compilationTests/zeppelin/lifecycle/Pausable.sol @@ -0,0 +1,51 @@ +pragma solidity ^0.4.11; + + +import "../ownership/Ownable.sol"; + + +/** + * @title Pausable + * @dev Base contract which allows children to implement an emergency stop mechanism. + */ +contract Pausable is Ownable { + event Pause(); + event Unpause(); + + bool public paused = false; + + + /** + * @dev modifier to allow actions only when the contract IS paused + */ + modifier whenNotPaused() { + if (paused) throw; + _; + } + + /** + * @dev modifier to allow actions only when the contract IS NOT paused + */ + modifier whenPaused { + if (!paused) throw; + _; + } + + /** + * @dev called by the owner to pause, triggers stopped state + */ + function pause() onlyOwner whenNotPaused returns (bool) { + paused = true; + Pause(); + return true; + } + + /** + * @dev called by the owner to unpause, returns to normal state + */ + function unpause() onlyOwner whenPaused returns (bool) { + paused = false; + Unpause(); + return true; + } +} |