Avalanche unlike Arbitrum needs no sequencer uptime check. As a result, checking for uptime feeds when validating price will cause the function to always revert.
Also, the sequencerUptimeFeed address is hardcoded to an address specific only to arbitrum.
In KeeperProxy.sol, _validatePrice performs an L2 sequencer check. This check will break on avalanche, as the chain doesn't have a sequencer, or require a sequencer check.
Doing this regardless of whatever sequencerUptimeFeed is set will cause the function to always revert (even if none is set).
Also, when KeeperProxy.sol is initialized, the sequencerUptimeFeed is hardcoded to 0xFdB631F5EE196F0ed6FAa767959853A9F217697D. On arbitrum, this is the correct address, but on avalanche, the address is non-existent.
As a result, _validatePrice and all of its dependent functions, e.g run, runNextAction will always fail upon deployment to avalanche.
Manual Review
Introduce a check for chainId in the _validatePrice function, if chainId is that of avalanche, skip the sequencer check.
Likelihood: High, run and runNextAction will revert. Impact: Low, any deposit will be retrieve thanks to cancelFlow.
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.