In normal behavior, the AuctionSettled event is emitted after an auction has been finalized — meaning the NFT is transferred and funds have been paid out.
However, the contract emits the AuctionSettled event prematurely inside the placeBid() function, even before validating the bid amount, updating the highest bid, or refunding the previous bidder. This can lead off-chain systems (such as indexers or frontends) to falsely assume the auction has ended and the NFT has been settled.
Likelihood:
Occurs every time a bidder who is not the previous highest bidder calls placeBid, regardless of whether their bid amount satisfies the required minimum bid.
Impact:
Off-chain systems monitoring AuctionSettled events may incorrectly believe a bid was accepted or an auction was settled when in fact the transaction failed.
Since _executeSale() already emits the AuctionSettled event when an auction actually settles, emitting it prematurely inside placeBid() (before validation and state changes) is redundant and misleading.
placeBid emits AuctionSettled even though the auction hasn’t ended, causing misleading event logs.
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.