function rollDice(uint256 playerNumber, uint256 houseEdge, bytes32 clearBetId, address referreeAddress) public
		payable
		canBet(msg.value, playerNumber, houseEdge)
		returns (bool) {
		uint256 betInternalId = _storeBet(msg.value, msg.sender, playerNumber, houseEdge);

		
		if (clearBetId != '') {
			_clearSingleBet(msg.sender, clearBetId, _setting.uintSettings('blockSecurityCount'));
		}

		
		_rewardReferree(referreeAddress, betInternalId);

		_advertising.incrementBetCounter();

		return true;
	}