mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			37 lines
		
	
	
		
			1020 B
		
	
	
	
		
			Solidity
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1020 B
		
	
	
	
		
			Solidity
		
	
	
	
	
	
| pragma solidity ^0.4.11;
 | |
| 
 | |
| 
 | |
| import "../ownership/Ownable.sol";
 | |
| import "../token/ERC20Basic.sol";
 | |
| 
 | |
| /** 
 | |
|  * @title TokenDestructible:
 | |
|  * @author Remco Bloemen <remco@2π.com>
 | |
|  * @dev Base contract that can be destroyed by owner. All funds in contract including
 | |
|  * listed tokens will be sent to the owner.
 | |
|  */
 | |
| contract TokenDestructible is Ownable {
 | |
| 
 | |
|   function TokenDestructible() payable { } 
 | |
| 
 | |
|   /** 
 | |
|    * @notice Terminate contract and refund to owner
 | |
|    * @param tokens List of addresses of ERC20 or ERC20Basic token contracts to
 | |
|    refund.
 | |
|    * @notice The called token contracts could try to re-enter this contract. Only
 | |
|    supply token contracts you trust.
 | |
|    */
 | |
|   function destroy(address[] tokens) onlyOwner {
 | |
| 
 | |
|     // Transfer tokens to owner
 | |
|     for(uint256 i = 0; i < tokens.length; i++) {
 | |
|       ERC20Basic token = ERC20Basic(tokens[i]);
 | |
|       uint256 balance = token.balanceOf(this);
 | |
|       token.transfer(owner, balance);
 | |
|     }
 | |
| 
 | |
|     // Transfer Eth to owner and terminate contract
 | |
|     selfdestruct(owner);
 | |
|   }
 | |
| }
 |