Skip to content

Commit

Permalink
feat: ALC funding with 500k GHO (#242)
Browse files Browse the repository at this point in the history
* ALC funding with 500k GHO

* basic fixes

* adjusting md file

* fixing md file and lint

* Update src/20240306_AaveV3Ethereum_AaveLiquidityCommiteeFunding/AaveLiquidityCommiteeFunding_20240306.s.sol

Co-authored-by: Harsh Pandey <[email protected]>

---------

Co-authored-by: luigy <[email protected]>
Co-authored-by: Harsh Pandey <[email protected]>
  • Loading branch information
3 people authored Mar 15, 2024
1 parent b3f95d1 commit e7ca796
Show file tree
Hide file tree
Showing 5 changed files with 405 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
---
title: "Aave Liquidity Commitee Funding"
author: "karpatkey_TokenLogic"
discussions: "https://governance.aave.com/t/arfc-aave-liquidity-committee-funding/16793"
snapshot: "https://snapshot.org/#/aave.eth/proposal/0xd6229e068e755336339bd8a314136e18ef00b22a95430476b6fa3665e9300548"
---

# Summary

This publication proposes funding the Aave Liquidity Committee with 500k GHO to continue supporting GHO's liquidity and DeFi integrations over the next 3 months.

# Motivation

Since its initial [funding in October 2023](https://governance-v2.aave.com/governance/proposal/343/), the Aave Liquidity Committee (previously GLC) has actively supported GHO liquidity across various DEXes by deploying and incentivising liquidity pools.

As a result of these efforts:

- Deeper on-chain liquidity
- Lower slippage, especially for GHO to USDC swaps

In combination with other efforts like stkGHO, ALC's initiatives have played a critical role in supporting GHO's peg recovery.

Throughout the period, the ALC leveraged on both Uniswap v3 and, more frequently, Maverick to tailor liquidity distribution at specific price ranges which helped absorb GHO downward market volatility. A list of active Boosted Positions can be found [here](https://app.mav.xyz/boosted-positions?chain=1).

While some pools are incentivised by voting with pre-existing DAO holdings (e.g. vlAURA), others like Maverick's concentrated liquidity Boosted Positions require additional expenses. It is worth noting, the Aave DAO is expected to benefit from the next airdrop by Maverick. We expect Maverick, and potentially Merkle on Uniswap v3, to remain key tools for supporting tailored liquidity shaping efforts in provided peg resilience.

Concentrated GHO liquidity was [recently introduced in Balancer](https://twitter.com/GyroStable/status/1757365157917815001) with the creation of several E-CLP pools. These pools are being jointly incentivised with use to the Aave DAO's vlAURA holding. When there is excess vlAURA votes, these votes have been delegated to Paladin in return for approximately 70% APR nominated in USDC.

The following charts depict some of the impact these efforts had on GHO's ecosystem, highlights:

- GHO/USDC Maverick pools captured most of the volume
- 0.2% bin width pool processed most of the volume during high volatility period
- 0.1% bin width pool is starting to replace the 0.2% bin width pool trading volume. This is due to incentive efforts shifting to Boosted Positions within the 0.1% bin width pool to create deeper liquidity and reducing price volatility
- GHO/USDC/USDT Balancer provides continuous yield source for LP
- Trading volumes and TVL on Balancer are expected to increase when the BPT is integrated by [other protocols](https://twitter.com/Matthew_Graham_/status/1762076544241955070) and leveraged farming is introduced
- Gyrsocope E-CLP pools on Balancer are starting to capture a larger share of the market volume in recent weeks
- As the peg improves, one pool will be retained and the dual token deposit requirement will help provide resilience for the peg

The next chapter for GHO focuses on the following key areas:

- 1.00:1.00 peg with USD
- Reducing price volatility
- Deeper liquidity to support DeFi integrations
- Grow non stable-coin-paired liquidity pools
- Targeted liquidity distributions to support Borrow Cap increases

These efforts will need to scale to match GHO's expected growth profile. The primary liquidity pools are to remain stable coins, and we expect to introduce other asset pairs in the future, as well as participation in the launch of various projects like [Ethena](https://app.ethena.fi/liquidity) and [f(x) Protocol's launch](https://x.com/protocol_fx/status/1762822716854354015?s=20).

Though there is inherent uncertainty in future stable coin rates, price volatility, and upcoming opportunities for new DeFi integrations, we believe a high-level budget will look like the following:

| Objective | Category | Budget |
| ----------------- | -------------- | -------- |
| Liquidity | Peg Resilience | 360k GHO |
| DeFi Integrations | Create Utility | 140k GHO |
| Total | | 500k GHO |

It is important to note that this estimation excludes efforts to drive GHO liquidity or integrations beyond Ethereum.

# Performance Indicators

The below details some high level GHO metrics we propose tracking:

| Description | Optimal Value |
| ------------------------------ | ---------------------------------------------------------------------------------- |
| TVL DEX Liquidity Pools | 50M |
| TVL in Utility Liquidity Pools | 15M excl. stkGHO |
| DEX Liquidity Composition | < 50% GHO (< 33% for 3pools) |
| Swap Price Impact $5M Swap | < 0.10% (GHO to USDC) |
| Annualised Peg Volatility | < 5.00% |
| Price level for > 90% time | $0.995 using [Redstone Medium Price](https://app.redstone.finance/#/app/token/GHO) |

Please note, each of the above targets has external dependencies beyond the control of the ALC. The above table serves as a North Star for the ALC to strive towards over the next 3 months on the assumption the Borrow Cap is continually increased beyond the current 35M Bucket Size. Having measurable targets provides a clear direction and goal to achieve.

The [stkGHO implementation](https://app.aave.com/staking), [USDe integration](https://app.ethena.fi/liquidity) and coordinated efforts to attract users to acquire GHO are all great examples of how growth initiatives drive GHO utility, adoption and have a positive impact the spot price.

Each of the above metrics, plus more, will be shown on the TokenLogic analytics dashboard.

# Specification

Swap the following assets for GHO:

- Withdraw 250k Aave V2 USDT from the collector
- Withdraw 250k Aave V2 USDC from the collector
- Swap 250k USDT withdrawn above for GHO
- Swap 250k USDC withdrawn above for GHO

Create an allowance of 500k GHO to ALC SAFE.

ALC SAFE: `0x205e795336610f5131Be52F09218AF19f0f3eC60`

## References

- Implementation: [AaveV3Ethereum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240306_AaveV3Ethereum_AaveLiquidityCommiteeFunding/AaveV3Ethereum_AaveLiquidityCommiteeFunding_20240306.sol)
- Tests: [AaveV3Ethereum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240306_AaveV3Ethereum_AaveLiquidityCommiteeFunding/AaveV3Ethereum_AaveLiquidityCommiteeFunding_20240306.t.sol)
- [Snapshot](https://snapshot.org/#/aave.eth/proposal/0xd6229e068e755336339bd8a314136e18ef00b22a95430476b6fa3665e9300548)
- [Discussion](https://governance.aave.com/t/arfc-aave-liquidity-committee-funding/16793)

# Disclosure

TokenLogic and karpatkey receive no payment for this proposal. TokenLogic and karpatkey are both delegates within the Aave community.

# Copyright

Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {GovV3Helpers, IPayloadsControllerCore, PayloadsControllerUtils} from 'aave-helpers/GovV3Helpers.sol';
import {EthereumScript} from 'aave-helpers/ScriptUtils.sol';
import {AaveV3Ethereum_AaveLiquidityCommiteeFunding_20240306} from './AaveV3Ethereum_AaveLiquidityCommiteeFunding_20240306.sol';

/**
* @dev Deploy Ethereum
* deploy-command: make deploy-ledger contract=src/20240224_Multi_FundingUpdate/FundingUpdate_20240224.s.sol:DeployEthereum chain=mainnet
* verify-command: npx catapulta-verify -b broadcast/FundingUpdate_20240224.s.sol/1/run-latest.json
*/
contract DeployEthereum is EthereumScript {
function run() external broadcast {
// deploy payloads
address payload0 = GovV3Helpers.deployDeterministic(
type(AaveV3Ethereum_AaveLiquidityCommiteeFunding_20240306).creationCode
);

// compose action
IPayloadsControllerCore.ExecutionAction[]
memory actions = new IPayloadsControllerCore.ExecutionAction[](1);
actions[0] = GovV3Helpers.buildAction(payload0);

// register action at payloadsController
GovV3Helpers.createPayload(actions);
}
}

/**
* @dev Create Proposal
* command: make deploy-ledger contract=src/20240224_Multi_FundingUpdate/FundingUpdate_20240224.s.sol:CreateProposal chain=mainnet
*/
contract CreateProposal is EthereumScript {
function run() external {
// create payloads
PayloadsControllerUtils.Payload[] memory payloads = new PayloadsControllerUtils.Payload[](1);

// compose actions for validation
IPayloadsControllerCore.ExecutionAction[]
memory actionsEthereum = new IPayloadsControllerCore.ExecutionAction[](1);
actionsEthereum[0] = GovV3Helpers.buildAction(
type(AaveV3Ethereum_AaveLiquidityCommiteeFunding_20240306).creationCode
);
payloads[0] = GovV3Helpers.buildMainnetPayload(vm, actionsEthereum);

// create proposal
vm.startBroadcast();
GovV3Helpers.createProposal(
vm,
payloads,
GovV3Helpers.ipfsHashFile(
vm,
'src/20240306_AaveV3Ethereum_AaveLiquidityCommiteeFunding/AaaveLiquidityCommunityFunding.md'
)
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
// 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_AaveLiquidityCommiteeFunding_20240306 is IProposalGenericExecutor {
using SafeERC20 for IERC20;

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;

uint256 public constant USDC_V2_TO_SWAP = 250_000e6;
uint256 public constant USDT_V2_TO_SWAP = 250_000e6;

uint256 public constant GHO_ALLOWANCE = 500_000 ether;

function execute() external {
// Swap 250k USDC and USDT to GHO - Intent
_swap();

// Authorize ALC to transfer 500k GHO from the COLLECTOR
AaveV3Ethereum.COLLECTOR.approve(AaveV3EthereumAssets.GHO_UNDERLYING, ALC_SAFE, GHO_ALLOWANCE);
}

function _swap() internal {
// Withdraw Aave V2 USDC & Transfer to SWAPPER & swap for GHO

AaveV3Ethereum.COLLECTOR.transfer(
AaveV2EthereumAssets.USDC_A_TOKEN,
address(this),
USDC_V2_TO_SWAP
);

AaveV2Ethereum.POOL.withdraw(
AaveV2EthereumAssets.USDC_UNDERLYING,
type(uint256).max,
address(SWAPPER)
);

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

// Withdraw Aave V2 USDT & Transfer to SWAPPER & swap for GHO

AaveV3Ethereum.COLLECTOR.transfer(
AaveV2EthereumAssets.USDT_A_TOKEN,
address(this),
USDT_V2_TO_SWAP
);

AaveV2Ethereum.POOL.withdraw(
AaveV2EthereumAssets.USDT_UNDERLYING,
type(uint256).max,
address(SWAPPER)
);

SWAPPER.swap(
MILKMAN,
PRICE_CHECKER,
AaveV3EthereumAssets.USDT_UNDERLYING,
AaveV3EthereumAssets.GHO_UNDERLYING,
AaveV3EthereumAssets.USDT_ORACLE,
GHO_USD_FEED,
address(AaveV3Ethereum.COLLECTOR),
IERC20(AaveV2EthereumAssets.USDT_UNDERLYING).balanceOf(address(SWAPPER)),
100
);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

import {AaveV3Ethereum_AaveLiquidityCommiteeFunding_20240306} from './AaveV3Ethereum_AaveLiquidityCommiteeFunding_20240306.sol';

/**
* @dev Test for AaveV3Ethereum_AaveLiquidityCommiteeFunding_20240306
* command: make test-contract filter=AaveV3Ethereum_AaveLiquidityCommiteeFunding_20240306
*/
contract AaveV3Ethereum_AaveLiquidityCommiteeFunding_20240306_Test is ProtocolV3TestBase {
event SwapRequested(
address milkman,
address indexed fromToken,
address indexed toToken,
address fromOracle,
address toOracle,
uint256 amount,
address indexed recipient,
uint256 slippage
);

event Transfer(address indexed from, address indexed to, uint256 value);

AaveV3Ethereum_AaveLiquidityCommiteeFunding_20240306 internal proposal;

address swapper;

function setUp() public {
vm.createSelectFork(vm.rpcUrl('mainnet'), 19432086);
proposal = new AaveV3Ethereum_AaveLiquidityCommiteeFunding_20240306();
swapper = address(proposal.SWAPPER());
}

function test_execution() public {
uint256 initialBalanceGHO = IERC20(AaveV3EthereumAssets.GHO_UNDERLYING).balanceOf(
address(AaveV3Ethereum.COLLECTOR)
);
assertGe(initialBalanceGHO, 0, 'Collector has 0 GHO');

uint256 initialAllowanceGHO = IERC20(AaveV3EthereumAssets.GHO_UNDERLYING).allowance(
address(AaveV3Ethereum.COLLECTOR),
proposal.ALC_SAFE()
);
assertEq(initialAllowanceGHO, 0);

uint256 initialBalanceAUSDC = IERC20(AaveV2EthereumAssets.USDC_A_TOKEN).balanceOf(
address(AaveV3Ethereum.COLLECTOR)
);
uint256 initialBalanceAUSDT = IERC20(AaveV2EthereumAssets.USDT_A_TOKEN).balanceOf(
address(AaveV3Ethereum.COLLECTOR)
);

assertGe(initialBalanceAUSDT, proposal.USDT_V2_TO_SWAP(), 'Not enough aUSDT to Withdraw');
assertGe(initialBalanceAUSDC, proposal.USDC_V2_TO_SWAP(), 'Not enough aUSDC to Withdraw');

_expectEmits();

executePayload(vm, address(proposal));

assertEq(
IERC20(AaveV3EthereumAssets.GHO_UNDERLYING).allowance(
address(AaveV3Ethereum.COLLECTOR),
proposal.ALC_SAFE()
),
proposal.GHO_ALLOWANCE()
);

uint256 finalBalanceAUSDC = IERC20(AaveV2EthereumAssets.USDC_A_TOKEN).balanceOf(
address(AaveV3Ethereum.COLLECTOR)
);
uint256 finalBalanceAUSDT = IERC20(AaveV2EthereumAssets.USDT_A_TOKEN).balanceOf(
address(AaveV3Ethereum.COLLECTOR)
);

assertGe(
finalBalanceAUSDC,
initialBalanceAUSDC - proposal.USDC_V2_TO_SWAP(),
'Did not transfer withdrawn balance'
);

assertGe(
finalBalanceAUSDT,
initialBalanceAUSDT - proposal.USDT_V2_TO_SWAP(),
'Did not transfer withdrawn balance'
);
}

function _expectEmits() internal {
vm.expectEmit(true, true, true, true, AaveV3EthereumAssets.USDC_UNDERLYING);
emit Transfer(
address(AaveV2EthereumAssets.USDC_A_TOKEN),
address(MiscEthereum.AAVE_SWAPPER),
proposal.USDC_V2_TO_SWAP()
);

vm.expectEmit(true, true, true, true, MiscEthereum.AAVE_SWAPPER);
emit SwapRequested(
proposal.MILKMAN(),
AaveV3EthereumAssets.USDC_UNDERLYING,
AaveV3EthereumAssets.GHO_UNDERLYING,
AaveV3EthereumAssets.USDC_ORACLE,
proposal.GHO_USD_FEED(),
proposal.USDC_V2_TO_SWAP(),
address(AaveV3Ethereum.COLLECTOR),
100
);

vm.expectEmit(true, true, true, true, AaveV3EthereumAssets.USDT_UNDERLYING);
emit Transfer(
address(AaveV2EthereumAssets.USDT_A_TOKEN),
address(MiscEthereum.AAVE_SWAPPER),
proposal.USDC_V2_TO_SWAP()
);

vm.expectEmit(true, true, true, true, MiscEthereum.AAVE_SWAPPER);
emit SwapRequested(
proposal.MILKMAN(),
AaveV3EthereumAssets.USDT_UNDERLYING,
AaveV3EthereumAssets.GHO_UNDERLYING,
AaveV3EthereumAssets.USDT_ORACLE,
proposal.GHO_USD_FEED(),
proposal.USDT_V2_TO_SWAP(),
address(AaveV3Ethereum.COLLECTOR),
100
);
}
}
Loading

1 comment on commit e7ca796

@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 (3fa0270 2024-03-15T00:16:56.190232509Z)
Build log
Compiling 397 files with 0.8.19
Solc 0.8.19 finished in 233.56s
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:869:5:
    |
869 |     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).

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240308_AaveV3Ethereum_GHOBorrowRateIncrease/GhoInterestRateStrategy.sol:67:3:
   |
67 |   function getBaseVariableBorrowRate() external view override returns (uint256) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240308_AaveV3Ethereum_GHOBorrowRateIncrease/GhoInterestRateStrategy.sol:72:3:
   |
72 |   function getMaxVariableBorrowRate() external view override returns (uint256) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240308_AaveV3Ethereum_GHOBorrowRateIncrease/GhoInterestRateStrategy.sol:77:3:
   |
77 |   function calculateInterestRates(
   |   ^ (Relevant source part starts here and spans across multiple lines).

| Contract                                                                                                 | Size (kB) | Margin (kB) |
|----------------------------------------------------------------------------------------------------------|-----------|-------------|
| AaveGovernanceV2                                                                                         | 0.045     | 24.531      |
| AaveSafetyModule                                                                                         | 0.045     | 24.531      |
| AaveSwapper                                                                                              | 5.572     | 19.004      |
| AaveV1Ethereum_AaveV1Deprecation_20240218                                                                | 0.297     | 24.279      |
| AaveV2Avalanche                                                                                          | 0.045     | 24.531      |
| AaveV2AvalancheAssets                                                                                    | 0.045     | 24.531      |
| AaveV2Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221                            | 0.336     | 24.24       |
| AaveV2Avalanche_StablecoinIRCurvesUpdates_20231221                                                       | 1.858     | 22.718      |
| AaveV2Ethereum                                                                                           | 0.045     | 24.531      |
| AaveV2EthereumAMM                                                                                        | 0.045     | 24.531      |
| AaveV2EthereumAMMAssets                                                                                  | 0.045     | 24.531      |
| AaveV2EthereumAMM_ARFCDeprecateAaveV2AMMMarketStep2_20240205                                             | 2.894     | 21.682      |
| AaveV2EthereumAssets                                                                                     | 0.045     | 24.531      |
| AaveV2Ethereum_AMPLInterestRateUpdatesOnV2Ethereum_20240121                                              | 1.602     | 22.974      |
| AaveV2Ethereum_ChaosLabsV2EthereumLTReductions_20240201                                                  | 0.926     | 23.65       |
| AaveV2Ethereum_EthereumV2ReserveFactorAdjustment_20240304                                                | 4.904     | 19.672      |
| AaveV2Ethereum_MigrationOfRemainingGovV2Permissions_20240130                                             | 0.977     | 23.599      |
| AaveV2Ethereum_MigrationOfRemainingGovV2Permissions_Part2_20240130                                       | 1.446     | 23.13       |
| AaveV2Ethereum_StablecoinIRCurvesUpdates_20231221                                                        | 2.839     | 21.737      |
| AaveV2Ethereum_TreasuryManagementGSMFundingRWAStrategyPreparationsPart1_20231229                         | 3.415     | 21.161      |
| AaveV2Ethereum_V2DeprecationPlan20240102_20240103                                                        | 0.927     | 23.649      |
| AaveV2Polygon                                                                                            | 0.045     | 24.531      |
| AaveV2PolygonAssets                                                                                      | 0.045     | 24.531      |
| AaveV2Polygon_ReserveFactorUpdatesFebruary152024_20240208                                                | 0.831     | 23.745      |
| AaveV2Polygon_ReserveFactorUpdatesFebruary292024_20240229                                                | 0.683     | 23.893      |
| AaveV2Polygon_ReserveFactorUpdatesJan152024_20240108                                                     | 1.134     | 23.442      |
| AaveV2Polygon_ReserveFactorUpdatesJan312024_20240125                                                     | 0.831     | 23.745      |
| AaveV2Polygon_ReserveFactorUpdates_20240102                                                              | 0.995     | 23.581      |
| AaveV2Polygon_ReserveFactorUpdates_20240313                                                              | 0.535     | 24.041      |
| AaveV2Polygon_StablecoinIRCurvesUpdates_20231221                                                         | 1.858     | 22.718      |
| AaveV3Arbitrum                                                                                           | 0.045     | 24.531      |
| AaveV3ArbitrumAssets                                                                                     | 0.045     | 24.531      |
| AaveV3ArbitrumEModes                                                                                     | 0.045     | 24.531      |
| AaveV3Arbitrum_AaveProtocolEmbassy_20240220                                                              | 0.435     | 24.141      |
| AaveV3Arbitrum_AddFlashborrowers_20240306                                                                | 0.25      | 24.326      |
| AaveV3Arbitrum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229                                   | 0.323     | 24.253      |
| AaveV3Arbitrum_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                       | 3.362     | 21.214      |
| AaveV3Arbitrum_Patch_20240104                                                                            | 0.479     | 24.097      |
| AaveV3Arbitrum_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                 | 0.212     | 24.364      |
| AaveV3Arbitrum_StablecoinIRCurvesUpdates_20231221                                                        | 4.878     | 19.698      |
| AaveV3Arbitrum_UpdateStETHAndWETHRiskParamsOnAaveV3EthereumOptimismAndArbitrum_20240121                  | 3.892     | 20.684      |
| AaveV3Arbitrum_UpdateWETHIROnV3ArbitrumAndOptimism_20240216                                              | 3.622     | 20.954      |
| AaveV3Avalanche                                                                                          | 0.045     | 24.531      |
| AaveV3AvalancheAssets                                                                                    | 0.045     | 24.531      |
| AaveV3AvalancheEModes                                                                                    | 0.045     | 24.531      |
| AaveV3Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221                            | 3.513     | 21.063      |
| AaveV3Avalanche_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                      | 3.377     | 21.199      |
| AaveV3Avalanche_Patch_20240104                                                                           | 0.479     | 24.097      |
| AaveV3Avalanche_StablecoinIRCurvesUpdates_20231221                                                       | 4.628     | 19.948      |
| AaveV3BNB                                                                                                | 0.045     | 24.531      |
| AaveV3BNBAssets                                                                                          | 0.045     | 24.531      |
| AaveV3BNBEModes                                                                                          | 0.045     | 24.531      |
| AaveV3BNB_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                            | 3.38      | 21.196      |
| AaveV3BNB_OnboardFdUSDToAaveV3OnBSC_20240201                                                             | 5.014     | 19.562      |
| AaveV3BNB_SetAaveChanInitiativeAsEmissionManagerForFdUSDOnBNBChainAaveV3_20240208                        | 0.212     | 24.364      |
| AaveV3Base                                                                                               | 0.045     | 24.531      |
| AaveV3BaseAssets                                                                                         | 0.045     | 24.531      |
| AaveV3BaseEModes                                                                                         | 0.045     | 24.531      |
| AaveV3Base_Patch_20240104                                                                                | 0.479     | 24.097      |
| AaveV3Base_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                     | 0.212     | 24.364      |
| AaveV3Base_StablecoinIRCurvesUpdates_20231221                                                            | 3.618     | 20.958      |
| AaveV3Ethereum                                                                                           | 0.045     | 24.531      |
| AaveV3EthereumAssets                                                                                     | 0.045     | 24.531      |
| AaveV3EthereumEModes                                                                                     | 0.045     | 24.531      |
| AaveV3Ethereum_AaveLiquidityCommiteeFunding_20240306                                                     | 1.964     | 22.612      |
| AaveV3Ethereum_ActivationOfACPrimeFoundation_20240308                                                    | 0.502     | 24.074      |
| AaveV3Ethereum_AddFlashborrowers_20240306                                                                | 1.223     | 23.353      |
| AaveV3Ethereum_AddPYUSDToAaveV3EthereumMarket_20240125                                                   | 4.993     | 19.583      |
| AaveV3Ethereum_AmendSafetyModuleEmissions_20240229                                                       | 2.399     | 22.177      |
| AaveV3Ethereum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229                                   | 0.967     | 23.609      |
| AaveV3Ethereum_ChaosLabsRiskParameterUpdatesIncreaseDebtCeilingForSNXAndMKROnV3Ethereum01312024_20240211 | 3.533     | 21.043      |
| AaveV3Ethereum_CutGauntletServiceProviderStream_20240227                                                 | 0.479     | 24.097      |
| AaveV3Ethereum_FundingUpdate_20240224                                                                    | 10.54     | 14.036      |
| AaveV3Ethereum_GHOBorrowRateIncrease20240229_20240229                                                    | 0.285     | 24.291      |
| AaveV3Ethereum_GHOBorrowRateIncrease_20240308                                                            | 0.233     | 24.343      |
| AaveV3Ethereum_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                       | 3.376     | 21.2        |
| AaveV3Ethereum_MeritApprovals_20240306                                                                   | 0.534     | 24.042      |
| AaveV3Ethereum_OrbitProgram_20240220                                                                     | 2.308     | 22.268      |
| AaveV3Ethereum_Patch_20240104                                                                            | 0.479     | 24.097      |
| AaveV3Ethereum_RegisterADIScrollAdapter_20240122                                                         | 0.63      | 23.946      |
| AaveV3Ethereum_RequestForBountyPayoutJanuary2024_20240125                                                | 0.781     | 23.795      |
| AaveV3Ethereum_RetroactiveBugBountyPreImmunefi_20240205                                                  | 0.782     | 23.794      |
| AaveV3Ethereum_SecurityBudgetRequestDecember2023_20240206                                                | 0.514     | 24.062      |
| AaveV3Ethereum_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                 | 0.212     | 24.364      |
| AaveV3Ethereum_StableRateBugBounty_20240207                                                              | 0.768     | 23.808      |
| AaveV3Ethereum_StablecoinIRCurvesUpdates_20231221                                                        | 4.627     | 19.949      |
| AaveV3Ethereum_StkGHOActivation_20240119                                                                 | 1.115     | 23.461      |
| AaveV3Ethereum_TreasuryManagementGSMFundingRWAStrategyPreparationsPart2_20240209                         | 3.098     | 21.478      |
| AaveV3Ethereum_UpdateStETHAndWETHRiskParamsOnAaveV3EthereumOptimismAndArbitrum_20240121                  | 3.905     | 20.671      |
| AaveV3Fantom                                                                                             | 0.045     | 24.531      |
| AaveV3FantomAssets                                                                                       | 0.045     | 24.531      |
| AaveV3FantomEModes                                                                                       | 0.045     | 24.531      |
| AaveV3GenericPatch_20240104                                                                              | 0.479     | 24.097      |
| AaveV3Gnosis                                                                                             | 0.045     | 24.531      |
| AaveV3GnosisAssets                                                                                       | 0.045     | 24.531      |
| AaveV3GnosisEModes                                                                                       | 0.045     | 24.531      |
| AaveV3Gnosis_Patch_20240104                                                                              | 0.479     | 24.097      |
| AaveV3Gnosis_StablecoinIRCurvesUpdates_20231221                                                          | 3.87      | 20.706      |
| AaveV3Harmony                                                                                            | 0.045     | 24.531      |
| AaveV3HarmonyAssets                                                                                      | 0.045     | 24.531      |
| AaveV3HarmonyEModes                                                                                      | 0.045     | 24.531      |
| AaveV3Metis                                                                                              | 0.045     | 24.531      |
| AaveV3MetisAssets                                                                                        | 0.045     | 24.531      |
| AaveV3MetisEModes                                                                                        | 0.045     | 24.531      |
| AaveV3Metis_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                          | 3.37      | 21.206      |
| AaveV3Metis_StablecoinIRCurvesUpdates_20231221                                                           | 3.869     | 20.707      |
| AaveV3Optimism                                                                                           | 0.045     | 24.531      |
| AaveV3OptimismAssets                                                                                     | 0.045     | 24.531      |
| AaveV3OptimismEModes                                                                                     | 0.045     | 24.531      |
| AaveV3Optimism_AddFlashborrowers_20240306                                                                | 0.25      | 24.326      |
| AaveV3Optimism_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229                                   | 0.31      | 24.266      |
| AaveV3Optimism_GauntletRecommendationForMAIMIMATICDeprecationPhase2_20240122                             | 3.375     | 21.201      |
| AaveV3Optimism_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                       | 3.362     | 21.214      |
| AaveV3Optimism_Patch_20240104                                                                            | 0.479     | 24.097      |
| AaveV3Optimism_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                 | 0.212     | 24.364      |
| AaveV3Optimism_StablecoinIRCurvesUpdates_20231221                                                        | 4.878     | 19.698      |
| AaveV3Optimism_UpdateStETHAndWETHRiskParamsOnAaveV3EthereumOptimismAndArbitrum_20240121                  | 3.892     | 20.684      |
| AaveV3Optimism_UpdateWETHIROnV3ArbitrumAndOptimism_20240216                                              | 3.609     | 20.967      |
| AaveV3Polygon                                                                                            | 0.045     | 24.531      |
| AaveV3PolygonAssets                                                                                      | 0.045     | 24.531      |
| AaveV3PolygonEModes                                                                                      | 0.045     | 24.531      |
| AaveV3Polygon_FreezeAndSetLTVTo0ForDPIBALCRVAndSUSHIOnAaveV3Polygon20240119_20240130                     | 4.355     | 20.221      |
| AaveV3Polygon_FundingUpdate_20240224                                                                     | 2.902     | 21.674      |
| AaveV3Polygon_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                        | 3.361     | 21.215      |
| AaveV3Polygon_MaticXSupplyCapIncreaseInPolygonV3_20240206                                                | 3.294     | 21.282      |
| AaveV3Polygon_Patch_20240104                                                                             | 0.479     | 24.097      |
| AaveV3Polygon_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                  | 0.212     | 24.364      |
| AaveV3Polygon_StablecoinIRCurvesUpdates_20231221                                                         | 4.375     | 20.201      |
| AaveV3Polygon_TreasuryManagementGSMFundingRWAStrategyPreparationsPart1_20231229                          | 3.418     | 21.158      |
| AaveV3Scroll                                                                                             | 0.045     | 24.531      |
| AaveV3ScrollAssets                                                                                       | 0.045     | 24.531      |
| AaveV3ScrollEModes                                                                                       | 0.045     | 24.531      |
| AaveV3Scroll_AaveV3ScrollActivation_20240122                                                             | 6.6       | 17.976      |
| Address                                                                                                  | 0.045     | 24.531      |
| ChainHelpers                                                                                             | 0.045     | 24.531      |
| ChainIds                                                                                                 | 0.045     | 24.531      |
| ConfiguratorInputTypes                                                                                   | 0.045     | 24.531      |
| Create2Utils                                                                                             | 0.123     | 24.453      |
| DataTypes                                                                                                | 0.045     | 24.531      |
| EngineFlags                                                                                              | 0.045     | 24.531      |
| EnumerableSet                                                                                            | 0.045     | 24.531      |
| EnvelopeUtils                                                                                            | 0.045     | 24.531      |
| Errors                                                                                                   | 4.673     | 19.903      |
| GhoInterestRateStrategy                                                                                  | 0.671     | 23.905      |
| Gho_GHOStabilityModule_20240119                                                                          | 4.494     | 20.082      |
| GovHelpers                                                                                               | 0.045     | 24.531      |
| GovV3Helpers                                                                                             | 2.581     | 21.995      |
| GovV3StorageHelpers                                                                                      | 0.045     | 24.531      |
| GovernanceV3Arbitrum                                                                                     | 0.045     | 24.531      |
| GovernanceV3Avalanche                                                                                    | 0.045     | 24.531      |
| GovernanceV3BNB                                                                                          | 0.045     | 24.531      |
| GovernanceV3Base                                                                                         | 0.045     | 24.531      |
| GovernanceV3Ethereum                                                                                     | 0.045     | 24.531      |
| GovernanceV3Gnosis                                                                                       | 0.045     | 24.531      |
| GovernanceV3Metis                                                                                        | 0.045     | 24.531      |
| GovernanceV3Optimism                                                                                     | 0.045     | 24.531      |
| GovernanceV3Polygon                                                                                      | 0.045     | 24.531      |
| GovernanceV3PolygonZkEvm                                                                                 | 0.045     | 24.531      |
| GovernanceV3Scroll                                                                                       | 0.045     | 24.531      |
| IpfsUtils                                                                                                | 0.045     | 24.531      |
| MainnetPayload                                                                                           | 2.583     | 21.993      |
| MiscEthereum                                                                                             | 0.045     | 24.531      |
| MiscPolygon                                                                                              | 0.045     | 24.531      |
| MiscScroll                                                                                               | 0.045     | 24.531      |
| MockERC20                                                                                                | 3.66      | 20.916      |
| MockERC721                                                                                               | 3.921     | 20.655      |
| MockExecutor                                                                                             | 0.396     | 24.18       |
| OrbitProgramData                                                                                         | 0.488     | 24.088      |
| ParaswapClaim                                                                                            | 0.022     | 24.554      |
| ParaswapClaimer                                                                                          | 0.159     | 24.417      |
| Payloads                                                                                                 | 0.484     | 24.092      |
| PayloadsControllerUtils                                                                                  | 0.045     | 24.531      |
| PayloadsToDeploy                                                                                         | 0.045     | 24.531      |
| PolygonPayload                                                                                           | 1.593     | 22.983      |
| PoolAddresses                                                                                            | 0.316     | 24.26       |
| ProxyHelpers                                                                                             | 0.045     | 24.531      |
| ReserveConfiguration                                                                                     | 0.13      | 24.446      |
| RewardsDataTypes                                                                                         | 0.045     | 24.531      |
| SafeERC20                                                                                                | 0.045     | 24.531      |
| StdStyle                                                                                                 | 0.045     | 24.531      |
| StorageHelpers                                                                                           | 0.045     | 24.531      |
| TransactionUtils                                                                                         | 0.045     | 24.531      |
| WadRayMath                                                                                               | 0.045     | 24.531      |
| console                                                                                                  | 0.045     | 24.531      |
| console2                                                                                                 | 0.045     | 24.531      |
| safeconsole                                                                                              | 0.045     | 24.531      |
| stdError                                                                                                 | 0.55      | 24.026      |
| stdJson                                                                                                  | 0.045     | 24.531      |
| stdMath                                                                                                  | 0.045     | 24.531      |
| stdStorage                                                                                               | 0.045     | 24.531      |
| stdStorageSafe                                                                                           | 0.045     | 24.531      |
Test success 🌈
No files changed, compilation skipped

Ran 1 test for src/20240306_AaveV3Ethereum_AaveLiquidityCommiteeFunding/AaveV3Ethereum_AaveLiquidityCommiteeFunding_20240306.t.sol:AaveV3Ethereum_AaveLiquidityCommiteeFunding_20240306_Test
[PASS] test_execution() (gas: 926561)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 2.77s (2.60s CPU time)

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

Please sign in to comment.