Skip to content

Commit

Permalink
Aave Funding Proposal (#230)
Browse files Browse the repository at this point in the history
  • Loading branch information
efecarranza authored Mar 7, 2024
1 parent 9caa474 commit 42d986f
Show file tree
Hide file tree
Showing 7 changed files with 988 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,324 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol';
import {SafeERC20} from 'solidity-utils/contracts/oz-common/SafeERC20.sol';
import {MiscEthereum} from 'aave-address-book/MiscEthereum.sol';
import {AaveV2Ethereum, AaveV2EthereumAssets} from 'aave-address-book/AaveV2Ethereum.sol';
import {AaveV3Ethereum, AaveV3EthereumAssets} from 'aave-address-book/AaveV3Ethereum.sol';
import {AaveSwapper} from 'aave-helpers/swaps/AaveSwapper.sol';
import {IProposalGenericExecutor} from 'aave-helpers/interfaces/IProposalGenericExecutor.sol';

/**
* @title Funding Update
* @author karpatkey_TokenLogic
* - Snapshot: https://snapshot.org/#/aave.eth/proposal/0x4dd4dff7096bf7ab8c4c071975d40f4cf709c41b4b6b7c60777a6dd50d2ecd09
* - Discussion: https://governance.aave.com/t/arfc-funding-update/16675
*/
contract AaveV3Ethereum_FundingUpdate_20240224 is IProposalGenericExecutor {
using SafeERC20 for IERC20;

struct TokenToMigrate {
address underlying;
address aToken;
uint256 qty;
}

struct TokenToSwap {
address underlying;
address aToken;
uint256 balance;
}

AaveSwapper public constant SWAPPER = AaveSwapper(MiscEthereum.AAVE_SWAPPER);
address public constant ALC_SAFE = 0x205e795336610f5131Be52F09218AF19f0f3eC60;

address public constant MILKMAN = 0x11C76AD590ABDFFCD980afEC9ad951B160F02797;
address public constant PRICE_CHECKER = 0xe80a1C615F75AFF7Ed8F08c9F21f9d00982D666c;

address public constant GHO_USD_FEED = 0x3f12643D3f6f874d39C2a4c9f2Cd6f2DbAC877FC;
address public constant DPI_USD_FEED = 0xD2A593BF7594aCE1faD597adb697b5645d5edDB2;

uint256 public constant USDC_V2_TO_MIGRATE = 300_000e6;

uint256 public constant USDC_V3_TO_SWAP = 1_250_000e6;
uint256 public constant USDT_V3_TO_SWAP = 1_500_000e6;
uint256 public constant USDT_V2_TO_SWAP = 200_000e6;

function execute() external {
// Transer USDT to Swapper
AaveV3Ethereum.COLLECTOR.transfer(
AaveV3EthereumAssets.USDT_UNDERLYING,
address(SWAPPER),
IERC20(AaveV3EthereumAssets.USDT_UNDERLYING).balanceOf(address(AaveV3Ethereum.COLLECTOR))
);

_migrateV2ToV3();
_transferToALC();
_swap();
}

/**
* @notice Swaps withdrawn tokens from V2 and V3 for GHO
* - withdraws aDAIv2, aUSDTv3, aUSDTv2, aUSDCv3, aUSDCv2, aFRAXv2, aDPIv2
* - transfers raw LUSD
*/
function _swap() internal {
_withdrawV3Tokens();
_withdrawV2Tokens();

// LUSD
AaveV3Ethereum.COLLECTOR.transfer(
AaveV3EthereumAssets.LUSD_UNDERLYING,
address(SWAPPER),
IERC20(AaveV3EthereumAssets.LUSD_UNDERLYING).balanceOf(address(AaveV3Ethereum.COLLECTOR))
);

SWAPPER.swap(
MILKMAN,
PRICE_CHECKER,
AaveV3EthereumAssets.LUSD_UNDERLYING,
AaveV3EthereumAssets.GHO_UNDERLYING,
AaveV3EthereumAssets.LUSD_ORACLE,
GHO_USD_FEED,
address(AaveV3Ethereum.COLLECTOR),
IERC20(AaveV3EthereumAssets.LUSD_UNDERLYING).balanceOf(address(SWAPPER)),
500
);

SWAPPER.swap(
MILKMAN,
PRICE_CHECKER,
AaveV3EthereumAssets.DAI_UNDERLYING,
AaveV3EthereumAssets.GHO_UNDERLYING,
AaveV3EthereumAssets.DAI_ORACLE,
GHO_USD_FEED,
address(AaveV3Ethereum.COLLECTOR),
IERC20(AaveV3EthereumAssets.DAI_UNDERLYING).balanceOf(address(SWAPPER)),
100
);

SWAPPER.swap(
MILKMAN,
PRICE_CHECKER,
AaveV2EthereumAssets.DPI_UNDERLYING,
AaveV3EthereumAssets.GHO_UNDERLYING,
DPI_USD_FEED,
GHO_USD_FEED,
address(AaveV3Ethereum.COLLECTOR),
IERC20(AaveV2EthereumAssets.DPI_UNDERLYING).balanceOf(address(SWAPPER)),
300
);

SWAPPER.swap(
MILKMAN,
PRICE_CHECKER,
AaveV3EthereumAssets.FRAX_UNDERLYING,
AaveV3EthereumAssets.GHO_UNDERLYING,
AaveV3EthereumAssets.FRAX_ORACLE,
GHO_USD_FEED,
address(AaveV3Ethereum.COLLECTOR),
IERC20(AaveV3EthereumAssets.FRAX_UNDERLYING).balanceOf(address(SWAPPER)),
300
);

SWAPPER.swap(
MILKMAN,
PRICE_CHECKER,
AaveV3EthereumAssets.USDC_UNDERLYING,
AaveV3EthereumAssets.GHO_UNDERLYING,
AaveV3EthereumAssets.USDC_ORACLE,
GHO_USD_FEED,
address(AaveV3Ethereum.COLLECTOR),
IERC20(AaveV3EthereumAssets.USDC_UNDERLYING).balanceOf(address(SWAPPER)),
50
);

SWAPPER.swap(
MILKMAN,
PRICE_CHECKER,
AaveV3EthereumAssets.USDT_UNDERLYING,
AaveV3EthereumAssets.GHO_UNDERLYING,
AaveV3EthereumAssets.USDT_ORACLE,
GHO_USD_FEED,
address(AaveV3Ethereum.COLLECTOR),
IERC20(AaveV3EthereumAssets.USDT_UNDERLYING).balanceOf(address(SWAPPER)),
50
);
}

/**
* @notice migrates all but one unit of the specified assets from AaveV2 to AaveV3
* assets: WETH, WBTC and USDC
*/
function _migrateV2ToV3() internal {
TokenToMigrate[] memory tokens = new TokenToMigrate[](3);
tokens[0] = TokenToMigrate(
AaveV2EthereumAssets.WBTC_UNDERLYING,
AaveV2EthereumAssets.WBTC_A_TOKEN,
IERC20(AaveV2EthereumAssets.WBTC_A_TOKEN).balanceOf(address(AaveV3Ethereum.COLLECTOR)) - 1e8
);
tokens[1] = TokenToMigrate(
AaveV2EthereumAssets.WETH_UNDERLYING,
AaveV2EthereumAssets.WETH_A_TOKEN,
IERC20(AaveV2EthereumAssets.WETH_A_TOKEN).balanceOf(address(AaveV3Ethereum.COLLECTOR)) -
1 ether
);
tokens[2] = TokenToMigrate(
AaveV2EthereumAssets.USDC_UNDERLYING,
AaveV2EthereumAssets.USDC_A_TOKEN,
USDC_V2_TO_MIGRATE
);

uint256 tokensLength = tokens.length;
for (uint256 i = 0; i < tokensLength; i++) {
AaveV3Ethereum.COLLECTOR.transfer(tokens[i].aToken, address(this), tokens[i].qty);

AaveV2Ethereum.POOL.withdraw(tokens[i].underlying, type(uint256).max, address(this));

uint256 amount = IERC20(tokens[i].underlying).balanceOf(address(this));
IERC20(tokens[i].underlying).forceApprove(address(AaveV3Ethereum.POOL), amount);

AaveV3Ethereum.POOL.deposit(
tokens[i].underlying,
amount,
address(AaveV3Ethereum.COLLECTOR),
0
);
}
}

/**
* @notice transfers strategic assets to the ALC_SAFE
* - withdraws aBALv2, aBALv3, aCRVv2, aCRVv3 to ALC_SAFE
* - transfers raw BAL / CRV to ALC_SAFE
*/
function _transferToALC() internal {
// Aave V2 BAL
AaveV3Ethereum.COLLECTOR.transfer(
AaveV2EthereumAssets.BAL_A_TOKEN,
address(this),
IERC20(AaveV2EthereumAssets.BAL_A_TOKEN).balanceOf(address(AaveV3Ethereum.COLLECTOR)) -
1 ether
);

AaveV2Ethereum.POOL.withdraw(AaveV2EthereumAssets.BAL_UNDERLYING, type(uint256).max, ALC_SAFE);

// Aave V3 BAL
AaveV3Ethereum.COLLECTOR.transfer(
AaveV3EthereumAssets.BAL_A_TOKEN,
address(this),
IERC20(AaveV3EthereumAssets.BAL_A_TOKEN).balanceOf(address(AaveV3Ethereum.COLLECTOR)) -
1 ether
);

AaveV3Ethereum.POOL.withdraw(AaveV3EthereumAssets.BAL_UNDERLYING, type(uint256).max, ALC_SAFE);

// Aave V2 CRV
AaveV3Ethereum.COLLECTOR.transfer(
AaveV2EthereumAssets.CRV_A_TOKEN,
address(this),
IERC20(AaveV2EthereumAssets.CRV_A_TOKEN).balanceOf(address(AaveV3Ethereum.COLLECTOR)) -
1 ether
);

AaveV2Ethereum.POOL.withdraw(AaveV2EthereumAssets.CRV_UNDERLYING, type(uint256).max, ALC_SAFE);

// Aave V3 CRV
AaveV3Ethereum.COLLECTOR.transfer(
AaveV3EthereumAssets.CRV_A_TOKEN,
address(this),
IERC20(AaveV3EthereumAssets.CRV_A_TOKEN).balanceOf(address(AaveV3Ethereum.COLLECTOR)) -
1 ether
);

AaveV3Ethereum.POOL.withdraw(AaveV3EthereumAssets.CRV_UNDERLYING, type(uint256).max, ALC_SAFE);

// BAL
AaveV3Ethereum.COLLECTOR.transfer(
AaveV3EthereumAssets.BAL_UNDERLYING,
ALC_SAFE,
IERC20(AaveV3EthereumAssets.BAL_UNDERLYING).balanceOf(address(AaveV3Ethereum.COLLECTOR))
);

// CRV
AaveV3Ethereum.COLLECTOR.transfer(
AaveV3EthereumAssets.CRV_UNDERLYING,
ALC_SAFE,
IERC20(AaveV3EthereumAssets.CRV_UNDERLYING).balanceOf(address(AaveV3Ethereum.COLLECTOR))
);
}

/**
* @notice Withdraws v2 tokens
*/
function _withdrawV2Tokens() internal {
TokenToSwap[] memory tokens = new TokenToSwap[](5);
tokens[0] = TokenToSwap(
AaveV2EthereumAssets.LUSD_UNDERLYING,
AaveV2EthereumAssets.LUSD_A_TOKEN,
IERC20(AaveV2EthereumAssets.LUSD_A_TOKEN).balanceOf(address(AaveV3Ethereum.COLLECTOR)) -
1 ether
);
tokens[1] = TokenToSwap(
AaveV2EthereumAssets.DAI_UNDERLYING,
AaveV2EthereumAssets.DAI_A_TOKEN,
IERC20(AaveV2EthereumAssets.DAI_A_TOKEN).balanceOf(address(AaveV3Ethereum.COLLECTOR)) -
1 ether
);
tokens[2] = TokenToSwap(
AaveV2EthereumAssets.DPI_UNDERLYING,
AaveV2EthereumAssets.DPI_A_TOKEN,
IERC20(AaveV2EthereumAssets.DPI_A_TOKEN).balanceOf(address(AaveV3Ethereum.COLLECTOR)) -
1 ether
);
tokens[3] = TokenToSwap(
AaveV2EthereumAssets.FRAX_UNDERLYING,
AaveV2EthereumAssets.FRAX_A_TOKEN,
IERC20(AaveV2EthereumAssets.FRAX_A_TOKEN).balanceOf(address(AaveV3Ethereum.COLLECTOR)) -
1 ether
);
tokens[4] = TokenToSwap(
AaveV2EthereumAssets.USDT_UNDERLYING,
AaveV2EthereumAssets.USDT_A_TOKEN,
USDT_V2_TO_SWAP
);

uint256 tokensLength = tokens.length;
for (uint256 i = 0; i < tokensLength; i++) {
AaveV3Ethereum.COLLECTOR.transfer(tokens[i].aToken, address(this), tokens[i].balance);

AaveV2Ethereum.POOL.withdraw(tokens[i].underlying, type(uint256).max, address(SWAPPER));
}
}

/**
* @notice Withdraws v3 tokens
*/
function _withdrawV3Tokens() internal {
TokenToSwap[] memory tokens = new TokenToSwap[](3);
tokens[0] = TokenToSwap(
AaveV3EthereumAssets.USDC_UNDERLYING,
AaveV3EthereumAssets.USDC_A_TOKEN,
USDC_V3_TO_SWAP
);
tokens[1] = TokenToSwap(
AaveV3EthereumAssets.USDT_UNDERLYING,
AaveV3EthereumAssets.USDT_A_TOKEN,
USDT_V3_TO_SWAP - IERC20(AaveV3EthereumAssets.USDT_UNDERLYING).balanceOf(address(SWAPPER))
);
tokens[2] = TokenToSwap(
AaveV3EthereumAssets.LUSD_UNDERLYING,
AaveV3EthereumAssets.LUSD_A_TOKEN,
IERC20(AaveV3EthereumAssets.LUSD_A_TOKEN).balanceOf(address(AaveV3Ethereum.COLLECTOR)) -
1 ether
);

uint256 tokensLength = tokens.length;
for (uint256 i = 0; i < tokensLength; i++) {
AaveV3Ethereum.COLLECTOR.transfer(tokens[i].aToken, address(this), tokens[i].balance);

AaveV3Ethereum.POOL.withdraw(tokens[i].underlying, type(uint256).max, address(SWAPPER));
}
}
}
Loading

1 comment on commit 42d986f

@github-actions
Copy link

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 (b6e7c8b 2024-03-07T00:12:58.706685890Z)
Build log
Compiling 354 files with 0.8.19
Solc 0.8.19 finished in 180.23s
Compiler run successful with warnings:
Warning (3628): This contract has a payable fallback function, but no receive ether function. Consider adding a receive ether function.
  --> src/20240218_AaveV1Ethereum_AaveV1DeprecationPhase2/AaveV1Ethereum_AaveV1Deprecation_20240218.t.sol:86:1:
   |
86 | contract AaveV1Ethereum_AaveV1Deprecation_20240218_Test is ProtocolV2TestBase {
   | ^ (Relevant source part starts here and spans across multiple lines).
Note: The payable fallback function is defined here.
   --> src/20240218_AaveV1Ethereum_AaveV1DeprecationPhase2/AaveV1Ethereum_AaveV1Deprecation_20240218.t.sol:232:3:
    |
232 |   fallback() external payable {}
    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Warning (9302): Return value of low-level calls not used.
  --> src/20231229_Multi_TreasuryManagementGSMFundingRWAStrategyPreparationsPart1/AaveV2Ethereum_TreasuryManagementGSMFundingRWAStrategyPreparationsPart1_20231229.sol:47:5:
   |
47 |     SAFE.call{value: address(this).balance}('');
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Warning (5667): Unused function parameter. Remove or comment out the variable name to silence this warning.
   --> lib/aave-helpers/src/GovV3Helpers.sol:847:5:
    |
847 |     address votingPortal
    |     ^^^^^^^^^^^^^^^^^^^^

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240104_Multi_Patch/Patch_20240104.s.sol:32:3:
   |
32 |   function _getPayload() internal override returns (bytes memory) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240104_Multi_Patch/Patch_20240104.s.sol:43:3:
   |
43 |   function _getPayload() internal override returns (bytes memory) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240104_Multi_Patch/Patch_20240104.s.sol:54:3:
   |
54 |   function _getPayload() internal override returns (bytes memory) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240104_Multi_Patch/Patch_20240104.s.sol:65:3:
   |
65 |   function _getPayload() internal override returns (bytes memory) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240104_Multi_Patch/Patch_20240104.s.sol:76:3:
   |
76 |   function _getPayload() internal override returns (bytes memory) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240104_Multi_Patch/Patch_20240104.s.sol:87:3:
   |
87 |   function _getPayload() internal override returns (bytes memory) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240104_Multi_Patch/Patch_20240104.s.sol:98:3:
   |
98 |   function _getPayload() internal override returns (bytes memory) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
   --> src/20240218_AaveV1Ethereum_AaveV1DeprecationPhase2/AaveV1Ethereum_AaveV1Deprecation_20240218.t.sol:207:3:
    |
207 |   function _getUsers() internal returns (V1User[] memory) {
    |   ^ (Relevant source part starts here and spans across multiple lines).

| Contract                                                                                                 | Size (kB) | Margin (kB) |
|----------------------------------------------------------------------------------------------------------|-----------|-------------|
| AaveGovernanceV2                                                                                         | 0.086     | 24.49       |
| AaveSafetyModule                                                                                         | 0.086     | 24.49       |
| AaveSwapper                                                                                              | 5.613     | 18.963      |
| AaveV1Ethereum_AaveV1Deprecation_20240218                                                                | 0.338     | 24.238      |
| AaveV2Avalanche                                                                                          | 0.086     | 24.49       |
| AaveV2AvalancheAssets                                                                                    | 0.086     | 24.49       |
| AaveV2Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221                            | 0.377     | 24.199      |
| AaveV2Avalanche_StablecoinIRCurvesUpdates_20231221                                                       | 1.899     | 22.677      |
| AaveV2Ethereum                                                                                           | 0.086     | 24.49       |
| AaveV2EthereumAMM                                                                                        | 0.086     | 24.49       |
| AaveV2EthereumAMMAssets                                                                                  | 0.086     | 24.49       |
| AaveV2EthereumAMM_ARFCDeprecateAaveV2AMMMarketStep2_20240205                                             | 2.935     | 21.641      |
| AaveV2EthereumAssets                                                                                     | 0.086     | 24.49       |
| AaveV2Ethereum_AMPLInterestRateUpdatesOnV2Ethereum_20240121                                              | 1.643     | 22.933      |
| AaveV2Ethereum_ChaosLabsV2EthereumLTReductions_20240201                                                  | 0.967     | 23.609      |
| AaveV2Ethereum_MigrationOfRemainingGovV2Permissions_20240130                                             | 1.018     | 23.558      |
| AaveV2Ethereum_MigrationOfRemainingGovV2Permissions_Part2_20240130                                       | 1.487     | 23.089      |
| AaveV2Ethereum_StablecoinIRCurvesUpdates_20231221                                                        | 2.88      | 21.696      |
| AaveV2Ethereum_TreasuryManagementGSMFundingRWAStrategyPreparationsPart1_20231229                         | 3.456     | 21.12       |
| AaveV2Ethereum_V2DeprecationPlan20240102_20240103                                                        | 0.968     | 23.608      |
| AaveV2Polygon                                                                                            | 0.086     | 24.49       |
| AaveV2PolygonAssets                                                                                      | 0.086     | 24.49       |
| AaveV2Polygon_ReserveFactorUpdatesFebruary152024_20240208                                                | 0.872     | 23.704      |
| AaveV2Polygon_ReserveFactorUpdatesFebruary292024_20240229                                                | 0.724     | 23.852      |
| AaveV2Polygon_ReserveFactorUpdatesJan152024_20240108                                                     | 1.175     | 23.401      |
| AaveV2Polygon_ReserveFactorUpdatesJan312024_20240125                                                     | 0.872     | 23.704      |
| AaveV2Polygon_ReserveFactorUpdates_20240102                                                              | 1.036     | 23.54       |
| AaveV2Polygon_StablecoinIRCurvesUpdates_20231221                                                         | 1.899     | 22.677      |
| AaveV3Arbitrum                                                                                           | 0.086     | 24.49       |
| AaveV3ArbitrumAssets                                                                                     | 0.086     | 24.49       |
| AaveV3ArbitrumEModes                                                                                     | 0.086     | 24.49       |
| AaveV3Arbitrum_AaveProtocolEmbassy_20240220                                                              | 0.476     | 24.1        |
| AaveV3Arbitrum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229                                   | 0.364     | 24.212      |
| AaveV3Arbitrum_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                       | 3.403     | 21.173      |
| AaveV3Arbitrum_Patch_20240104                                                                            | 0.52      | 24.056      |
| AaveV3Arbitrum_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                 | 0.253     | 24.323      |
| AaveV3Arbitrum_StablecoinIRCurvesUpdates_20231221                                                        | 4.919     | 19.657      |
| AaveV3Arbitrum_UpdateStETHAndWETHRiskParamsOnAaveV3EthereumOptimismAndArbitrum_20240121                  | 3.933     | 20.643      |
| AaveV3Avalanche                                                                                          | 0.086     | 24.49       |
| AaveV3AvalancheAssets                                                                                    | 0.086     | 24.49       |
| AaveV3AvalancheEModes                                                                                    | 0.086     | 24.49       |
| AaveV3Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221                            | 3.554     | 21.022      |
| AaveV3Avalanche_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                      | 3.418     | 21.158      |
| AaveV3Avalanche_Patch_20240104                                                                           | 0.52      | 24.056      |
| AaveV3Avalanche_StablecoinIRCurvesUpdates_20231221                                                       | 4.669     | 19.907      |
| AaveV3BNB                                                                                                | 0.086     | 24.49       |
| AaveV3BNBAssets                                                                                          | 0.086     | 24.49       |
| AaveV3BNBEModes                                                                                          | 0.086     | 24.49       |
| AaveV3BNB_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                            | 3.421     | 21.155      |
| AaveV3BNB_OnboardFdUSDToAaveV3OnBSC_20240201                                                             | 5.055     | 19.521      |
| AaveV3BNB_SetAaveChanInitiativeAsEmissionManagerForFdUSDOnBNBChainAaveV3_20240208                        | 0.253     | 24.323      |
| AaveV3Base                                                                                               | 0.086     | 24.49       |
| AaveV3BaseAssets                                                                                         | 0.086     | 24.49       |
| AaveV3BaseEModes                                                                                         | 0.086     | 24.49       |
| AaveV3Base_Patch_20240104                                                                                | 0.52      | 24.056      |
| AaveV3Base_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                     | 0.253     | 24.323      |
| AaveV3Base_StablecoinIRCurvesUpdates_20231221                                                            | 3.659     | 20.917      |
| AaveV3Ethereum                                                                                           | 0.086     | 24.49       |
| AaveV3EthereumAssets                                                                                     | 0.086     | 24.49       |
| AaveV3EthereumEModes                                                                                     | 0.086     | 24.49       |
| AaveV3Ethereum_AddPYUSDToAaveV3EthereumMarket_20240125                                                   | 5.034     | 19.542      |
| AaveV3Ethereum_AmendSafetyModuleEmissions_20240229                                                       | 2.44      | 22.136      |
| AaveV3Ethereum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229                                   | 1.008     | 23.568      |
| AaveV3Ethereum_ChaosLabsRiskParameterUpdatesIncreaseDebtCeilingForSNXAndMKROnV3Ethereum01312024_20240211 | 3.574     | 21.002      |
| AaveV3Ethereum_CutGauntletServiceProviderStream_20240227                                                 | 0.52      | 24.056      |
| AaveV3Ethereum_FundingUpdate_20240224                                                                    | 10.581    | 13.995      |
| AaveV3Ethereum_GHOBorrowRateIncrease20240229_20240229                                                    | 0.326     | 24.25       |
| AaveV3Ethereum_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                       | 3.417     | 21.159      |
| AaveV3Ethereum_OrbitProgram_20240220                                                                     | 2.349     | 22.227      |
| AaveV3Ethereum_Patch_20240104                                                                            | 0.52      | 24.056      |
| AaveV3Ethereum_RegisterADIScrollAdapter_20240122                                                         | 0.671     | 23.905      |
| AaveV3Ethereum_RequestForBountyPayoutJanuary2024_20240125                                                | 0.822     | 23.754      |
| AaveV3Ethereum_RetroactiveBugBountyPreImmunefi_20240205                                                  | 0.823     | 23.753      |
| AaveV3Ethereum_SecurityBudgetRequestDecember2023_20240206                                                | 0.555     | 24.021      |
| AaveV3Ethereum_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                 | 0.253     | 24.323      |
| AaveV3Ethereum_StableRateBugBounty_20240207                                                              | 0.809     | 23.767      |
| AaveV3Ethereum_StablecoinIRCurvesUpdates_20231221                                                        | 4.668     | 19.908      |
| AaveV3Ethereum_StkGHOActivation_20240119                                                                 | 1.156     | 23.42       |
| AaveV3Ethereum_TreasuryManagementGSMFundingRWAStrategyPreparationsPart2_20240209                         | 3.139     | 21.437      |
| AaveV3Ethereum_UpdateStETHAndWETHRiskParamsOnAaveV3EthereumOptimismAndArbitrum_20240121                  | 3.946     | 20.63       |
| AaveV3Fantom                                                                                             | 0.086     | 24.49       |
| AaveV3FantomAssets                                                                                       | 0.086     | 24.49       |
| AaveV3FantomEModes                                                                                       | 0.086     | 24.49       |
| AaveV3GenericPatch_20240104                                                                              | 0.52      | 24.056      |
| AaveV3Gnosis                                                                                             | 0.086     | 24.49       |
| AaveV3GnosisAssets                                                                                       | 0.086     | 24.49       |
| AaveV3GnosisEModes                                                                                       | 0.086     | 24.49       |
| AaveV3Gnosis_Patch_20240104                                                                              | 0.52      | 24.056      |
| AaveV3Gnosis_StablecoinIRCurvesUpdates_20231221                                                          | 3.911     | 20.665      |
| 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       |
| AaveV3Metis_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                          | 3.411     | 21.165      |
| AaveV3Metis_StablecoinIRCurvesUpdates_20231221                                                           | 3.91      | 20.666      |
| AaveV3Optimism                                                                                           | 0.086     | 24.49       |
| AaveV3OptimismAssets                                                                                     | 0.086     | 24.49       |
| AaveV3OptimismEModes                                                                                     | 0.086     | 24.49       |
| AaveV3Optimism_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229                                   | 0.351     | 24.225      |
| AaveV3Optimism_GauntletRecommendationForMAIMIMATICDeprecationPhase2_20240122                             | 3.416     | 21.16       |
| AaveV3Optimism_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                       | 3.403     | 21.173      |
| AaveV3Optimism_Patch_20240104                                                                            | 0.52      | 24.056      |
| AaveV3Optimism_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                 | 0.253     | 24.323      |
| AaveV3Optimism_StablecoinIRCurvesUpdates_20231221                                                        | 4.919     | 19.657      |
| AaveV3Optimism_UpdateStETHAndWETHRiskParamsOnAaveV3EthereumOptimismAndArbitrum_20240121                  | 3.933     | 20.643      |
| AaveV3Polygon                                                                                            | 0.086     | 24.49       |
| AaveV3PolygonAssets                                                                                      | 0.086     | 24.49       |
| AaveV3PolygonEModes                                                                                      | 0.086     | 24.49       |
| AaveV3Polygon_FreezeAndSetLTVTo0ForDPIBALCRVAndSUSHIOnAaveV3Polygon20240119_20240130                     | 4.396     | 20.18       |
| AaveV3Polygon_FundingUpdate_20240224                                                                     | 2.943     | 21.633      |
| AaveV3Polygon_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                        | 3.402     | 21.174      |
| AaveV3Polygon_MaticXSupplyCapIncreaseInPolygonV3_20240206                                                | 3.335     | 21.241      |
| AaveV3Polygon_Patch_20240104                                                                             | 0.52      | 24.056      |
| AaveV3Polygon_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                  | 0.253     | 24.323      |
| AaveV3Polygon_StablecoinIRCurvesUpdates_20231221                                                         | 4.416     | 20.16       |
| AaveV3Polygon_TreasuryManagementGSMFundingRWAStrategyPreparationsPart1_20231229                          | 3.459     | 21.117      |
| AaveV3Scroll                                                                                             | 0.086     | 24.49       |
| AaveV3ScrollAssets                                                                                       | 0.086     | 24.49       |
| AaveV3ScrollEModes                                                                                       | 0.086     | 24.49       |
| AaveV3Scroll_AaveV3ScrollActivation_20240122                                                             | 6.641     | 17.935      |
| Address                                                                                                  | 0.086     | 24.49       |
| ChainHelpers                                                                                             | 0.086     | 24.49       |
| ChainIds                                                                                                 | 0.086     | 24.49       |
| ConfiguratorInputTypes                                                                                   | 0.086     | 24.49       |
| Create2Utils                                                                                             | 0.164     | 24.412      |
| DataTypes                                                                                                | 0.086     | 24.49       |
| EngineFlags                                                                                              | 0.086     | 24.49       |
| EnumerableSet                                                                                            | 0.086     | 24.49       |
| EnvelopeUtils                                                                                            | 0.086     | 24.49       |
| Errors                                                                                                   | 4.714     | 19.862      |
| Gho_GHOStabilityModule_20240119                                                                          | 4.535     | 20.041      |
| GovHelpers                                                                                               | 0.086     | 24.49       |
| GovV3Helpers                                                                                             | 2.622     | 21.954      |
| GovV3StorageHelpers                                                                                      | 0.086     | 24.49       |
| GovernanceV3Arbitrum                                                                                     | 0.086     | 24.49       |
| GovernanceV3Avalanche                                                                                    | 0.086     | 24.49       |
| GovernanceV3BNB                                                                                          | 0.086     | 24.49       |
| GovernanceV3Base                                                                                         | 0.086     | 24.49       |
| GovernanceV3Ethereum                                                                                     | 0.086     | 24.49       |
| GovernanceV3Gnosis                                                                                       | 0.086     | 24.49       |
| GovernanceV3Metis                                                                                        | 0.086     | 24.49       |
| GovernanceV3Optimism                                                                                     | 0.086     | 24.49       |
| GovernanceV3Polygon                                                                                      | 0.086     | 24.49       |
| GovernanceV3PolygonZkEvm                                                                                 | 0.086     | 24.49       |
| GovernanceV3Scroll                                                                                       | 0.086     | 24.49       |
| IpfsUtils                                                                                                | 0.086     | 24.49       |
| MainnetPayload                                                                                           | 2.624     | 21.952      |
| MiscEthereum                                                                                             | 0.086     | 24.49       |
| MiscPolygon                                                                                              | 0.086     | 24.49       |
| MiscScroll                                                                                               | 0.086     | 24.49       |
| MockERC20                                                                                                | 3.701     | 20.875      |
| MockERC721                                                                                               | 3.962     | 20.614      |
| MockExecutor                                                                                             | 0.437     | 24.139      |
| OrbitProgramData                                                                                         | 0.529     | 24.047      |
| ParaswapClaim                                                                                            | 0.063     | 24.513      |
| ParaswapClaimer                                                                                          | 0.2       | 24.376      |
| PayloadsControllerUtils                                                                                  | 0.086     | 24.49       |
| PayloadsToDeploy                                                                                         | 0.086     | 24.49       |
| PolygonPayload                                                                                           | 1.634     | 22.942      |
| PoolAddresses                                                                                            | 0.357     | 24.219      |
| ProxyHelpers                                                                                             | 0.086     | 24.49       |
| ReserveConfiguration                                                                                     | 0.171     | 24.405      |
| RewardsDataTypes                                                                                         | 0.086     | 24.49       |
| SafeERC20                                                                                                | 0.086     | 24.49       |
| StdStyle                                                                                                 | 0.086     | 24.49       |
| StorageHelpers                                                                                           | 0.086     | 24.49       |
| TransactionUtils                                                                                         | 0.086     | 24.49       |
| 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

Ran 3 tests for src/20240224_Multi_FundingUpdate/AaveV3Ethereum_FundingUpdate_20240224.t.sol:AaveV3Ethereum_FundingUpdate_20240224_Test
[PASS] test_alcTransfers() (gas: 4362483)
[PASS] test_withdrawV2() (gas: 4442363)
[PASS] test_withdrawV3() (gas: 4419629)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 4.10s (12.09s CPU time)

Ran 1 test suite in 4.11s (4.10s CPU time): 3 tests passed, 0 failed, 0 skipped (3 total tests)
No files changed, compilation skipped

Ran 1 test for src/20240224_Multi_FundingUpdate/AaveV3Polygon_FundingUpdate_20240224.t.sol:AaveV3Polygon_FundingUpdate_20240224_Test
[PASS] test_defaultProposalExecution() (gas: 977828)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 3.56s (3.41s CPU time)

Ran 1 test suite in 3.57s (3.56s CPU time): 1 tests passed, 0 failed, 0 skipped (1 total tests)

Please sign in to comment.