Collector operational upgrade: multiple funds admin support
Simply summary
Upgrade of the Aave Collector contracts across networks, to unify its implementation and enable the finance contributors of the DAO to progress on initiatives like the Finance Stewards.
Motivation
Currently, the Aave Collector (treasury smart contract of the DAO, one per network) is managed by a single Funds Admin
role, which across all Aave instances is configured to be the Governance Level 1 Executor (Short).
Karpatkey & Tokenlogic proposed to upgrade the Collector to allow multiple Fund Admin
entities, which would allow to delegate control to a set of Finance Steward helper contracts.
Upon working on the original proposal, the authors noticed that the current Collector contracts vary in their storage layout, and this situation makes maintaining and upgrading them more complicated than it should be.
Therefore, in order to eliminate the technical debt, and make future upgrades more seamless, we created a slight modification of the proposed upgrade, which allows an upgrade of all the existing Collector instances to the same codebase.
Specification
Collector implementation: https://github.com/aave-dao/aave-v3-origin/pull/84
Upgrade proposal: https://github.com/bgd-labs/collector-upgrade-rev6
The proposal will upgrade all collector contracts to the new version proposed on the aave-origin repository. To account for the differences in the storage layout, a custom initializer
is implemented that aligns the storage layout across versions.
As the new version of the Collector implements AccessControl
from OZ and removes the existing fundsAdmin role, the proposal will also grant the FUND_ADMIN
role to the Level 1 Executor (Short Executor). This way, the setup post-proposal execution will be the same as currently.
Important. The proposal creation will be done only once the engaged security provider of the DAO (Certora) reviews the new Collector implementation.