SIP-142: Deprecating EtherCollateral loans
Author | |
---|---|
Status | Implemented |
Type | Governance |
Implementor | TBD |
Release | TBD |
Discussions-To | https://research.synthetix.io |
Created | 2021-05-26 |
Simple Summary
Deprecate the skinny Ethercollateral and EtherCollateral sUSD loans and remove them from the Synthetix system.
Abstract
The EtherCollateral loans were scheduled to be deprecated once Multi-collateral loans system has been fully deployed. The current functions of the skinny ether collateral and Ethercollateral sUSD loans can be both done via the Multi-collateral loans and also the Ether Wrapper contracts.
After the one month notice period ending 00:00 UTC on June 25th, 2021, the pDAO would enable liquidations on the Ethercollateral loans as per SCCP 112 which allows any unclosed loans to be liquidated. Outstanding loans can be repaid by repaying the sUSD or sETH borrowed and the ETH collateral redeemed.
The EtherCollateral contracts can then be deprecated and removed from the Synthetix protocol by detaching these contracts from the protocol.
Motivation
With the success of multi-collateral loans on Synthetix over the last 6 months, the time has come to sunset previous EtherCollateral loan contracts that are no longer active. The EtherCollateral loans were intended as a trial to enable users to borrow sETH
and sUSD
against ETH and had a built in liquidation function to allow them to be deprecated once the multi-collateral loans were fully functional.
Creating new loans with the EtherCollateral contracts have effectively been paused at the moment with the issue limits
set to 1 sUSD and 1 sETH.
Another issue with the EtherCollateral sETH loans implementation was that it relied on the Depot contract to have enough sUSD deposited to be purchased for repaying the minting fees when a borrower repays their sETH loans.
Deprecating the EtherCollateral trials would also remove the overhead of managing these trial loans and their lending fees / min c-ratios as the Multi-collateral loans gets updated.
Specification
Overview
The EtherCollateral
and EtherCollateralsUSD
contracts to be removed from the Synthetix system and remove references in the AddressResolver to these contracts.
The MultiCollateralSynths
would remove references to the EtherCollateral
contracts as internal contracts that can issue and burn sETH
and sUSD
synths.
The DebtCache
contract would be updated to remove references to these contracts and the amount of ETH or sUSD that is backed by the EtherCollateral
loans once all the remaining loans have been liquidated and closed.
Rationale
The MultiCollateralSynths
allows certain types of synths to be issued by non-SNX collateral such as ETH, renBTC. By removing the EtherCollateral
and EtherCollateralsUSD
as internal contracts that can issue and burn these synths from being minted by the deprecated EtherCollateral contracts.
Once the EtherCollateral loans are deprecated they can be removed from the DebtCache
contract and the debt that is backed by the EtherCollateral loans can be removed from the debt pool calculation.
Technical Specification
MultiCollateralSynth
contract MultiCollateralSynth is Synth {
modifier onlyInternalContracts() {
bool isFeePool = msg.sender == address(feePool());
bool isExchanger = msg.sender == address(exchanger());
bool isIssuer = msg.sender == address(issuer());
bool isEtherWrapper = msg.sender == address(etherWrapper());
bool isMultiCollateral = collateralManager().hasCollateral(msg.sender);
require(
isFeePool ||
isExchanger ||
isIssuer ||
isEtherWrapper ||
isMultiCollateral,
"Only FeePool, Exchanger, Issuer or MultiCollateral contracts allowed"
);
_;
}
}
BaseDebtCache.sol
- Remove references to
EtherCollateral
andEtherCollateralsUSD
in thefunction _totalNonSnxBackedDebt()
debt calculation.
Test Cases
Configurable Values (Via SCCP)
N/A
Copyright
Copyright and related rights waived via CC0.