The first bid validation logic in the placeBid() function incorrectly requires the bid amount to be strictly greater than the minimum price (msg.value > requiredAmount) instead of greater than or equal to (msg.value >= requiredAmount). This violates the fundamental concept of a "minimum price" which should represent the lowest acceptable price that the seller is willing to accept. The current implementation prevents buyers from placing bids exactly at the minimum price, effectively making the minimum price unattainable and forcing buyers to bid higher than the seller's stated minimum acceptable price.
That’s even more illogical, because when setting buyNowPrice the condition is require(_minPrice <= _buyNowPrice), meaning you can set buyNowPrice equal to minPrice and use that price as buyNowPrice and users can buy NFT for that price, but with the current check users can’t buy NFT for minPrice.
Seller lists an NFT with a minimum price of exactly 1.0 ETH, expecting to accept bids at this price level
A legitimate buyer attempts to place the first bid of exactly 1.0 ETH (meeting the seller's minimum requirement)
The validation logic require(msg.value > requiredAmount, "First bid must be > min price") rejects this valid bid
This creates an artificial price floor above the seller's intended minimum
Sellers cannot receive bids at their stated minimum price, potentially losing sales to buyers who offer exactly the minimum
The marketplace fails to honor the seller's pricing expectations and buyer's willingness to pay the stated minimum
The "minimum price" concept is fundamentally broken as it becomes unattainable
Valid buyers offering the minimum price are incorrectly rejected
Sellers cannot receive their stated minimum price
Change the first bid validation to accept bids that are greater than or equal to the minimum price:
First bid validation uses > instead of >=, preventing valid starting bids.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.