CappedToken.sol 717 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. pragma solidity ^0.4.23;
  2. import "./MintableToken.sol";
  3. /**
  4. * @title Capped token
  5. * @dev Mintable token with a token cap.
  6. */
  7. contract CappedToken is MintableToken {
  8. uint256 public cap;
  9. constructor(uint256 _cap) public {
  10. require(_cap > 0);
  11. cap = _cap;
  12. }
  13. /**
  14. * @dev Function to mint tokens
  15. * @param _to The address that will receive the minted tokens.
  16. * @param _amount The amount of tokens to mint.
  17. * @return A boolean that indicates if the operation was successful.
  18. */
  19. function mint(
  20. address _to,
  21. uint256 _amount
  22. )
  23. onlyOwner
  24. canMint
  25. public
  26. returns (bool)
  27. {
  28. require(totalSupply_.add(_amount) <= cap);
  29. return super.mint(_to, _amount);
  30. }
  31. }