Détail du package

@zerolendxyz/core-v3

aave38BUSL-1.12.21.0

zerolendxyz Protocol core smart contracts

aave, protocol, protocol-v3, core-v3

readme

Build pass codecov

        .///.                .///.     //.            .//  `/////////////-
       `++:++`              .++:++`    :++`          `++:  `++:......---.`
      `/+: -+/`            `++- :+/`    /+/         `/+/   `++.
      /+/   :+/            /+:   /+/    `/+/        /+/`   `++.
  -::/++::`  /+:       -::/++::` `/+:    `++:      :++`    `++/:::::::::.
  -:+++::-`  `/+:      --++/---`  `++-    .++-    -++.     `++/:::::::::.
   -++.       .++-      -++`       .++.    .++.  .++-      `++.
  .++-         -++.    .++.         -++.    -++``++-       `++.
 `++:           :++`  .++-           :++`    :+//+:        `++:----------`
 -/:             :/-  -/:             :/.     ://:         `/////////////-

Aave Protocol v3

This repository contains the smart contracts source code and markets configuration for Aave Protocol V3. The repository uses Docker Compose and Hardhat as development environment for compilation, testing and deployment tasks.

What is Aave?

Aave is a decentralized non-custodial liquidity markets protocol where users can participate as suppliers or borrowers. Suppliers provide liquidity to the market to earn a passive income, while borrowers are able to borrow in an overcollateralized (perpetually) or undercollateralized (one-block liquidity) fashion.

Documentation

See the link to the technical paper or visit the Aave Developer docs

Audits and Formal Verification

You can find all audit reports under the audits folder

V3.0.1 - December 2022

V3 Round 1 - October 2021

V3 Round 2 - December 2021

Formal Verification - November 2021-January 2022

Connect with the community

You can join the Discord channel or the Governance Forum to ask questions about the protocol or talk about Aave with other peers.

Getting Started

You can install @aave/core-v3 as an NPM package in your Hardhat or Truffle project to import the contracts and interfaces:

npm install @aave/core-v3

Import at Solidity files:

import {IPool} from "@aave/core-v3/contracts/interfaces/IPool.sol";

contract Misc {

  function supply(address pool, address token, address user, uint256 amount) public {
    IPool(pool).supply(token, amount, user, 0);
    {...}
  }
}

The JSON artifacts with the ABI and Bytecode are also included in the bundled NPM package at artifacts/ directory.

Import JSON file via Node JS require:

const PoolV3Artifact = require('@aave/core-v3/artifacts/contracts/protocol/pool/Pool.sol/Pool.json');

// Log the ABI into console
console.log(PoolV3Artifact.abi)

Setup

The repository uses Docker Compose to manage sensitive keys and load the configuration. Prior to any action like test or deploy, you must run docker-compose up to start the contracts-env container, and then connect to the container console via docker-compose exec contracts-env bash.

Follow the next steps to setup the repository:

  • Install docker and docker-compose
  • Create an environment file named .env and fill the next environment variables
# Add Alchemy or Infura provider keys, alchemy takes preference at the config level
ALCHEMY_KEY=""
INFURA_KEY=""


# Optional, if you plan to use Tenderly scripts
TENDERLY_PROJECT=""
TENDERLY_USERNAME=""

Test

You can run the full test suite with the following commands:

# In one terminal
docker-compose up

# Open another tab or terminal
docker-compose exec contracts-env bash

# A new Bash terminal is prompted, connected to the container
npm run test

changelog

Changelog

1.19.4 (2024-06-19)

Bug Fixes

1.19.3 (2024-03-07)

Bug Fixes

1.19.2 (2023-10-17)

Bug Fixes

1.19.1 (2023-07-04)

Bug Fixes

1.19.0 (2023-07-04)

Features

  • add OpenZeppelin SafeERC20 and Address dependencies (#859) (493bb4d)

Bug Fixes

  • add natspec docs to flags of reserve configuration map (#854) (792c23e)
  • remove initial config of fee params in pool initialize function (#846) (3bb960b)
  • Soften solidity version of FlashLoanBase contracts (#861) (364a779)

1.18.0 (2023-06-26)

Features

Bug Fixes

  • communicate correct premium in case of debt-bearing flashloan (#822) (7b2a284)
  • Fix collateral behavior of zero-ltv assets (#820) (ea48670)
  • Fix event checks in test cases (#824) (29ff9b9)
  • linting (#837) (97cb6ea)
  • Return final withdraw amount in L2Pool withdraw fn (#831) (37b4d1f)

1.17.2 (2023-01-31)

Bug Fixes

  • expose error list and types at npm package (#809) (0334bf2)

1.17.1 (2023-01-10)

Bug Fixes

1.17.0 (2022-12-28)

Features

  • add additional flashloan scenario (8888093)
  • add unit test for reserve configuration (49d0f4e)
  • bump to beta version (348ce20)
  • enable and disable flashloans (bb62572)
  • remove borrow enabled requirement (8b9221b)
  • switch bit used for flashloan enabled (748818f)
  • updated price oracle sentinel interface (0457e71)
  • updates and tests (8d12d79)

Bug Fixes

  • Add license to L2Pool contract (#765) (56fd7ba)
  • add validation to simpleFlashLoan (bf652c2)
  • Avoid emitting events when balanceIncrease is zero (#745) (43f34c9)
  • Capitalize license name of contracts (fba69f0)
  • CEI to fix reentrancy risk with reentrant tokens (eg ERC777) (#704) (7fbdc6e)
  • check revert msg and event emission (284b492)
  • Complete interfaces of IReserveInterestRateStrategy and IPoolDataProvider (#766) (a00dda8)
  • Fix condition of full liquidation of collateral (#753) (56bcf5d)
  • Fix docs param in burnScaled (6b504d4)
  • Fix param of IAToken function (1cb9ba1)
  • Fix test of inaccuracy when liquidationProtocolFee is on (7d8b7bf)
  • Fix typo in docs (#752) (9ccb1ab)
  • Install the last package of periphery for the rewards contract update (066259a)
  • make InterestRateStrategy contract inheritable (d06f8f2)
  • make InterestRateStrategy contract inheritable (0311475)
  • Make transferOnLiq() virtual (6968062)
  • Minimize the IAaveIncentivesController with only the handleAction (a33f931)
  • modify interface versions to support all minor 0.8.x vers (9e95439)
  • Optimize logic for atoken self-transfers (6c3154e)
  • reentrancy in liquidationCall (cd508a7)
  • Reformat code (84b900c)
  • remove formatting conflicts (4c2cda0)
  • remove gitignore update (d7aa26a)
  • remove unrelated change (a5ce86a)
  • solution to fix liquidation failed case. (623730b)
  • streamline test (516e0e8)
  • typo (#717) (9666e99)
  • typos (#715) (7dd869f)
  • update comment for setReserveFlashLoaning (9d84549)
  • update deploy and periphery dependencies (078fa28)
  • update hardhat dependencies and fix test-suite error codes (#739) (a54692a)

1.16.2 (2022-07-28)

Features

  • bump ci node.js to 16 (82a11d2)
  • set to hardhat 2.10.0 and ethers to 5.6.9 (9b50898)

Bug Fixes

  • dependencies (f844a45)
  • load market test data correctly, fix atoken/debt token names (72d1264)
  • remove npm ci cache, bump gas reporter to fixed version 1.0.8 set ethers to fixed version 5.6.1 (bbb2dfd)
  • upgrade periphery and deploy library to latest version (902b48a)
  • use ethers 5.5.3 to prevent different @ethersproject/bignumber version (5411930)

Miscellaneous Chores

1.16.1 (2022-04-05)

Bug Fixes

  • add comment for undocumentted parameter (ba0e4ee)
  • Add helpers for proxy contracts (eip1967 slots) (d82be43)
  • Fix ts type of contract in tests (12373ca)

1.16.0 (2022-03-15)

Features

  • updated price oracle sentinel interface (f6b71f5)

Bug Fixes

  • Fix docstrings of ISequencerOracle (4391fd4)

1.15.0 (2022-03-04)

Features

  • add owner constructor parameter to contracts that inherits Ownable to support CREATE2 factory deployment (b6cc245)
  • bump beta deploy package (fbcf885)
  • refactored executeLiquidationCall function (63e43ef)

Bug Fixes

  • add owner parameters to test suites (6e96821)
  • Move reservesData param to the beginning of the param list (0872cb4)

1.14.2 (2022-03-02)

Bug Fixes

  • Replace ...PriceAddress with ...PriceSource (10a8667)
  • Use EModeLogic::isInEModeCategory in executeLiquidationCall (28f72fe)

1.14.1 (2022-03-01)

Bug Fixes

  • Improve consistency of function naming of CalldataLogic (1a5517d)
  • Use memory instead of storage in getLiquidationBonus (deccf52)

1.14.0 (2022-02-21)

Features

  • clean dependencies and upgrade child dependencies (7ca97ca)
  • removed obsolete files for the certora tools (d7e0e7c)

Bug Fixes

  • reserves renamed to reservesData or reservesList when fitting (3a6b928)
  • Cleanup naming and remove duplicate tests (6ed5891)
  • Fix typo in package contributors tag (14a3b6d)
  • Moved getUserAccountData logic to PoolLogic to minimize contract size (b07bdab)
  • Natspec for IPool::swapBorrowRateMode() (5b016fc)
  • Place interface extension declaration at the end (19c015e)
  • Rename reserves to reservesList (4b0af0b)
  • Revert dependencies to last working state (ff4d987)
  • typo in tech paper (d6b9cbc)
  • Update contributors etc in package.json (60fc967)
  • Update gas optimization numbers (8719929)

1.13.1 (2022-01-27)

Bug Fixes

  • Add virtual to getReserveNormalizedIncome function (bc10fd2)
  • Mark all functions as virtual (f6932b3)

1.13.0 (2022-01-25)

Features

1.12.0 (2022-01-25)

Features

  • bump @aave/deploy-v3 version (85ec0fe)

Bug Fixes

  • missing library at test, add updated deploy beta package (67a5c80)

1.11.1 (2022-01-25)

Bug Fixes

  • Add natspec and handle naming (1f5c8a9)
  • Adding literal params struct to initReserve (43cced7)
  • Change function modifier of MAX_NUMBER_RESERVES to pure (dc34a67)
  • Error library (475eb1d)
  • fix comments (b90b888)
  • Move dropReserve logic to PoolLogic (169d72c)
  • Move initReserve and getReservesList to PoolLogic (b0ef5e4)
  • Move availableLiqudity assignment in DefaultReserveInterestRateStrategy (8c82d9d)
  • Move comment up in validationlogic (cbdaa30)
  • Move getters back to Pool, rename execute for functions called by pool (106b617)
  • Naming Atoken to AToken (0d50841)
  • Remove unneeded comment (1cb2324)
  • Remove unneeded comment (4134d89)
  • Remove unneeded fields in FlashLoanLocalVars struct (9cb3a05)
  • Remove unneeded import of interface in Pool (cc49160)
  • Rename flashloanRepayment internal funciton to _flashloanRepayment (3e18b8a)
  • Replace > 0 with != 0 (7bc9926)
  • Simplify executeRepay (6ab4a44)
  • update comments (5f09cf9)
  • Update deploy version (a99e5b4)
  • Update import order in PoolLogic (40447cd)
  • Update natspec (f60a451)
  • Update ordering in FlashLoanRepaymentParams (93dd9ea)

1.11.0 (2022-01-23)

Features

  • Add rescueTokens functionality for Pool and AToken (047edf8)

Bug Fixes

  • Add getter for _stableRateExcessOffset (3586ebb)
  • Fix contract docstrings (802a4bd)
  • Fix imports order (5d237a4)
  • Re-add the abstract modifier to base tokenization contracts (52abb3f)
  • Remove blank space (0c208fa)
  • Remove rescueTokensFromAToken from Pool (1a32301)
  • Revert chainId renaming (c4283d5)
  • Update comment (94c4cfb)
  • Update natspec and test (39363e4)
  • Update natspec for calculateInterestRates() (b22150b)
  • Update test name (f6319b9)

1.10.0 (2022-01-12)

Features

  • fix tests missing module. add deployments dir to gitignore (4e2c5e8)
  • moved IncentivizedERC20 to the base folder (1d5ed55)
  • refactored premium to protocol in updateFlashloanPremiumTotal (6349f4b)
  • refactored premiumTotal in updateFlashloanPremiumToProtocol (6b9f82c)
  • update comment (7d6ccfb)

Bug Fixes

  • Add userTotalDebt variable and refactor fix (f9794f1)
  • Add amount cache in premium calc of executeFlashLoan (785ba09)
  • Add checks to turn off borrowing. (f9ec711)
  • Add error message (18ae21f)
  • add failing tests (254a021)
  • Add id to register and unregister events (c196b71)
  • Add indexed params to MarketIdSet event (74062fc)
  • Add new event AddressSetAsProxy for imple address updates (e4a15fb)
  • Add override modifier to underlyingAsset getter (be4702c)
  • Add percentage range check of liquidationFee in Configurator (2d5330b)
  • Add range check for new reserve factor (9863a47)
  • add test for setting interest rate on unlistest asset (09c04d2)
  • Add underlying getter in debtToken interfaces (498b860)
  • add validation to set interest rates (f623d9a)
  • Add visibility accessors to StableDebtToken state variables (9faa22f)
  • Add visibility accessors to state variables of mocks (b76dcb7)
  • address provider staticcall get implementation (d2b1a32)
  • Change order of condition in validateHFAndLtv for gas saving (34145bf)
  • check asset for zero address (cdaa90c)
  • Clean tests (d47b777)
  • consistent get, set order (ccb634a)
  • Enhance reserves listing function in Pool (2303871)
  • failing test (82758e9)
  • Fix ChainlinkAggregator intergration in AaveOracle (44af5fe)
  • Fix docstrings (a6b1a02)
  • Fix error from merge conflicts (b0bea4c)
  • Fix error in a revert message of test cases (abaaa2c)
  • Fix error in docstring (a9aec4a)
  • Fix error in test case (4fb8037)
  • Fix error in test from merge conflicts (c7512ed)
  • Fix error name INVALID_RESERVE_FACTOR (3785b38)
  • Fix errors constants in types.ts (cdc6b26)
  • Fix errors in constants from merge conflicts (4831638)
  • Fix errors of merge conflicts (b684547)
  • Fix grammar spell typos in docstrings (3868ead)
  • Fix MockAggregator code (67d29f5)
  • Fix test, fetching artifact from local typechain (da07b87)
  • Fix typo in constant value (71dc37c)
  • Fix typo in docstring (70a4a51)
  • Fix typos in docstrings (51b95e0)
  • Fix typos in docstrings (80ad248)
  • Fix typos in docstrings (d3aa941)
  • Improve readability of LiquidationLogic constants (79896d5)
  • improve set config readability (a9dd99f)
  • interest-rate-strategy-range-checks (adf2f4c)
  • Make flashloan premium to protocol a fraction of total premium (d24c962)
  • Mark proxyAddress as indexed in AddressSetAsProxy event (bddabad)
  • Move IChainlinkAggregator to dependencies and rename it to official name (6099f84)
  • Move up validation of executeFlashloan (4b64705)
  • Naming of excess variables + introduction of constant for stable ratio (37c2a63)
  • Remove .solhint.json (972ec21)
  • remove console logs (2cd4dcc)
  • Remove external hacky getProxyImplementation function (62a25c8)
  • Remove getUserCurrentDebtMemory() helper function (f2dc371)
  • Remove not needed ProxyImplementationSet event (002ebda)
  • Remove redundant functions in WadRayMath lib (5f0f035)
  • Remove references to DataTypes inside itself (e5abd90)
  • Remove unneeded _getUnderlyingAsset() (f2af600)
  • Remove unneeded constants for tests (27130ac)
  • Remove unneeded debug console (4654be0)
  • Remove unneeded import in PoolStorage (361cc39)
  • Remove unneeded local variables (a718549)
  • Remove unneeded vars for validateHFAndLtv (8b32e45)
  • Remove unused commented value (9179670)
  • Removes not needed BytesLib library (43db2f6)
  • Rename last test helper with utilizationRate naming (8acfc1a)
  • Rename utilizationRate for usageRation in contracts (b9e46eb)
  • Replace INCORRECT_ADDRESSES_PROVIDER for INVALID_ADDRESSES_PROVIDER (be99a3c)
  • Replace INVALID_PARAMS_EMODE_CATEGORY for INVALID_EMODE_CATEGORY_PARAMS (e4e922b)
  • Replace INVALID_PARAMS_RESERVE for INVALID_RESERVE_PARAMS (b6bb1cc)
  • Replace NO_STABLE_RATE_LOAN_IN_RESERVE for NO_STABLE_RATE_DEBT (43cf2a1)
  • Replace NO_VARIABLE_RATE_LOAN_IN_RESERVE for NO_VARIABLE_RATE_DEBT (df9658f)
  • Replace unneeded inline if with expect (d0d24b8)
  • Replace updateIsolationModeTotalDebt with a reset function (35b4346)
  • Revert renaming of ValidationLogic constants (b6fc891)
  • Revert renaming of ValidationLogic constants (52fc81a)
  • Revert variable rename of usageRatio (66f51fd)
  • Simplify test using object destructuring (98b7d73)
  • Simplify updateImpl logic (da14cbf)
  • Update naming of EXCESS constants (064a4d4)

Miscellaneous Chores

1.9.0 (2021-12-26)

Features

  • add event test (d5fe4bb)
  • added additional functions to IAToken for EIP2612 (df8ee61)
  • added event to DelegationAwareAToken (f5fd1b6)
  • added indexed to the ICreditDelegation event (0a3d365)
  • replaced SafeERC20 with GPv2SafeERC20 (fe4ae41)

Bug Fixes

  • Add comment to BorrowLogic (2ae309d)
  • add else (4bdbd7f)
  • Add explicit access level for variables (8fb2e3c)
  • Add mode to FlashLoan event (956c809)
  • Add natspec to executeLiquidationCall (9bb5289)
  • Add repay with atoken ux issue (b464cf5)
  • Avoid finalizeTransfer with 0 value transfer (d6bf261)
  • Cache result to not recompute for event (b342d2f)
  • Change to in Pool for V2 compatibility (932c5a0)
  • Clean cumulateToLiqIndex and add comments (d6e90dc)
  • Fix income -> debt in getNormalizedDebt natspec. (9e6b183)
  • Fix differences between IPool and Pool (8beefda)
  • Fix docstrings (93c2d95)
  • Fix docstrings (c55bb04)
  • Fix typo (df40063)
  • Fix typo in setReserveFreeze function name (da72c39)
  • Fix variable name of event in ReserveLogic (40b9bb8)
  • Gas optimization UserConfiguration (af00927)
  • Handle code style issues (af3743b)
  • Improve code readability of ReserveLogic (ae1476d)
  • Improve readability of initial values of variables (592b21d)
  • Include 100% as valid premiums (c6b3347)
  • Make test engine not stop at first failure (84eaf29)
  • Move up event in IVariableDebtToken (f536538)
  • move up require (d47afa2)
  • Re-add getUserCurrentDebtMemory() (7742985)
  • Refactor variable calc in StableDebtToken (4ed69b4)
  • Remove case, created separate issue (0082fd8)
  • remove IAaveIncentivesController casting (9805add)
  • Remove redundant casting for block.timestamp (941539f)
  • Remove redundant unneeded variable (703782c)
  • Remove unneeded delegator param from delegationWithSig typehash (dcf7c36)
  • Remove unneeded imports in contracts (48f9e89)
  • Remove unneededv variable in cumulateToLiqIndex (75e7fdc)
  • removed invalid imports (659b82c)
  • rename admin variable (5199283)
  • Replace rateMode with interestRateMode and precise dataype (806f161)
  • Replace factor with multiplier for clarity (085ad0c)
  • Replace HALF_PERCENT with HALF_PERCENTAGE_FACTOR (4fb45ec)
  • Replace Helper.toUint128 with OZ SafeCast (3916735)
  • Rever simplification of cumulateToLiqIndex due to precision loss (585c9c4)
  • set config map to zero on init (ea40ee1)
  • Simplify condition in SupplyLogic (6487f29)
  • Simplify cumulateToLiqIndex in ReserveLogic (53a95c8)
  • swap name (ebd3622)
  • Typo in liquidation-emode.spec.ts (97e0acc)
  • update admin to internal (7d19d29)
  • Update test with new delegationWithSig typehash (fea83f3)
  • Use next prefix for isolation mode total debt (5ffeecd)

1.8.0 (2021-12-16)

Features

  • added natspec comments, changed function param names to uniform with the other functions (dda5bde)
  • clarify mint and burn comment in interface (03041ef)
  • refactored setReserveBorrowing, setReserveStableRateBorrowing, fixed tests (6749233)

Bug Fixes

  • Add 0 division check to wadDiv and rayDiv. (ea80f22)
  • Add better natspec for ConfiguratorLogic (5cdfcdf)
  • Add better natspec for EModeLogic (816d566)
  • Add comments about BaseCurrency to IPriceOracleGetter (60ff953)
  • Add docstrings for SequencerOracle (9557272)
  • Add docstrings to PriceOracleSentinel (368c77f)
  • Add event emission to natspec (ec28a38)
  • Add explicit error message for LTV == 0 before division. (d8d1694)
  • Add functions docs of IPoolAddressesProvider (36a543b)
  • Add IAaveOracle interface (ed03e30)
  • Add literal syntax to setEModeCategory (4ab27c3)
  • Add missing docstrings of the IACLManager (84bcffc)
  • Add test and zero div check to percentageDiv (d914c9d)
  • Added first to natspec _getFirstAssetAsCollateralId() (1b6a1df)
  • additional check in isUsingAsCollateralOne() to avoid revert if collateralData == 0 (49638cb)
  • Change access control to setGracePeriod (d9c2630)
  • Clean code style of FlashLoan mocks (6fe84b6)
  • Clean code style of mocks (60a03e3)
  • Consolidate BorrowingOnReserve events into 1 (110c5d0)
  • Enhance clarity of WadRayMath constants (b7244c1)
  • Fix and clean halfWad and halfRay values (5f5dff4)
  • Fix BridgeLogic natspec (71be75e)
  • Fix PoolAddresesProvider docstrings (30d757f)
  • Fix typo in IAaveOracle natspec (1f02c09)
  • Fix typo in LiquidationLogic natspec (3729466)
  • Fix typos in docstrings (167da26)
  • Fix typos in natspec docs (e29d46f)
  • Format public immutable variable name with MACRO case (c90b040)
  • increased the data size of id and i to uint16 (3d7fc2b)
  • Make _pool public of AToken and DebtToken (014da25)
  • Make addressesProvider of AaveOracle public (69b3eca)
  • Make gracePeriod and sequencerOracle configurables (3c6352f)
  • Make Pool _addressesProvider public (762d79e)
  • Merge conflict in stable-debt-token.spec.ts (78a6198)
  • Minor merge conflict (0df5e80)
  • Move the optimization after the operation condition (c6a785f)
  • naming consistency and stable debt event fix (7f17123)
  • Optimize setUseReserveAsCollateral whenthere is no state change (55445f2)
  • remove console.log (e279cda)
  • Remove duplicated code in LiquidationLogic (2189ba4)
  • Remove unneeded comments (9ec0ec4)
  • Remove unneeded contract file (6f480ec)
  • remove unused variable (87fc0bb)
  • Rename PoolConfigurator setter events (53b40ce)
  • Rename setter functions names (449f42d)
  • set package-lock.json (299d2f9)
  • Typo in flashloanlogic natspec (4e36f6f)
  • Unify reserveCount and maxReserve to uint16 (b6e2b35)
  • update .npmrc (9cfe79c)
  • Update comments in validation-logic.spec.ts (3b5c039)
  • Update executeRepay to compute interest correctly for repaying with aTokens (abf0e0c)
  • Update function naming (594b929)
  • Update natspec docs for FlashLoanLogic (4b02b3e)
  • Update variable packing of ReserveData (7765624)
  • Update wording of token update functions in ConfiguratorLogic (2dd1551)
  • use @aave/deploy-v3@1.7.1 library and load typechain locally instead of deploy-v3, to fix unsynced artifacts (6904746)
  • Use checkNoSuppliers instead of CheckNoDepositors (88aff43)
  • use already calculated value instead of re-calculating (c0743f9)
  • Use cache to get aTokenAddress in bridge logic (e41ec39)
  • Use literal syntax for struct params (7baf196)

1.7.0 (2021-12-01)

Features

  • Add decimals to MockAggregator to match Chainlink Aggregator interface (4cf1dac)
  • added handleRepayment() in flashloan and liqCall (6c43820)

Bug Fixes

  • fixed handleRepayment() in flashloan (80a19bb)

1.6.0 (2021-11-27)

Features

  • reduced the number of optimizer runs (8562a91)
  • reorganized PoolStorage for gas savings (87776f7)

Bug Fixes

  • Add useATokens param to Repay event (beec3f8)
  • Add additional constraint to use eModeAssetPrice (ec42295)
  • Add check to Pool::initializer() (8f2b426)
  • Add clean ups to VariableDebtToken test (bc4f314)
  • Add cleanup to StableDebtToken test (d1eeaa5)
  • Add cleanups in eMode tests (fbf80a8)
  • Add extra input to MockPoolInherited test deployment (e7944dc)
  • Add minor gas optimization for executeFlashLoan (0d737f5)
  • Add natspec comments to IncentivizedERC20 (722a8e7)
  • Add precision to debt ceiling comment (3d43c02)
  • Add test exploiting pricing issue (3457fb8)
  • Add test for incorrect init of pool (b3cebaf)
  • Bumped Node JS version of Dockerfile to 16 stable version. Update package-lock. (f0c8787)
  • Change visibility of name() in IncentivizedERC20 (467a5c1)
  • Do multiplication before devision for currentStableBorrowRate (ca177fb)
  • Fix typo on credit delegation test case (0b6a65b)
  • Handle minor merge issue (36488c9)
  • Make _addressesProvider immutable in Pool (b41feab)
  • Make _nonces internal and add nonces getter (f3d1817)
  • Make MAX_RESERVES_COUNT constant (04ced7f)
  • MockPoolInherited wrong return value on MAX_NUMBER_RESERVES (b724a73)
  • Move _nonces to IncentivizedERC20 (54eb024)
  • Move list length check to front of validateFlashloan function (f485be5)
  • Pair _avgStableBorrowRate and _totalSupplyTimestamp (b6c9372)
  • Refactor tokens, move domain separator function to IncentivizedERC20 (c033f9d)
  • Removal of unneeded struct (262dc7a)
  • Remove unneeded fields from AvailableCollateralToLiquidateLocalVars (f9088b6)
  • setup npm registry without file (91fdc99)
  • Simplify _getFirstAssetAsCollateralId() (dffc2f6)
  • source setup env for coverage (fd7de34)
  • Update user to onBehalfOf for VariabelDebtToken (7ff840f)
  • Update package.json (49a8c39)
  • update v3 deploy dev dependency to latest deployment scripts (2aa8f5c)
  • update v3 dev dependencies (9cb6a47)
  • Use cached value for asset unit instead of recomputation (335927c)

1.5.2 (2021-11-12)

Bug Fixes

1.5.1 (2021-11-12)

Bug Fixes

1.5.0 (2021-11-12)

Features

  • updated solidity version (7891ac6)

Bug Fixes

  • Add comment + gasoptimization for flashloans (546fe84)
  • Add comment to elaborate on unusual flow in flashloan simple (5f41c07)
  • Add configuration cache to save gas (e5b9c2a)
  • Fix reentrance attack in flashLoanSimple (1e98320)
  • Move interestRateMode cast below state update (9732e6f)
  • Simplify flow for mintToTreasury (8385f6b)

1.4.0 (2021-11-09)

Features

  • added public debt ceiling decimal constant, added getter to DataProvider (52918e2)

1.3.0 (2021-11-09)

Features

  • added borrowable in isolation configuration, fixed tests (8755279)
  • Added missing legacy methods (3a2fc3f)
  • finalized implementation, fixed tests (c9bb800)
  • initial implementation (043bcde)

Bug Fixes

  • improved condition in rayToWad() (3eec7b3)

1.2.1 (2021-10-19)

Bug Fixes

  • Added view to getEModeCategoryData method in pool interface (b3ebdcc)

1.2.0 (2021-10-18)

Features

  • Add onlyAssetListingOrPoolAdmins modifier to setAssetSources (6bb8a1c)
  • Add bridge protocol fee + fix tests for update (bc4b554)
  • Add simple flashloan of 1 asset (dbc5c9e)
  • added setIncentivesController (8c027f4)
  • added the data provider to the addresses provider (5f3abbc)
  • finalize implementation (1e72d0b)
  • fixed calculations in ValidationLogic and BorrowLogic (5b507bd)
  • fixed setDebtCeiling, added tests (6ef9683)
  • increased debt ceiling field capacity (541f970)
  • refactored PoolDataProvider functions in the addresses provider, fixed _checkNoLiquidity (10300d4)
  • refactored the pool variable to immutable in atoken/debt tokens (8e4d226)
  • renamed simpleFlashloan and data structure (9cc4d0c)
  • Uniform permission of AaveOracle (f471b0f)

Bug Fixes

  • Add getActive check on assets in flashloan. (740aeaf)
  • added public vars to interface for periphery usage (8af6d0a)
  • added view to the getDataProvider function interface (0e6ee36)
  • correct package lock (7965e0e)
  • Fix 0.8.7 version throughout the contracts (6d97be8)
  • fix calculation bug in isolation mode (8de2424)
  • Fix convention naming for constants (193e3ab)
  • Fix declaration shadowing of mock contract (7872ecb)
  • Fix doc in StableDebtToken (9494299)
  • Fix inheritance of mock contracts (5bb62ad)
  • Fix simple flash loan test to use new function name (9036580)
  • Fix stack too deep for unoptimized compile of PoolConfigurator (ef14f03)
  • fixed condition on supply and transfer, added tests (6081003)
  • fixed isolation mode condition (9672442)
  • fixed the calculation for isolationModeTotalDebt (68bf644)
  • Follow check-effects-interactions pattern more strictly (7e7980a)
  • Mark the initialization functions as external (e037467)
  • Move flashloans to separate library (9308e97)
  • package lock with correct node version (3d2f5b6)
  • Reintroduced check for max repayment on behalf (c351627)
  • Remove comment from FlashLoanLogic (774c326)
  • Remove old call (a82d303)
  • Remove unneded return value of AToken.transferUnderlyingTo (5f30b38)
  • Remove unneded use of SafeMath (a9584f8)
  • Remove unneeded check at validateRepay (6d3d73f)
  • Remove unneeded storage variable from PoolConfigurator (af8f695)
  • Remove unneeded use of function params (d0d8980)
  • Remove unused PC_INVALID_DEBT_CEILING_ASSET_ALREADY_SUPPLIED (c68b67a)
  • Remove unused imports from BorrowLogic (7b019c0)
  • Remove unused inports from FlashLoanLogic (0aa3a39)
  • Remove unused variable + readability (00c2e66)
  • Rename _checkNoLiquidity to _checkNoDepositors (95fb785)
  • Rename arguments for backUnbacked in library (6ca57a1)
  • Rename Percentage to BPs for argument in backUnbacked (94eaf83)
  • Replace assembly for chainId (777d04a)
  • Set MAX_VALID_DEBT_CEILING = 2^40 - 1 (fa4c485)
  • Update calculateCompoundedInterest to increase precision (dcbb583)
  • Update comments in FlashLoanLogic (7fee95c)
  • Update doc for getDebtCeiling (3d0e0cb)
  • Update IPool doc for backUnbacked (6ffc157)
  • Update precision in isolationDebt check (7fbf7b6)
  • update the max MAX_VALID_DEBT_CEILING (16d9aa8)
  • Update visibility of tokenization (128a947)
  • updated hardhat config (2129dc0)

1.1.0 (2021-09-28)

Features

  • Add unbackedMintCap to control unbacked atokens minting (bde09e3)
  • Add asset listing admin role (3c3cd50)
  • Add eMode category getters on Pool (1e5a4e2)
  • Add flag for OperationValidator at ReserveConfig, add renaming (6515d1d)
  • Add getReserveEModeCategory at DataProvider (268dac1)
  • Add initial contract to validate operations (d6af2e5)
  • Add new onlyAssetListingOrPoolAdmin for initReserves (9d36fa5)
  • Add test cases (0814ac2)
  • Add test cases for category emode registration (31ab296)
  • Add tests for edge cases of supply function (30d5f83)
  • Add tests for the new unbackedMint cap control (ad92076)
  • added optimal stable to variable debt ratio (e0a9756)
  • added validation and events on eMode categories configuration (fdf483b)
  • Initial OperationalValidator integration (5088148)
  • refactored InterestRateStrategy, fixed conditions (5196636)
  • removal of the rate oracle, initial implementation, tests fixed (1f5b953)
  • Rename OperationalValidator to PriceOracleSentinel (9004f49)

Bug Fixes

  • Add additional checks to liquidation tests (e06c74f)
  • Add check for previous index (3cfc67c)
  • Add checks for avaiable liquidity in liqudations (80cb24d)
  • Add cleanups and fixes to tests (ccd5a96)
  • Add fixes to OperationalValidator contracts (829be88)
  • Add tests for ASSET_LISTING_ADMIN role (84aa268)
  • Cap supply utilization at borrow utilization (5e79c48)
  • Fix supply function error at SupplyLogic lib. (6c112e8)
  • Fix docs of ACLManager contract (acfebe8)
  • Fix docs of OperationValidator contract (213094c)
  • Fix duplicated code at validateHF (6a30bbb)
  • Fix liquidityAdded in BridgeLogic backUnbacked (68764ee)
  • Fix package-lock (5e37eeb)
  • Fix some comments on contracts (973e644)
  • Fix tests (506d339)
  • fixed borrow condition, removed conditions on transfer/deposit/use as collateral (8dbe7e4)
  • fixed calculation of the avg ltv/liq threshold in eMode (0534f47)
  • fixed error after merging the main branch (83f385f)
  • fixed logic for the stable rate offset, fixed tests (c319929)
  • fixed validateSetUserEMode (750fd34)
  • Improve readability and fix docs of BridgeLogic (2c48e7e)
  • Initial interest rate fix (350c528)
  • Move isBorrowAllowed higher up in validateBorrow (93a447c)
  • npm dependencies (2a366f7)
  • refactored PriceOracleSentinel, valdiation conditions, removed reserve config (e112db9)
  • Remove AToken totalSupply from interest computation (9b779e9)
  • Remove deployOperationalValidator import (3152285)
  • Remove deprecated code of contracts (282b629)
  • removed unnecessary overflow check (4d9861d)
  • removed useAsCollateral flag in supply (891da9b)
  • Rename variable rate-strategy.spec.ts (f7fbdac)
  • Revert renaming back to SequencerOracle (53ab533)
  • Update rate-strategy.spec.ts to use strategy two (31335e0)
  • Update and fix contracts docs (171acdf)
  • Update comments in IPool (3e32f07)
  • Update operation-validator reserve getters (bcdc91d)
  • Update tests for new interest rate calculation (a37d9a1)
  • Upgrade library to make it work with london hf. (c1e6fec)
  • use nextVariableBorrowIndex instead of nextLiquidityIndex on repayValidation (cf9007c)

1.0.3 (2021-09-17)

Miscellaneous Chores

1.0.2 (2021-09-15)

Bug Fixes

  • add repository field and fix publishConfig at package.json (76b90e7)

1.0.1 (2021-09-15)

Bug Fixes

  • set release please to run at master (599fe87)

1.0.0 (2021-09-14)

Features

  • Add virtual on Pool and Configurator getRevision functions (ddd4ac5)
  • Add wadraymath.ts to support wad and ray math on ethers bignumber (cc468df)
  • add coverage, fix merge issues (cfd2afd)
  • add coverage.json to gitignore (8613ddd)
  • Add fix in WETH9Mocked (615ca0b)
  • add liquidation protocol fee to configuration (1207d63)
  • Add missing cases for DefaultReserveInterestRateStrategy (08d6c63)
  • Add missing cases for LiqudationLogic (5fa09f5)
  • Add missing cases for ValidationLogic (c8703d4)
  • Add receive function as fallback in Proxy contract (9bf567e)
  • Change lendingpool path to pool (f344193)
  • Fix small compiler warnings (6f86981)
  • initial implementation (34786a9)
  • liquidation fee based on bonus amount (6ca1b1e)
  • liquidation protocol fee and tests (1a86b77)
  • re-add temporary test script (7ddeb7a)
  • refactor and simplify the market configuration (eeb9e7a)
  • Remove LendingPool references of contracts (702a8d3)
  • Remove LendingPool references of tasks, helpers and tests (6fdde99)
  • remove adapter scripts (259c2cb)
  • remove adapters (253c63e)
  • remove amm test scripts (9f00d44)
  • remove dev tasks (3693feb)
  • Remove LendingPoolCollateralManager references (270f1fe)
  • remove multi market support (3b6e9c5)
  • Remove references to LENDING_POOL of Errors lib (59b5104)
  • Remove references to LendingPool of Pool contract (9919194)
  • Remove references to LendingPool (39a7077)
  • remove safemath in all the core contracts (eaf0ab8)
  • remove tasks, update config, tests working (28a2f87)
  • remove UiPoolDataProvider (e6b5d55)
  • remove un-used code (a370115)
  • Remove unneeded public modifier from contract constructors (207dd42)
  • Remove unneeded returning value in Pool function (c8b8ba0)
  • remove ununsed smart contracts (13faee9)
  • remove unused imports and variables (09e72f2)
  • Remove unused pause functions from Pool contract (024b389)
  • remove verify flag (6da1acf)
  • remove WalletBalanceProvider (efa9df9)
  • remove weth gateway (a6583c4)
  • removed console.log and commented test script (c14b725)
  • Rename getLendingPool() of PoolAddresesProvider (2b94692)
  • Rename getLendingPoolCollateralManager() of AddressesProvider (e318492)
  • Rename getLendingPoolConfigurator() of PoolAddressesProvider (6a34932)
  • Rename getLendingRateOracle() of PoolAddressesProvider (e50413e)
  • Rename setLendingPoolCollateralManager() of AddressesProvider (b79b168)
  • Rename setLendingPoolConfiguratorImpl() of PoolAddressesProvider (475fbe1)
  • Rename setLendingPoolImpl() of PoolAddressesProvider (d3070f0)
  • Rename setLendingRateOracle() of PoolAddresesProvider (2988f28)
  • Rename LendingPool to Pool on contracts (8c4297e)
  • Rename LendingPoolAddressesProvider to PoolAddressesProvider (396ce87)
  • Rename LendingPoolAddressesProviderRegistry (d39e18c)
  • Rename LendingPoolCollateralManager (aa00d30)
  • Rename LendingPoolConfigurator (eea90d8)
  • Rename LendingPoolHarnessForVariableDebtToken (d06d3ac)
  • Rename LendingPoolStorage (5f9b1ea)
  • Rename LendingRateOracle to RateOracle (a9c34b1)
  • Rename LendingRateOracle to RateOracle in contracts (49f14d3)
  • simplify pacakage.json (b169a8e)
  • Split pool logic into libraries (a78e6cc)
  • Split PoolConfigurator logic into library (dee8fe5)
  • update dependencies (d9ec325)
  • update IAToken interface with treasury getter (2b481cb)
  • Update README (c42b691)
  • updated genericlogic (6a25b22)

Bug Fixes

  • add markets folder to prettier linting (52abdf1)
  • Add minimal comments to PoolBaseLogic and PoolHelperLogic (68e077b)
  • Add minor changes to contract docs (4f393aa)
  • add test-amm folder to prettier (bc34d1d)
  • Additional context in test name in interest-overflow.spec.ts (c177a81)
  • Clean package.json scripts (4802cab)
  • comment unused getWalletProvider() in 1__general.ts (0c3ac70)
  • Fix CI actions (11027c8)
  • Fix deployment token helper test (644d4df)
  • Fix docs typos in AaveOracle (9622097)
  • Fix docs typos of protocol/configuration package (d679c22)
  • Fix errors in atoken repay tests (d056de8)
  • Fix Mock contract name (af0f9a8)
  • Fix some docs typos of FlashLoan package (eb0d5d8)
  • Fix test cases of atoken-permit.spec.ts (0e0c68d)
  • Fix the Transfer emission code (f51ef2c)
  • Fix typo of FlashloanPremiumToProcolUpdated event (108e203)
  • Fix typos on imports declarations (d29cbf5)
  • fixed flashloans tests (d9d1890)
  • fixed getIncentivesController inheritance chain (4d27d55)
  • fixed github action targets (500c448)
  • folder name (dd67c22)
  • formatting (6c787df)
  • formatting (8a2f45b)
  • Inconsistency in coverage runs (cfc3caf)
  • Make GenericLogic internal (e7ff741)
  • Make ReserveLogic internal (6598274)
  • Make ValidationLogic library internal (e1d1a01)
  • Make WadRayMath and PercentageMath unchecked (1a81ecf)
  • meet formatting (650f771)
  • Minor changes to docs (dfc4b36)
  • minor cleanup in atoken-edge.spec.ts (b17310e)
  • Move dropReserve() into PoolHelperLogic library (38a9904)
  • Move finalizeTransfer() from Pool into PoolBaseLogic library (053d9ed)
  • Move flashLoan() from Pool to PoolBaseLogic library (f9af312)
  • package.json formatting (5162360)
  • Reducing compiler warnings for mocks (8adf3b4)
  • Refactor docstrings and imports to handle inheritance (b943f9f)
  • Refactor in actions to support effective gas price after London. (d98fa47)
  • Remove impossible cases. Reasoning added to notion notes (2e733be)
  • remove blank file (0286af5)
  • Remove comment mentioning refreshDebt() from ReserveLogic.sol (5ddd74e)
  • Remove commented test file (88d329e)
  • remove coverage.json (915c4a7)
  • Remove explicit return values from IReserveInterestRateStrategy (3107e2a)
  • Remove imports of ethers subpaths (c731f77)
  • Remove last references to lending (81aa4ce)
  • Remove last references to `LendingPool (940352e)
  • Remove receive function from Proxy (2b45a89)
  • Remove StringLib contract since its unused (fdb5d85)
  • Remove unnecessary read (ba61546)
  • Remove unneeded code in MockAggregator (a0bb375)
  • Remove unneeded constant (1c34b8c)
  • Remove unused UserConfiguration from Pool (5ffc46c)
  • Remove unused code from deployments contracts (495e145)
  • Remove unused imports from Pool (a6e01a5)
  • Remove unused imports of test files (8d6782b)
  • Rename PoolBaseLogic library functions (df1f197)
  • Rename two tests (78b891b)
  • replaced buidler references with hardhat, removed unused buidlerevm network references (8543ff2)
  • Undo contracts code change (b1f296e)
  • Update @return doc in IScaledBalancetoken (c0e9987)
  • Update @return doc in LiquidationLogic (1998cc2)
  • Update @return doc in ReserveConfiguration (5afa498)
  • Update MockIncentivesController to get of compiler warnings (dd7bf6c)
  • Update doc in Helpers (9797019)
  • Update docs in ReserveLogic (3bfe674)
  • Update docs in ValidationLogic (9298d56)
  • update hardfork and tsconfig (0723f20)
  • Update hardhat and set hardfork to london (7534c84)
  • Update package-lock.json (e35f02b)
  • update to 0.7.6 (7f55456)
  • Update to 0.8.6 (932f591)
  • update variable names (0bf6132)
  • update variable names, remove duplicate variable (3789669)
  • Use fresh rateOracle instead of replacing old in deployment-token-helper.spec.ts (d7e28e4)
  • Use mock incentives controller instead of none (9ffce12)
  • Use struct for execute repay params (9172681)
  • Use struct for helper variables in execute borrow (53a9ce8)
  • Use struct for variables in _executeWithdraw() (30ffa88)