contract TokenDestructible is Ownable {

  constructor() public 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) public 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);
  }
}
function destroy(address[] _tokens) public 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);
}

/**
 * @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.
 */