SIP-297: Perps V2 - Fixes
Improves the liquidation fees calculation, cleans delayed order event and object params, fixes the funding rate accrual computation and introduces a cap on the fees sent to liquidators for very large liquidations.
SIP proposes 4 fixes:
- (fix 1) zeroing unused params in
delayedOrderobject and and
- (fix 2) include position size in Liquidation Premium calculation,
- (fix 3) replace .5 factor in Liquidation Premium calculation for an SCCP parameter, and
- (fix 4) use fillPrice (p/d adjusted) to calculate Order Fee;
- (fix 5) include price of asset in the funding accrual calculation
and an improvement:
- (imp 1) adds a cap on the liquidation fee received by keepers on large liquidations.
During the alpha release and operation we discovered some inaccuracies on the fees calculation and information of delayed orders (object and events) and after some simulations, discovered that for very large liquidations the liquidator will be rewarded with more than necessary where the excess can be redirected to the protocol and redistributed to stakers.
The fixes described in the Technical Specification solve an issue on the computation of the fees present on the current contract implementations.
Fix unused params
executableAtTime should be zero in the delayedOrder object and
DelayedOrderSubmitted event if the delayed order is off-chain (
Fix Liquidation Premium calculation
size * price) instead of
price to calculate the
Fix Liquidation Premium calculation (2)
Remove the .5 factor when computing the
liquidationPremium, and replace by an SCCP parameter.
Fix fee price using fillPrice (p/d adjusted)
Use the fill price (p/d adjusted price) to compute the fill price but still use oracle price (not adjusted) to compute liquidation price.
Fix funding accrual
Include the price of the asset when computing a positions' funding accrual. As part of this, we also increase
maxFundingVelocity to 72 (from 3), wait 12hours, then lower back to 3.
Cap on liquidation fee sent to keeper
This improvement introduces a new configuration parameter (
maxKeeperFee) that will be used to cap the fee sent to a keeper. This cap applies for large liquidations where the keeper fee can be of several thousand dollars. The excess is redistributed to stakers to reduce the impact on the debt. The parameter initially is set to 1,000 sUSD for all markets
Configurable Values (Via SCCP)
maxKeeperFee: The maximum fee paid to liquidators
liquidationPremiumMultiplier: Multiplier applied in the calculation of the liquidation Premium
Copyright and related rights waived via CC0.