Skip to content

Commit

Permalink
Assign Emission Admin - Ethereum, Arbitrum and Optimism (#229)
Browse files Browse the repository at this point in the history
  • Loading branch information
defijesus authored Mar 4, 2024
1 parent 8044311 commit 232ceae
Show file tree
Hide file tree
Showing 9 changed files with 438 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {IProposalGenericExecutor} from 'aave-helpers/interfaces/IProposalGenericExecutor.sol';
import {AaveV3Arbitrum, AaveV3ArbitrumAssets} from 'aave-address-book/AaveV3Arbitrum.sol';
import {IEmissionManager} from '@aave/periphery-v3/contracts/rewards/interfaces/IEmissionManager.sol';

/**
* @title Assign Emission Admin - Ethereum, Arbitrum and Optimism
* @author karpatkey-TokenLogic & ACI
* - Snapshot: https://snapshot.org/#/aave.eth/proposal/0x4518ee2130b2299fdf0827aa6a97b8211b3273f5b07b6f13b8141e5b9ad89e5f
* - Discussion: https://governance.aave.com/t/arfc-set-arb-emission-admin-to-gauntlet/16554
*/
contract AaveV3Arbitrum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229 is
IProposalGenericExecutor
{
IEmissionManager public constant EMISSION_MANAGER =
IEmissionManager(AaveV3Arbitrum.EMISSION_MANAGER);
address public constant EMISSION_ADMIN = 0xE79C65a313a1f4Ca5D1d15414E0c515056dA90b4;

function execute() external {
EMISSION_MANAGER.setEmissionAdmin(AaveV3ArbitrumAssets.ARB_UNDERLYING, EMISSION_ADMIN);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {AaveV3Arbitrum, AaveV3ArbitrumAssets} from 'aave-address-book/AaveV3Arbitrum.sol';

import 'forge-std/Test.sol';
import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol';
import {AaveV3Arbitrum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229} from './AaveV3Arbitrum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229.sol';
import {IEmissionManager} from '@aave/periphery-v3/contracts/rewards/interfaces/IEmissionManager.sol';

/**
* @dev Test for AaveV3Arbitrum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229
* command: make test-contract filter=AaveV3Arbitrum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229
*/
contract AaveV3Arbitrum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229_Test is
ProtocolV3TestBase
{
AaveV3Arbitrum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229 internal proposal;

address internal arbEmissionAdmin = 0xE79C65a313a1f4Ca5D1d15414E0c515056dA90b4;

function setUp() public {
vm.createSelectFork(vm.rpcUrl('arbitrum'), 185767002);
proposal = new AaveV3Arbitrum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229();
}

/**
* @dev executes the generic test suite including e2e and config snapshots
*/
function test_defaultProposalExecution() public {
defaultTest(
'AaveV3Arbitrum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229',
AaveV3Arbitrum.POOL,
address(proposal)
);

address admin = IEmissionManager(AaveV3Arbitrum.EMISSION_MANAGER).getEmissionAdmin(
AaveV3ArbitrumAssets.ARB_UNDERLYING
);

assertEq(admin, arbEmissionAdmin);
assertEq(admin, proposal.EMISSION_ADMIN());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {IProposalGenericExecutor} from 'aave-helpers/interfaces/IProposalGenericExecutor.sol';
import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol';
import {IEmissionManager} from '@aave/periphery-v3/contracts/rewards/interfaces/IEmissionManager.sol';

/**
* @title Assign Emission Admin - Ethereum, Arbitrum and Optimism
* @author karpatkey-TokenLogic & ACI
* - Snapshot: https://snapshot.org/#/aave.eth/proposal/0x0d83730d546d74d463f045697e9ea6b1708b5c833a40e09e4f87f1804177f5a6 & https://snapshot.org/#/aave.eth/proposal/0xe0579b1efa1f26237104632f4ccddac0158866a18061b27a634634fa9d31e250
* - Discussion: https://governance.aave.com/t/arfc-set-ethx-and-sd-emission-admin-to-stader-labs/16599 & https://governance.aave.com/t/arfc-set-oseth-swise-emission-admin-to-stakewise/16590
*/
contract AaveV3Ethereum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229 is
IProposalGenericExecutor
{
IEmissionManager public constant EMISSION_MANAGER =
IEmissionManager(AaveV3Ethereum.EMISSION_MANAGER);

address public constant SD = 0x30D20208d987713f46DFD34EF128Bb16C404D10f;
address public constant ETHX = 0xA35b1B31Ce002FBF2058D22F30f95D405200A15b;
address public constant EMISSION_ADMIN_SD_ETHX = 0xbDa6C9cd7eD043CB739ca2C748dAbd1fCA397132;

address public constant SWISE = 0x48C3399719B582dD63eB5AADf12A40B4C3f52FA2;
address public constant OSETH = 0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38;
address public constant EMISSION_ADMIN_SWISE_OSETH = 0x189Cb93839AD52b5e955ddA254Ed7212ae1B1f61;

function execute() external {
EMISSION_MANAGER.setEmissionAdmin(SD, EMISSION_ADMIN_SD_ETHX);
EMISSION_MANAGER.setEmissionAdmin(ETHX, EMISSION_ADMIN_SD_ETHX);

EMISSION_MANAGER.setEmissionAdmin(SWISE, EMISSION_ADMIN_SWISE_OSETH);
EMISSION_MANAGER.setEmissionAdmin(OSETH, EMISSION_ADMIN_SWISE_OSETH);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

import 'forge-std/Test.sol';
import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol';
import {AaveV3Ethereum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229} from './AaveV3Ethereum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229.sol';
import {IEmissionManager} from '@aave/periphery-v3/contracts/rewards/interfaces/IEmissionManager.sol';

/**
* @dev Test for AaveV3Ethereum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229
* command: make test-contract filter=AaveV3Ethereum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229
*/
contract AaveV3Ethereum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229_Test is
ProtocolV3TestBase
{
AaveV3Ethereum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229 internal proposal;

address internal sdEthxEmissionAdmin = 0xbDa6C9cd7eD043CB739ca2C748dAbd1fCA397132;
address internal swiseOsethEmissionAdmin = 0x189Cb93839AD52b5e955ddA254Ed7212ae1B1f61;

function setUp() public {
vm.createSelectFork(vm.rpcUrl('mainnet'), 19335100);
proposal = new AaveV3Ethereum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229();
}

/**
* @dev executes the generic test suite including e2e and config snapshots
*/
function test_defaultProposalExecution() public {
defaultTest(
'AaveV3Ethereum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229',
AaveV3Ethereum.POOL,
address(proposal)
);

assertEq(sdEthxEmissionAdmin, proposal.EMISSION_ADMIN_SD_ETHX());
assertEq(swiseOsethEmissionAdmin, proposal.EMISSION_ADMIN_SWISE_OSETH());

address sdAdmin = IEmissionManager(AaveV3Ethereum.EMISSION_MANAGER).getEmissionAdmin(
proposal.SD()
);
assertEq(sdAdmin, proposal.EMISSION_ADMIN_SD_ETHX());

address ethxAdmin = IEmissionManager(AaveV3Ethereum.EMISSION_MANAGER).getEmissionAdmin(
proposal.ETHX()
);
assertEq(ethxAdmin, proposal.EMISSION_ADMIN_SD_ETHX());

address swiseAdmin = IEmissionManager(AaveV3Ethereum.EMISSION_MANAGER).getEmissionAdmin(
proposal.SWISE()
);
assertEq(swiseAdmin, proposal.EMISSION_ADMIN_SWISE_OSETH());

address osethAdmin = IEmissionManager(AaveV3Ethereum.EMISSION_MANAGER).getEmissionAdmin(
proposal.OSETH()
);
assertEq(osethAdmin, proposal.EMISSION_ADMIN_SWISE_OSETH());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {IProposalGenericExecutor} from 'aave-helpers/interfaces/IProposalGenericExecutor.sol';
import {AaveV3Optimism, AaveV3OptimismAssets} from 'aave-address-book/AaveV3Optimism.sol';
import {IEmissionManager} from '@aave/periphery-v3/contracts/rewards/interfaces/IEmissionManager.sol';

/**
* @title Assign Emission Admin - Ethereum, Arbitrum and Optimism
* @author karpatkey-TokenLogic & ACI
* - Snapshot: https://snapshot.org/#/aave.eth/proposal/0x66040ad4d46ba756365fbe5c2ed5957d17a3e70db5a00ec532fdc725251d2327
* - Discussion: https://governance.aave.com/t/arfc-set-op-emission-admin/16621
*/
contract AaveV3Optimism_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229 is
IProposalGenericExecutor
{
IEmissionManager public constant EMISSION_MANAGER =
IEmissionManager(AaveV3Optimism.EMISSION_MANAGER);
address public constant EMISSION_ADMIN = 0x3479CEb4b1fcaDC586d4c5F1c16b4d8c0D70Bc71;

function execute() external {
EMISSION_MANAGER.setEmissionAdmin(AaveV3OptimismAssets.OP_UNDERLYING, EMISSION_ADMIN);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {AaveV3Optimism, AaveV3OptimismAssets} from 'aave-address-book/AaveV3Optimism.sol';

import 'forge-std/Test.sol';
import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol';
import {AaveV3Optimism_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229} from './AaveV3Optimism_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229.sol';
import {IEmissionManager} from '@aave/periphery-v3/contracts/rewards/interfaces/IEmissionManager.sol';

/**
* @dev Test for AaveV3Optimism_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229
* command: make test-contract filter=AaveV3Optimism_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229
*/
contract AaveV3Optimism_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229_Test is
ProtocolV3TestBase
{
AaveV3Optimism_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229 internal proposal;
address internal opEmissionsAdmin = 0x3479CEb4b1fcaDC586d4c5F1c16b4d8c0D70Bc71;

function setUp() public {
vm.createSelectFork(vm.rpcUrl('optimism'), 116817141);
proposal = new AaveV3Optimism_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229();
}

/**
* @dev executes the generic test suite including e2e and config snapshots
*/
function test_defaultProposalExecution() public {
defaultTest(
'AaveV3Optimism_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229',
AaveV3Optimism.POOL,
address(proposal)
);

address admin = IEmissionManager(AaveV3Optimism.EMISSION_MANAGER).getEmissionAdmin(
AaveV3OptimismAssets.OP_UNDERLYING
);
assertEq(admin, opEmissionsAdmin);
assertEq(admin, proposal.EMISSION_ADMIN());
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
title: "Assign Emission Admin - Ethereum, Arbitrum and Optimism"
author: "karpatkey-TokenLogic & ACI"
discussions: "https://governance.aave.com/t/arfc-set-op-emission-admin/16621"
---

## Simple Summary

This enables various teams to distribute rewards across Aave v3 Ethereum.

## Motivation

This AIP integrates four separate ARFC that each propose granting a team the privileges to distribute there chosen asset across an Aave v3 deployment. The below summaries each initiative:

- ETHx & SD rewards by Stader Labs
- osETH & SWISE by Stakewise DAO
- OP reward via an Aave Community SAFE
- ARB rewards via Gauntlet

The two LST providers are intending on using rewards to bootstrap the growth and adoption of there resepective LST.

The OP and ARB incentives are being distributed with the intent of migrating USDC.e to USDC on each respective network. These ARB and OP rewards were originally provide by the respective foundation and are not those belonging to the Aave DAO.

## Specification

The `setEmissionAdmin`, a governance controlled function, assigns the `EMISSION_ADMIN` role for a specified token on the respective network.

The `EMISSION_ADMIN` role controls the distribution of the specified token across the specified Aave v3 deployment.

The `EMISSION_ADMIN` can distribute the specified token anywhere across the Aave v3 deployment on the respective Liquidity Pool.

## Implementation

Set `EMISSION_ADMIN` permission for ETHx, SD, SWISE, osETH, OP and ARB to the following address:

**Aave v3 Ethereum**

Address Reward (SD): [0x30D20208d987713f46DFD34EF128Bb16C404D10f](https://etherscan.io/address/0x30D20208d987713f46DFD34EF128Bb16C404D10f)
Address Reward (ETHx): [0xA35b1B31Ce002FBF2058D22F30f95D405200A15b](https://etherscan.io/address/0xA35b1B31Ce002FBF2058D22F30f95D405200A15b)
SD & ETHx EMISSION_ADMIN: [0xbDa6C9cd7eD043CB739ca2C748dAbd1fCA397132](https://etherscan.io/address/0xbDa6C9cd7eD043CB739ca2C748dAbd1fCA397132)

Address Reward (SWISE): [0x48C3399719B582dD63eB5AADf12A40B4C3f52FA2](https://etherscan.io/address/0x48C3399719B582dD63eB5AADf12A40B4C3f52FA2)
Address Reward (osETH): [0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38](https://etherscan.io/address/0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38)
SWISE & osETH EMISSION_ADMIN:[0x189Cb93839AD52b5e955ddA254Ed7212ae1B1f61](https://etherscan.io/address/0x189Cb93839AD52b5e955ddA254Ed7212ae1B1f61)

**Aave v3 Arbitrum**

Address Reward (ARB): [0x912CE59144191C1204E64559FE8253a0e49E6548](https://arbiscan.io/address/0x912CE59144191C1204E64559FE8253a0e49E6548)
EMISSION_ADMIN: [0xE79C65a313a1f4Ca5D1d15414E0c515056dA90b4](https://arbiscan.io/address/0xE79C65a313a1f4Ca5D1d15414E0c515056dA90b4)

**Aave v3 Optimism**

Address Reward (OP): [0x4200000000000000000000000000000000000042](https://optimistic.etherscan.io/address/0x4200000000000000000000000000000000000042)
EMISSION_ADMIN: [0x3479CEb4b1fcaDC586d4c5F1c16b4d8c0D70Bc71](https://optimistic.etherscan.io/address/0x3479CEb4b1fcaDC586d4c5F1c16b4d8c0D70Bc71)

The AIP calls setEmissionAdmin() method in the EMISSION_MANAGER contract.

EMISSION_MANAGER.setEmissionAdmin(REWARD_ASSET,EMISSION_ADMIN);

## References

- Implementation: [AaveV3Ethereum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240229_Multi_AssignEmissionAdminEthereumArbitrumAndOptimism/AaveV3Ethereum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229.sol), [AaveV3Optimism](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240229_Multi_AssignEmissionAdminEthereumArbitrumAndOptimism/AaveV3Optimism_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229.sol), [AaveV3Arbitrum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240229_Multi_AssignEmissionAdminEthereumArbitrumAndOptimism/AaveV3Arbitrum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229.sol)
- Tests: [AaveV3Ethereum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240229_Multi_AssignEmissionAdminEthereumArbitrumAndOptimism/AaveV3Ethereum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229.t.sol), [AaveV3Optimism](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240229_Multi_AssignEmissionAdminEthereumArbitrumAndOptimism/AaveV3Optimism_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229.t.sol), [AaveV3Arbitrum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240229_Multi_AssignEmissionAdminEthereumArbitrumAndOptimism/AaveV3Arbitrum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229.t.sol)
- Snapshot: [SD + ETHx](https://snapshot.org/#/aave.eth/proposal/0x0d83730d546d74d463f045697e9ea6b1708b5c833a40e09e4f87f1804177f5a6), [SWISE + osETH](https://snapshot.org/#/aave.eth/proposal/0xe0579b1efa1f26237104632f4ccddac0158866a18061b27a634634fa9d31e250), [OP](https://snapshot.org/#/aave.eth/proposal/0x66040ad4d46ba756365fbe5c2ed5957d17a3e70db5a00ec532fdc725251d2327) and [ARB](https://snapshot.org/#/aave.eth/proposal/0x4518ee2130b2299fdf0827aa6a97b8211b3273f5b07b6f13b8141e5b9ad89e5f)
- Discussion: [SD + ETHx](https://governance.aave.com/t/arfc-set-ethx-and-sd-emission-admin-to-stader-labs/16599), [SWISE + osETH](https://governance.aave.com/t/arfc-set-oseth-swise-emission-admin-to-stakewise/16590), [OP](https://governance.aave.com/t/arfc-set-op-emission-admin/16621) and [ARB](https://governance.aave.com/t/arfc-set-arb-emission-admin-to-gauntlet/16554)

# Disclosure

TokenLogic, karpatkey and ACI 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/).
Loading

1 comment on commit 232ceae

@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 (3df3e0c 2024-03-04T00:16:13.254227572Z)
Build log
Compiling 345 files with 0.8.19
Solc 0.8.19 finished in 175.53s
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_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229                                   | 1.008     | 23.568      |
| AaveV3Ethereum_ChaosLabsRiskParameterUpdatesIncreaseDebtCeilingForSNXAndMKROnV3Ethereum01312024_20240211 | 3.574     | 21.002      |
| AaveV3Ethereum_CutGauntletServiceProviderStream_20240227                                                 | 0.52      | 24.056      |
| 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_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 1 test for src/20240229_Multi_AssignEmissionAdminEthereumArbitrumAndOptimism/AaveV3Arbitrum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229.t.sol:AaveV3Arbitrum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229_Test
[PASS] test_defaultProposalExecution() (gas: 68495489)
Logs:
  0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1
  0xf97f4df75117a78c1A5a0DBb814Af92458539FB4
  0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8
  0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f
  0x82aF49447D8a07e3bd95BD0d56f35241523fBab1
  0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9
  0xD22a58f79e9481D1a88e00c343885A588b34b68B
  0x5979D7b546E38E414F7E9822514be443A4800529
  0x3F56e0c36d275367b8C502090EDF38289b3dEa0d
  0xEC70Dcb4A1EFa46b8F2D97C310C9c4790ba5ffA8
  0x93b346b6BC2548dA6A1E7d98E9a421B42541425b
  0xaf88d065e77c8cC2239327C5EDb3A432268e5831
  0x17FC002b466eEc40DaE837Fc4bE5c67993ddBd6F
  0x912CE59144191C1204E64559FE8253a0e49E6548
  E2E: Collateral DAI, TestAsset DAI
  SUPPLY: DAI, Amount: 100057722299417310852457
  SUPPLY: DAI, Amount: 1000577222994173108524
  WITHDRAW: DAI, Amount: 500288611497086554262
  WITHDRAW: DAI, Amount: 500288611497086554262
  BORROW: DAI, Amount 1000577222994173108524, Stable: false
  REPAY: DAI, Amount: 1000577222994173108524
  E2E: Collateral DAI, TestAsset LINK
  SUPPLY: DAI, Amount: 100057722299417310852457
  SUPPLY: LINK, Amount: 51365091724400978399
  WITHDRAW: LINK, Amount: 25682545862200489199
  WITHDRAW: LINK, Amount: 25682545862200489201
  BORROW: LINK, Amount 51365091724400978399, Stable: false
  REPAY: LINK, Amount: 51365091724400978399
  E2E: Collateral DAI, TestAsset USDC
  SUPPLY: DAI, Amount: 100057722299417310852457
  SUPPLY: USDC, Amount: 1000033161
  WITHDRAW: USDC, Amount: 500016580
  WITHDRAW: USDC, Amount: 500016582
  BORROW: USDC, Amount 1000033161, Stable: false
  REPAY: USDC, Amount: 1000033161
  E2E: Collateral DAI, TestAsset WBTC
  SUPPLY: DAI, Amount: 100057722299417310852457
  SUPPLY: WBTC, Amount: 1646040
  WITHDRAW: WBTC, Amount: 823020
  WITHDRAW: WBTC, Amount: 823020
  BORROW: WBTC, Amount 1646040, Stable: false
  REPAY: WBTC, Amount: 1646040
  E2E: Collateral DAI, TestAsset WETH
  SUPPLY: DAI, Amount: 100057722299417310852457
  SUPPLY: WETH, Amount: 297305446430182668
  WITHDRAW: WETH, Amount: 148652723215091334
  WITHDRAW: WETH, Amount: 148652723215091334
  BORROW: WETH, Amount 297305446430182668, Stable: false
  REPAY: WETH, Amount: 297305446430182668
  E2E: Collateral DAI, TestAsset USDT
  SUPPLY: DAI, Amount: 100057722299417310852457
  SUPPLY: USDT, Amount: 999620144
  WITHDRAW: USDT, Amount: 499810072
  WITHDRAW: USDT, Amount: 499810073
  BORROW: USDT, Amount 999620144, Stable: false
  REPAY: USDT, Amount: 999620144
  E2E: Collateral DAI, TestAsset AAVE
  SUPPLY: DAI, Amount: 100057722299417310852457
  SUPPLY: AAVE, Amount: 9256630888629969033
  WITHDRAW: AAVE, Amount: 4628315444314984516
  WITHDRAW: AAVE, Amount: 4628315444314984518
  E2E: Collateral DAI, TestAsset EURS
  SUPPLY: DAI, Amount: 100057722299417310852457
  SUPPLY: EURS, Amount: 92592
  WITHDRAW: EURS, Amount: 46296
  WITHDRAW: EURS, Amount: 46296
  BORROW: EURS, Amount 92592, Stable: false
  REPAY: EURS, Amount: 92592
  E2E: Collateral DAI, TestAsset wstETH
  SUPPLY: DAI, Amount: 100057722299417310852457
  SUPPLY: wstETH, Amount: 256607938924024886
  WITHDRAW: wstETH, Amount: 128303969462012443
  WITHDRAW: wstETH, Amount: 128303969462012444
  BORROW: wstETH, Amount 256607938924024886, Stable: false
  REPAY: wstETH, Amount: 256607938924024886
  E2E: TestAsset MAI SKIPPED
  E2E: Collateral DAI, TestAsset rETH
  SUPPLY: DAI, Amount: 100057722299417310852457
  SUPPLY: rETH, Amount: 270416485563952025
  WITHDRAW: rETH, Amount: 135208242781976012
  WITHDRAW: rETH, Amount: 135208242781976014
  BORROW: rETH, Amount 270416485563952025, Stable: false
  REPAY: rETH, Amount: 270416485563952025
  E2E: Collateral DAI, TestAsset LUSD
  SUPPLY: DAI, Amount: 100057722299417310852457
  SUPPLY: LUSD, Amount: 1005094280155195401685
  WITHDRAW: LUSD, Amount: 502547140077597700842
  WITHDRAW: LUSD, Amount: 502547140077597700842
  BORROW: LUSD, Amount 1005094280155195401685, Stable: false
  REPAY: LUSD, Amount: 1005094280155195401685
  E2E: Collateral DAI, TestAsset USDC
  SUPPLY: DAI, Amount: 100057722299417310852457
  SUPPLY: USDC, Amount: 1000033161
  WITHDRAW: USDC, Amount: 500016580
  WITHDRAW: USDC, Amount: 500016581
  BORROW: USDC, Amount 1000033161, Stable: false
  REPAY: USDC, Amount: 1000033161
  E2E: Collateral DAI, TestAsset FRAX
  SUPPLY: DAI, Amount: 100057722299417310852457
  SUPPLY: FRAX, Amount: 1002180112551441028269
  WITHDRAW: FRAX, Amount: 501090056275720514134
  WITHDRAW: FRAX, Amount: 501090056275720514135
  BORROW: FRAX, Amount 1002180112551441028269, Stable: false
  REPAY: FRAX, Amount: 1002180112551441028269
  E2E: Collateral DAI, TestAsset ARB
  SUPPLY: DAI, Amount: 100057722299417310852457
  SUPPLY: ARB, Amount: 492099524215543410298
  WITHDRAW: ARB, Amount: 246049762107771705149
  WITHDRAW: ARB, Amount: 246049762107771705149
  BORROW: ARB, Amount 492099524215543410298, Stable: false
  REPAY: ARB, Amount: 492099524215543410298

Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 19.62s (19.46s CPU time)

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

Ran 1 test for src/20240229_Multi_AssignEmissionAdminEthereumArbitrumAndOptimism/AaveV3Ethereum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229.t.sol:AaveV3Ethereum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229_Test
[PASS] test_defaultProposalExecution() (gas: 245676091)
Logs:
  0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
  0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0
  0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599
  0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
  0x6B175474E89094C44Da98b954EedeAC495271d0F
  0x514910771AF9Ca656af840dff83E8264EcF986CA
  0xBe9895146f7AF43049ca1c1AE358B0541Ea49704
  0xdAC17F958D2ee523a2206206994597C13D831ec7
  0xae78736Cd615f374D3085123A210448E74Fc6393
  0x5f98805A4E8be255a32880FDeC7F6728C6568bA0
  0xD533a949740bb3306d119CC777fa900bA034cd52
  0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2
  0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F
  0xba100000625a3754423978a60c9317c58a424e3D
  0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984
  0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32
  0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72
  0x111111111117dC0aa78b770fA6A738034120C302
  0x853d955aCEf822Db058eb8505911ED77F175b99e
  0xD33526068D116cE69F19A9ee46F0bd304F21A51f
  0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6
  0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202
  0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0
  0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E
  0x6c3ea9036406852006290770BEdFcAbA0e23A0e8
  E2E: Collateral WETH, TestAsset WETH
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: WETH, Amount: 297579029965157643
  WITHDRAW: WETH, Amount: 148789514982578821
  WITHDRAW: WETH, Amount: 148789514982578823
  BORROW: WETH, Amount 297579029965157643, Stable: false
  REPAY: WETH, Amount: 297579029965157643
  E2E: Collateral WETH, TestAsset wstETH
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: wstETH, Amount: 256818054832947860
  WITHDRAW: wstETH, Amount: 128409027416473930
  WITHDRAW: wstETH, Amount: 128409027416473930
  BORROW: wstETH, Amount 256818054832947860, Stable: false
  REPAY: wstETH, Amount: 256818054832947860
  E2E: Collateral WETH, TestAsset WBTC
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: WBTC, Amount: 1650299
  WITHDRAW: WBTC, Amount: 825149
  WITHDRAW: WBTC, Amount: 825149
  BORROW: WBTC, Amount 1650299, Stable: false
  REPAY: WBTC, Amount: 1650299
  E2E: Collateral WETH, TestAsset USDC
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: USDC, Amount: 1000097009
  WITHDRAW: USDC, Amount: 500048504
  WITHDRAW: USDC, Amount: 500048505
  BORROW: USDC, Amount 1000097009, Stable: false
  REPAY: USDC, Amount: 1000097009
  E2E: Collateral WETH, TestAsset DAI
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: DAI, Amount: 1000313128018463619666
  WITHDRAW: DAI, Amount: 500156564009231809833
  WITHDRAW: DAI, Amount: 500156564009231809834
  BORROW: DAI, Amount 1000313128018463619666, Stable: false
  REPAY: DAI, Amount: 1000313128018463619666
  E2E: Collateral WETH, TestAsset LINK
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: LINK, Amount: 51410917333784112482
  WITHDRAW: LINK, Amount: 25705458666892056241
  WITHDRAW: LINK, Amount: 25705458666892056240
  BORROW: LINK, Amount 51410917333784112482, Stable: false
  REPAY: LINK, Amount: 51410917333784112482
  E2E: Collateral WETH, TestAsset AAVE
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: AAVE, Amount: 9172414027917247390
  WITHDRAW: AAVE, Amount: 4586207013958623695
  WITHDRAW: AAVE, Amount: 4586207013958623695
  E2E: Collateral WETH, TestAsset cbETH
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: cbETH, Amount: 281279970985396731
  WITHDRAW: cbETH, Amount: 140639985492698365
  WITHDRAW: cbETH, Amount: 140639985492698366
  BORROW: cbETH, Amount 281279970985396731, Stable: false
  REPAY: cbETH, Amount: 281279970985396731
  E2E: Collateral WETH, TestAsset USDT
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: USDT, Amount: 999800039
  WITHDRAW: USDT, Amount: 499900019
  WITHDRAW: USDT, Amount: 499900019
  BORROW: USDT, Amount 999800039, Stable: false
  REPAY: USDT, Amount: 999800039
  E2E: Collateral WETH, TestAsset rETH
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: rETH, Amount: 270644129700088187
  WITHDRAW: rETH, Amount: 135322064850044093
  WITHDRAW: rETH, Amount: 135322064850044095
  BORROW: rETH, Amount 270644129700088187, Stable: false
  REPAY: rETH, Amount: 270644129700088187
  E2E: Collateral WETH, TestAsset LUSD
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: LUSD, Amount: 1004959646699602477157
  WITHDRAW: LUSD, Amount: 502479823349801238578
  WITHDRAW: LUSD, Amount: 502479823349801238579
  BORROW: LUSD, Amount 1004959646699602477157, Stable: false
  REPAY: LUSD, Amount: 1004959646699602477157
  E2E: Collateral WETH, TestAsset CRV
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: CRV, Amount: 1594514868851152036992
  WITHDRAW: CRV, Amount: 797257434425576018496
  WITHDRAW: CRV, Amount: 797257434425576018495
  BORROW: CRV, Amount 1594514868851152036992, Stable: false
  REPAY: CRV, Amount: 1594514868851152036992
  E2E: Collateral WETH, TestAsset MKR
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: MKR, Amount: 468749853515670776
  WITHDRAW: MKR, Amount: 234374926757835388
  WITHDRAW: MKR, Amount: 234374926757835389
  BORROW: MKR, Amount 468749853515670776, Stable: false
  REPAY: MKR, Amount: 468749853515670776
  E2E: Collateral WETH, TestAsset SNX
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: SNX, Amount: 235997111395356520836
  WITHDRAW: SNX, Amount: 117998555697678260418
  WITHDRAW: SNX, Amount: 117998555697678260418
  BORROW: SNX, Amount 235997111395356520836, Stable: false
  REPAY: SNX, Amount: 235997111395356520836
  E2E: Collateral WETH, TestAsset BAL
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: BAL, Amount: 197838906702633779905
  WITHDRAW: BAL, Amount: 98919453351316889952
  WITHDRAW: BAL, Amount: 98919453351316889952
  BORROW: BAL, Amount 197838906702633779905, Stable: false
  REPAY: BAL, Amount: 197838906702633779905
  E2E: Collateral WETH, TestAsset UNI
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: UNI, Amount: 87762573739770974734
  WITHDRAW: UNI, Amount: 43881286869885487367
  WITHDRAW: UNI, Amount: 43881286869885487368
  BORROW: UNI, Amount 87762573739770974734, Stable: false
  REPAY: UNI, Amount: 87762573739770974734
  E2E: Collateral WETH, TestAsset LDO
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: LDO, Amount: 294097006638904654285
  WITHDRAW: LDO, Amount: 147048503319452327142
  WITHDRAW: LDO, Amount: 147048503319452327143
  BORROW: LDO, Amount 294097006638904654285, Stable: false
  REPAY: LDO, Amount: 294097006638904654285
  E2E: Collateral WETH, TestAsset ENS
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: ENS, Amount: 46006660364898228963
  WITHDRAW: ENS, Amount: 23003330182449114481
  WITHDRAW: ENS, Amount: 23003330182449114483
  BORROW: ENS, Amount 46006660364898228963, Stable: false
  REPAY: ENS, Amount: 46006660364898228963
  E2E: Collateral WETH, TestAsset 1INCH
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: 1INCH, Amount: 1941379351582402778440
  WITHDRAW: 1INCH, Amount: 970689675791201389220
  WITHDRAW: 1INCH, Amount: 970689675791201389220
  BORROW: 1INCH, Amount 1941379351582402778440, Stable: false
  REPAY: 1INCH, Amount: 1941379351582402778440
  E2E: Collateral WETH, TestAsset FRAX
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: FRAX, Amount: 1002751369262008484118
  WITHDRAW: FRAX, Amount: 501375684631004242059
  WITHDRAW: FRAX, Amount: 501375684631004242059
  BORROW: FRAX, Amount 1002751369262008484118, Stable: false
  REPAY: FRAX, Amount: 1002751369262008484118
  E2E: Collateral WETH, TestAsset GHO
  SUPPLY: WETH, Amount: 29757902996515764330
  BORROW: GHO, Amount 1000000000000000000000, Stable: false
  REPAY: GHO, Amount: 1000000000000000000000
  E2E: Collateral WETH, TestAsset RPL
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: RPL, Amount: 31623141207571389557
  WITHDRAW: RPL, Amount: 15811570603785694778
  WITHDRAW: RPL, Amount: 15811570603785694779
  BORROW: RPL, Amount 31623141207571389557, Stable: false
  REPAY: RPL, Amount: 31623141207571389557
  E2E: Collateral WETH, TestAsset sDAI
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: sDAI, Amount: 945570556990416850430
  WITHDRAW: sDAI, Amount: 472785278495208425215
  WITHDRAW: sDAI, Amount: 472785278495208425214
  E2E: Collateral WETH, TestAsset STG
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: STG, Amount: 1479685625400153233283
  WITHDRAW: STG, Amount: 739842812700076616641
  WITHDRAW: STG, Amount: 739842812700076616641
  BORROW: STG, Amount 1479685625400153233283, Stable: false
  REPAY: STG, Amount: 1479685625400153233283
  E2E: Collateral WETH, TestAsset KNC
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: KNC, Amount: 1413614738415116223445
  WITHDRAW: KNC, Amount: 706807369207558111722
  WITHDRAW: KNC, Amount: 706807369207558111722
  BORROW: KNC, Amount 1413614738415116223445, Stable: false
  REPAY: KNC, Amount: 1413614738415116223445
  E2E: Collateral WETH, TestAsset FXS
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: FXS, Amount: 109818809364390003302
  WITHDRAW: FXS, Amount: 54909404682195001651
  WITHDRAW: FXS, Amount: 54909404682195001652
  BORROW: FXS, Amount 109818809364390003302, Stable: false
  REPAY: FXS, Amount: 109818809364390003302
  E2E: Collateral WETH, TestAsset crvUSD
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: crvUSD, Amount: 1004875798054773488635
  WITHDRAW: crvUSD, Amount: 502437899027386744317
  WITHDRAW: crvUSD, Amount: 502437899027386744317
  BORROW: crvUSD, Amount 1004875798054773488635, Stable: false
  REPAY: crvUSD, Amount: 1004875798054773488635
  E2E: Collateral WETH, TestAsset PYUSD
  SUPPLY: WETH, Amount: 29757902996515764330
  SUPPLY: PYUSD, Amount: 1000750562
  WITHDRAW: PYUSD, Amount: 500375281
  WITHDRAW: PYUSD, Amount: 500375281
  BORROW: PYUSD, Amount 1000750562, Stable: false
  REPAY: PYUSD, Amount: 1000750562

Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 26.01s (25.86s CPU time)

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

Ran 1 test for src/20240229_Multi_AssignEmissionAdminEthereumArbitrumAndOptimism/AaveV3Optimism_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229.t.sol:AaveV3Optimism_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229_Test
[PASS] test_defaultProposalExecution() (gas: 59521846)
Logs:
  0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1
  0x350a791Bfc2C21F9Ed5d10980Dad2e2638ffa7f6
  0x7F5c764cBc14f9669B88837ca1490cCa17c31607
  0x68f180fcCe6836688e9084f035309E29Bf0A2095
  0x4200000000000000000000000000000000000006
  0x94b008aA00579c1307B0EF2c499aD98a8ce58e58
  0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9
  0x4200000000000000000000000000000000000042
  0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb
  0xc40F949F8a4e094D1b49a23ea9241D289B7b2819
  0xdFA46478F9e5EA86d57387849598dbFB2e964b02
  0x9Bcef72be871e61ED4fBbc7630889beE758eb81D
  0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85
  E2E: Collateral DAI, TestAsset DAI
  SUPPLY: DAI, Amount: 100020004000800160032006
  SUPPLY: DAI, Amount: 1000200040008001600320
  WITHDRAW: DAI, Amount: 500100020004000800160
  WITHDRAW: DAI, Amount: 500100020004000800160
  BORROW: DAI, Amount 1000200040008001600320, Stable: false
  REPAY: DAI, Amount: 1000200040008001600320
  E2E: Collateral DAI, TestAsset LINK
  SUPPLY: DAI, Amount: 100020004000800160032006
  SUPPLY: LINK, Amount: 51240604307583623374
  WITHDRAW: LINK, Amount: 25620302153791811687
  WITHDRAW: LINK, Amount: 25620302153791811687
  BORROW: LINK, Amount 51240604307583623374, Stable: false
  REPAY: LINK, Amount: 51240604307583623374
  E2E: Collateral DAI, TestAsset USDC
  SUPPLY: DAI, Amount: 100020004000800160032006
  SUPPLY: USDC, Amount: 1000174460
  WITHDRAW: USDC, Amount: 500087230
  WITHDRAW: USDC, Amount: 500087230
  BORROW: USDC, Amount 1000174460, Stable: false
  REPAY: USDC, Amount: 1000174460
  E2E: Collateral DAI, TestAsset WBTC
  SUPPLY: DAI, Amount: 100020004000800160032006
  SUPPLY: WBTC, Amount: 1645847
  WITHDRAW: WBTC, Amount: 822923
  WITHDRAW: WBTC, Amount: 822923
  BORROW: WBTC, Amount 1645847, Stable: false
  REPAY: WBTC, Amount: 1645847
  E2E: Collateral DAI, TestAsset WETH
  SUPPLY: DAI, Amount: 100020004000800160032006
  SUPPLY: WETH, Amount: 297575651169918672
  WITHDRAW: WETH, Amount: 148787825584959336
  WITHDRAW: WETH, Amount: 148787825584959337
  BORROW: WETH, Amount 297575651169918672, Stable: false
  REPAY: WETH, Amount: 297575651169918672
  E2E: Collateral DAI, TestAsset USDT
  SUPPLY: DAI, Amount: 100020004000800160032006
  SUPPLY: USDT, Amount: 999892361
  WITHDRAW: USDT, Amount: 499946180
  WITHDRAW: USDT, Amount: 499946182
  BORROW: USDT, Amount 999892361, Stable: false
  REPAY: USDT, Amount: 999892361
  E2E: Collateral DAI, TestAsset AAVE
  SUPPLY: DAI, Amount: 100020004000800160032006
  SUPPLY: AAVE, Amount: 9228661351416269671
  WITHDRAW: AAVE, Amount: 4614330675708134835
  WITHDRAW: AAVE, Amount: 4614330675708134836
  E2E: Collateral DAI, TestAsset sUSD
  SUPPLY: DAI, Amount: 100020004000800160032006
  SUPPLY: sUSD, Amount: 999960221582385452706
  WITHDRAW: sUSD, Amount: 499980110791192726353
  WITHDRAW: sUSD, Amount: 499980110791192726353
  BORROW: sUSD, Amount 999960221582385452706, Stable: false
  REPAY: sUSD, Amount: 999960221582385452706
  E2E: Collateral DAI, TestAsset OP
  SUPPLY: DAI, Amount: 100020004000800160032006
  SUPPLY: OP, Amount: 265052958522050708484
  WITHDRAW: OP, Amount: 132526479261025354242
  WITHDRAW: OP, Amount: 132526479261025354242
  BORROW: OP, Amount 265052958522050708484, Stable: false
  REPAY: OP, Amount: 265052958522050708484
  E2E: Collateral DAI, TestAsset wstETH
  SUPPLY: DAI, Amount: 100020004000800160032006
  SUPPLY: wstETH, Amount: 256815138849477842
  WITHDRAW: wstETH, Amount: 128407569424738921
  WITHDRAW: wstETH, Amount: 128407569424738920
  BORROW: wstETH, Amount 256815138849477842, Stable: false
  REPAY: wstETH, Amount: 256815138849477842
  E2E: Collateral DAI, TestAsset LUSD
  SUPPLY: DAI, Amount: 100020004000800160032006
  SUPPLY: LUSD, Amount: 1005133467903952461207
  WITHDRAW: LUSD, Amount: 502566733951976230603
  WITHDRAW: LUSD, Amount: 502566733951976230604
  BORROW: LUSD, Amount 1005133467903952461207, Stable: false
  REPAY: LUSD, Amount: 1005133467903952461207
  E2E: TestAsset MAI SKIPPED
  E2E: Collateral DAI, TestAsset rETH
  SUPPLY: DAI, Amount: 100020004000800160032006
  SUPPLY: rETH, Amount: 270662252390153076
  WITHDRAW: rETH, Amount: 135331126195076538
  WITHDRAW: rETH, Amount: 135331126195076538
  BORROW: rETH, Amount 270662252390153076, Stable: false
  REPAY: rETH, Amount: 270662252390153076
  E2E: Collateral DAI, TestAsset USDC
  SUPPLY: DAI, Amount: 100020004000800160032006
  SUPPLY: USDC, Amount: 1000174460
  WITHDRAW: USDC, Amount: 500087230
  WITHDRAW: USDC, Amount: 500087229
  BORROW: USDC, Amount 1000174460, Stable: false
  REPAY: USDC, Amount: 1000174460

Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 15.05s (14.90s CPU time)

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

Please sign in to comment.