Skip to content

Commit

Permalink
feat: add payloads to update native aDI bridge adapters (#273)
Browse files Browse the repository at this point in the history
* feat: add payloads to update native aDI bridge adapters

* fix: fixed tests

* fix: updated readme

* fix: correct path to diffs

* fix: use address(0) instead of old adapter, as it will not be removed

* Update src/20240322_Multi_NativeBridgeAdaptersUpdate/NativeBridgeAdaptersUpdate.md

Co-authored-by: Ernesto Boado <[email protected]>

* Update src/20240322_Multi_NativeBridgeAdaptersUpdate/NativeBridgeAdaptersUpdate.md

Co-authored-by: Ernesto Boado <[email protected]>

* fix: added discussion link

* Update src/20240322_Multi_NativeBridgeAdaptersUpdate/NativeBridgeAdaptersUpdate.md

---------

Co-authored-by: Ernesto Boado <[email protected]>
  • Loading branch information
sendra and eboadom authored Apr 4, 2024
1 parent 4af66cd commit 3f42b38
Show file tree
Hide file tree
Showing 21 changed files with 1,530 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {BaseAdaptersUpdatePayload, ICrossChainReceiver, ICrossChainForwarder} from './BaseAdaptersUpdatePayload.sol';
import {GovernanceV3Arbitrum} from 'aave-address-book/GovernanceV3Arbitrum.sol';
import {ChainIds} from 'aave-helpers/ChainIds.sol';

/**
* @title Native bridge adapters update
* @author BGD Labs @bgdlabs
* - Discussion: https://governance.aave.com/t/bgd-technical-maintenance-proposals/15274/26
*/
contract AaveV3Arbitrum_NativeBridgeAdaptersUpdate_20240322 is
BaseAdaptersUpdatePayload(
BaseAdaptersUpdatePayload.ConstructorInput({
ccc: GovernanceV3Arbitrum.CROSS_CHAIN_CONTROLLER,
newAdapter: 0xc8a2ADC4261c6b669CdFf69E717E77C9cFeB420d,
adapterToRemove: address(0) // @dev We dont remove old adapter so that system can be rescued by just re adding sender on Ethereum aDI
})
)
{
function getChainsToReceive() public pure override returns (uint256[] memory) {
uint256[] memory chains = new uint256[](1);
chains[0] = ChainIds.MAINNET;
return chains;
}

function getForwarderBridgeAdaptersToRemove()
public
pure
override
returns (ICrossChainForwarder.BridgeAdapterToDisable[] memory)
{
return new ICrossChainForwarder.BridgeAdapterToDisable[](0);
}

// @dev in this AIP we are not removing old adapter, in case connection gets broken. This way, we would just need to
// re enable old adapter on origin, and we would have reestablished the connection
function getReceiverBridgeAdaptersToRemove()
public
pure
override
returns (ICrossChainReceiver.ReceiverBridgeAdapterConfigInput[] memory)
{
return new ICrossChainReceiver.ReceiverBridgeAdapterConfigInput[](0);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import './BaseTest.sol';
import {GovernanceV3Arbitrum} from 'aave-address-book/GovernanceV3Arbitrum.sol';
import {AaveV3Arbitrum_NativeBridgeAdaptersUpdate_20240322} from './AaveV3Arbitrum_NativeBridgeAdaptersUpdate_20240322.sol';

/**
* @dev Test for AaveV3Arbitrum_NativeBridgeAdaptersUpdate_20240322
* command: make test-contract filter=AaveV3Arbitrum_NativeBridgeAdaptersUpdate_20240322
*/
contract AaveV3Arbitrum_NativeBridgeAdaptersUpdate_20240322_Test is BaseTest {
constructor()
BaseTest(
GovernanceV3Arbitrum.CROSS_CHAIN_CONTROLLER,
type(AaveV3Arbitrum_NativeBridgeAdaptersUpdate_20240322).creationCode,
'arbitrum',
193049277,
'Arbitrum native adapter'
)
{}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {BaseAdaptersUpdatePayload, ICrossChainReceiver, ICrossChainForwarder} from './BaseAdaptersUpdatePayload.sol';
import {GovernanceV3Base} from 'aave-address-book/GovernanceV3Base.sol';
import {ChainIds} from 'aave-helpers/ChainIds.sol';
/**
* @title Native bridge adapters update
* @author BGD Labs @bgdlabs
* - Discussion: https://governance.aave.com/t/bgd-technical-maintenance-proposals/15274/26
*/
contract AaveV3Base_NativeBridgeAdaptersUpdate_20240322 is
BaseAdaptersUpdatePayload(
BaseAdaptersUpdatePayload.ConstructorInput({
ccc: GovernanceV3Base.CROSS_CHAIN_CONTROLLER,
newAdapter: 0x7120b1f8e5b73c0C0DC99C6e52Fe4937E7EA11e0,
adapterToRemove: address(0) // @dev We dont remove old adapter so that system can be rescued by just re adding sender on Ethereum aDI
})
)
{
function getChainsToReceive() public pure override returns (uint256[] memory) {
uint256[] memory chains = new uint256[](1);
chains[0] = ChainIds.MAINNET;
return chains;
}

function getForwarderBridgeAdaptersToRemove()
public
pure
override
returns (ICrossChainForwarder.BridgeAdapterToDisable[] memory)
{
return new ICrossChainForwarder.BridgeAdapterToDisable[](0);
}

// @dev in this AIP we are not removing old adapter, in case connection gets broken. This way, we would just need to
// re enable old adapter on origin, and we would have reestablished the connection
function getReceiverBridgeAdaptersToRemove()
public
pure
override
returns (ICrossChainReceiver.ReceiverBridgeAdapterConfigInput[] memory)
{
return new ICrossChainReceiver.ReceiverBridgeAdapterConfigInput[](0);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import './BaseTest.sol';
import {GovernanceV3Base} from 'aave-address-book/GovernanceV3Base.sol';
import {AaveV3Base_NativeBridgeAdaptersUpdate_20240322} from './AaveV3Base_NativeBridgeAdaptersUpdate_20240322.sol';

/**
* @dev Test for AaveV3Base_NativeBridgeAdaptersUpdate_20240322
* command: make test-contract filter=AaveV3Base_NativeBridgeAdaptersUpdate_20240322
*/
contract AaveV3Base_NativeBridgeAdaptersUpdate_20240322_Test is BaseTest {
constructor()
BaseTest(
GovernanceV3Base.CROSS_CHAIN_CONTROLLER,
type(AaveV3Base_NativeBridgeAdaptersUpdate_20240322).creationCode,
'base',
12163947,
'Base native adapter'
)
{}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {BaseAdaptersUpdatePayload, ICrossChainReceiver, ICrossChainForwarder} from './BaseAdaptersUpdatePayload.sol';
import {GovernanceV3Ethereum} from 'aave-address-book/GovernanceV3Ethereum.sol';
import {ChainIds} from 'aave-helpers/ChainIds.sol';

/**
* @title Native bridge adapters update
* @author BGD Labs @bgdlabs
* - Discussion: https://governance.aave.com/t/bgd-technical-maintenance-proposals/15274/26
*/
contract AaveV3Ethereum_NativeBridgeAdaptersUpdate_20240322 is
BaseAdaptersUpdatePayload(
BaseAdaptersUpdatePayload.ConstructorInput({
ccc: GovernanceV3Ethereum.CROSS_CHAIN_CONTROLLER,
newAdapter: 0x1562F1b2487F892BBA8Ef325aF054Fd157510a71, // POLYGON native bridge adapter
adapterToRemove: 0xb13712De579E1f9943502FFCf72eab6ec348cF79 // POLYGON native bridge adapter
})
)
{
function getChainsToReceive() public pure override returns (uint256[] memory) {
uint256[] memory chains = new uint256[](1);
chains[0] = ChainIds.POLYGON;
return chains;
}

function getForwarderBridgeAdaptersToEnable()
public
pure
override
returns (ICrossChainForwarder.ForwarderBridgeAdapterConfigInput[] memory)
{
ICrossChainForwarder.ForwarderBridgeAdapterConfigInput[]
memory bridgeAdaptersToEnable = new ICrossChainForwarder.ForwarderBridgeAdapterConfigInput[](
8
);

bridgeAdaptersToEnable[0] = ICrossChainForwarder.ForwarderBridgeAdapterConfigInput({
currentChainBridgeAdapter: 0x88d6D01e08d3e64513b15fD46528dBbA7d755883,
destinationBridgeAdapter: 0xc8a2ADC4261c6b669CdFf69E717E77C9cFeB420d,
destinationChainId: ChainIds.ARBITRUM
});
bridgeAdaptersToEnable[1] = ICrossChainForwarder.ForwarderBridgeAdapterConfigInput({
currentChainBridgeAdapter: 0x1562F1b2487F892BBA8Ef325aF054Fd157510a71,
destinationBridgeAdapter: 0x853649f897383f89d8441346Cf26a9ed02720B02,
destinationChainId: ChainIds.POLYGON
});
bridgeAdaptersToEnable[2] = ICrossChainForwarder.ForwarderBridgeAdapterConfigInput({
currentChainBridgeAdapter: 0x0e24524778fdc67f53eEf144b8cbf50261E930B3,
destinationBridgeAdapter: 0xAE93BEa44dcbE52B625169588574d31e36fb3A67,
destinationChainId: ChainIds.OPTIMISM
});
bridgeAdaptersToEnable[3] = ICrossChainForwarder.ForwarderBridgeAdapterConfigInput({
currentChainBridgeAdapter: 0x7238d75fD75bb936E83b75854c653F104Ce9c9d8,
destinationBridgeAdapter: 0x3C06dce358add17aAf230f2234bCCC4afd50d090,
destinationChainId: ChainIds.GNOSIS
});
bridgeAdaptersToEnable[4] = ICrossChainForwarder.ForwarderBridgeAdapterConfigInput({
currentChainBridgeAdapter: 0xA4dC3F123e1c601A19B3DC8382BB9311F678cafA,
destinationBridgeAdapter: 0x3C06dce358add17aAf230f2234bCCC4afd50d090,
destinationChainId: ChainIds.SCROLL
});
bridgeAdaptersToEnable[5] = ICrossChainForwarder.ForwarderBridgeAdapterConfigInput({
currentChainBridgeAdapter: 0xa5948b0ac79f72966dFFC5C13E44f6dfDD3D58A0,
destinationBridgeAdapter: 0x7120b1f8e5b73c0C0DC99C6e52Fe4937E7EA11e0,
destinationChainId: ChainIds.BASE
});
bridgeAdaptersToEnable[6] = ICrossChainForwarder.ForwarderBridgeAdapterConfigInput({
currentChainBridgeAdapter: 0x6B3Dc800E7c813Db3fe8D0F30fDCaE636935dC14,
destinationBridgeAdapter: 0xf41193E25408F652AF878c47E4401A01B5E4B682,
destinationChainId: ChainIds.METIS
});
bridgeAdaptersToEnable[7] = ICrossChainForwarder.ForwarderBridgeAdapterConfigInput({
currentChainBridgeAdapter: 0x6cfbd2aA4691fc18B9C209bDd43DC3943C228FCf,
destinationBridgeAdapter: 0x6cfbd2aA4691fc18B9C209bDd43DC3943C228FCf,
destinationChainId: ChainIds.MAINNET
});

return bridgeAdaptersToEnable;
}

function getForwarderBridgeAdaptersToRemove()
public
pure
override
returns (ICrossChainForwarder.BridgeAdapterToDisable[] memory)
{
ICrossChainForwarder.BridgeAdapterToDisable[]
memory forwarderAdaptersToRemove = new ICrossChainForwarder.BridgeAdapterToDisable[](8);

forwarderAdaptersToRemove[0] = ICrossChainForwarder.BridgeAdapterToDisable({
bridgeAdapter: 0xE2a33403eaD139873820da597531f07f65ED0E3c,
chainIds: new uint256[](1)
});
forwarderAdaptersToRemove[0].chainIds[0] = ChainIds.ARBITRUM;

forwarderAdaptersToRemove[1] = ICrossChainForwarder.BridgeAdapterToDisable({
bridgeAdapter: 0xb13712De579E1f9943502FFCf72eab6ec348cF79,
chainIds: new uint256[](1)
});
forwarderAdaptersToRemove[1].chainIds[0] = ChainIds.POLYGON;

forwarderAdaptersToRemove[2] = ICrossChainForwarder.BridgeAdapterToDisable({
bridgeAdapter: 0x2ecC4F6CDbe6ea77107dd131Af81ec82Db330d6b,
chainIds: new uint256[](1)
});
forwarderAdaptersToRemove[2].chainIds[0] = ChainIds.OPTIMISM;

forwarderAdaptersToRemove[3] = ICrossChainForwarder.BridgeAdapterToDisable({
bridgeAdapter: 0xe95B40b2CF5fA2F56AAEf9E52f5Bd1e70C059858,
chainIds: new uint256[](1)
});
forwarderAdaptersToRemove[3].chainIds[0] = ChainIds.GNOSIS;

forwarderAdaptersToRemove[4] = ICrossChainForwarder.BridgeAdapterToDisable({
bridgeAdapter: 0xb29F03cbCc646201eC83E9F2C164747beA84b162,
chainIds: new uint256[](1)
});
forwarderAdaptersToRemove[4].chainIds[0] = ChainIds.SCROLL;

forwarderAdaptersToRemove[5] = ICrossChainForwarder.BridgeAdapterToDisable({
bridgeAdapter: 0xEB442296880a3FC7C00FFe695c40B09d970fb936,
chainIds: new uint256[](1)
});
forwarderAdaptersToRemove[5].chainIds[0] = ChainIds.BASE;

forwarderAdaptersToRemove[6] = ICrossChainForwarder.BridgeAdapterToDisable({
bridgeAdapter: 0x619643b346E3389062527cdb60C8720415B39860,
chainIds: new uint256[](1)
});
forwarderAdaptersToRemove[6].chainIds[0] = ChainIds.METIS;

forwarderAdaptersToRemove[7] = ICrossChainForwarder.BridgeAdapterToDisable({
bridgeAdapter: 0x118DFD5418890c0332042ab05173Db4A2C1d283c,
chainIds: new uint256[](1)
});
forwarderAdaptersToRemove[7].chainIds[0] = ChainIds.MAINNET;

return forwarderAdaptersToRemove;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import './BaseTest.sol';
import {GovernanceV3Ethereum} from 'aave-address-book/GovernanceV3Ethereum.sol';
import {AaveV3Ethereum_NativeBridgeAdaptersUpdate_20240322} from './AaveV3Ethereum_NativeBridgeAdaptersUpdate_20240322.sol';

/**
* @dev Test for AaveV3Ethereum_NativeBridgeAdaptersUpdate_20240322
* command: make test-contract filter=AaveV3Ethereum_NativeBridgeAdaptersUpdate_20240322
*/
contract AaveV3Ethereum_NativeBridgeAdaptersUpdate_20240322_Test is BaseTest {
constructor()
BaseTest(
GovernanceV3Ethereum.CROSS_CHAIN_CONTROLLER,
type(AaveV3Ethereum_NativeBridgeAdaptersUpdate_20240322).creationCode,
'mainnet',
19490720,
'Polygon native adapter'
)
{}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {BaseAdaptersUpdatePayload, ICrossChainReceiver, ICrossChainForwarder} from './BaseAdaptersUpdatePayload.sol';
import {GovernanceV3Gnosis} from 'aave-address-book/GovernanceV3Gnosis.sol';
import {ChainIds} from 'aave-helpers/ChainIds.sol';
/**
* @title Native bridge adapters update
* @author BGD Labs @bgdlabs
* - Discussion: https://governance.aave.com/t/bgd-technical-maintenance-proposals/15274/26
*/
contract AaveV3Gnosis_NativeBridgeAdaptersUpdate_20240322 is
BaseAdaptersUpdatePayload(
BaseAdaptersUpdatePayload.ConstructorInput({
ccc: GovernanceV3Gnosis.CROSS_CHAIN_CONTROLLER,
newAdapter: 0x3C06dce358add17aAf230f2234bCCC4afd50d090,
adapterToRemove: 0x889c0cc3283DB588A34E89Ad1E8F25B0fc827b4b
})
)
{
function getChainsToReceive() public pure override returns (uint256[] memory) {
uint256[] memory chains = new uint256[](1);
chains[0] = ChainIds.MAINNET;
return chains;
}

function getForwarderBridgeAdaptersToRemove()
public
pure
override
returns (ICrossChainForwarder.BridgeAdapterToDisable[] memory)
{
return new ICrossChainForwarder.BridgeAdapterToDisable[](0);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import './BaseTest.sol';
import {GovernanceV3Gnosis} from 'aave-address-book/GovernanceV3Gnosis.sol';
import {AaveV3Gnosis_NativeBridgeAdaptersUpdate_20240322} from './AaveV3Gnosis_NativeBridgeAdaptersUpdate_20240322.sol';

/**
* @dev Test for AaveV3Gnosis_NativeBridgeAdaptersUpdate_20240322
* command: make test-contract filter=AaveV3Gnosis_NativeBridgeAdaptersUpdate_20240322
*/
contract AaveV3Gnosis_NativeBridgeAdaptersUpdate_20240322_Test is BaseTest {
constructor()
BaseTest(
GovernanceV3Gnosis.CROSS_CHAIN_CONTROLLER,
type(AaveV3Gnosis_NativeBridgeAdaptersUpdate_20240322).creationCode,
'gnosis',
33108913,
'Gnosis native adapter'
)
{}
}
Loading

1 comment on commit 3f42b38

@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 (f6208d8 2024-04-04T00:18:54.847734725Z)
Build log
Compiling 549 files with 0.8.19
Solc 0.8.19 finished in 400.93s
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 (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).

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240313_Multi_UpdateADIImplementationAndCCIPAdapters/BaseTest.sol:91:3:
   |
91 |   function getTrustedRemoteByChainId(uint256 chainId) public view returns (address) {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to view
   --> src/20240313_Multi_UpdateADIImplementationAndCCIPAdapters/BaseTest.sol:316:3:
    |
316 |   function _getCurrentForwarderAdaptersByChain() internal returns (ForwarderAdapters[] memory) {
    |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to view
   --> src/20240313_Multi_UpdateADIImplementationAndCCIPAdapters/BaseTest.sol:341:3:
    |
341 |   function _getCurrentReceiverAdaptersByChain() internal returns (AdaptersByChain[] memory) {
    |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
  --> src/20240324_AaveV3Ethereum_GHOStewardsBorrowRateUpdate/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/20240324_AaveV3Ethereum_GHOStewardsBorrowRateUpdate/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/20240324_AaveV3Ethereum_GHOStewardsBorrowRateUpdate/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      |
| AaveV2Avalanche_StablecoinIRUpdates_20240404                                                             | 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_EthereumV2ReserveFactorAdjustment_20240320                                                | 1.778     | 22.798      |
| AaveV2Ethereum_MigrationOfRemainingGovV2Permissions_20240130                                             | 0.977     | 23.599      |
| AaveV2Ethereum_MigrationOfRemainingGovV2Permissions_Part2_20240130                                       | 1.446     | 23.13       |
| AaveV2Ethereum_StablecoinIRCurvesUpdates_20231221                                                        | 2.839     | 21.737      |
| AaveV2Ethereum_StablecoinIRUpdates_20240404                                                              | 2.839     | 21.737      |
| AaveV2Ethereum_TUSDAndBUSDAaveV2RateAmendments_20240324                                                  | 1.643     | 22.933      |
| 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_ReserveFactorUpdates_20240322                                                              | 0.535     | 24.041      |
| AaveV2Polygon_StablecoinIRCurvesUpdates_20231221                                                         | 1.858     | 22.718      |
| AaveV2Polygon_StablecoinIRUpdates_20240404                                                               | 1.858     | 22.718      |
| AaveV3Arbitrum                                                                                           | 0.045     | 24.531      |
| AaveV3ArbitrumAssets                                                                                     | 0.045     | 24.531      |
| AaveV3ArbitrumEModes                                                                                     | 0.045     | 24.531      |
| AaveV3Arbitrum_ARBRemoveIsolation_20240315                                                               | 0.193     | 24.383      |
| 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_NativeBridgeAdaptersUpdate_20240322                                                       | 2.445     | 22.131      |
| AaveV3Arbitrum_Patch_20240104                                                                            | 0.479     | 24.097      |
| AaveV3Arbitrum_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                 | 0.212     | 24.364      |
| AaveV3Arbitrum_StablecoinHarmonization_20240312                                                          | 4.469     | 20.107      |
| AaveV3Arbitrum_StablecoinIRCurvesUpdates_20231221                                                        | 4.878     | 19.698      |
| AaveV3Arbitrum_StablecoinIRUpdates_20240404                                                              | 5.381     | 19.195      |
| AaveV3Arbitrum_UpdateADIImplementationAndCCIPAdapters_20240313                                           | 0.588     | 23.988      |
| 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_ContangoFlashborrower_20240319                                                           | 0.25      | 24.326      |
| AaveV3Avalanche_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                      | 3.377     | 21.199      |
| AaveV3Avalanche_Patch_20240104                                                                           | 0.479     | 24.097      |
| AaveV3Avalanche_StablecoinHarmonization_20240312                                                         | 3.983     | 20.593      |
| AaveV3Avalanche_StablecoinIRCurvesUpdates_20231221                                                       | 4.628     | 19.948      |
| AaveV3Avalanche_StablecoinIRUpdates_20240404                                                             | 4.628     | 19.948      |
| AaveV3Avalanche_UpdateADIImplementationAndCCIPAdapters_20240313                                          | 3.292     | 21.284      |
| AaveV3BNB                                                                                                | 0.045     | 24.531      |
| AaveV3BNBAssets                                                                                          | 0.045     | 24.531      |
| AaveV3BNBEModes                                                                                          | 0.045     | 24.531      |
| AaveV3BNB_ContangoFlashborrower_20240319                                                                 | 0.25      | 24.326      |
| AaveV3BNB_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                            | 3.38      | 21.196      |
| AaveV3BNB_OnboardFdUSDToAaveV3OnBSC_20240201                                                             | 5.014     | 19.562      |
| AaveV3BNB_SetAaveChanInitiativeAsEmissionManagerForFdUSDOnBNBChainAaveV3_20240208                        | 0.212     | 24.364      |
| AaveV3BNB_StablecoinIRUpdates_20240404                                                                   | 4.132     | 20.444      |
| AaveV3BNB_UpdateADIImplementationAndCCIPAdapters_20240313                                                | 3.084     | 21.492      |
| AaveV3Base                                                                                               | 0.045     | 24.531      |
| AaveV3BaseAssets                                                                                         | 0.045     | 24.531      |
| AaveV3BaseEModes                                                                                         | 0.045     | 24.531      |
| AaveV3Base_ContangoFlashborrower_20240319                                                                | 0.25      | 24.326      |
| AaveV3Base_NativeBridgeAdaptersUpdate_20240322                                                           | 2.445     | 22.131      |
| AaveV3Base_Patch_20240104                                                                                | 0.479     | 24.097      |
| AaveV3Base_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                     | 0.212     | 24.364      |
| AaveV3Base_StablecoinIRCurvesUpdates_20231221                                                            | 3.618     | 20.958      |
| AaveV3Base_StablecoinIRUpdates_20240404                                                                  | 3.868     | 20.708      |
| AaveV3Base_UpdateADIImplementationAndCCIPAdapters_20240313                                               | 0.588     | 23.988      |
| AaveV3Ethereum                                                                                           | 0.045     | 24.531      |
| AaveV3EthereumAssets                                                                                     | 0.045     | 24.531      |
| AaveV3EthereumEModes                                                                                     | 0.045     | 24.531      |
| AaveV3Ethereum_AaveBGDPhase3_20240325                                                                    | 2.253     | 22.323      |
| AaveV3Ethereum_AaveLiquidityCommiteeFunding_20240306                                                     | 1.964     | 22.612      |
| AaveV3Ethereum_ActivateGhoStewards_20240326                                                              | 1.633     | 22.943      |
| 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_BorrowCapReductionsOnAaveV3Ethereum_20240311                                              | 4.328     | 20.248      |
| AaveV3Ethereum_ChaosLabsRiskParameterUpdatesIncreaseDebtCeilingForSNXAndMKROnV3Ethereum01312024_20240211 | 3.533     | 21.043      |
| AaveV3Ethereum_CutGauntletServiceProviderStream_20240227                                                 | 0.479     | 24.097      |
| AaveV3Ethereum_FundingUpdatePartB_20240324                                                               | 4.321     | 20.255      |
| AaveV3Ethereum_FundingUpdate_20240224                                                                    | 10.54     | 14.036      |
| AaveV3Ethereum_GHOBorrowRateIncrease20240229_20240229                                                    | 0.285     | 24.291      |
| AaveV3Ethereum_GHOBorrowRateIncrease_20240308                                                            | 0.233     | 24.343      |
| AaveV3Ethereum_GHOStewardsBorrowRateUpdate_20240324                                                      | 0.233     | 24.343      |
| AaveV3Ethereum_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                       | 3.376     | 21.2        |
| AaveV3Ethereum_MeritApprovals_20240306                                                                   | 0.534     | 24.042      |
| AaveV3Ethereum_NativeBridgeAdaptersUpdate_20240322                                                       | 4.897     | 19.679      |
| 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_StablecoinHarmonization_20240312                                                          | 5.299     | 19.277      |
| AaveV3Ethereum_StablecoinIRCurvesUpdates_20231221                                                        | 4.627     | 19.949      |
| AaveV3Ethereum_StablecoinIRUpdates_20240404                                                              | 5.13      | 19.446      |
| AaveV3Ethereum_StkGHOActivation_20240119                                                                 | 1.115     | 23.461      |
| AaveV3Ethereum_TreasuryManagementGSMFundingRWAStrategyPreparationsPart2_20240209                         | 3.098     | 21.478      |
| AaveV3Ethereum_UpdateADIImplementationAndCCIPAdapters_20240313                                           | 3.553     | 21.023      |
| 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_ContangoFlashborrower_20240319                                                              | 0.25      | 24.326      |
| AaveV3Gnosis_EUReEmissionsManager_20240327                                                               | 0.285     | 24.291      |
| AaveV3Gnosis_NativeBridgeAdaptersUpdate_20240322                                                         | 2.58      | 21.996      |
| AaveV3Gnosis_Patch_20240104                                                                              | 0.479     | 24.097      |
| AaveV3Gnosis_StablecoinHarmonization_20240312                                                            | 3.571     | 21.005      |
| AaveV3Gnosis_StablecoinIRCurvesUpdates_20231221                                                          | 3.87      | 20.706      |
| AaveV3Gnosis_StablecoinIRUpdates_20240404                                                                | 4.123     | 20.453      |
| AaveV3Gnosis_UpdateADIImplementationAndCCIPAdapters_20240313                                             | 0.588     | 23.988      |
| 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_NativeBridgeAdaptersUpdate_20240322                                                          | 2.445     | 22.131      |
| AaveV3Metis_StablecoinHarmonization_20240312                                                             | 3.397     | 21.179      |
| AaveV3Metis_StablecoinIRCurvesUpdates_20231221                                                           | 3.869     | 20.707      |
| AaveV3Metis_UpdateADIImplementationAndCCIPAdapters_20240313                                              | 0.588     | 23.988      |
| 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_NativeBridgeAdaptersUpdate_20240322                                                       | 2.445     | 22.131      |
| AaveV3Optimism_Patch_20240104                                                                            | 0.479     | 24.097      |
| AaveV3Optimism_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                 | 0.212     | 24.364      |
| AaveV3Optimism_StablecoinHarmonization_20240312                                                          | 3.749     | 20.827      |
| AaveV3Optimism_StablecoinIRCurvesUpdates_20231221                                                        | 4.878     | 19.698      |
| AaveV3Optimism_StablecoinIRUpdates_20240404                                                              | 5.13      | 19.446      |
| AaveV3Optimism_UpdateADIImplementationAndCCIPAdapters_20240313                                           | 0.588     | 23.988      |
| 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_ContangoFlashborrower_20240319                                                             | 0.25      | 24.326      |
| 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_NativeBridgeAdaptersUpdate_20240322                                                        | 2.853     | 21.723      |
| AaveV3Polygon_Patch_20240104                                                                             | 0.479     | 24.097      |
| AaveV3Polygon_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                  | 0.212     | 24.364      |
| AaveV3Polygon_StablecoinHarmonization_20240312                                                           | 3.975     | 20.601      |
| AaveV3Polygon_StablecoinIRCurvesUpdates_20231221                                                         | 4.375     | 20.201      |
| AaveV3Polygon_StablecoinIRUpdates_20240404                                                               | 5.129     | 19.447      |
| AaveV3Polygon_TreasuryManagementGSMFundingRWAStrategyPreparationsPart1_20231229                          | 3.418     | 21.158      |
| AaveV3Polygon_UpdateADIImplementationAndCCIPAdapters_20240313                                            | 3.292     | 21.284      |
| AaveV3Scroll                                                                                             | 0.045     | 24.531      |
| AaveV3ScrollAssets                                                                                       | 0.045     | 24.531      |
| AaveV3ScrollEModes                                                                                       | 0.045     | 24.531      |
| AaveV3Scroll_AaveV3ScrollActivation_20240122                                                             | 6.6       | 17.976      |
| AaveV3Scroll_ContangoFlashborrower_20240319                                                              | 0.25      | 24.326      |
| AaveV3Scroll_NativeBridgeAdaptersUpdate_20240322                                                         | 2.445     | 22.131      |
| AaveV3Scroll_StablecoinIRUpdates_20240404                                                                | 3.62      | 20.956      |
| AaveV3Scroll_UpdateADIImplementationAndCCIPAdapters_20240313                                             | 0.588     | 23.988      |
| AaveV3Scroll_V3PeripheryMaintenance_20240314                                                             | 0.25      | 24.326      |
| Address                                                                                                  | 0.045     | 24.531      |
| BaseCCCImplementationUpdatePayload                                                                       | 0.588     | 23.988      |
| 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      |
| ERC1967Proxy                                                                                             | 0.136     | 24.44       |
| 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      |
| MiscArbitrum                                                                                             | 0.045     | 24.531      |
| MiscAvalanche                                                                                            | 0.045     | 24.531      |
| MiscBNB                                                                                                  | 0.045     | 24.531      |
| MiscBase                                                                                                 | 0.045     | 24.531      |
| MiscEthereum                                                                                             | 0.045     | 24.531      |
| MiscGnosis                                                                                               | 0.045     | 24.531      |
| MiscMetis                                                                                                | 0.045     | 24.531      |
| MiscOptimism                                                                                             | 0.045     | 24.531      |
| MiscPolygon                                                                                              | 0.045     | 24.531      |
| MiscScroll                                                                                               | 0.045     | 24.531      |
| 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       |
| ProxyAdmin                                                                                               | 1.642     | 22.934      |
| ProxyHelpers                                                                                             | 0.045     | 24.531      |
| ReserveConfiguration                                                                                     | 0.13      | 24.446      |
| RewardsDataTypes                                                                                         | 0.045     | 24.531      |
| SafeERC20                                                                                                | 0.045     | 24.531      |
| StataPayloads                                                                                            | 0.045     | 24.531      |
| StorageHelpers                                                                                           | 0.045     | 24.531      |
| StorageSlot                                                                                              | 0.045     | 24.531      |
| TransactionUtils                                                                                         | 0.045     | 24.531      |
| TransparentUpgradeableProxy                                                                              | 2.04      | 22.536      |
| WadRayMath                                                                                               | 0.045     | 24.531      |
Test success 🌈
No files changed, compilation skipped

Ran 7 tests for src/20240322_Multi_NativeBridgeAdaptersUpdate/AaveV3Arbitrum_NativeBridgeAdaptersUpdate_20240322.t.sol:AaveV3Arbitrum_NativeBridgeAdaptersUpdate_20240322_Test
[PASS] test_correctAdapterNames() (gas: 17808)
[PASS] test_correctPathConfiguration() (gas: 6265)
[PASS] test_forwarderAdaptersAreSet() (gas: 146906)
[PASS] test_onlyChangedNeededForwarders() (gas: 255078)
[PASS] test_onlyUpdatedNeededAdapter() (gas: 166579)
[PASS] test_receiversAreCorrectlySetAfterExecution() (gas: 157331)
[PASS] test_trustedRemotes() (gas: 14311)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 1.06s (2.21s CPU time)

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

Ran 7 tests for src/20240322_Multi_NativeBridgeAdaptersUpdate/AaveV3Base_NativeBridgeAdaptersUpdate_20240322.t.sol:AaveV3Base_NativeBridgeAdaptersUpdate_20240322_Test
[PASS] test_correctAdapterNames() (gas: 17808)
[PASS] test_correctPathConfiguration() (gas: 6265)
[PASS] test_forwarderAdaptersAreSet() (gas: 146826)
[PASS] test_onlyChangedNeededForwarders() (gas: 254578)
[PASS] test_onlyUpdatedNeededAdapter() (gas: 166415)
[PASS] test_receiversAreCorrectlySetAfterExecution() (gas: 157209)
[PASS] test_trustedRemotes() (gas: 14222)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 942.31ms (1.75s CPU time)

Ran 1 test suite in 948.37ms (942.31ms CPU time): 7 tests passed, 0 failed, 0 skipped (7 total tests)
No files changed, compilation skipped

Ran 7 tests for src/20240322_Multi_NativeBridgeAdaptersUpdate/AaveV3Ethereum_NativeBridgeAdaptersUpdate_20240322.t.sol:AaveV3Ethereum_NativeBridgeAdaptersUpdate_20240322_Test
[PASS] test_correctAdapterNames() (gas: 17790)
[PASS] test_correctPathConfiguration() (gas: 54893)
[PASS] test_forwarderAdaptersAreSet() (gas: 438293)
[PASS] test_onlyChangedNeededForwarders() (gas: 608443)
[PASS] test_onlyUpdatedNeededAdapter() (gas: 443415)
[PASS] test_receiversAreCorrectlySetAfterExecution() (gas: 393101)
[PASS] test_trustedRemotes() (gas: 14267)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 1.43s (4.00s CPU time)

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

Ran 7 tests for src/20240322_Multi_NativeBridgeAdaptersUpdate/AaveV3Gnosis_NativeBridgeAdaptersUpdate_20240322.t.sol:AaveV3Gnosis_NativeBridgeAdaptersUpdate_20240322_Test
[PASS] test_correctAdapterNames() (gas: 17786)
[PASS] test_correctPathConfiguration() (gas: 6265)
[PASS] test_forwarderAdaptersAreSet() (gas: 135311)
[PASS] test_onlyChangedNeededForwarders() (gas: 243503)
[PASS] test_onlyUpdatedNeededAdapter() (gas: 172337)
[PASS] test_receiversAreCorrectlySetAfterExecution() (gas: 145738)
[PASS] test_trustedRemotes() (gas: 14311)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 5.51s (11.49s CPU time)

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

Ran 7 tests for src/20240322_Multi_NativeBridgeAdaptersUpdate/AaveV3Metis_NativeBridgeAdaptersUpdate_20240322.t.sol:AaveV3Metis_NativeBridgeAdaptersUpdate_20240322_Test
[PASS] test_correctAdapterNames() (gas: 17808)
[PASS] test_correctPathConfiguration() (gas: 6265)
[PASS] test_forwarderAdaptersAreSet() (gas: 146929)
[PASS] test_onlyChangedNeededForwarders() (gas: 255101)
[PASS] test_onlyUpdatedNeededAdapter() (gas: 166602)
[PASS] test_receiversAreCorrectlySetAfterExecution() (gas: 157354)
[PASS] test_trustedRemotes() (gas: 14222)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 1.35s (2.74s CPU time)

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

Ran 7 tests for src/20240322_Multi_NativeBridgeAdaptersUpdate/AaveV3Optimism_NativeBridgeAdaptersUpdate_20240322.t.sol:AaveV3Optimism_NativeBridgeAdaptersUpdate_20240322_Test
[PASS] test_correctAdapterNames() (gas: 17808)
[PASS] test_correctPathConfiguration() (gas: 6265)
[PASS] test_forwarderAdaptersAreSet() (gas: 146883)
[PASS] test_onlyChangedNeededForwarders() (gas: 255055)
[PASS] test_onlyUpdatedNeededAdapter() (gas: 166556)
[PASS] test_receiversAreCorrectlySetAfterExecution() (gas: 157308)
[PASS] test_trustedRemotes() (gas: 14222)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 842.12ms (1.65s CPU time)

Ran 1 test suite in 848.12ms (842.12ms CPU time): 7 tests passed, 0 failed, 0 skipped (7 total tests)
No files changed, compilation skipped

Ran 7 tests for src/20240322_Multi_NativeBridgeAdaptersUpdate/AaveV3Polygon_NativeBridgeAdaptersUpdate_20240322.t.sol:AaveV3Polygon_NativeBridgeAdaptersUpdate_20240322_Test
[PASS] test_correctAdapterNames() (gas: 17790)
[PASS] test_correctPathConfiguration() (gas: 13593)
[PASS] test_forwarderAdaptersAreSet() (gas: 194233)
[PASS] test_onlyChangedNeededForwarders() (gas: 308720)
[PASS] test_onlyUpdatedNeededAdapter() (gas: 222868)
[PASS] test_receiversAreCorrectlySetAfterExecution() (gas: 188966)
[PASS] test_trustedRemotes() (gas: 14244)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 1.44s (3.17s CPU time)

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

Ran 7 tests for src/20240322_Multi_NativeBridgeAdaptersUpdate/AaveV3Scroll_NativeBridgeAdaptersUpdate_20240322.t.sol:AaveV3Scroll_NativeBridgeAdaptersUpdate_20240322_Test
[PASS] test_correctAdapterNames() (gas: 17831)
[PASS] test_correctPathConfiguration() (gas: 6265)
[PASS] test_forwarderAdaptersAreSet() (gas: 146902)
[PASS] test_onlyChangedNeededForwarders() (gas: 254654)
[PASS] test_onlyUpdatedNeededAdapter() (gas: 166491)
[PASS] test_receiversAreCorrectlySetAfterExecution() (gas: 157285)
[PASS] test_trustedRemotes() (gas: 14245)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 1.16s (1.82s CPU time)

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

Please sign in to comment.