SIP-18: Recover orphaned $2.9k sUSD from SNX fee address

Author
Discussions-Tohttps://discord.gg/CDTvjHY
StatusImplemented
Created2019-09-02

Simple Summary

This SIP proposes to recover the $2.9k sUSD that is currently unclaimable by minters in the SNX fee address

Abstract

There is currently ~$2.9K sUSD orphaned from the transfer fee era where each transfer of synths has to pay a transfer fee. After the upgrade to store fees in XDRs, the collected fees in sUSD were orphaned and minters are not being able to claim those fees.

Motivation

The $2.9k sUSD ultimately belongs to minters who have staked and contributed to the SNX system and we should not deny their rightful claim to it, even if most of the current minters may not be aware or know about this issue. This $2.9k sUSD fee rewards is now only a small portion of the total fee rewards but it was the entire rewards for minters back in the day so we should work to resolve and recover this orphaned $2.9k sUSD

Specification

2 possible options:

  1. Exchange the $2.9K from sUSD into XDR and send it back to the 0xfeefeefee address and record it in FeePool.recentFeePeriods.feesToDistribute - allowing minters to claim as part of their weekly rewards
  2. Fee pool owner to burn the $2.9k sUSD from 0xfeefeefee address, removing it from global debt

Rationale

The orphaned $2.9k sUSD may be a small amount but it still contributes to the global debt and being orhpaned also means that they are not able to go into synths supply circulation for usage.

Test Cases

Replicate sending $3K sUSD on KOVAN to the 0xfeefee address and test the recoverFees() function

Implementation

Implement a FeePool.recoverTransferFees() public function.

  • It will burn the balance of sUSD at the 0xfeefee address
  • then issue the effective value of XDRs at the 0xfeefee address. Essentially the reverse of the _payFees() function.
  • Call the feePaid(XDR, sUSDBalance) function to record the fees to distribute.

UPDATE: Here is the MAINNET transaction recovering lost sUSD fees to XDRs for claiming. https://etherscan.io/tx/0x54394af66ae7810f2114da8a02749d71b659a4409c7a98814644d1b04372edcb

The function FeePool.recoverTransferFees() can now be depricated from the codebase.

Copyright and related rights waived via CC0.