mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Solidity
		
	
	
	
	
	
| 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;
 | |
|   }
 | |
| }
 |