function _storeBet (uint256 betValue, address playerAddress, uint256 playerNumber, uint256 houseEdge) internal returns (uint256) {
		
		_setting.spinwinRollDice(betValue);

		uint256 betInternalId = _setting.uintSettings('totalBets');

		
		bytes32 betId = keccak256(abi.encodePacked(this, playerAddress, betInternalId));

		Bet storage _bet = bets[betInternalId];

		
		require (_bet.processed == false);

		
		betIdLookup[betId] = betInternalId;
		_bet.playerAddress = playerAddress;
		_bet.betId = betId;
		_bet.betValue = betValue;
		_bet.playerNumber = playerNumber;
		_bet.houseEdge = houseEdge;

		
		_bet.rewardValue = calculateWinningReward(betValue, playerNumber, houseEdge);

		
		_bet.tokenRewardValue = calculateTokenReward(betValue, playerNumber, houseEdge);
		_bet.blockNumber = block.number;

		
		totalPendingBets++;

		emit LogBet(_bet.betId, _bet.playerAddress, _bet.playerNumber, _bet.betValue, _bet.houseEdge, _bet.rewardValue, _bet.tokenRewardValue);
		return betInternalId;
	}