The BaseKeeper
contract allows the address of the Keeper forwarder to be set via the setForwarder
function, which updates the Keeper forwarder address. However, the self.forwarder
variable is never initialized within the contract. As a result, the performUpkeep
function in MarketOrderKeeper and LiquidationKeeper, which uses the onlyForwarder
modifier, will not work correctly if self.forwarder
is not initialized. Along with this when someone calls getConfig
in MarketOrderKeeper, it will fetch wrong data about forwarder
If the self.forwarder
variable is not properly initialized, the performUpkeep
function will not work as intended. This will prevent the Keeper's forwarder contract from executing its functions, leading to potential failures in upkeep operations such as account liquidation.
To ensure that the self.forwarder
variable is properly initialized, it should be set during the contract's initialization process. This can be done by adding an initialize
function that sets the forwarder
address, so it does not wait for an admin to call the setter later. This approach will ensure that the performUpkeep
function works correctly from the start.
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.