function afterLiquidationExecution() external {
if (msg.sender != address(gmxProxy)) {
revert Error.InvalidCall();
}
}
When a liquidation occurs, the afterLiquidationExecution function is called.This sets depositPaused = true, blocking new deposits.
The deposit function checks depositPaused.
After liquidation, this check will always fail, preventing new deposits.
The contract never resets depositPaused to false in:
Liquidation handling (afterLiquidationExecution/runNextAction)
Position closure (_finalize)
Withdrawal flows
The only way to unpause is via an explicit owner call.
If the owner forgets to call this, deposits remain paused forever.
Example:
afterLiquidationExecution sets depositPaused = true.
Keeper calls runNextAction to finalize, but depositPaused stays true.
Transaction reverts due to depositPaused == true
Requires manual setDepositPaused(false) to fix
Deposits stay paused indefinitely after liquidation until owner steps in.
Foundry
Add logic to automatically unpause deposits after liquidation handling.
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.