SIP-33: Deprecate XDR synth from Synthetix.
Author | |
---|---|
Status | Implemented |
Type | Governance |
Implementor | TBD |
Release | TBD |
Discussions-To | (https://discordapp.com/invite/CDTvjHY) |
Created | 2019-12-17 |
Simple Summary
Deprecate XDR synth from Synthetix to simplify representation and calculation of claimable fees in fee pool, Gas Optimisations and simplify the system mechanics.
Motivation
XDR has been used in Synthetix since the beginning as an unit of account, however most people are still not able to understand the purpose and calcuation of XDR and most importantly how the price of XDR is being derived.
With the implementation of SIP-29 - Issue, burn and claim only in sUSD, XDR is not required to be the unit of account anymore and sUSD can replace the role of XDR as the base unit of account.
- This will help new users in Synthetix ecosystem to easily understand how fees are collected and distributed
- Easier onchain checking and verification of current amount of fees claimable sitting inside fee pool
- Allows for easier integration of third party dashboards/data analysis as they do not have to call the XDR value to sUSD to represent the USD value
- No requirement for Chainlink decentraliized oracle to support.
- System optimizations, gas savings on removing XDR from system mechanics
- Reduce system complexity
Rationale
- Reclaiming bytecode space from reduntant code using XDR as a unit of account and converting into sUSD.
- Reducing all the XDR processing code will reduce the gas usage, saving on mint, burn, claimFees transactions.
- Allows for full decentralised oracles in future as XDR price is a niche and likely to be unsupported by most oracles.
Specification
Synthetix Contract
exchange()
fees will be collected in sUSD and stored as sUSD at the fee address making transactions on etherscan easier to read the fee paiddebtBalanceOf()
calculations will be in sUSD
FeePool Contract
- On MAINNET deploy, import
recentFeePeriods[0-2].feesToDistribute
with the exchange rate from XDR to sUSD - Temporary
ownerOnly
function to exchange all XDR's into sUSD at [fee address] which holds 100% of the XDR's - Swap all XDR implementation to sUSD. e.g.
_payFees
to remove all exchange from XDR code.
ExchangeRates Contract
- Remove XDR Participants and XDR rate storage.
Implementation
Not required at this stage
Copyright
Copyright and related rights waived via CC0.