feat: steward injector robot #12
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Short Summary:
AaveStewardInjector: new robot contract to fetch updates from risk oracle and inject into the risk steward.RiskSteward: all keepCurrent values and same updates not allowedEdgeRiskSteward: modified risk steward which only allows interest rate updates.Aave Steward Injector:
The AaveStewardsInjector is a chainlink automation compatible contract which checks if updates from the Edge Risk Oracle could be pushed to the Risk Steward, and if so it injects the update from the Edge Risk Oracle to the Risk Stewards. The
AaveStewardsInjectorshould be set as theriskCouncilon the Risk Steward contract so it can inject updates.Some important things to note about the
AaveStewardInjector:AaveStewardInjectorwill be triggered by chainlink automation nodes, but the method to inject the updateperformUpkeep()is made permissionless by design to allow for manual trigger.WETHasset and the update typeRateStrategyUpdatewill be whitelisted on the steward injector.AaveStewardInjectorwill inject new updates from there if there will be any.Risk Steward:
The Aave Generalised Risk Steward does not allow updates which does not change the protocol state and instead reverts in those cases.
EngineFlags.KEEP_CURRENT, we were not reverting before but it makes sense to revert as it does not change any risk params on the protocol and is simply a waste of gas.EngineFlags.KEEP_CURRENTfor a param update with no changes, we use the current param value which does not make much sense.