backstop-syndicate / dai-backstop-syndicate

A pooled liquidity contract for participating in the upcoming MKR auction at a "backstop" price of 1 MKR per 100 Dai.
Creative Commons Zero v1.0 Universal
29 stars 10 forks source link

add flushAuctions function #48

Open brianmcmichael opened 4 years ago

brianmcmichael commented 4 years ago

Adds a flushAuctions() function that can be called by anyone.

When called, it iterates through the set and clears out any of the auctions that have been outbid. This should be relatively inexpensive for the sender due to the gas refund of clearing this state and it also reduces the cost of all of the functions that call _getActiveAuctionVatDaiTotal()

This should be considered as a gas saving device to reduce the likelihood of set size lockup identified in https://github.com/backstop-syndicate/dai-backstop-syndicate/issues/46

Auctions that have been won will still have to be dealt individually. This function does not finalize auctions past their end time due to the higher gas cost involved with that process.

This PR just adds the function. I would imagine that it could be even more effective if it was converted to public and called whenever someone enlists or defects, but I'd need to explore the consequences of that a little further.