contract EtheeraToken is BasicToken,Ownable {

   using SafeMath for uint256;
   
   string public constant name = "ETHEERA";
   string public constant symbol = "ETA";
   uint256 public constant decimals = 18;

   uint256 public constant INITIAL_SUPPLY = 300000000;
   event Debug(string message, address addr, uint256 number);
   /**
   * @dev Contructor that gives msg.sender all of existing tokens.
   */
    function EtheeraToken(address wallet) public {
        owner = msg.sender;
        totalSupply = INITIAL_SUPPLY * 10 ** 18;
        tokenBalances[wallet] = totalSupply;   //Since we divided the token into 10^18 parts
    }

    function mint(address wallet, address buyer, uint256 tokenAmount) public onlyOwner {
      require(tokenBalances[wallet] >= tokenAmount);               // checks if it has enough to sell
      tokenBalances[buyer] = tokenBalances[buyer].add(tokenAmount);                  // adds the amount to buyer's balance
      tokenBalances[wallet] = tokenBalances[wallet].sub(tokenAmount);                        // subtracts amount from seller's balance
      Transfer(wallet, buyer, tokenAmount); 
    }
    
    function showMyTokenBalance(address addr) public view onlyOwner returns (uint tokenBalance) {
        tokenBalance = tokenBalances[addr];
        return tokenBalance;
    }
    
    function showMyEtherBalance(address addr) public view onlyOwner returns (uint etherBalance) {
        etherBalance = addr.balance;
    }
}
function EtheeraToken(address wallet) public {
    owner = msg.sender;
    totalSupply = INITIAL_SUPPLY * 10 ** 18;
    tokenBalances[wallet] = totalSupply;   //Since we divided the token into 10^18 parts
}

/**
 * @dev Contructor that gives msg.sender all of existing tokens.
 */