Skip to content

Commit

Permalink
feat: add base configEngine (#134)
Browse files Browse the repository at this point in the history
Co-authored-by: Jonathan Reem <jonathan.reem@gmail.com>
Co-authored-by: Harsh Pandey <harshsatishpandey@gmail.com>
Co-authored-by: Lukas <lukasstrassel@googlemail.com>
  • Loading branch information
4 people authored Sep 19, 2023
1 parent 88ccbc4 commit b5df36c
Show file tree
Hide file tree
Showing 11 changed files with 105 additions and 10 deletions.
2 changes: 1 addition & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@ ETHERSCAN_API_KEY_AVALANCHE=
ETHERSCAN_API_KEY_FANTOM=
ETHERSCAN_API_KEY_OPTIMISM=
ETHERSCAN_API_KEY_ARBITRUM=
ETHERSCAN_API_KEY_BASE=
ETHERSCAN_API_KEY_BASE=
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,14 @@ deploy-engine-arb :; forge script scripts/AaveV3ConfigEngine.s.sol:DeployEngine
deploy-engine-pol :; forge script scripts/AaveV3ConfigEngine.s.sol:DeployEnginePol --rpc-url polygon --broadcast --legacy --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
deploy-engine-ava :; forge script scripts/AaveV3ConfigEngine.s.sol:DeployEngineAva --rpc-url avalanche --broadcast --legacy --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
deploy-engine-met :; forge script scripts/AaveV3ConfigEngine.s.sol:DeployEngineMet --rpc-url metis --broadcast --legacy --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
deploy-engine-bas :; forge script scripts/AaveV3ConfigEngine.s.sol:DeployEngineBas --rpc-url base --broadcast --legacy --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
deploy-rates-factory-eth :; forge script scripts/V3RateStrategyFactory.s.sol:DeployRatesFactoryEth --rpc-url mainnet --broadcast --legacy --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
deploy-rates-factory-pol :; forge script scripts/V3RateStrategyFactory.s.sol:DeployRatesFactoryPol --rpc-url polygon --broadcast --legacy --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
deploy-rates-factory-opt :; forge script scripts/V3RateStrategyFactory.s.sol:DeployRatesFactoryOpt --rpc-url optimism --broadcast --legacy --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
deploy-rates-factory-arb :; forge script scripts/V3RateStrategyFactory.s.sol:DeployRatesFactoryArb --rpc-url arbitrum --broadcast --legacy --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
deploy-rates-factory-ava :; forge script scripts/V3RateStrategyFactory.s.sol:DeployRatesFactoryAva --rpc-url avalanche --broadcast --legacy --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
deploy-rates-factory-met :; forge script scripts/V3RateStrategyFactory.s.sol:DeployRatesFactoryMet --rpc-url metis --broadcast --legacy --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
deploy-rates-factory-bas :; forge script scripts/V3RateStrategyFactory.s.sol:DeployRatesFactoryBas --rpc-url base --broadcast --legacy --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
deploy-forwarder-pol :; forge script scripts/CrosschainForwarders.s.sol:DeployPol --rpc-url mainnet --broadcast --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
deploy-forwarder-opt :; forge script scripts/CrosschainForwarders.s.sol:DeployOpt --rpc-url mainnet --broadcast --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
deploy-forwarder-arb :; forge script scripts/CrosschainForwarders.s.sol:DeployArb --rpc-url mainnet --broadcast --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
Expand All @@ -37,6 +39,7 @@ deploy-steward-opt :; forge script scripts/RiskStewards.s.sol:DeployOpt --rpc-ur
deploy-steward-arb :; forge script scripts/RiskStewards.s.sol:DeployArb --rpc-url arbitrum --broadcast --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
deploy-steward-ava :; forge script scripts/RiskStewards.s.sol:DeployAva --rpc-url avalanche --broadcast --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
deploy-steward-met :; forge script scripts/RiskStewards.s.sol:DeployMet --rpc-url metis --broadcast --ledger --legacy --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
deploy-steward-bas :; forge script scripts/RiskStewards.s.sol:DeployBas --rpc-url base --broadcast --ledger --legacy --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv

deploy-rates-factory-v2-eth :; forge script scripts/V2RateStrategyFactory.s.sol:DeployV2RatesFactoryEth --mnemonics random --rpc-url mainnet --broadcast --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
deploy-rates-factory-v2-eth-amm :; forge script scripts/V2RateStrategyFactory.s.sol:DeployV2RatesFactoryEthAMM --mnemonics random --rpc-url mainnet --broadcast --ledger --mnemonic-indexes ${MNEMONIC_INDEX} --sender ${LEDGER_SENDER} --verify -vvvv
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@
| description | value before | value after |
| --- | --- | --- |
| eModeCategory | 0 | 1 |
| eMode.label | - | ETH correlated |
| eMode.ltv | - | 90 % |
| eMode.liquidationThreshold | - | 93 % |
| eMode.liquidationBonus | - | 1 % |
| eMode.priceSource | - | 0x0000000000000000000000000000000000000000 |


## Raw diff
Expand Down
5 changes: 5 additions & 0 deletions diffs/preTestEngineListing_postTestEngineListing.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,11 @@
| optimalStableToTotalDebtRatio | 20 % |
| maxExcessStableToTotalDebtRatio | 80 % |
| interestRate | ![ir](/.assets/19b2f23d55d76d891e7d30c29aa97741efed9d17.svg) |
| eMode.label | Stablecoins |
| eMode.ltv | 97 % |
| eMode.liquidationThreshold | 97.5 % |
| eMode.liquidationBonus | 1 % |
| eMode.priceSource | 0x0000000000000000000000000000000000000000 |


## Raw diff
Expand Down
2 changes: 1 addition & 1 deletion foundry.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,6 @@ avalanche={key="${ETHERSCAN_API_KEY_AVALANCHE}",chainId=43114}
polygon={key="${ETHERSCAN_API_KEY_POLYGON}",chainId=137}
arbitrum={key="${ETHERSCAN_API_KEY_ARBITRUM}",chainId=42161}
fantom={key="${ETHERSCAN_API_KEY_FANTOM}",chainId=250}
base = { key="any", chainId=8453, url='https://basescan.org/' }
base={key="${ETHERSCAN_API_KEY_BASE}",chain=8453}

# See more config options https://github.com/gakonst/foundry/tree/master/config
42 changes: 41 additions & 1 deletion scripts/AaveV3ConfigEngine.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import {AaveV3Arbitrum} from 'aave-address-book/AaveV3Arbitrum.sol';
import {AaveV3Polygon} from 'aave-address-book/AaveV3Polygon.sol';
import {AaveV3Avalanche} from 'aave-address-book/AaveV3Avalanche.sol';
import {AaveV3Metis} from 'aave-address-book/AaveV3Metis.sol';
import {AaveV3Base} from 'aave-address-book/AaveV3Base.sol';
import {CapsEngine} from '../src/v3-config-engine/libraries/CapsEngine.sol';
import {BorrowEngine} from '../src/v3-config-engine/libraries/BorrowEngine.sol';
import {CollateralEngine} from '../src/v3-config-engine/libraries/CollateralEngine.sol';
Expand Down Expand Up @@ -217,6 +218,39 @@ library DeployEngineMetLib {
}
}

library DeployEngineBaseLib {
function deploy() internal returns (address) {
IEngine.EngineLibraries memory engineLibraries = IEngine.EngineLibraries({
listingEngine: Create2Utils._create2Deploy('v1', type(ListingEngine).creationCode),
eModeEngine: Create2Utils._create2Deploy('v1', type(EModeEngine).creationCode),
borrowEngine: Create2Utils._create2Deploy('v1', type(BorrowEngine).creationCode),
collateralEngine: Create2Utils._create2Deploy('v1', type(CollateralEngine).creationCode),
priceFeedEngine: Create2Utils._create2Deploy('v1', type(PriceFeedEngine).creationCode),
rateEngine: Create2Utils._create2Deploy('v1', type(RateEngine).creationCode),
capsEngine: Create2Utils._create2Deploy('v1', type(CapsEngine).creationCode)
});
IEngine.EngineConstants memory engineConstants = IEngine.EngineConstants({
pool: AaveV3Base.POOL,
poolConfigurator: AaveV3Base.POOL_CONFIGURATOR,
ratesStrategyFactory: IV3RateStrategyFactory(AaveV3Base.RATES_FACTORY),
oracle: AaveV3Base.ORACLE,
rewardsController: AaveV3Base.DEFAULT_INCENTIVES_CONTROLLER,
collector: address(AaveV3Base.COLLECTOR)
});

return
address(
new Engine(
AaveV3Base.DEFAULT_A_TOKEN_IMPL_REV_1,
AaveV3Base.DEFAULT_VARIABLE_DEBT_TOKEN_IMPL_REV_1,
AaveV3Base.DEFAULT_STABLE_DEBT_TOKEN_IMPL_REV_1,
engineConstants,
engineLibraries
)
);
}
}

contract DeployEngineEth is EthereumScript {
function run() external broadcast {
DeployEngineEthLib.deploy();
Expand Down Expand Up @@ -251,4 +285,10 @@ contract DeployEngineMet is MetisScript {
function run() external broadcast {
DeployEngineMetLib.deploy();
}
}
}

contract DeployEngineBas is BaseScript {
function run() external broadcast {
DeployEngineBaseLib.deploy();
}
}
11 changes: 11 additions & 0 deletions scripts/RiskStewards.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import {AaveV3Avalanche} from 'aave-address-book/AaveV3Avalanche.sol';
import {AaveV3Metis} from 'aave-address-book/AaveV3Metis.sol';
import {AaveV3Arbitrum} from 'aave-address-book/AaveV3Arbitrum.sol';
import {AaveV3Optimism} from 'aave-address-book/AaveV3Optimism.sol';
import {AaveV3Base} from 'aave-address-book/AaveV3Base.sol';

contract DeployEth is EthereumScript {
function run() external broadcast {
Expand Down Expand Up @@ -70,3 +71,13 @@ contract DeployAva is AvalancheScript {
);
}
}

contract DeployBas is BaseScript {
function run() external broadcast {
new CapsPlusRiskSteward(
AaveV3Base.AAVE_PROTOCOL_DATA_PROVIDER,
IAaveV3ConfigEngine(AaveV3Base.LISTING_ENGINE),
0xfbeB4AcB31340bA4de9C87B11dfBf7e2bc8C0bF1
);
}
}
26 changes: 21 additions & 5 deletions scripts/V3RateStrategyFactory.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,15 @@ import {AaveV3Arbitrum} from 'aave-address-book/AaveV3Arbitrum.sol';
import {AaveV3Polygon} from 'aave-address-book/AaveV3Polygon.sol';
import {AaveV3Avalanche} from 'aave-address-book/AaveV3Avalanche.sol';
import {AaveV3Metis} from 'aave-address-book/AaveV3Metis.sol';
import {AaveV3Base} from 'aave-address-book/AaveV3Base.sol';
import {ITransparentProxyFactory} from 'solidity-utils/contracts/transparent-proxy/interfaces/ITransparentProxyFactory.sol';
import {V3RateStrategyFactory} from '../src/v3-config-engine/V3RateStrategyFactory.sol';

library DeployRatesFactoryLib {
// TODO check also by param, potentially there could be different contracts, but with exactly same params
function _getUniqueStrategiesOnPool(IPool pool)
internal
view
returns (IDefaultInterestRateStrategy[] memory)
{
function _getUniqueStrategiesOnPool(
IPool pool
) internal view returns (IDefaultInterestRateStrategy[] memory) {
address[] memory listedAssets = pool.getReservesList();
IDefaultInterestRateStrategy[] memory uniqueRateStrategies = new IDefaultInterestRateStrategy[](
listedAssets.length
Expand Down Expand Up @@ -140,6 +139,17 @@ library DeployRatesFactoryMetLib {
}
}

library DeployRatesFactoryBasLib {
function deploy() internal returns (address, address[] memory) {
return
DeployRatesFactoryLib._createAndSetupRatesFactory(
AaveV3Base.POOL_ADDRESSES_PROVIDER,
AaveMisc.TRANSPARENT_PROXY_FACTORY_BASE,
AaveMisc.PROXY_ADMIN_BASE
);
}
}

contract DeployRatesFactoryEth is EthereumScript {
function run() external broadcast {
DeployRatesFactoryEthLib.deploy();
Expand Down Expand Up @@ -175,3 +185,9 @@ contract DeployRatesFactoryMet is MetisScript {
DeployRatesFactoryMetLib.deploy();
}
}

contract DeployRatesFactoryBas is BaseScript {
function run() external broadcast {
DeployRatesFactoryBasLib.deploy();
}
}
2 changes: 1 addition & 1 deletion src/ScriptUtils.sol
Original file line number Diff line number Diff line change
Expand Up @@ -110,4 +110,4 @@ library Create2Utils {
function addressFromLast20Bytes(bytes32 bytesValue) internal pure returns (address) {
return address(uint160(uint256(bytesValue)));
}
}
}
15 changes: 15 additions & 0 deletions src/v3-config-engine/AaveV3PayloadBasenet.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {AaveV3Base} from 'aave-address-book/AaveV3Base.sol';
import './AaveV3PayloadBase.sol';

/**
* @dev Base smart contract for an Aave v3.0.2 (compatible with 3.0.0) listing on v3 Base.
* @author BGD Labs
*/
abstract contract AaveV3PayloadBasenet is AaveV3PayloadBase(IEngine(AaveV3Base.LISTING_ENGINE)) {
function getPoolContext() public pure override returns (IEngine.PoolContext memory) {
return IEngine.PoolContext({networkName: 'Base', networkAbbreviation: 'Bas'});
}
}

1 comment on commit b5df36c

@github-actions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Foundry report

forge 0.2.0 (ec3f9bd 2023-09-19T13:44:30.009787069Z)
Build log
Compiling 237 files with 0.8.18
Solc 0.8.18 finished in 81.00s
Compiler run successful with warnings:
Warning (8760): This declaration has the same name as another declaration.
  --> src/dependencies/DefaultReserveInterestRateStrategy.sol:60:5:
   |
60 |     uint256 baseVariableBorrowRate,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Note: The other declaration is here:
  --> src/dependencies/DefaultReserveInterestRateStrategy.sol:92:3:
   |
92 |   function baseVariableBorrowRate() external view override returns (uint256) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (8760): This declaration has the same name as another declaration.
  --> src/dependencies/DefaultReserveInterestRateStrategy.sol:61:5:
   |
61 |     uint256 variableRateSlope1,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
Note: The other declaration is here:
  --> src/dependencies/DefaultReserveInterestRateStrategy.sol:76:3:
   |
76 |   function variableRateSlope1() external view returns (uint256) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (8760): This declaration has the same name as another declaration.
  --> src/dependencies/DefaultReserveInterestRateStrategy.sol:62:5:
   |
62 |     uint256 variableRateSlope2,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^
Note: The other declaration is here:
  --> src/dependencies/DefaultReserveInterestRateStrategy.sol:80:3:
   |
80 |   function variableRateSlope2() external view returns (uint256) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (8760): This declaration has the same name as another declaration.
  --> src/dependencies/DefaultReserveInterestRateStrategy.sol:63:5:
   |
63 |     uint256 stableRateSlope1,
   |     ^^^^^^^^^^^^^^^^^^^^^^^^
Note: The other declaration is here:
  --> src/dependencies/DefaultReserveInterestRateStrategy.sol:84:3:
   |
84 |   function stableRateSlope1() external view returns (uint256) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (8760): This declaration has the same name as another declaration.
  --> src/dependencies/DefaultReserveInterestRateStrategy.sol:64:5:
   |
64 |     uint256 stableRateSlope2
   |     ^^^^^^^^^^^^^^^^^^^^^^^^
Note: The other declaration is here:
  --> src/dependencies/DefaultReserveInterestRateStrategy.sol:88:3:
   |
88 |   function stableRateSlope2() external view returns (uint256) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2462): Visibility for constructor is ignored. If you want the contract to be non-deployable, making it "abstract" is sufficient.
  --> src/dependencies/DefaultReserveInterestRateStrategy.sol:57:3:
   |
57 |   constructor(
   |   ^ (Relevant source part starts here and spans across multiple lines).

| Contract                                    | Size (kB) | Margin (kB) |
|---------------------------------------------|-----------|-------------|
| AaveGovernanceV2                            | 0.086     | 24.49       |
| AaveMisc                                    | 0.086     | 24.49       |
| AavePolEthERC20Bridge                       | 3.027     | 21.549      |
| AaveSafetyModule                            | 0.086     | 24.49       |
| AaveSwapper                                 | 5.613     | 18.963      |
| AaveV2Avalanche                             | 0.086     | 24.49       |
| AaveV2AvalancheAssets                       | 0.086     | 24.49       |
| AaveV2ConfigEngine                          | 3.18      | 21.396      |
| AaveV2Ethereum                              | 0.086     | 24.49       |
| AaveV2EthereumAMM                           | 0.086     | 24.49       |
| AaveV2EthereumAMMAssets                     | 0.086     | 24.49       |
| AaveV2EthereumArc                           | 0.086     | 24.49       |
| AaveV2EthereumArcAssets                     | 0.086     | 24.49       |
| AaveV2EthereumAssets                        | 0.086     | 24.49       |
| AaveV2EthereumRatesUpdate                   | 1.512     | 23.064      |
| AaveV2Fuji                                  | 0.086     | 24.49       |
| AaveV2FujiAssets                            | 0.086     | 24.49       |
| AaveV2Goerli                                | 0.086     | 24.49       |
| AaveV2GoerliAssets                          | 0.086     | 24.49       |
| AaveV2Mumbai                                | 0.086     | 24.49       |
| AaveV2MumbaiAssets                          | 0.086     | 24.49       |
| AaveV2Polygon                               | 0.086     | 24.49       |
| AaveV2PolygonAssets                         | 0.086     | 24.49       |
| AaveV3Arbitrum                              | 0.086     | 24.49       |
| AaveV3ArbitrumAssets                        | 0.086     | 24.49       |
| AaveV3ArbitrumEModes                        | 0.086     | 24.49       |
| AaveV3ArbitrumGoerli                        | 0.086     | 24.49       |
| AaveV3ArbitrumGoerliAssets                  | 0.086     | 24.49       |
| AaveV3ArbitrumGoerliEModes                  | 0.086     | 24.49       |
| AaveV3ArbitrumRatesUpdates070322            | 4.674     | 19.902      |
| AaveV3Avalanche                             | 0.086     | 24.49       |
| AaveV3AvalancheAssets                       | 0.086     | 24.49       |
| AaveV3AvalancheCollateralUpdate             | 3.408     | 21.168      |
| AaveV3AvalancheCollateralUpdateCorrectBonus | 3.408     | 21.168      |
| AaveV3AvalancheCollateralUpdateNoChange     | 3.428     | 21.148      |
| AaveV3AvalancheCollateralUpdateWrongBonus   | 3.408     | 21.168      |
| AaveV3AvalancheEModeCategoryUpdateEdgeBonus | 3.379     | 21.197      |
| AaveV3AvalancheEModeCategoryUpdateNoChange  | 3.443     | 21.133      |
| AaveV3AvalancheEModes                       | 0.086     | 24.49       |
| AaveV3AvalancheRatesUpdates070322           | 5.115     | 19.461      |
| AaveV3Base                                  | 0.086     | 24.49       |
| AaveV3BaseAssets                            | 0.086     | 24.49       |
| AaveV3BaseEModes                            | 0.086     | 24.49       |
| AaveV3ConfigEngine                          | 8.273     | 16.303      |
| AaveV3Ethereum                              | 0.086     | 24.49       |
| AaveV3EthereumAssetEModeUpdate              | 3.257     | 21.319      |
| AaveV3EthereumAssets                        | 0.086     | 24.49       |
| AaveV3EthereumEModes                        | 0.086     | 24.49       |
| AaveV3EthereumMockCapUpdate                 | 3.335     | 21.241      |
| AaveV3EthereumMockCustomListing             | 4.168     | 20.408      |
| AaveV3Fantom                                | 0.086     | 24.49       |
| AaveV3FantomAssets                          | 0.086     | 24.49       |
| AaveV3FantomEModes                          | 0.086     | 24.49       |
| AaveV3FantomTestnet                         | 0.086     | 24.49       |
| AaveV3FantomTestnetAssets                   | 0.086     | 24.49       |
| AaveV3FantomTestnetEModes                   | 0.086     | 24.49       |
| AaveV3Fuji                                  | 0.086     | 24.49       |
| AaveV3FujiAssets                            | 0.086     | 24.49       |
| AaveV3FujiEModes                            | 0.086     | 24.49       |
| AaveV3GoerliGho                             | 0.086     | 24.49       |
| AaveV3GoerliGhoAssets                       | 0.086     | 24.49       |
| AaveV3GoerliGhoEModes                       | 0.086     | 24.49       |
| AaveV3Harmony                               | 0.086     | 24.49       |
| AaveV3HarmonyAssets                         | 0.086     | 24.49       |
| AaveV3HarmonyEModes                         | 0.086     | 24.49       |
| AaveV3Metis                                 | 0.086     | 24.49       |
| AaveV3MetisAssets                           | 0.086     | 24.49       |
| AaveV3MetisEModes                           | 0.086     | 24.49       |
| AaveV3Mumbai                                | 0.086     | 24.49       |
| AaveV3MumbaiAssets                          | 0.086     | 24.49       |
| AaveV3MumbaiEModes                          | 0.086     | 24.49       |
| AaveV3Optimism                              | 0.086     | 24.49       |
| AaveV3OptimismAssets                        | 0.086     | 24.49       |
| AaveV3OptimismEModes                        | 0.086     | 24.49       |
| AaveV3OptimismGoerli                        | 0.086     | 24.49       |
| AaveV3OptimismGoerliAssets                  | 0.086     | 24.49       |
| AaveV3OptimismGoerliEModes                  | 0.086     | 24.49       |
| AaveV3OptimismMockRatesUpdate               | 3.669     | 20.907      |
| AaveV3OptimismRatesUpdates070322            | 4.377     | 20.199      |
| AaveV3Polygon                               | 0.086     | 24.49       |
| AaveV3PolygonAssets                         | 0.086     | 24.49       |
| AaveV3PolygonBorrowUpdate                   | 3.428     | 21.148      |
| AaveV3PolygonEModeCategoryUpdate            | 3.377     | 21.199      |
| AaveV3PolygonEModes                         | 0.086     | 24.49       |
| AaveV3PolygonMockListing                    | 3.986     | 20.59       |
| AaveV3PolygonPriceFeedUpdate                | 3.276     | 21.3        |
| AaveV3PolygonRatesUpdates070322             | 5.73      | 18.846      |
| AaveV3ScrollAlpha                           | 0.086     | 24.49       |
| AaveV3ScrollAlphaAssets                     | 0.086     | 24.49       |
| AaveV3ScrollAlphaEModes                     | 0.086     | 24.49       |
| AaveV3ScrollSepolia                         | 0.086     | 24.49       |
| AaveV3ScrollSepoliaAssets                   | 0.086     | 24.49       |
| AaveV3ScrollSepoliaEModes                   | 0.086     | 24.49       |
| AaveV3Sepolia                               | 0.086     | 24.49       |
| AaveV3SepoliaAssets                         | 0.086     | 24.49       |
| AaveV3SepoliaEModes                         | 0.086     | 24.49       |
| Address                                     | 0.086     | 24.49       |
| AddressAliasHelper                          | 0.086     | 24.49       |
| BorrowEngine                                | 2.923     | 21.653      |
| CapsEngine                                  | 1.256     | 23.32       |
| CapsPlusRiskSteward                         | 2.607     | 21.969      |
| CapsPlusRiskStewardErrors                   | 0.556     | 24.02       |
| ChainIds                                    | 0.086     | 24.49       |
| CollateralEngine                            | 2.836     | 21.74       |
| ConfiguratorInputTypes                      | 0.086     | 24.49       |
| Create2Utils                                | 0.164     | 24.412      |
| CrosschainForwarderArbitrum                 | 2.246     | 22.33       |
| CrosschainForwarderMetis                    | 1.561     | 23.015      |
| CrosschainForwarderOptimism                 | 1.689     | 22.887      |
| CrosschainForwarderPolygon                  | 1.435     | 23.141      |
| DataTypes                                   | 0.086     | 24.49       |
| DefaultReserveInterestRateStrategy          | 3.485     | 21.091      |
| DeployEngineArbLib                          | 0.086     | 24.49       |
| DeployEngineAvaLib                          | 0.086     | 24.49       |
| DeployEngineBaseLib                         | 0.086     | 24.49       |
| DeployEngineEthLib                          | 0.086     | 24.49       |
| DeployEngineMetLib                          | 0.086     | 24.49       |
| DeployEngineOptLib                          | 0.086     | 24.49       |
| DeployEnginePolLib                          | 0.086     | 24.49       |
| DeployRatesFactoryArbLib                    | 0.086     | 24.49       |
| DeployRatesFactoryAvaLib                    | 0.086     | 24.49       |
| DeployRatesFactoryBasLib                    | 0.086     | 24.49       |
| DeployRatesFactoryEthLib                    | 0.086     | 24.49       |
| DeployRatesFactoryLib                       | 0.086     | 24.49       |
| DeployRatesFactoryMetLib                    | 0.086     | 24.49       |
| DeployRatesFactoryOptLib                    | 0.086     | 24.49       |
| DeployRatesFactoryPolLib                    | 0.086     | 24.49       |
| DeployV2EngineAvaLib                        | 0.086     | 24.49       |
| DeployV2EngineEthAMMLib                     | 0.086     | 24.49       |
| DeployV2EngineEthLib                        | 0.086     | 24.49       |
| DeployV2EnginePolLib                        | 0.086     | 24.49       |
| DeployV2RatesFactoryAvaLib                  | 0.086     | 24.49       |
| DeployV2RatesFactoryEthAMMLib               | 0.086     | 24.49       |
| DeployV2RatesFactoryEthLib                  | 0.086     | 24.49       |
| DeployV2RatesFactoryLib                     | 0.086     | 24.49       |
| DeployV2RatesFactoryPolLib                  | 0.086     | 24.49       |
| EModeEngine                                 | 4.404     | 20.172      |
| ERC1967Proxy                                | 0.699     | 23.877      |
| EngineFlags                                 | 0.086     | 24.49       |
| Errors                                      | 3.952     | 20.624      |
| FxChild                                     | 1.039     | 23.537      |
| FxRoot                                      | 0.811     | 23.765      |
| GovHelpers                                  | 0.086     | 24.49       |
| GovernanceV3Arbitrum                        | 0.086     | 24.49       |
| GovernanceV3Avalanche                       | 0.086     | 24.49       |
| GovernanceV3Base                            | 0.086     | 24.49       |
| GovernanceV3Binance                         | 0.086     | 24.49       |
| GovernanceV3Ethereum                        | 0.086     | 24.49       |
| GovernanceV3Fuji                            | 0.086     | 24.49       |
| GovernanceV3Goerli                          | 0.086     | 24.49       |
| GovernanceV3Metis                           | 0.086     | 24.49       |
| GovernanceV3Mumbai                          | 0.086     | 24.49       |
| GovernanceV3Optimism                        | 0.086     | 24.49       |
| GovernanceV3Polygon                         | 0.086     | 24.49       |
| ListingEngine                               | 8.792     | 15.784      |
| MockExecutor                                | 0.437     | 24.139      |
| MyPayload                                   | 1.53      | 23.046      |
| PayloadWithEmit                             | 0.15      | 24.426      |
| PayloadsControllerUtils                     | 0.086     | 24.49       |
| PercentageMath                              | 0.086     | 24.49       |
| PriceFeedEngine                             | 1.657     | 22.919      |
| ProxyAdmin                                  | 1.683     | 22.893      |
| ProxyHelpers                                | 0.086     | 24.49       |
| RateEngine                                  | 3.596     | 20.98       |
| ReserveConfiguration                        | 0.171     | 24.405      |
| SafeCast                                    | 0.086     | 24.49       |
| SafeERC20                                   | 0.086     | 24.49       |
| SafeMath                                    | 0.086     | 24.49       |
| StdStyle                                    | 0.086     | 24.49       |
| StorageHelpers                              | 0.086     | 24.49       |
| StorageSlot                                 | 0.086     | 24.49       |
| TransparentProxyFactory                     | 7.505     | 17.071      |
| TransparentUpgradeableProxy                 | 2.096     | 22.48       |
| V2RateStrategyFactory                       | 8.842     | 15.734      |
| V3RateStrategyFactory                       | 9.279     | 15.297      |
| WadRayMath                                  | 0.086     | 24.49       |
| console                                     | 0.086     | 24.49       |
| console2                                    | 0.086     | 24.49       |
| safeconsole                                 | 0.086     | 24.49       |
| stdError                                    | 0.591     | 23.985      |
| stdJson                                     | 0.086     | 24.49       |
| stdMath                                     | 0.086     | 24.49       |
| stdStorage                                  | 0.086     | 24.49       |
| stdStorageSafe                              | 0.086     | 24.49       |
Test success 🌈
No files changed, compilation skipped

Running 3 tests for src/bridges/AavePolEthERC20BridgeTest.t.sol:BridgeTest
[PASS] test_revertsIf_invalidChain() (gas: 8575)
[PASS] test_revertsIf_notOwner() (gas: 66660)
[PASS] test_successful() (gas: 59470)
Test result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.17s

Running 2 tests for src/bridges/AavePolEthERC20BridgeTest.t.sol:EmergencyTokenTransfer
[PASS] test_revertsIf_invalidCaller() (gas: 13104)
[PASS] test_successful_governanceCaller() (gas: 69603)
Test result: ok. 2 passed; 0 failed; 0 skipped; finished in 463.51ms

Running 2 tests for src/bridges/AavePolEthERC20BridgeTest.t.sol:ExitTest
[PASS] test_revertsIf_invalidChain() (gas: 11198)
[PASS] test_revertsIf_proofAlreadyProcessed() (gas: 39281)
Test result: ok. 2 passed; 0 failed; 0 skipped; finished in 179.60ms

Running 2 tests for src/bridges/AavePolEthERC20BridgeTest.t.sol:TransferOwnership
[PASS] test_revertsIf_invalidCaller() (gas: 14615)
[PASS] test_successful() (gas: 13392)
Test result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.44ms

Running 9 tests for tests/riskstewards/CapsPlusRiskSteward.t.sol:CapsPlusRiskSteward_Test
[PASS] test_debounce() (gas: 129140)
[PASS] test_increaseCapsMax() (gas: 114995)
[PASS] test_invalidCaller() (gas: 7547)
[PASS] test_keepCurrent() (gas: 48188)
[PASS] test_unlisted() (gas: 32844)
[PASS] test_updateBorrowCapBiggerMax() (gas: 37190)
[PASS] test_updateBorrowCapNotStrictlyHigher() (gas: 45961)
[PASS] test_updateSupplyCapBiggerMax() (gas: 36946)
[PASS] test_updateSupplyCapNotStrictlyHigher() (gas: 45514)
Test result: ok. 9 passed; 0 failed; 0 skipped; finished in 2.19s

Running 2 tests for src/bridges/AavePolEthERC20BridgeTest.t.sol:WithdrawToCollectorTest
[PASS] test_revertsIf_invalidChain() (gas: 10872)
[PASS] test_successful() (gas: 76344)
Test result: ok. 2 passed; 0 failed; 0 skipped; finished in 501.07ms

Running 6 tests for src/swaps/AaveSwapperTest.t.sol:AaveSwapperSwap
[PASS] test_revertsIf_amountIsZero() (gas: 12452)
[PASS] test_revertsIf_fromTokenIsZeroAddress() (gas: 12435)
[PASS] test_revertsIf_invalidCaller() (gas: 11669)
[PASS] test_revertsIf_invalidRecipient() (gas: 12496)
[PASS] test_revertsIf_toTokenIsZeroAddress() (gas: 12373)
[PASS] test_successful() (gas: 476571)
Test result: ok. 6 passed; 0 failed; 0 skipped; finished in 1.90s

Running 3 tests for src/swaps/AaveSwapperTest.t.sol:CancelSwap
[PASS] test_revertsIf_invalidCaller() (gas: 15418)
[PASS] test_revertsIf_noMatchingTrade() (gas: 482928)
[PASS] test_successful() (gas: 588040)
Test result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.40s

Running 2 tests for src/swaps/AaveSwapperTest.t.sol:EmergencyTokenTransfer
[PASS] test_revertsIf_invalidCaller() (gas: 10861)
[PASS] test_successful_governanceCaller() (gas: 304551)
Test result: ok. 2 passed; 0 failed; 0 skipped; finished in 520.67ms

Running 1 test for src/swaps/DepositV2SwapPayloadTest.t.sol:DepositV2SwapPayloadTest
[PASS] test_successful() (gas: 476089)
Test result: ok. 1 passed; 0 failed; 0 skipped; finished in 5.06s

Running 1 test for src/swaps/DepositV3SwapPayloadTest.t.sol:DepositV3SwapPayloadTest
[PASS] test_successful() (gas: 442317)
Test result: ok. 1 passed; 0 failed; 0 skipped; finished in 3.60s

Running 7 tests for src/swaps/AaveSwapperTest.t.sol:GetExpectedOut
[PASS] test_aaveToUsdc() (gas: 84122)
[PASS] test_aaveToUsdc_withEthBasedOracles() (gas: 84115)
[PASS] test_balTo80BAL20WETH() (gas: 83868)
[PASS] test_ethToBal() (gas: 69531)
[PASS] test_ethToDai() (gas: 67281)
[PASS] test_revertsIf_fromOracleIsAddressZero() (gas: 9238)
[PASS] test_revertsIf_toOracleIsAddressZero() (gas: 9242)
Test result: ok. 7 passed; 0 failed; 0 skipped; finished in 6.79s

Running 1 test for src/swaps/AaveSwapperTest.t.sol:Initialize
[PASS] test_revertsIf_alreadyInitialized() (gas: 10894)
Test result: ok. 1 passed; 0 failed; 0 skipped; finished in 902.22µs

Running 2 tests for src/swaps/AaveSwapperTest.t.sol:RemoveGuardian
[PASS] test_revertsIf_invalidCaller() (gas: 12924)
[PASS] test_successful() (gas: 16184)
Test result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.06ms

Running 2 tests for src/swaps/AaveSwapperTest.t.sol:TransferOwnership
[PASS] test_revertsIf_invalidCaller() (gas: 12352)
[PASS] test_successful() (gas: 18297)
Test result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.04ms

Running 2 tests for src/swaps/AaveSwapperTest.t.sol:UpdateGuardian
[PASS] test_revertsIf_invalidCaller() (gas: 14546)
[PASS] test_successful() (gas: 22582)
Test result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.08ms

Running 1 test for tests/GovTest.t.sol:GovernanceIpfsTest
[PASS] testIpfsHashCreation() (gas: 15084)
Logs:
  Info: This preview will only work when the file has been uploaded to ipfs
  Preview: https://app.aave.com/governance/ipfs-preview/?ipfsHash=0x12f2d9c91e4e23ae4009ab9ef5862ee0ae79498937b66252213221f04a5d5b32

Test result: ok. 1 passed; 0 failed; 0 skipped; finished in 10.71s

Running 1 test for tests/GovTest.t.sol:GovernanceL2ExecutorTest
[PASS] testCreateProposal() (gas: 116279)
Test result: ok. 1 passed; 0 failed; 0 skipped; finished in 911.55ms

Running 2 tests for tests/GovTest.t.sol:GovernanceMainnetExecutorTest
[PASS] testCreateProposalLong() (gas: 165827)
[PASS] testCreateProposalShort() (gas: 161431)
Test result: ok. 2 passed; 0 failed; 0 skipped; finished in 3.46s

Running 2 tests for tests/GovTest.t.sol:GovernanceTest
[PASS] testCreateProposal() (gas: 533152)
[PASS] testCreateProposalDynamicIpfsHash() (gas: 545420)
Logs:
  Info: This preview will only work when the file has been uploaded to ipfs
  Preview: https://app.aave.com/governance/ipfs-preview/?ipfsHash=0x12f2d9c91e4e23ae4009ab9ef5862ee0ae79498937b66252213221f04a5d5b32

Test result: ok. 2 passed; 0 failed; 0 skipped; finished in 5.75s

Running 1 test for tests/crosschainforwarders/MetisCrossChainForwarderTest.t.sol:MetisCrossChainForwarderTest
[PASS] testProposalE2E() (gas: 1213114)
Test result: ok. 1 passed; 0 failed; 0 skipped; finished in 9.38s

Running 1 test for tests/crosschainforwarders/OptimismCrossChainForwarderTest.t.sol:OptimismCrossChainForwarderTest
[PASS] testProposalE2E() (gas: 1196700)
Test result: ok. 1 passed; 0 failed; 0 skipped; finished in 7.04s

Running 1 test for tests/crosschainforwarders/PolygonCrossChainForwarderTest.t.sol:PolygonCrossChainForwarderTest
[PASS] testProposalE2E() (gas: 1049401)
Test result: ok. 1 passed; 0 failed; 0 skipped; finished in 6.62s

Running 1 test for tests/AaveV2ConfigEngineTest.t.sol:AaveV2ConfigEngineTest
[PASS] testV2RateStrategiesUpdates() (gas: 189313016)
Test result: ok. 1 passed; 0 failed; 0 skipped; finished in 87.10s

Running 1 test for tests/ProtocolV2TestBase.t.sol:ProtocolV2TestBaseTest
[PASS] testE2E() (gas: 18720918)
Logs:
  E2E: Collateral AAVE, TestAsset USDT
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: USDT, Amount: 1922278804
  WITHDRAW: USDT, Amount: 961139402
  WITHDRAW: USDT, Amount: 961139403
  BORROW: USDT, Amount 1922278804, Stable: false
  REPAY: USDT, Amount: 1922278804
  BORROW: USDT, Amount 1922278804, Stable: true
  REPAY: USDT, Amount: 1922278804
  E2E: Collateral AAVE, TestAsset WBTC
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: WBTC, Amount: 6293388
  WITHDRAW: WBTC, Amount: 3146694
  WITHDRAW: WBTC, Amount: 3146693
  BORROW: WBTC, Amount 6293388, Stable: false
  REPAY: WBTC, Amount: 6293388
  BORROW: WBTC, Amount 6293388, Stable: true
  REPAY: WBTC, Amount: 6293388
  E2E: Collateral AAVE, TestAsset WETH
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: WETH, Amount: 1000000000000000000
  WITHDRAW: WETH, Amount: 500000000000000000
  WITHDRAW: WETH, Amount: 500000000000000001
  BORROW: WETH, Amount 1000000000000000000, Stable: false
  REPAY: WETH, Amount: 1000000000000000000
  BORROW: WETH, Amount 1000000000000000000, Stable: true
  REPAY: WETH, Amount: 1000000000000000000
  E2E: Collateral AAVE, TestAsset AAVE
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: AAVE, Amount: 25535972511960226937
  WITHDRAW: AAVE, Amount: 12767986255980113468
  WITHDRAW: AAVE, Amount: 12767986255980113469
  E2E: Collateral AAVE, TestAsset DAI
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: DAI, Amount: 1914944850736299739803
  WITHDRAW: DAI, Amount: 957472425368149869901
  WITHDRAW: DAI, Amount: 957472425368149869902
  BORROW: DAI, Amount 1914944850736299739803, Stable: false
  REPAY: DAI, Amount: 1914944850736299739803
  BORROW: DAI, Amount 1914944850736299739803, Stable: true
  REPAY: DAI, Amount: 1914944850736299739803
  E2E: Collateral AAVE, TestAsset sUSD
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: sUSD, Amount: 1919434649608077907661
  WITHDRAW: sUSD, Amount: 959717324804038953830
  WITHDRAW: sUSD, Amount: 959717324804038953830
  BORROW: sUSD, Amount 1919434649608077907661, Stable: false
  REPAY: sUSD, Amount: 1919434649608077907661
  E2E: Collateral AAVE, TestAsset USDC
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: USDC, Amount: 1912585127
  WITHDRAW: USDC, Amount: 956292563
  WITHDRAW: USDC, Amount: 956292564
  BORROW: USDC, Amount 1912585127, Stable: false
  REPAY: USDC, Amount: 1912585127
  BORROW: USDC, Amount 1912585127, Stable: true
  REPAY: USDC, Amount: 1912585127
  E2E: Collateral AAVE, TestAsset CRV
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: CRV, Amount: 2447532600357965341777
  WITHDRAW: CRV, Amount: 1223766300178982670888
  WITHDRAW: CRV, Amount: 1223766300178982670889
  E2E: Collateral AAVE, TestAsset GUSD
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: GUSD, Amount: 191331
  WITHDRAW: GUSD, Amount: 95665
  WITHDRAW: GUSD, Amount: 95665
  BORROW: GUSD, Amount 191331, Stable: false
  REPAY: GUSD, Amount: 191331
  E2E: Collateral AAVE, TestAsset USDP
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: USDP, Amount: 1939299150785117381031
  WITHDRAW: USDP, Amount: 969649575392558690515
  WITHDRAW: USDP, Amount: 969649575392558690516
  BORROW: USDP, Amount 1939299150785117381031, Stable: false
  REPAY: USDP, Amount: 1939299150785117381031
  E2E: Collateral AAVE, TestAsset FRAX
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: FRAX, Amount: 1937630504372688546970
  WITHDRAW: FRAX, Amount: 968815252186344273485
  WITHDRAW: FRAX, Amount: 968815252186344273486
  BORROW: FRAX, Amount 1937630504372688546970, Stable: false
  REPAY: FRAX, Amount: 1937630504372688546970
  E2E: Collateral AAVE, TestAsset stETH
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: stETH, Amount: 1000000000000000000
  WITHDRAW: stETH, Amount: 500000000000000000
  WITHDRAW: stETH, Amount: 499999999999999999
  E2E: Collateral AAVE, TestAsset LUSD
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: LUSD, Amount: 1910246445122217347247
  WITHDRAW: LUSD, Amount: 955123222561108673623
  WITHDRAW: LUSD, Amount: 955123222561108673623
  BORROW: LUSD, Amount 1910246445122217347247, Stable: false
  REPAY: LUSD, Amount: 1910246445122217347247
  BORROW: LUSD, Amount 1910246445122217347247, Stable: true
  REPAY: LUSD, Amount: 1910246445122217347247

Test result: ok. 1 passed; 0 failed; 0 skipped; finished in 64.67s

Running 1 test for tests/ProtocolV2TestBase.t.sol:ProtocolV2TestE2ETestAsset
[PASS] test_e2eTestAssetUSDT() (gas: 3467234)
Logs:
  E2E: Collateral DAI, TestAsset USDT
  SUPPLY: DAI, Amount: 191494485073629973980349
  SUPPLY: USDT, Amount: 1922278804
  WITHDRAW: USDT, Amount: 961139402
  WITHDRAW: USDT, Amount: 961139403
  BORROW: USDT, Amount 1922278804, Stable: false
  REPAY: USDT, Amount: 1922278804
  BORROW: USDT, Amount 1922278804, Stable: true
  REPAY: USDT, Amount: 1922278804

Test result: ok. 1 passed; 0 failed; 0 skipped; finished in 138.60ms

Running 1 test for tests/AaveV3ConfigEngineGauntletProposal.t.sol:AaveV3ArbitrumConfigEngineRatesTest
[PASS] testEngine() (gas: 17825711)
Test result: ok. 1 passed; 0 failed; 0 skipped; finished in 25.12s

Running 1 test for tests/AaveV3ConfigEngineGauntletProposal.t.sol:AaveV3AvalancheConfigEngineRatesTest
[PASS] testEngine() (gas: 27764412)
Test result: ok. 1 passed; 0 failed; 0 skipped; finished in 10.70s

Running 1 test for tests/ProtocolV3TestBase.t.sol:ProtocolV3TestBaseTest
[PASS] test_e2eTestDPI() (gas: 2127203)
Logs:
  E2E: Collateral WMATIC, TestAsset DPI
  SUPPLY: WMATIC, Amount: 18494019080464425505952
  SUPPLY: DPI, Amount: 1618633986381736259
  WITHDRAW: DPI, Amount: 809316993190868129
  WITHDRAW: DPI, Amount: 809316993190868130
  BORROW: DPI, Amount 1618633986381736259, Stable: false
  REPAY: DPI, Amount: 1618633986381736259

Test result: ok. 1 passed; 0 failed; 0 skipped; finished in 16.63s

Running 1 test for tests/AaveV3ConfigEngineGauntletProposal.t.sol:AaveV3OptimismConfigEngineRatesTest
[PASS] testEngine() (gas: 20657298)
Test result: ok. 1 passed; 0 failed; 0 skipped; finished in 34.05s

Running 1 test for tests/ProtocolV3TestBase.t.sol:ProtocolV3TestE2ETestAll
[PASS] test_e2e() (gas: 12051172)
Logs:
  E2E: Collateral LINK, TestAsset DAI
  SUPPLY: LINK, Amount: 1616553507921112188813
  SUPPLY: DAI, Amount: 100002834080317836207
  WITHDRAW: DAI, Amount: 50001417040158918103
  WITHDRAW: DAI, Amount: 50001417040158918104
  BORROW: DAI, Amount 100002834080317836207, Stable: false
  REPAY: DAI, Amount: 100002834080317836207
  BORROW: DAI, Amount 100002834080317836207, Stable: true
  REPAY: DAI, Amount: 100002834080317836207
  E2E: Collateral LINK, TestAsset LINK
  SUPPLY: LINK, Amount: 1616553507921112188813
  SUPPLY: LINK, Amount: 16165535079211121888
  WITHDRAW: LINK, Amount: 8082767539605560944
  WITHDRAW: LINK, Amount: 8082767539605560944
  BORROW: LINK, Amount 16165535079211121888, Stable: false
  REPAY: LINK, Amount: 16165535079211121888
  E2E: Collateral LINK, TestAsset USDC
  SUPPLY: LINK, Amount: 1616553507921112188813
  SUPPLY: USDC, Amount: 100000000
  WITHDRAW: USDC, Amount: 50000000
  WITHDRAW: USDC, Amount: 50000000
  BORROW: USDC, Amount 100000000, Stable: false
  REPAY: USDC, Amount: 100000000
  BORROW: USDC, Amount 100000000, Stable: true
  REPAY: USDC, Amount: 100000000
  E2E: Collateral LINK, TestAsset WBTC
  SUPPLY: LINK, Amount: 1616553507921112188813
  SUPPLY: WBTC, Amount: 385965
  WITHDRAW: WBTC, Amount: 192982
  WITHDRAW: WBTC, Amount: 192983
  BORROW: WBTC, Amount 385965, Stable: false
  REPAY: WBTC, Amount: 385965
  E2E: Collateral LINK, TestAsset WETH
  SUPPLY: LINK, Amount: 1616553507921112188813
  SUPPLY: WETH, Amount: 54558945484701671
  WITHDRAW: WETH, Amount: 27279472742350835
  WITHDRAW: WETH, Amount: 27279472742350836
  BORROW: WETH, Amount 54558945484701671, Stable: false
  REPAY: WETH, Amount: 54558945484701671
  E2E: Collateral LINK, TestAsset USDT
  SUPPLY: LINK, Amount: 1616553507921112188813
  SUPPLY: USDT, Amount: 99994515
  WITHDRAW: USDT, Amount: 49997257
  WITHDRAW: USDT, Amount: 49997258
  BORROW: USDT, Amount 99994515, Stable: false
  REPAY: USDT, Amount: 99994515
  BORROW: USDT, Amount 99994515, Stable: true
  REPAY: USDT, Amount: 99994515
  E2E: Collateral LINK, TestAsset AAVE
  Skip: AAVE, supply cap fully utilized
  E2E: Collateral LINK, TestAsset sUSD
  SUPPLY: LINK, Amount: 1616553507921112188813
  SUPPLY: sUSD, Amount: 100213932694959892580
  WITHDRAW: sUSD, Amount: 50106966347479946290
  WITHDRAW: sUSD, Amount: 50106966347479946291
  BORROW: sUSD, Amount 100213932694959892580, Stable: false
  REPAY: sUSD, Amount: 100213932694959892580
  E2E: Collateral LINK, TestAsset OP
  SUPPLY: LINK, Amount: 1616553507921112188813
  SUPPLY: OP, Amount: 65659881812212738017
  WITHDRAW: OP, Amount: 32829940906106369008
  WITHDRAW: OP, Amount: 32829940906106369009
  E2E: Collateral LINK, TestAsset wstETH
  SUPPLY: LINK, Amount: 1616553507921112188813
  SUPPLY: wstETH, Amount: 48438229171421992
  WITHDRAW: wstETH, Amount: 24219114585710996
  WITHDRAW: wstETH, Amount: 24219114585710996
  BORROW: wstETH, Amount 48438229171421992, Stable: false
  REPAY: wstETH, Amount: 48438229171421992
  E2E: Collateral LINK, TestAsset LUSD
  SUPPLY: LINK, Amount: 1616553507921112188813
  SUPPLY: LUSD, Amount: 99436925482654158084
  WITHDRAW: LUSD, Amount: 49718462741327079042
  WITHDRAW: LUSD, Amount: 49718462741327079042
  BORROW: LUSD, Amount 99436925482654158084, Stable: false
  REPAY: LUSD, Amount: 99436925482654158084
  E2E: TestAsset MAI SKIPPED

Test result: ok. 1 passed; 0 failed; 0 skipped; finished in 41.23s

Running 1 test for tests/AaveV3ConfigEngineGauntletProposal.t.sol:AaveV3PolygonConfigEngineRatesTest
[PASS] testEngine() (gas: 71025392)
Test result: ok. 1 passed; 0 failed; 0 skipped; finished in 41.90s

Running 1 test for tests/ProtocolV3TestBase.t.sol:ProtocolV3TestE2ETestAllMainnet
[PASS] test_e2e() (gas: 21835677)
Logs:
  E2E: Collateral WETH, TestAsset WETH
  SUPPLY: WETH, Amount: 6058639095884313146
  SUPPLY: WETH, Amount: 60586390958843131
  WITHDRAW: WETH, Amount: 30293195479421565
  WITHDRAW: WETH, Amount: 30293195479421566
  BORROW: WETH, Amount 60586390958843131, Stable: false
  REPAY: WETH, Amount: 60586390958843131
  E2E: Collateral WETH, TestAsset wstETH
  SUPPLY: WETH, Amount: 6058639095884313146
  SUPPLY: wstETH, Amount: 53280673161492371
  WITHDRAW: wstETH, Amount: 26640336580746185
  WITHDRAW: wstETH, Amount: 26640336580746186
  BORROW: wstETH, Amount 53280673161492371, Stable: false
  REPAY: wstETH, Amount: 53280673161492371
  E2E: Collateral WETH, TestAsset WBTC
  SUPPLY: WETH, Amount: 6058639095884313146
  SUPPLY: WBTC, Amount: 383041
  WITHDRAW: WBTC, Amount: 191520
  WITHDRAW: WBTC, Amount: 191521
  BORROW: WBTC, Amount 383041, Stable: false
  REPAY: WBTC, Amount: 383041
  E2E: Collateral WETH, TestAsset USDC
  SUPPLY: WETH, Amount: 6058639095884313146
  SUPPLY: USDC, Amount: 99997805
  WITHDRAW: USDC, Amount: 49998902
  WITHDRAW: USDC, Amount: 49998903
  BORROW: USDC, Amount 99997805, Stable: false
  REPAY: USDC, Amount: 99997805
  E2E: Collateral WETH, TestAsset DAI
  SUPPLY: WETH, Amount: 6058639095884313146
  SUPPLY: DAI, Amount: 100010001000100010001
  WITHDRAW: DAI, Amount: 50005000500050005000
  WITHDRAW: DAI, Amount: 50005000500050005000
  BORROW: DAI, Amount 100010001000100010001, Stable: false
  REPAY: DAI, Amount: 100010001000100010001
  E2E: Collateral WETH, TestAsset LINK
  SUPPLY: WETH, Amount: 6058639095884313146
  SUPPLY: LINK, Amount: 16762478423086336626
  WITHDRAW: LINK, Amount: 8381239211543168313
  WITHDRAW: LINK, Amount: 8381239211543168314
  BORROW: LINK, Amount 16762478423086336626, Stable: false
  REPAY: LINK, Amount: 16762478423086336626
  E2E: Collateral WETH, TestAsset AAVE
  SUPPLY: WETH, Amount: 6058639095884313146
  SUPPLY: AAVE, Amount: 1779312582127864301
  WITHDRAW: AAVE, Amount: 889656291063932150
  WITHDRAW: AAVE, Amount: 889656291063932151
  E2E: Collateral WETH, TestAsset cbETH
  SUPPLY: WETH, Amount: 6058639095884313146
  SUPPLY: cbETH, Amount: 57866658031368797
  WITHDRAW: cbETH, Amount: 28933329015684398
  WITHDRAW: cbETH, Amount: 28933329015684400
  BORROW: cbETH, Amount 57866658031368797, Stable: false
  REPAY: cbETH, Amount: 57866658031368797
  E2E: Collateral WETH, TestAsset USDT
  SUPPLY: WETH, Amount: 6058639095884313146
  SUPPLY: USDT, Amount: 100057032
  WITHDRAW: USDT, Amount: 50028516
  WITHDRAW: USDT, Amount: 50028516
  BORROW: USDT, Amount 100057032, Stable: false
  REPAY: USDT, Amount: 100057032
  E2E: Collateral WETH, TestAsset rETH
  SUPPLY: WETH, Amount: 6058639095884313146
  SUPPLY: rETH, Amount: 56019957636630099
  WITHDRAW: rETH, Amount: 28009978818315049
  WITHDRAW: rETH, Amount: 28009978818315049
  BORROW: rETH, Amount 56019957636630099, Stable: false
  REPAY: rETH, Amount: 56019957636630099
  E2E: Collateral WETH, TestAsset LUSD
  SUPPLY: WETH, Amount: 6058639095884313146
  SUPPLY: LUSD, Amount: 100115968330756248192
  WITHDRAW: LUSD, Amount: 50057984165378124096
  WITHDRAW: LUSD, Amount: 50057984165378124096
  BORROW: LUSD, Amount 100115968330756248192, Stable: false
  REPAY: LUSD, Amount: 100115968330756248192
  E2E: Collateral WETH, TestAsset CRV
  SUPPLY: WETH, Amount: 6058639095884313146
  SUPPLY: CRV, Amount: 223005138752013290392
  WITHDRAW: CRV, Amount: 111502569376006645196
  WITHDRAW: CRV, Amount: 111502569376006645196
  E2E: Collateral WETH, TestAsset MKR
  SUPPLY: WETH, Amount: 6058639095884313146
  SUPPLY: MKR, Amount: 98727441294737554
  WITHDRAW: MKR, Amount: 49363720647368777
  WITHDRAW: MKR, Amount: 49363720647368777
  BORROW: MKR, Amount 98727441294737554, Stable: false
  REPAY: MKR, Amount: 98727441294737554
  E2E: Collateral WETH, TestAsset SNX
  SUPPLY: WETH, Amount: 6058639095884313146
  SUPPLY: SNX, Amount: 48449612403100775193
  WITHDRAW: SNX, Amount: 24224806201550387596
  WITHDRAW: SNX, Amount: 24224806201550387597
  BORROW: SNX, Amount 48449612403100775193, Stable: false
  REPAY: SNX, Amount: 48449612403100775193
  E2E: Collateral WETH, TestAsset BAL
  SUPPLY: WETH, Amount: 6058639095884313146
  SUPPLY: BAL, Amount: 29102153909197170579
  WITHDRAW: BAL, Amount: 14551076954598585289
  WITHDRAW: BAL, Amount: 14551076954598585290
  BORROW: BAL, Amount 29102153909197170579, Stable: false
  REPAY: BAL, Amount: 29102153909197170579
  E2E: Collateral WETH, TestAsset UNI
  SUPPLY: WETH, Amount: 6058639095884313146
  SUPPLY: UNI, Amount: 21784934158663696976
  WITHDRAW: UNI, Amount: 10892467079331848488
  WITHDRAW: UNI, Amount: 10892467079331848487
  BORROW: UNI, Amount 21784934158663696976, Stable: false
  REPAY: UNI, Amount: 21784934158663696976
  E2E: Collateral WETH, TestAsset LDO
  SUPPLY: WETH, Amount: 6058639095884313146
  SUPPLY: LDO, Amount: 63030843796742294959
  WITHDRAW: LDO, Amount: 31515421898371147479
  WITHDRAW: LDO, Amount: 31515421898371147480
  BORROW: LDO, Amount 63030843796742294959, Stable: false
  REPAY: LDO, Amount: 63030843796742294959
  E2E: Collateral WETH, TestAsset ENS
  SUPPLY: WETH, Amount: 6058639095884313146
  SUPPLY: ENS, Amount: 12437764195368907456
  WITHDRAW: ENS, Amount: 6218882097684453728
  WITHDRAW: ENS, Amount: 6218882097684453729
  BORROW: ENS, Amount 12437764195368907456, Stable: false
  REPAY: ENS, Amount: 12437764195368907456
  E2E: Collateral WETH, TestAsset 1INCH
  SUPPLY: WETH, Amount: 6058639095884313146
  SUPPLY: 1INCH, Amount: 410278510592180821883
  WITHDRAW: 1INCH, Amount: 205139255296090410941
  WITHDRAW: 1INCH, Amount: 205139255296090410942
  BORROW: 1INCH, Amount 410278510592180821883, Stable: false
  REPAY: 1INCH, Amount: 410278510592180821883
  E2E: Collateral WETH, TestAsset FRAX
  SUPPLY: WETH, Amount: 6058639095884313146
  SUPPLY: FRAX, Amount: 100168997118418426095
  WITHDRAW: FRAX, Amount: 50084498559209213047
  WITHDRAW: FRAX, Amount: 50084498559209213049
  BORROW: FRAX, Amount 100168997118418426095, Stable: false
  REPAY: FRAX, Amount: 100168997118418426095
  E2E: TestAsset GHO SKIPPED
  E2E: Collateral WETH, TestAsset RPL
  SUPPLY: WETH, Amount: 6058639095884313146
  SUPPLY: RPL, Amount: 4169283941609818799
  WITHDRAW: RPL, Amount: 2084641970804909399
  WITHDRAW: RPL, Amount: 2084641970804909401
  BORROW: RPL, Amount 4169283941609818799, Stable: false
  REPAY: RPL, Amount: 4169283941609818799

Test result: ok. 1 passed; 0 failed; 0 skipped; finished in 46.54s

Running 2 tests for tests/ProtocolV3TestBase.t.sol:ProtocolV3TestE2ETestAsset
[PASS] test_e2eTestAssetMAI() (gas: 1668142)
Logs:
  E2E: Collateral DAI, TestAsset MAI
  SUPPLY: DAI, Amount: 10000000000000000000000
  SUPPLY: MAI, Amount: 100855007402202840780
  WITHDRAW: MAI, Amount: 50427503701101420390
  WITHDRAW: MAI, Amount: 50427503701101420389
  BORROW: MAI, Amount 100855007402202840780, Stable: false
  REPAY: MAI, Amount: 100855007402202840780

[PASS] test_e2eTestAssetUSDC() (gas: 2061202)
Logs:
  E2E: Collateral DAI, TestAsset USDC
  SUPPLY: DAI, Amount: 10000000000000000000000
  SUPPLY: USDC, Amount: 100000866
  WITHDRAW: USDC, Amount: 50000433
  WITHDRAW: USDC, Amount: 50000433
  BORROW: USDC, Amount 100000866, Stable: false
  REPAY: USDC, Amount: 100000866
  BORROW: USDC, Amount 100000866, Stable: true
  REPAY: USDC, Amount: 100000866

Test result: ok. 2 passed; 0 failed; 0 skipped; finished in 14.17s

Running 1 test for tests/ProtocolV3TestBase.t.sol:ProtocolV3TestE2ETestSnapshot
[PASS] test_snapshot() (gas: 4686931)
Test result: ok. 1 passed; 0 failed; 0 skipped; finished in 4.51s

Running 2 tests for tests/ProxyHelpersTest.t.sol:ProxyHelpersTest
[PASS] testAdmin() (gas: 3274)
[PASS] testImplementation() (gas: 3219)
Test result: ok. 2 passed; 0 failed; 0 skipped; finished in 300.94ms

Running 2 tests for tests/V2RateStrategyFactory.t.sol:V2RateStrategyFactoryTest
[PASS] testCreateStrategies() (gas: 850671)
[PASS] testMultipleCreateStrategies() (gas: 850436)
Test result: ok. 2 passed; 0 failed; 0 skipped; finished in 2.02s

Running 2 tests for tests/V3RateStrategyFactory.t.sol:V3RateStrategyFactoryTest
[PASS] testCreateStrategies() (gas: 714518)
[PASS] testMultipleCreateStrategies() (gas: 714609)
Test result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.16s

Running 20 tests for tests/AaveV3ConfigEngineTest.t.sol:AaveV3ConfigEngineTest
[PASS] testArbitrumRateStrategiesUpdates() (gas: 29317051)
[PASS] testAssetEModeUpdates() (gas: 71654361)
[PASS] testAvaxRateStrategiesUpdates() (gas: 36419466)
[PASS] testBorrowsUpdates() (gas: 92464426)
[PASS] testCapsUpdates() (gas: 71668784)
[PASS] testCollateralUpdateCorrectBonus() (gas: 35881028)
[PASS] testCollateralUpdateWrongBonus() (gas: 8018847)
[PASS] testCollateralsUpdates() (gas: 35882489)
[PASS] testCollateralsUpdatesNoChange() (gas: 35858161)
[PASS] testEModeCategoryUpdates() (gas: 92525993)
[PASS] testEModeCategoryUpdatesNoChange() (gas: 35872970)
[PASS] testEModeCategoryUpdatesWrongBonus() (gas: 8032134)
[PASS] testFailCollateralsUpdatesNoChange() (gas: 8700101)
[PASS] testFailEModeCategoryUpdatesNoChange() (gas: 8047669)
[PASS] testListings() (gas: 98237552)
[PASS] testListingsCustom() (gas: 77162324)
[PASS] testOptimismRateStrategiesUpdates() (gas: 37590692)
[PASS] testPolygonRateStrategiesUpdates() (gas: 93178301)
[PASS] testPriceFeedsUpdates() (gas: 92387180)
[PASS] testRateStrategiesUpdates() (gas: 37398420)
Test result: ok. 20 passed; 0 failed; 0 skipped; finished in 115.32s

Running 3 tests for tests/crosschainforwarders/ArbitrumCrossChainForwarderTest.t.sol:ArbitrumCrossChainForwarderTest
[PASS] testHasSufficientGas() (gas: 24011)
[PASS] testProposalE2E() (gas: 1120295)
[PASS] testgetGetMaxSubmissionCost() (gas: 17182)
Test result: ok. 3 passed; 0 failed; 0 skipped; finished in 4.77s
 
Ran 40 test suites: 98 tests passed, 0 failed, 0 skipped (98 total tests)

Please sign in to comment.