FinalizableCrowdsale.sol 825 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. pragma solidity ^0.4.11;
  2. import '../math/SafeMath.sol';
  3. import '../ownership/Ownable.sol';
  4. import './Crowdsale.sol';
  5. /**
  6. * @title FinalizableCrowdsale
  7. * @dev Extension of Crowsdale where an owner can do extra work
  8. * after finishing. By default, it will end token minting.
  9. */
  10. contract FinalizableCrowdsale is Crowdsale, Ownable {
  11. using SafeMath for uint256;
  12. bool public isFinalized = false;
  13. event Finalized();
  14. // should be called after crowdsale ends, to do
  15. // some extra finalization work
  16. function finalize() onlyOwner {
  17. require(!isFinalized);
  18. require(hasEnded());
  19. finalization();
  20. Finalized();
  21. isFinalized = true;
  22. }
  23. // end token minting on finalization
  24. // override this with custom logic if needed
  25. function finalization() internal {
  26. token.finishMinting();
  27. }
  28. }