Normal behavior:
The AuctionSettled event should only be emitted after an auction is successfully settled, meaning the NFT has been transferred to the winner and funds distributed to the seller.
Issue:
In the placeBid function, the AuctionSettled event is emitted during the bidding phase. This is misleading because the auction has not ended, and no settlement has occurred at that point.
Likelihood:
Occurs every time a bid is placed after the "already highest bidder" check passes.
Triggers consistently in normal bidding flows.
Impact:
Off-chain services (marketplace UIs, analytics, explorers) will incorrectly assume the auction has been settled.
Call the placeBid function with a valid bid: market.placeBid{value: 1 ether}(123).
The contract emits the event: AuctionSettled(123, bidderAddress, sellerAddress, 1 ether).
Observers reading events will conclude the auction was settled and the NFT transferred.
Actual contract state after the call: the auction is still active (not ended).
The NFT remains held in the marketplace escrow (no transfer occurred).
No funds/seller settlement has been performed — the emitted event is 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.