Collateral Auction Throttler
1. Summary
The CollateralAuctionThrottler is meant to recompute the onAuctionSystemCoinLimit for the LiquidationEngine according to the latest global debt supply.
The throttler inherits functionality from the IncreasingTreasuryReimbursement.
2. Contract Variables & Functions
Variables
updateDelay- minimum **** delay between updatesbackupUpdateDelay- delay since the last update time after whichbackupLimitRecomputecan be calledglobalDebtPercentage- percentage of global debt taken into account in order to setLiquidationEngine.onAuctionSystemCoinLimitminAuctionLimit- the minimum value that can be set foronAuctionSystemCoinLimitlastUpdateTime- last timestamp when theonAuctionSystemCoinLimitwas updatedliquidationEngine- theLiquidationEnginecontractsafeEngine- theSAFEEnginecontractsurplusHolders- list of surplus holders taken into account when recomputing theonAuctionSystemCoinLimit
Functions
modifyParameters- modify contract parametersrecomputeOnAuctionSystemCoinLimit(feeReceiver: address)- recompute and set the newonAuctionSystemCoinLimitbackupRecomputeOnAuctionSystemCoinLimit()- backup function for recomputing theonAuctionSystemCoinLimitin case of a severe delay since the last update
3. Walkthrough
recomputeOnAuctionSystemCoinLimit is the core function used to periodically recompute the onAuctionSystemCoinLimit and set it in the liquidationEngine. Anyone can call this function as long as at least updateDelay seconds have passed since the last update. The function rewards the caller with surplus coming from the treasury.
backupRecomputeOnAuctionSystemCoinLimit is a backup function that can be called if at least backupUpdateDelay seconds have passed since the lastUpdateTime. As the name mentions, it is meant to work as a backup in case recomputeOnAuctionSystemCoinLimit hasn't been called in a long time (e.g because of bugs).