I like this proposal. However, I would suggest two things:
-
Make
requestStETHBurnpermissioned. Burning tokens is not part of any custom use cases and is not easy to roll back action. Therefore, to avoid accidental triggering and misinterpretations, I would like to allow only voting to burn tokens. Additionally, it seems like a good idea to splitrequestStETHBurninto two methods instead of a boolean flagisCover. -
The mechanism is based on the assumption that the burning of the stETH takes place in one transaction with the oracle report. For this, the contract implements the
IBeaconReportReceiverinterface. Thus, after the deployment and installation of the delegate, this slot will be occupied. I propose to develop in advance a mechanism that supports the ability to install multipleIBeaconReportReceivers.