diff --git a/contracts/token/CappedToken.sol b/contracts/token/CappedToken.sol new file mode 100644 index 000000000..ff28f9aba --- /dev/null +++ b/contracts/token/CappedToken.sol @@ -0,0 +1,31 @@ +pragma solidity ^0.4.11; + +import './MintableToken.sol'; + +/** + * @title Capped token + * @dev Mintable token with a token cap. + */ + +contract CappedToken is MintableToken { + + uint256 public cap; + + function CappedToken(uint256 _cap) { + require(_cap > 0); + cap = _cap; + } + + /** + * @dev Function to mint tokens + * @param _to The address that will receive the minted tokens. + * @param _amount The amount of tokens to mint. + * @return A boolean that indicates if the operation was successful. + */ + function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) { + require(totalSupply.add(_amount) <= cap); + + return MintableToken.mint(_to, _amount); + } + +}