Lack of L2 sequencer check can cause Zeno bond issuers to get less funds than what they anticiapted
In the Auction contract, the following buy function allows a user to purchse Zeno bonds in exchange for USDC tokens during a Dutch auction, where the price decreases over time
However, as per the readme, this contract is supposed to be compatible with all EVM blockchains.
This presents an issue where if this contract is deployed on an L2 chain, the lack of a sequencer upcheck can cause Zeno issuers to lose funds if the sequencer is down for a significant amount of time. When an L2 sequencer is down, transactions simply do not get processed.
https://cryptonary.com/the-arbitrum-network-had-an-outage-over-the-weekend/
This can result in potentially disasterous siutations for the issuer. For example, a user could attempt to purchase a bond for 1000 usdc, but due to a sequencer being down for significant amount of time e.g. 30 mins, the transaction doesn't get processed until the sequencer is back online, which at that point, the price of the bond would have dropped from the original price of 1000 usdc, causing the issuer to lose funds
Loss of funds for the Zeno issuer
Manual Review
Add a check for an active sequencer (e.g. Chainlink's L2 Sequencer Feeds) and consider using block.number for the auction's duration instead of block.timestamp
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.