The contract relies on block timestamps to determine whether an auction is still open, which can introduce race conditions. If bids are placed near the auction's end time, multiple users might think they have won, leading to inconsistencies in bid processing.
The auction’s validity is determined by comparing the current block’s timestamp with the auction's end time. Because multiple transactions can occur in the same block, two users could both submit bids within the same block just before the auction ends, creating a race condition where the final bid is unclear.
Two or more users place bids near the end of the auction, believing they will win.
Due to the lack of fine-grained time control, multiple bids are accepted within the same block, but only one can be valid, creating confusion and possible disputes.
This leads to inconsistent auction results, where users may believe they have successfully placed the highest bid when, in fact, they have not. This reduces trust in the auction system and could lead to disputes among participants.
Manual review
Use block numbers instead of timestamps to manage auction end conditions, or implement a buffer period that disables bidding within the last few blocks to ensure only one bid can be processed at the close of the auction.
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.