solidity/test/compilationTests/zeppelin/crowdsale/CappedCrowdsale.sol

34 lines
848 B
Solidity
Raw Normal View History

2017-07-05 10:28:15 +00:00
pragma solidity ^0.4.11;
import '../math/SafeMath.sol';
import './Crowdsale.sol';
/**
* @title CappedCrowdsale
* @dev Extension of Crowsdale with a max amount of funds raised
*/
contract CappedCrowdsale is Crowdsale {
using SafeMath for uint256;
uint256 public cap;
constructor(uint256 _cap) {
2017-07-05 10:28:15 +00:00
cap = _cap;
}
// overriding Crowdsale#validPurchase to add extra cap logic
// @return true if investors can buy at the moment
2018-07-02 09:14:28 +00:00
function validPurchase() internal view returns (bool) {
2017-07-05 10:28:15 +00:00
bool withinCap = weiRaised.add(msg.value) <= cap;
return super.validPurchase() && withinCap;
}
// overriding Crowdsale#hasEnded to add cap logic
// @return true if crowdsale event has ended
2018-07-02 09:14:28 +00:00
function hasEnded() public view returns (bool) {
2017-07-05 10:28:15 +00:00
bool capReached = weiRaised >= cap;
return super.hasEnded() || capReached;
}
}