  modifier onlyWhitelisted(bytes32[] calldata proof, bytes32 leaf) {
    if (block.timestamp <= whitelistEndTime) { // @note could disable the whitelist only at anytime by the owner
      require(
@=>      MerkleProof.verify(proof, rootHash, leaf), // @note: whitelist can continuously participate
        'Not whitelisted user'
      );
    }
    _;
  }
