diff options
Diffstat (limited to 'test/compilationTests/zeppelin/token/MintableToken.sol')
-rw-r--r-- | test/compilationTests/zeppelin/token/MintableToken.sol | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/test/compilationTests/zeppelin/token/MintableToken.sol b/test/compilationTests/zeppelin/token/MintableToken.sol new file mode 100644 index 00000000..505d13c3 --- /dev/null +++ b/test/compilationTests/zeppelin/token/MintableToken.sol @@ -0,0 +1,50 @@ +pragma solidity ^0.4.11; + + +import './StandardToken.sol'; +import '../ownership/Ownable.sol'; + + + +/** + * @title Mintable token + * @dev Simple ERC20 Token example, with mintable token creation + * @dev Issue: * https://github.com/OpenZeppelin/zeppelin-solidity/issues/120 + * Based on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol + */ + +contract MintableToken is StandardToken, Ownable { + event Mint(address indexed to, uint256 amount); + event MintFinished(); + + bool public mintingFinished = false; + + + modifier canMint() { + if(mintingFinished) throw; + _; + } + + /** + * @dev Function to mint tokens + * @param _to The address that will recieve 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 returns (bool) { + totalSupply = totalSupply.add(_amount); + balances[_to] = balances[_to].add(_amount); + Mint(_to, _amount); + return true; + } + + /** + * @dev Function to stop minting new tokens. + * @return True if the operation was successful. + */ + function finishMinting() onlyOwner returns (bool) { + mintingFinished = true; + MintFinished(); + return true; + } +} |