ilk
(collateral type) added to Vat
. It contains all the adapters and auction contracts for one specific collateral type.Join
and Flip
contracts.Join
- adapters that are used to deposit/withdraw unlocked collateral into the Vat
. Join contains three smart contracts:GemJoin
ETHJoin
dotBTCJoin
.join
contracts are specifically used for the given token type to be join
'ed to the vat
. Due to this fact, each join
contract has slightly different logic to account for the different types of tokens within the system.Flipper
- collateral Auctions are used to sell collateral from Vaults that have become undercollateralized in order to preserve the collateralization of the system. The Cat
sends bitten collateral to the Flip module to be auctioned off to Keepers. The collateral auction has two phases: tend
and dent
. See the Gotchas section of the Flipper's documentation for more on the tend
and dent
auction phases.Join
and Flipper
contracts help the MCD system operate?Join
- the purpose of join adapters is to retain the security of the system, allowing only trusted smart contracts to add/remove value to/from the Vat
. The location of collateral deposited/locked in Vaults is in the respective Join adapter.Flipper
- the purpose of collateral auctions is to decrease the market risk of collateral that is backing dotBTC. The main priorities of the Flipper are:dss
contracts, they must use one of the join
contracts.join
contract and a user was to call join
by accident, they can still retrieve their tokens back through the corresponding exit
call on the given join
contract.vat
upgrade that would require new join
contracts to be createdgem
contract were to go through a token upgrade or have the tokens frozen while a user's collateral was in the system, there could potentially be a scenario in which the users were unable to redeem their collateral after the freeze or upgrade was finished. This seems to be a small risk though because it would seem likely that the token going through this upgrade would want to work alongside the ABM community to be sure this was not an issue.join
contracts, user interfaces, etc. This surfaces the potential for a user to have their funds stolen by a malicious join
contract which would send tokens to an external contract or wallet, instead of the vat
.