Aave v3.2 patch for legacy periphery
Simple Summary
Upgrade the Pool
contract across all networks, to add an extra fallback on the getReserveData()
view function, allowing for integrators unable to update peripheral contracts (Aave Pool Data Provider) to still be compatible with v3.2.
Motivation
Aave v3.2 included the removal of all the logic of stable rate borrow mode, and the release of a new ProtocolDataProvider
maintaining retro-compatibility.
However, post-release we have been contacted by integrators with totally immutable infrastructure depending on so-called “hardcoding” of legacy peripheral contracts, in this case, an old version of the ProtocolDataProvider
, designed to be replaced on the core contract of Aave (PoolAddressesProvider) whenever an upgrade happens.
Even if non-critical, this has created issues for those integrators, and from the Aave side, it is possible to increase even more the retro-compatibility by doing a simple upgrade on the Pool
smart contract.
Specification
The governance proposal will configure a MOCK_STABLE_DEBT
variable on the PoolAddressesProvider
, together with upgrading the Aave Pool
contract across all networks.
On this pool upgrade, the only modification would be to now return the previously configured MOCK_STABLE_DEBT
address for stableDebtTokenAddress
on Pool.getReserveData()
, this way removing any type of unexpected behavior from integrators using legacy ProtocolDataProvider
peripheral contracts, consuming getReserveData()
.
The upgraded Pool can be found HERE and the proposal payload HERE, both in the draft stage until the Aave DAO security partner (@Certora) reviews them.