```\nfunction pillMintingSale(bytes32[] calldata _merkleProof)\n    external\n    payable\n    returns (bool)\n{\n    if (\n        (block.timestamp >=\n            defaultSaleStartTime + DEFAULT_PIXELMINT_SALE) &&\n        (block.timestamp < defaultSaleStartTime + DEFAULT_PILLMINT_SALE)\n    ) {\n        _tokenIds++;\n\n        if (pillMintWhitelistedAddresses[msg.sender] != 0)\n            revert WhitelistedAddressAlreadyClaimedNFT();\n\n        if ((dutchAuctionLastPrice / 2) != msg.value)\n            revert InvalidBuyNFTPrice(\n                (dutchAuctionLastPrice / 2),\n                msg.value\n            );\n\n        bytes32 leaf = keccak256(abi.encodePacked(msg.sender));\n\n        if (\n            !MerkleProof.verify(\n                _merkleProof,\n                merkleRootOfPillMintWhitelistAddresses,\n                leaf\n            )\n        ) revert InvalidMerkleProof();\n\n        pillMintWhitelistedAddresses[msg.sender] = 1;\n\n        emit NewNFTMintedOnPillSale(_tokenIds, msg.sender, msg.value);\n\n        _mint(msg.sender, _tokenIds, 1, "");\n\n        return true;\n    } else {\n        revert UnAuthorizedRequest();\n    }\n}\n```\n