12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- pragma solidity ^0.4.21;
- import "../../math/SafeMath.sol";
- import "../Crowdsale.sol";
- /**
- * @title TimedCrowdsale
- * @dev Crowdsale accepting contributions only within a time frame.
- */
- contract TimedCrowdsale is Crowdsale {
- using SafeMath for uint256;
- uint256 public openingTime;
- uint256 public closingTime;
- /**
- * @dev Reverts if not in crowdsale time range.
- */
- modifier onlyWhileOpen {
- // solium-disable-next-line security/no-block-members
- require(block.timestamp >= openingTime && block.timestamp <= closingTime);
- _;
- }
- /**
- * @dev Constructor, takes crowdsale opening and closing times.
- * @param _openingTime Crowdsale opening time
- * @param _closingTime Crowdsale closing time
- */
- function TimedCrowdsale(uint256 _openingTime, uint256 _closingTime) public {
- // solium-disable-next-line security/no-block-members
- require(_openingTime >= block.timestamp);
- require(_closingTime >= _openingTime);
- openingTime = _openingTime;
- closingTime = _closingTime;
- }
- /**
- * @dev Checks whether the period in which the crowdsale is open has already elapsed.
- * @return Whether crowdsale period has elapsed
- */
- function hasClosed() public view returns (bool) {
- // solium-disable-next-line security/no-block-members
- return block.timestamp > closingTime;
- }
- /**
- * @dev Extend parent behavior requiring to be within contributing period
- * @param _beneficiary Token purchaser
- * @param _weiAmount Amount of wei contributed
- */
- function _preValidatePurchase(address _beneficiary, uint256 _weiAmount) internal onlyWhileOpen {
- super._preValidatePurchase(_beneficiary, _weiAmount);
- }
- }
|