```\\nfunction drawNumber()\\n    external\\n    whenNotPaused\\n    requireAccount(_alarmContract)\\n    requireState(DrawState.Closed)\\n    nonReentrant\\n    returns (bool)\\n{\\n    require(_reserves > 0, "DCBW721: Not enough reserves for draw");\\n    require(totalSupply() >= 500, "DCBW721: Supply of 500 not reached yet");\\n\\n    require(\\n        _reserves != 0 && address(this).balance.sub(_grandPrizePool) >= _reserves,\\n        "DCBW721: Not enough balance for draw prize"\\n    );\\n\\n    bytes32 reqId = IRNG(_rngContract).request();\\n\\n    _state = DrawState.Open;\\n    draws[_drawsToDate] = DrawData(\\n        _drawsToDate,\\n        uint32(block.timestamp), /* solium-disable-line */\\n        0,\\n        0,\\n        address(0),\\n        0,\\n        _state,\\n        reqId\\n    );\\n\\n    emit DrawInitiated(reqId);\\n\\n    return true;\\n}\\n```\\n