Skip to content

Releases: aave-dao/aave-v3-origin

v3.3.0

24 Feb 10:35
5431379
Compare
Choose a tag to compare

Summary

v3.3 version of the Aave protocol, including:

  • Introduction of bad debt accounting, to be compatible with the upcoming Umbrella system.
  • Improvement of the liquidations close factor mechanism, and complementary ones.
  • Optimisation of ReserveConfiguration bit operations.
  • Misc integrations changes on Pool, PoolDataProvider, different peripheral contracts.

Changelog


-> Core

ReserveConfiguration

  • The bitmasks and bit operations have been inverted, causing exactly the same output on the bitmaps data, but in a more efficient way.

Pool

  • Added new events related with deficit data
  • Added permissioned eliminateReserveDeficit(), by a new Umbrella role registered on the PoolAddressesProvider.
  • Added new getters for commonly used addresses (a/v Token) and deficit.
  • [BREAKING] Removed getReserveDataExtended(), marked as deprecated on 3.2.

Errors

  • New 101-105 codes

DataTypes

  • __deprecatedStableBorrowRate (not exposed already) has been replaced by deficit

ConfiguratorLogic

  • Minor internal changes to fetch data more efficiently from the Pool.

ReserveLogic

  • On updateState(), use reserveCache.reserveLastUpdateTimestamp as .cache() is always done just before in the protocol flow. Same for getIsVirtualAccActive().
  • Added eliminateDeficit() function

LiquidationLogic

  • Added new MIN_BASE_MAX_CLOSE_FACTOR_THRESHOLD and MIN_LEFTOVER_BASE public constants
  • Added management of bad debt accounting (deficit) and burning, whenever it accrues.
  • Introduced new logic to avoid protocol dust.

-> Periphery

AaveProtocolDataProvider

  • Uses more granular getters on the Pool, saving gas and reducing future problems with backwards compatibility.
  • Exposes the new deficit reserve data field via a getReserveDeficit() getter.

UIPoolDataProvider

  • [BREAKING] The AggregatedReserveData struct returned from getReservesData() now has an extra deficit field.
  • Backwards compatible change of type returned for networkBaseTokenPriceInUsdProxyAggregator and marketReferenceCurrencyPriceInUsdProxyAggregator.

WrappedTokenGatewayV3

  • Uses more granular getters on the Pool, saving gas and reducing future problems with backwards compatibility.
  • Now exposes WETH & POOL as public variables

ParaswapAdapters

  • Uses more granular getters on the Pool, saving gas and reducing future problems with backwards compatibility.

EmissionManager

  • setRewardOracle() now requires a different input type for rewardOracle, but backwards compatible

RewardsController

  • Transparent changes on internal interface types used, no effect externally

All instances of the ChainlinkOracle interface have been aligned to a single version containing all methods.
While we are aware that non of the contract actually needs all methods, it improves DX within the aave-v3-origin repo to assume they do.