func: function buyUcCoins() payable public {
          require(msg.sender != address(0));
  
          bool didSetUcCoinValue = UCCOIN_PER_ETHER > 0;
          require(!shouldStopCoinSelling && didSetUcCoinValue);
          require(blacklistAddresses[tx.origin] != true);
  
          uint256 weiAmount = msg.value;
  
          uint256 tokens = getUcCoinTokenPerEther().mul(msg.value).div(1 ether);
  
          require(tokens >= getMinimumSellingUcCoinToken());
          require(balances[owner] >= tokens);
  
          weiRaised = weiRaised.add(weiAmount);
  
          balances[owner] = balances[owner].sub(tokens);
          balances[msg.sender] = balances[msg.sender].add(tokens);
          
          owner.transfer(msg.value);
  
          contributions[msg.sender] = contributions[msg.sender].add(msg.value);
  
          TokenPurchase(msg.sender, weiAmount, tokens);
      }