Shorter can grief liquidators by transferring short record to another address right before flagShort call or before secondary liquidation call.
In case if collateral ratio of short position has decreased under specific limit, then it becomes eligible for a liquidation.
There are 2 types of liquidation that is implemented inside MarginCallPrimaryFacet and MarginSecondaryPrimaryFacet. For MarginCallPrimaryFacet liquidation first flagShort should be called and then user has some time to recover position.
MarginSecondaryPrimaryFacet liquidation can be called without flagging in case if collateral ratio is under specific limit.
In order to do flagging or liquidation liquidator should provide specific short position of specific shorter. In case if it doesn't exist then call will fail.
Now let's look into ERC721Facet.transferFrom function, which allows shorter to transfer his position to another user. This isn't possible to do, if position is already flagged. As result previous short position will be deleted and new one will be created for receiver.
As result of this move shorter has invalidated previous short position, so someone who calls MarginCallPrimaryFacet.flagShort or MarginCallSecondaryFacet.liquidateSecondary will fail to execute action on that short.
Shorter can frontrun liquidators and grief them.
VsCode
Check collateral ratio of short record. In case if it's lower than healthy then don't allow to transfer nft.
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.