SIP-29: Issue, burn and claim only in sUSD
Author | |
---|---|
Status | Implemented |
Type | Governance |
Implementor | TBD |
Release | TBD |
Discussions-To | (https://discord.gg/3uJ5rAy) |
Created | 2019-11-27 |
Simple Summary
This SIP proposes to remove the on-chain functionality of issue, burn and claim in anything other than sUSD
.
Motivation
Issuing, burning and claiming any synth is functionality the smart contracts have supported even though the dApps don't offer the functionality. It's been highlighted already that by issuing, burning and claiming in any synth, the exchange fee can be avoided. Unfortunately, a bot has been detected that is leveraging this loophole to issue new debt, repay it instantly, and accuring profits at the expense of Synthetix debt holders. The bot issues into synths that have market movement (by reading the mempool and using higher gwei than our oracle), then immediately burns their debt, and thereby profiting from trade without paying any fees.
This loophole makes it pertinant we shut this backdoor into exchanging immediately.
Specification
The proposal is to remove the currencyKey
argument from Synthetix.issueSynths
, Synthetix.issueMaxSynths
, Synthetix.burnSynths
, FeePool.claimFees
and FeePool.claimOnBehalf
and that they all use sUSD
.
Rationale
Instead of having a require(currencyKey, "sUSD")
, removing the currencyKey
argument altogether removes any possible confusion for the user.
Implementation
These fixes are for the imminent Vega release, targeted to address the current bot activity.
Copyright
Copyright and related rights waived via CC0.