The keeper proxy contract is attempting to call a functionality unavailable on Avalanche and won't work.
The protocol implemented a sequencer uptime check as recommended by Guardian in the previous report. Since the keeper proxy contract makes no distinction between which chain it's currently deployed on, the same logic will be applied to Avalanche, which has no sequencer, as it is not a L2.
Notice how there's a hardcoded aggregator address on the initializer of KeeperProxy.sol. If you verify it on an Avalanche C-Chain explorer, you'll see it's an empty address with zero code. When attempting to verify the price, the contract will run a high level call to the empty address, reverting.
As a consequence, calls of run() and runNextAction() will revert, preventing the protocol from opening positions on this chain.
Contracts will have to be redesigned and redeployed. No funds are lost, however, if the protocol does not notice this oversight after funds are deposited while the vault's position is closed, the system operates correctly until a keeper attempts to call run(), causing users to have to wait for the lock time of 1 week until they can withdraw funds again.
Skip the sequencer uptime check if the current chain is not Arbitrum.
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.