aboutsummaryrefslogtreecommitdiffstats
path: root/test/compilationTests/zeppelin/token/MintableToken.sol
diff options
context:
space:
mode:
Diffstat (limited to 'test/compilationTests/zeppelin/token/MintableToken.sol')
-rw-r--r--test/compilationTests/zeppelin/token/MintableToken.sol50
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;
+ }
+}