initiateLiquidation()
marks a user as under liquidation, but there's no safeguard against spam liquidations.
Attackers can lock users in liquidation mode maliciously.
Require that liquidators stake tokens to participate.
Charge a small fee for failed liquidations.
Add a minimum delay between liquidations.
mapping(address => uint256) public lastLiquidationAttempt;
uint256 public constant MIN_LIQUIDATION_DELAY = 1 hours;
function initiateLiquidation(address userAddress) external nonReentrant whenNotPaused { require( block.timestamp > lastLiquidationAttempt[userAddress] + MIN_LIQUIDATION_DELAY, "Liquidation too frequent" );
lastLiquidationAttempt[userAddress] = block.timestamp; ... }
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.