diff options
Diffstat (limited to 'test/compilationTests/zeppelin/LimitBalance.sol')
-rw-r--r-- | test/compilationTests/zeppelin/LimitBalance.sol | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/test/compilationTests/zeppelin/LimitBalance.sol b/test/compilationTests/zeppelin/LimitBalance.sol new file mode 100644 index 00000000..57477c74 --- /dev/null +++ b/test/compilationTests/zeppelin/LimitBalance.sol @@ -0,0 +1,33 @@ +pragma solidity ^0.4.11; + + +/** + * @title LimitBalance + * @dev Simple contract to limit the balance of child contract. + * @dev Note this doesn't prevent other contracts to send funds by using selfdestruct(address); + * @dev See: https://github.com/ConsenSys/smart-contract-best-practices#remember-that-ether-can-be-forcibly-sent-to-an-account + */ +contract LimitBalance { + + uint256 public limit; + + /** + * @dev Constructor that sets the passed value as a limit. + * @param _limit uint256 to represent the limit. + */ + function LimitBalance(uint256 _limit) { + limit = _limit; + } + + /** + * @dev Checks if limit was reached. Case true, it throws. + */ + modifier limitedPayable() { + if (this.balance > limit) { + throw; + } + _; + + } + +} |