SIP-239: Liquidator Rewards Restitution

Author
StatusImplemented
TypeGovernance
NetworkEthereum & Optimism
ImplementorMEB (@barrasso)
ReleaseRasalhague
ProposalLoading status...
Created2022-05-18

Simple Summary

Recovers unallocated liquidation rewards due to an initialization issue.

Abstract

Shortly after the deployment of SIP-148, accounts were not properly initialized with their entries in the LiquidatorRewards contract. This led to an accounting issue where accounts seemed to receive less rewards than intended. This SIP ensures that the funds that are locked in the contract are properly recovered and allocated to the relevant accounts.

Motivation

To make sure that every account gets their deserved share of the liquidation rewards post-deployment.

Technical Specification

Synthetix.initializeLiquidatorRewardsRestitution

We will create a one-time use function that is only callable by the pDAO. This function will be used to recover the unallocated rewards from the LiquidatorRewards contracts on both layers.

bool public restituted = false;

// @param amount The amount of SNX to be recovered and distributed to the rightful owners
function initializeLiquidatorRewardsRestitution(uint amount) external onlyOwner {
    if (!restituted) {
        restituted = true;
        bool success = _transferByProxy(address(liquidatorRewards()), owner, amount);
        require(success, "restitution transfer failed");
    }
}

This function will be subsequently removed from Synthetix in a patch release.

Configurable Values (Via SCCP)

N/A

Copyright and related rights waived via CC0.