Gating an L2 liquidation after a sequencer restart

A price feed can return a recent value just after a rollup resumes. Users who could not submit transactions during the outage may still have had no time to add collateral.

Read the status transition before checking the price

For a supported network, read its specific sequencer uptime feed. An answer of zero indicates up; use startedAt for the start of that status. The fixture assumes a valid transition and a one-hour application grace period. It prints false at 59 seconds and true after 3,601 seconds.

const resumedAt = 1_800_000_000;
const mayResume = (answer, now) => answer === 0 && now - resumedAt > 3600;
console.log(mayResume(0, resumedAt + 59), mayResume(0, resumedAt + 3601));

Keep both decisions in the transaction path

If the sequencer reports down, block the operation. Also handle an uninitialized or implausible transition timestamp explicitly. Once the grace period passes, apply your separate price-feed freshness and validity checks. A healthy sequencer does not establish the age of the price. Test the exact boundary using the same comparison as your contract, and choose the grace period for the application and network.

docs.chain.link L2 Sequencer Uptime Feeds