MIPXX: Fix Price Flipper
Introduction
Following the issue with stablecoin, and a lot of discussion we need to introduce a simple and gas efficient flipper/ clipper with no price slippage.
MIP#: XX
Title: Fix Price Flipper
Author(s): Alexis
Type: Technical
Status:
Date Proposed: 2021-02-08
Dependencies: None
Replaces: Nothing
Sentence Summary
MIPXX will allow a simple way to flip fix priced assert by one bid auction.
Paragraph Summary
MIPXX is a simple flipper/clipper specific for stablecoin, that reduce the amount of effort for the bidder.
The flipper/clipper will start the auction as a normal flipper/clipper.
But the auction system (dutch or English) is removed and instead we introduce a buy(id)
function that
allow anyone to get the auction.
Component Summary
MIPXXa1: Parameter Definitions
MIPXXa2: Function
MIPXXa3: Authorisation
MIPXXa4: Static Reserve For Governance
MIPXXa5: Proposed Code
MIPXXa6: Test Cases
MIPXXa7: Spell
MIPXXa8: Security Considerations
MIPXXa9: Licensing
Motivation
We currently have a major issue with all stable coins inside the vaults, this flipper/clipper
will allow an ordering liquidation by fixing the price. The price can be set to 1 dai for 1 TUSD/PAX/USDC.
Clearly, setting the TUSD DC at 0 had a limited impact.
The main issue with the auction system either dutch or english is that we can’t predict the price at 0.1% which is our margin.
The idea is to fix the price at 1.00 or even higher/lower - slightly higher than the psm price for example - and allow anyone to bid on any vault in liquidation state.
As soon as you bid on it you won. By calling buy(id) we transfer from your vault the amount and transfer back the gem.
Specification
MIPXXa1 Parameter Definitions
-
price
: auction price
MIPXXa2: Functions
there is only two functions
depending of this system used:
-
kick(usr, gal, tab, lot, bid)
auth
for the liq1.2 -
take(id, amt, max, who, data)
for liq2.0 -
buy(id)
It also has three admin methods
-
file(bytes32 what, data)
: To change parameters -
rely(address contract)
: To add authorized address -
deny(address contract)
: To remove authorized address
depending on the system :
MIPXXa3: kick(usr, gal, tab, lot, bid)
- Increase the number of auctions
- Move the token position from the sender to the flipper
- Start the auction
MIPXXa3: take(id, amt, max, who, data)
- add id to active
- Increase the number of auctions
- Move the token from the sender to the flipper
- start the sale
MIPXXa3: buy(uint id)
- Take lot from the flipper and give it to the bidder.
- Move lot*price from the bidder to vow
- delete the bid
MIPXXa5: Proposed Code
Not yet implemented
MIPXXa6: Test Cases
Not yet implemented
MIPXXa7: Spell
Not yet implemented
MIPXXa8: Security Considerations
Not yet evaluated