Chainlink recommends that all Optimistic L2 oracles consult the Sequencer Uptime Feed to ensure that the sequencer is live before trusting the data returned by the oracle.
If the Arbitrum Sequencer goes down, oracle data will not be kept up to date, and thus could become stale. However, users are able to continue to interact with the protocol directly through the L1 optimistic rollup contract.
The distributeAssets()
function uses chainlink oracle but doesn't check for active Arbitrum Sequencer.
https://github.com/Cyfrin/2023-12-the-standard/blob/91132936cb09ef9bf82f38ab1106346e2ad60f91/contracts/LiquidationPool.sol#L207-L208
https://github.com/Cyfrin/2023-12-the-standard/blob/91132936cb09ef9bf82f38ab1106346e2ad60f91/contracts/LiquidationPool.sol#L218-L219
If the Arbitrum sequencer goes down, the protocol will allow users to continue to operate at the previous (stale) rates. Which may cause a loss for the users when buying liquidated assets at a potentially inflated price in the distributeAssets()
function.
Manual Review
It is recommended to follow the code example of Chainlink: Chainlink Recommendation
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.