```\nfunction firstPublicMintingSale() external payable returns (bool) {\n    if (\n        (block.timestamp >= defaultSaleStartTime) &&\n        (block.timestamp <\n            defaultSaleStartTime + DEFAULT_INITIAL_PUBLIC_SALE)\n    ) {\n        _tokenIds++;\n\n        if (_tokenIds > DEFAULT_MAX_FIRST_PUBLIC_SUPPLY)\n            revert MaximumPublicMintSupplyReached();\n\n        if (firstPublicSale[msg.sender] >= LIMIT_IN_PUBLIC_SALE_PER_WALLET)\n            revert MaximumMintLimitReachedByUser();\n\n        uint256 getPriceOFNFT = getCurrentNFTMintingPrice();\n\n        if (getPriceOFNFT != msg.value)\n            revert InvalidBuyNFTPrice(getPriceOFNFT, msg.value);\n\n        dutchAuctionLastPrice = getPriceOFNFT;\n\n        firstPublicSale[msg.sender] = firstPublicSale[msg.sender] + 1;\n\n        emit NewNFTMintedOnFirstPublicSale(\n            _tokenIds,\n            msg.sender,\n            msg.value\n        );\n\n        _mint(msg.sender, _tokenIds, 1, "");\n\n        return true;\n    } else {\n        revert UnAuthorizedRequest();\n    }\n}\n```\n