The FeeConversionKeeper::performUpkeep
function iterates over an array of marketIds
and attempts to convert accumulated fees to WETH using the convertAccumulatedFeesToWeth
function for each market. However, the current implementation does not handle failures in individual market conversions properly.
In the convertAccumulatedFeesToWeth
function, the following checks are made for each market in the loop:
If any market doesn't have fees for the given asset (i.e., receivedFees
is zero or the asset doesn't exist for that market), the performUpkeep
function will revert. This causes the entire loop to fail, even if the other markets have accumulated fees and should proceed with the conversion.
If the upkeep process fails due to a market not having fees, valid fee conversions for other markets are also missed.
Modify the performUpkeep
function to catch errors for each market individually. If one market fails, log the error and continue processing the rest of the markets without reverting the entire function call.
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.