Skip to content

Commit

Permalink
WeETH arbitrum onboarding - Needs Oracle (#289)
Browse files Browse the repository at this point in the history
* init

* add oracle

* test result

* update config with oracle address

* Update src/20240409_AaveV3Arbitrum_WeETHArbitrumOnboarding/WeETHArbitrumOnboarding.md

Co-authored-by: Lukas <[email protected]>

* Update src/20240409_AaveV3Arbitrum_WeETHArbitrumOnboarding/WeETHArbitrumOnboarding.md

Co-authored-by: Lukas <[email protected]>

---------

Co-authored-by: marczeller <[email protected]>
Co-authored-by: Rozengarden <[email protected]>
Co-authored-by: Lukas <[email protected]>
  • Loading branch information
4 people authored Apr 15, 2024
1 parent 8ef6bad commit cb2ebc8
Show file tree
Hide file tree
Showing 7 changed files with 414 additions and 0 deletions.
1 change: 1 addition & 0 deletions .assets/859e8f346e62fa5dc8eed4d223ca2a8d1c9fc80c.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
## Reserve changes

### Reserves added

#### weETH ([0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe](https://arbiscan.io/address/0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe))

| description | value |
| --- | --- |
| decimals | 18 |
| isActive | true |
| isFrozen | false |
| supplyCap | 1,000 weETH |
| borrowCap | 100 weETH |
| debtCeiling | 0 $ |
| isSiloed | false |
| isFlashloanable | true |
| eModeCategory | 2 |
| oracle | [0x517276B5972C4Db7E88B9F76Ee500E888a2D73C3](https://arbiscan.io/address/0x517276B5972C4Db7E88B9F76Ee500E888a2D73C3) |
| oracleDecimals | 8 |
| oracleDescription | Capped weETH / eETH(ETH) / USD |
| oracleLatestAnswer | 3342.70251943 |
| usageAsCollateralEnabled | true |
| ltv | 72.5 % |
| liquidationThreshold | 75 % |
| liquidationBonus | 7.5 % |
| liquidationProtocolFee | 10 % |
| reserveFactor | 15 % |
| aToken | [0x8437d7C167dFB82ED4Cb79CD44B7a32A1dd95c77](https://arbiscan.io/address/0x8437d7C167dFB82ED4Cb79CD44B7a32A1dd95c77) |
| aTokenImpl | [0x1Be1798b70aEe431c2986f7ff48d9D1fa350786a](https://arbiscan.io/address/0x1Be1798b70aEe431c2986f7ff48d9D1fa350786a) |
| variableDebtToken | [0x3ca5FA07689F266e907439aFd1fBB59c44fe12f6](https://arbiscan.io/address/0x3ca5FA07689F266e907439aFd1fBB59c44fe12f6) |
| variableDebtTokenImpl | [0x5E76E98E0963EcDC6A065d1435F84065b7523f39](https://arbiscan.io/address/0x5E76E98E0963EcDC6A065d1435F84065b7523f39) |
| stableDebtToken | [0x40B4BAEcc69B882e8804f9286b12228C27F8c9BF](https://arbiscan.io/address/0x40B4BAEcc69B882e8804f9286b12228C27F8c9BF) |
| stableDebtTokenImpl | [0x0c2C95b24529664fE55D4437D7A31175CFE6c4f7](https://arbiscan.io/address/0x0c2C95b24529664fE55D4437D7A31175CFE6c4f7) |
| borrowingEnabled | true |
| stableBorrowRateEnabled | false |
| isBorrowableInIsolation | false |
| interestRateStrategy | [0x0fc12Ad84210695dE8C0D5D8B6f720C37cEaB02f](https://arbiscan.io/address/0x0fc12Ad84210695dE8C0D5D8B6f720C37cEaB02f) |
| liquidityIndex | 1 |
| variableBorrowIndex | 1 |
| aTokenName | Aave Arbitrum weETH |
| aTokenSymbol | aArbweETH |
| currentLiquidityRate | 0 % |
| currentVariableBorrowRate | 0 % |
| isPaused | false |
| stableDebtTokenName | Aave Arbitrum Stable Debt weETH |
| stableDebtTokenSymbol | stableDebtArbweETH |
| variableDebtTokenName | Aave Arbitrum Variable Debt weETH |
| variableDebtTokenSymbol | variableDebtArbweETH |
| optimalUsageRatio | 45 % |
| maxExcessStableToTotalDebtRatio | 80 % |
| maxExcessUsageRatio | 55 % |
| optimalStableToTotalDebtRatio | 20 % |
| baseVariableBorrowRate | 0 % |
| variableRateSlope1 | 7 % |
| variableRateSlope2 | 300 % |
| baseStableBorrowRate | 9 % |
| stableRateSlope1 | 7 % |
| stableRateSlope2 | 300 % |
| interestRate | ![ir](/.assets/859e8f346e62fa5dc8eed4d223ca2a8d1c9fc80c.svg) |
| eMode.label | ETH correlated |
| eMode.ltv | 93 % |
| eMode.liquidationThreshold | 95 % |
| eMode.liquidationBonus | 1 % |
| eMode.priceSource | 0x0000000000000000000000000000000000000000 |


## Raw diff

```json
{
"reserves": {
"0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe": {
"from": null,
"to": {
"aToken": "0x8437d7C167dFB82ED4Cb79CD44B7a32A1dd95c77",
"aTokenImpl": "0x1Be1798b70aEe431c2986f7ff48d9D1fa350786a",
"aTokenName": "Aave Arbitrum weETH",
"aTokenSymbol": "aArbweETH",
"borrowCap": 100,
"borrowingEnabled": true,
"currentLiquidityRate": 0,
"currentVariableBorrowRate": 0,
"debtCeiling": 0,
"decimals": 18,
"eModeCategory": 2,
"interestRateStrategy": "0x0fc12Ad84210695dE8C0D5D8B6f720C37cEaB02f",
"isActive": true,
"isBorrowableInIsolation": false,
"isFlashloanable": true,
"isFrozen": false,
"isPaused": false,
"isSiloed": false,
"liquidationBonus": 10750,
"liquidationProtocolFee": 1000,
"liquidationThreshold": 7500,
"liquidityIndex": "1000000000000000000000000000",
"ltv": 7250,
"oracle": "0x517276B5972C4Db7E88B9F76Ee500E888a2D73C3",
"oracleDecimals": 8,
"oracleDescription": "Capped weETH / eETH(ETH) / USD",
"oracleLatestAnswer": 334270251943,
"reserveFactor": 1500,
"stableBorrowRateEnabled": false,
"stableDebtToken": "0x40B4BAEcc69B882e8804f9286b12228C27F8c9BF",
"stableDebtTokenImpl": "0x0c2C95b24529664fE55D4437D7A31175CFE6c4f7",
"stableDebtTokenName": "Aave Arbitrum Stable Debt weETH",
"stableDebtTokenSymbol": "stableDebtArbweETH",
"supplyCap": 1000,
"symbol": "weETH",
"underlying": "0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe",
"usageAsCollateralEnabled": true,
"variableBorrowIndex": "1000000000000000000000000000",
"variableDebtToken": "0x3ca5FA07689F266e907439aFd1fBB59c44fe12f6",
"variableDebtTokenImpl": "0x5E76E98E0963EcDC6A065d1435F84065b7523f39",
"variableDebtTokenName": "Aave Arbitrum Variable Debt weETH",
"variableDebtTokenSymbol": "variableDebtArbweETH"
}
}
},
"strategies": {
"0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe": {
"from": null,
"to": {
"address": "0x0fc12Ad84210695dE8C0D5D8B6f720C37cEaB02f",
"baseStableBorrowRate": "90000000000000000000000000",
"baseVariableBorrowRate": 0,
"maxExcessStableToTotalDebtRatio": "800000000000000000000000000",
"maxExcessUsageRatio": "550000000000000000000000000",
"optimalStableToTotalDebtRatio": "200000000000000000000000000",
"optimalUsageRatio": "450000000000000000000000000",
"stableRateSlope1": "70000000000000000000000000",
"stableRateSlope2": "3000000000000000000000000000",
"variableRateSlope1": "70000000000000000000000000",
"variableRateSlope2": "3000000000000000000000000000"
}
}
}
}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {AaveV3Arbitrum, AaveV3ArbitrumEModes} from 'aave-address-book/AaveV3Arbitrum.sol';
import {AaveV3PayloadArbitrum} from 'aave-helpers/v3-config-engine/AaveV3PayloadArbitrum.sol';
import {EngineFlags} from 'aave-helpers/v3-config-engine/EngineFlags.sol';
import {IAaveV3ConfigEngine} from 'aave-helpers/v3-config-engine/IAaveV3ConfigEngine.sol';
import {IV3RateStrategyFactory} from 'aave-helpers/v3-config-engine/IV3RateStrategyFactory.sol';
import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol';
import {SafeERC20} from 'solidity-utils/contracts/oz-common/SafeERC20.sol';
/**
* @title weETH Arbitrum onboarding
* @author @mzeller - ACI
* - Snapshot: direct-to-aip
* - Discussion: https://governance.aave.com/t/arfc-onboard-weeth-to-aave-v3-on-ethereum/16758/11
*/
contract AaveV3Arbitrum_WeETHArbitrumOnboarding_20240409 is AaveV3PayloadArbitrum {
using SafeERC20 for IERC20;

address public constant weETH = 0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe;
uint256 public constant weETH_SEED_AMOUNT = 0.01e18;

function _postExecute() internal override {
IERC20(weETH).forceApprove(address(AaveV3Arbitrum.POOL), weETH_SEED_AMOUNT);
AaveV3Arbitrum.POOL.supply(weETH, weETH_SEED_AMOUNT, address(AaveV3Arbitrum.COLLECTOR), 0);
}

function newListings() public pure override returns (IAaveV3ConfigEngine.Listing[] memory) {
IAaveV3ConfigEngine.Listing[] memory listings = new IAaveV3ConfigEngine.Listing[](1);

listings[0] = IAaveV3ConfigEngine.Listing({
asset: weETH,
assetSymbol: 'weETH',
priceFeed: 0x517276B5972C4Db7E88B9F76Ee500E888a2D73C3,
eModeCategory: AaveV3ArbitrumEModes.ETH_CORRELATED,
enabledToBorrow: EngineFlags.ENABLED,
stableRateModeEnabled: EngineFlags.DISABLED,
borrowableInIsolation: EngineFlags.DISABLED,
withSiloedBorrowing: EngineFlags.DISABLED,
flashloanable: EngineFlags.ENABLED,
ltv: 72_50,
liqThreshold: 75_00,
liqBonus: 7_50,
reserveFactor: 15_00,
supplyCap: 1_000,
borrowCap: 100,
debtCeiling: 0,
liqProtocolFee: 10_00,
rateStrategyParams: IV3RateStrategyFactory.RateStrategyParams({
optimalUsageRatio: _bpsToRay(45_00),
baseVariableBorrowRate: _bpsToRay(0),
variableRateSlope1: _bpsToRay(7_00),
variableRateSlope2: _bpsToRay(300_00),
stableRateSlope1: _bpsToRay(7_00),
stableRateSlope2: _bpsToRay(300_00),
baseStableRateOffset: _bpsToRay(2_00),
stableRateExcessOffset: _bpsToRay(20_00),
optimalStableToTotalDebtRatio: _bpsToRay(20_00)
})
});

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

import {GovV3Helpers} from 'aave-helpers/GovV3Helpers.sol';
import {AaveV3Arbitrum} from 'aave-address-book/AaveV3Arbitrum.sol';
import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol';

import 'forge-std/Test.sol';
import {ProtocolV3TestBase, ReserveConfig} from 'aave-helpers/ProtocolV3TestBase.sol';
import {AaveV3Arbitrum_WeETHArbitrumOnboarding_20240409} from './AaveV3Arbitrum_WeETHArbitrumOnboarding_20240409.sol';

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

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

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

function test_collectorHasweETHFunds() public {
GovV3Helpers.executePayload(vm, address(proposal));
(address aTokenAddress, , ) = AaveV3Arbitrum
.AAVE_PROTOCOL_DATA_PROVIDER
.getReserveTokensAddresses(proposal.weETH());
assertGe(IERC20(aTokenAddress).balanceOf(address(AaveV3Arbitrum.COLLECTOR)), 10 ** 16);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
title: "weETH Arbitrum onboarding"
author: "@mzeller - ACI"
discussions: "https://governance.aave.com/t/arfc-onboard-weeth-to-aave-v3-on-ethereum/16758/11"
---

## Simple Summary

This AIP seeks to add Ether.fi Liquid Restaking Token weETH to Aave V3 Arbitrum.

## Motivation

eETH is an LRT that allows users to stake their ETH, accrue staking rewards, and receive additional rewards through native restaking on EigenLayer.

Ether.fi has also launched eETH on Arbitrum, allowing users on the L2 to get exposure to the LRT yield and points. As weETH has already been approved for onboarding to Aave v3 Ethereum by the DAO, this proposal aims to extend the onboarding of weETH to Aave v3 Arbitrum.

## Specification

The table below illustrates the configured risk parameters for **weETH**

| Parameter | Value |
| ---------------------------------- | -----------------------------------------: |
| Isolation Mode | true |
| Borrowable | ENABLED |
| Collateral Enabled | true |
| Supply Cap (weETH) | 1,000 |
| Borrow Cap (weETH) | 100 |
| Debt Ceiling | USD 0 |
| LTV | 72.5 % |
| LT | 75 % |
| Liquidation Bonus | 7.5 % |
| Liquidation Protocol Fee | 10 % |
| Reserve Factor | 15 % |
| Base Variable Borrow Rate | 0 % |
| Variable Slope 1 | 7 % |
| Variable Slope 2 | 300 % |
| Uoptimal | 45 % |
| Stable Borrowing | DISABLED |
| Stable Slope1 | 7 % |
| Stable Slope2 | 300 % |
| Base Stable Rate Offset | 2 % |
| Stable Rate Excess Offset | 20 % |
| Optimal Stable To Total Debt Ratio | 20 % |
| Flashloanable | ENABLED |
| Siloed Borrowing | DISABLED |
| Borrowable in Isolation | DISABLED |
| Oracle | [0x517276B5972C4Db7E88B9F76Ee500E888a2D73C3](https://arbiscan.io/address/0x517276B5972C4Db7E88B9F76Ee500E888a2D73C3) |

## References

- Implementation: [AaveV3Arbitrum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240409_AaveV3Arbitrum_WeETHArbitrumOnboarding/AaveV3Arbitrum_WeETHArbitrumOnboarding_20240409.sol)
- Tests: [AaveV3Arbitrum](https://github.com/bgd-labs/aave-proposals-v3/blob/main/src/20240409_AaveV3Arbitrum_WeETHArbitrumOnboarding/AaveV3Arbitrum_WeETHArbitrumOnboarding_20240409.t.sol)
- [Snapshot](direct-to-aip)
- [Discussion](https://governance.aave.com/t/arfc-onboard-weeth-to-aave-v3-on-ethereum/16758/11)

## Copyright

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

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

/**
* @dev Deploy Arbitrum
* deploy-command: make deploy-ledger contract=src/20240409_AaveV3Arbitrum_WeETHArbitrumOnboarding/WeETHArbitrumOnboarding_20240409.s.sol:DeployArbitrum chain=arbitrum
* verify-command: npx catapulta-verify -b broadcast/WeETHArbitrumOnboarding_20240409.s.sol/42161/run-latest.json
*/
contract DeployArbitrum is ArbitrumScript {
function run() external broadcast {
// deploy payloads
address payload0 = GovV3Helpers.deployDeterministic(
type(AaveV3Arbitrum_WeETHArbitrumOnboarding_20240409).creationCode
);

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

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

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

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

// create proposal
vm.startBroadcast();
GovV3Helpers.createProposal(
vm,
payloads,
GovV3Helpers.ipfsHashFile(
vm,
'src/20240409_AaveV3Arbitrum_WeETHArbitrumOnboarding/WeETHArbitrumOnboarding.md'
)
);
}
}
Loading

1 comment on commit cb2ebc8

@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 (1ca9b85 2024-04-15T02:34:32.892525726Z)
Build log
Compiling 585 files with 0.8.19
Solc 0.8.19 finished in 436.16s
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 (B) | Margin (B) |
|----------------------------------------------------------------------------------------------------------|----------|------------|
| AaveGovernanceV2                                                                                         |       45 |     24,531 |
| AaveSafetyModule                                                                                         |       45 |     24,531 |
| AaveSwapper                                                                                              |    5,572 |     19,004 |
| AaveV1Ethereum_AaveV1Deprecation_20240218                                                                |      297 |     24,279 |
| AaveV2Avalanche                                                                                          |       45 |     24,531 |
| AaveV2AvalancheAssets                                                                                    |       45 |     24,531 |
| AaveV2Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221                            |      336 |     24,240 |
| AaveV2Avalanche_ReserveFactorUpdates_20240404                                                            |    1,022 |     23,554 |
| AaveV2Avalanche_StablecoinIRCurvesUpdates_20231221                                                       |    1,858 |     22,718 |
| AaveV2Avalanche_StablecoinIRUpdates_20240404                                                             |    1,858 |     22,718 |
| AaveV2Ethereum                                                                                           |       45 |     24,531 |
| AaveV2EthereumAMM                                                                                        |       45 |     24,531 |
| AaveV2EthereumAMMAssets                                                                                  |       45 |     24,531 |
| AaveV2EthereumAMM_ARFCDeprecateAaveV2AMMMarketStep2_20240205                                             |    2,894 |     21,682 |
| AaveV2EthereumAssets                                                                                     |       45 |     24,531 |
| AaveV2Ethereum_AMPLInterestRateUpdatesOnV2Ethereum_20240121                                              |    1,602 |     22,974 |
| AaveV2Ethereum_ChaosLabsV2EthereumLTReductions_20240201                                                  |      926 |     23,650 |
| AaveV2Ethereum_EthereumV2ReserveFactorAdjustment_20240304                                                |    4,904 |     19,672 |
| AaveV2Ethereum_EthereumV2ReserveFactorAdjustment_20240320                                                |    1,778 |     22,798 |
| AaveV2Ethereum_InterimAAMPLDistribution_20240409                                                         |    1,681 |     22,895 |
| AaveV2Ethereum_MigrationOfRemainingGovV2Permissions_20240130                                             |      977 |     23,599 |
| AaveV2Ethereum_MigrationOfRemainingGovV2Permissions_Part2_20240130                                       |    1,446 |     23,130 |
| AaveV2Ethereum_ReserveFactorUpdates_20240404                                                             |    1,778 |     22,798 |
| 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_UpgradeAMPLImplementation_20240402                                                        |    1,621 |     22,955 |
| AaveV2Ethereum_V2DeprecationPlan20240102_20240103                                                        |      927 |     23,649 |
| AaveV2Polygon                                                                                            |       45 |     24,531 |
| AaveV2PolygonAssets                                                                                      |       45 |     24,531 |
| AaveV2Polygon_ReserveFactorUpdatesFebruary152024_20240208                                                |      831 |     23,745 |
| AaveV2Polygon_ReserveFactorUpdatesFebruary292024_20240229                                                |      683 |     23,893 |
| AaveV2Polygon_ReserveFactorUpdatesJan152024_20240108                                                     |    1,134 |     23,442 |
| AaveV2Polygon_ReserveFactorUpdatesJan312024_20240125                                                     |      831 |     23,745 |
| AaveV2Polygon_ReserveFactorUpdates_20240102                                                              |      995 |     23,581 |
| AaveV2Polygon_ReserveFactorUpdates_20240313                                                              |      535 |     24,041 |
| AaveV2Polygon_ReserveFactorUpdates_20240322                                                              |      535 |     24,041 |
| AaveV2Polygon_StablecoinIRCurvesUpdates_20231221                                                         |    1,858 |     22,718 |
| AaveV2Polygon_StablecoinIRUpdates_20240404                                                               |    1,858 |     22,718 |
| AaveV3Arbitrum                                                                                           |       45 |     24,531 |
| AaveV3ArbitrumAssets                                                                                     |       45 |     24,531 |
| AaveV3ArbitrumEModes                                                                                     |       45 |     24,531 |
| AaveV3Arbitrum_ARBRemoveIsolation_20240315                                                               |      193 |     24,383 |
| AaveV3Arbitrum_AaveProtocolEmbassy_20240220                                                              |      435 |     24,141 |
| AaveV3Arbitrum_AddFlashborrowers_20240306                                                                |      250 |     24,326 |
| AaveV3Arbitrum_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229                                   |      323 |     24,253 |
| AaveV3Arbitrum_GeneralizedLTLTVReductionOnAave_20240324                                                  |    3,815 |     20,761 |
| AaveV3Arbitrum_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                       |    3,362 |     21,214 |
| AaveV3Arbitrum_NativeBridgeAdaptersUpdate_20240322                                                       |    2,445 |     22,131 |
| AaveV3Arbitrum_Patch_20240104                                                                            |      479 |     24,097 |
| AaveV3Arbitrum_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                 |      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                                           |      588 |     23,988 |
| AaveV3Arbitrum_UpdateStETHAndWETHRiskParamsOnAaveV3EthereumOptimismAndArbitrum_20240121                  |    3,892 |     20,684 |
| AaveV3Arbitrum_UpdateWETHIROnV3ArbitrumAndOptimism_20240216                                              |    3,622 |     20,954 |
| AaveV3Arbitrum_WeETHArbitrumOnboarding_20240409                                                          |    5,004 |     19,572 |
| AaveV3Avalanche                                                                                          |       45 |     24,531 |
| AaveV3AvalancheAssets                                                                                    |       45 |     24,531 |
| AaveV3AvalancheEModes                                                                                    |       45 |     24,531 |
| AaveV3Avalanche_ChaosLabsRiskParameterUpdatesWBTCEOnV2AndV3Avalanche_20231221                            |    3,513 |     21,063 |
| AaveV3Avalanche_ContangoFlashborrower_20240319                                                           |      250 |     24,326 |
| AaveV3Avalanche_GeneralizedLTLTVReductionOnAave_20240324                                                 |    3,670 |     20,906 |
| AaveV3Avalanche_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                      |    3,377 |     21,199 |
| AaveV3Avalanche_Patch_20240104                                                                           |      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                                                                                                |       45 |     24,531 |
| AaveV3BNBAssets                                                                                          |       45 |     24,531 |
| AaveV3BNBEModes                                                                                          |       45 |     24,531 |
| AaveV3BNB_ContangoFlashborrower_20240319                                                                 |      250 |     24,326 |
| AaveV3BNB_GeneralizedLTLTVReductionOnAave_20240324                                                       |    3,528 |     21,048 |
| AaveV3BNB_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                            |    3,380 |     21,196 |
| AaveV3BNB_OnboardFdUSDToAaveV3OnBSC_20240201                                                             |    5,014 |     19,562 |
| AaveV3BNB_SetAaveChanInitiativeAsEmissionManagerForFdUSDOnBNBChainAaveV3_20240208                        |      212 |     24,364 |
| AaveV3BNB_StablecoinIRUpdates_20240404                                                                   |    4,132 |     20,444 |
| AaveV3BNB_UpdateADIImplementationAndCCIPAdapters_20240313                                                |    3,084 |     21,492 |
| AaveV3Base                                                                                               |       45 |     24,531 |
| AaveV3BaseAssets                                                                                         |       45 |     24,531 |
| AaveV3BaseEModes                                                                                         |       45 |     24,531 |
| AaveV3Base_ContangoFlashborrower_20240319                                                                |      250 |     24,326 |
| AaveV3Base_GeneralizedLTLTVReductionOnAave_20240324                                                      |    3,517 |     21,059 |
| AaveV3Base_NativeBridgeAdaptersUpdate_20240322                                                           |    2,445 |     22,131 |
| AaveV3Base_Patch_20240104                                                                                |      479 |     24,097 |
| AaveV3Base_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                     |      212 |     24,364 |
| AaveV3Base_StablecoinIRCurvesUpdates_20231221                                                            |    3,618 |     20,958 |
| AaveV3Base_StablecoinIRUpdates_20240404                                                                  |    3,868 |     20,708 |
| AaveV3Base_UpdateADIImplementationAndCCIPAdapters_20240313                                               |      588 |     23,988 |
| AaveV3Ethereum                                                                                           |       45 |     24,531 |
| AaveV3EthereumAssets                                                                                     |       45 |     24,531 |
| AaveV3EthereumEModes                                                                                     |       45 |     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                                                    |      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                                   |      967 |     23,609 |
| AaveV3Ethereum_BorrowCapReductionsOnAaveV3Ethereum_20240311                                              |    4,328 |     20,248 |
| AaveV3Ethereum_ChaosLabsRiskParameterUpdatesIncreaseDebtCeilingForSNXAndMKROnV3Ethereum01312024_20240211 |    3,533 |     21,043 |
| AaveV3Ethereum_CutGauntletServiceProviderStream_20240227                                                 |      479 |     24,097 |
| AaveV3Ethereum_FundingUpdatePartB_20240324                                                               |    4,321 |     20,255 |
| AaveV3Ethereum_FundingUpdate_20240224                                                                    |   10,540 |     14,036 |
| AaveV3Ethereum_GHOBorrowRateIncrease20240229_20240229                                                    |      285 |     24,291 |
| AaveV3Ethereum_GHOBorrowRateIncrease_20240308                                                            |      233 |     24,343 |
| AaveV3Ethereum_GHOStewardsBorrowRateUpdate_20240324                                                      |      233 |     24,343 |
| AaveV3Ethereum_GeneralizedLTLTVReductionOnAave_20240324                                                  |    3,815 |     20,761 |
| AaveV3Ethereum_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                       |    3,376 |     21,200 |
| AaveV3Ethereum_MeritApprovals_20240306                                                                   |      534 |     24,042 |
| AaveV3Ethereum_NativeBridgeAdaptersUpdate_20240322                                                       |    4,897 |     19,679 |
| AaveV3Ethereum_OrbitProgram_20240220                                                                     |    2,308 |     22,268 |
| AaveV3Ethereum_Patch_20240104                                                                            |      479 |     24,097 |
| AaveV3Ethereum_RegisterADIScrollAdapter_20240122                                                         |      630 |     23,946 |
| AaveV3Ethereum_RequestForBountyPayoutJanuary2024_20240125                                                |      781 |     23,795 |
| AaveV3Ethereum_RetroactiveBugBountyPreImmunefi_20240205                                                  |      782 |     23,794 |
| AaveV3Ethereum_SecurityBudgetRequestDecember2023_20240206                                                |      514 |     24,062 |
| AaveV3Ethereum_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                 |      212 |     24,364 |
| AaveV3Ethereum_StableRateBugBounty_20240207                                                              |      768 |     23,808 |
| AaveV3Ethereum_StablecoinHarmonization_20240312                                                          |    5,299 |     19,277 |
| AaveV3Ethereum_StablecoinIRCurvesUpdates_20231221                                                        |    4,627 |     19,949 |
| AaveV3Ethereum_StablecoinIRUpdates_20240404                                                              |    5,130 |     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 |
| AaveV3Ethereum_WeETHListing_20240320                                                                     |    5,001 |     19,575 |
| AaveV3Fantom                                                                                             |       45 |     24,531 |
| AaveV3FantomAssets                                                                                       |       45 |     24,531 |
| AaveV3FantomEModes                                                                                       |       45 |     24,531 |
| AaveV3GenericPatch_20240104                                                                              |      479 |     24,097 |
| AaveV3Gnosis                                                                                             |       45 |     24,531 |
| AaveV3GnosisAssets                                                                                       |       45 |     24,531 |
| AaveV3GnosisEModes                                                                                       |       45 |     24,531 |
| AaveV3Gnosis_ContangoFlashborrower_20240319                                                              |      250 |     24,326 |
| AaveV3Gnosis_EUReEmissionsManager_20240327                                                               |      285 |     24,291 |
| AaveV3Gnosis_GeneralizedLTLTVReductionOnAave_20240324                                                    |    3,667 |     20,909 |
| AaveV3Gnosis_NativeBridgeAdaptersUpdate_20240322                                                         |    2,580 |     21,996 |
| AaveV3Gnosis_Patch_20240104                                                                              |      479 |     24,097 |
| AaveV3Gnosis_StablecoinHarmonization_20240312                                                            |    3,571 |     21,005 |
| AaveV3Gnosis_StablecoinIRCurvesUpdates_20231221                                                          |    3,870 |     20,706 |
| AaveV3Gnosis_StablecoinIRUpdates_20240404                                                                |    4,123 |     20,453 |
| AaveV3Gnosis_UpdateADIImplementationAndCCIPAdapters_20240313                                             |      588 |     23,988 |
| AaveV3Harmony                                                                                            |       45 |     24,531 |
| AaveV3HarmonyAssets                                                                                      |       45 |     24,531 |
| AaveV3HarmonyEModes                                                                                      |       45 |     24,531 |
| AaveV3Metis                                                                                              |       45 |     24,531 |
| AaveV3MetisAssets                                                                                        |       45 |     24,531 |
| AaveV3MetisEModes                                                                                        |       45 |     24,531 |
| AaveV3Metis_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                          |    3,370 |     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                                              |      588 |     23,988 |
| AaveV3Optimism                                                                                           |       45 |     24,531 |
| AaveV3OptimismAssets                                                                                     |       45 |     24,531 |
| AaveV3OptimismEModes                                                                                     |       45 |     24,531 |
| AaveV3Optimism_AddFlashborrowers_20240306                                                                |      250 |     24,326 |
| AaveV3Optimism_AssignEmissionAdminEthereumArbitrumAndOptimism_20240229                                   |      310 |     24,266 |
| AaveV3Optimism_GauntletRecommendationForMAIMIMATICDeprecationPhase2_20240122                             |    3,375 |     21,201 |
| AaveV3Optimism_GeneralizedLTLTVReductionOnAave_20240324                                                  |    3,815 |     20,761 |
| AaveV3Optimism_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                       |    3,362 |     21,214 |
| AaveV3Optimism_NativeBridgeAdaptersUpdate_20240322                                                       |    2,445 |     22,131 |
| AaveV3Optimism_Patch_20240104                                                                            |      479 |     24,097 |
| AaveV3Optimism_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                 |      212 |     24,364 |
| AaveV3Optimism_StablecoinHarmonization_20240312                                                          |    3,749 |     20,827 |
| AaveV3Optimism_StablecoinIRCurvesUpdates_20231221                                                        |    4,878 |     19,698 |
| AaveV3Optimism_StablecoinIRUpdates_20240404                                                              |    5,130 |     19,446 |
| AaveV3Optimism_UpdateADIImplementationAndCCIPAdapters_20240313                                           |      588 |     23,988 |
| AaveV3Optimism_UpdateStETHAndWETHRiskParamsOnAaveV3EthereumOptimismAndArbitrum_20240121                  |    3,892 |     20,684 |
| AaveV3Optimism_UpdateWETHIROnV3ArbitrumAndOptimism_20240216                                              |    3,609 |     20,967 |
| AaveV3Polygon                                                                                            |       45 |     24,531 |
| AaveV3PolygonAssets                                                                                      |       45 |     24,531 |
| AaveV3PolygonEModes                                                                                      |       45 |     24,531 |
| AaveV3Polygon_ContangoFlashborrower_20240319                                                             |      250 |     24,326 |
| AaveV3Polygon_FreezeAndSetLTVTo0ForDPIBALCRVAndSUSHIOnAaveV3Polygon20240119_20240130                     |    4,355 |     20,221 |
| AaveV3Polygon_FundingUpdate_20240224                                                                     |    2,902 |     21,674 |
| AaveV3Polygon_GeneralizedLTLTVReductionOnAave_20240324                                                   |    3,814 |     20,762 |
| AaveV3Polygon_HarmonizeUSDTRiskParametersOnAaveV3Markets_20240115                                        |    3,361 |     21,215 |
| AaveV3Polygon_MaticXSupplyCapIncreaseInPolygonV3_20240206                                                |    3,294 |     21,282 |
| AaveV3Polygon_NativeBridgeAdaptersUpdate_20240322                                                        |    2,853 |     21,723 |
| AaveV3Polygon_Patch_20240104                                                                             |      479 |     24,097 |
| AaveV3Polygon_SetLiquidityObservationLabsAsEmissionManagerForWstETHOnV3Markets_20240206                  |      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                                                                                             |       45 |     24,531 |
| AaveV3ScrollAssets                                                                                       |       45 |     24,531 |
| AaveV3ScrollEModes                                                                                       |       45 |     24,531 |
| AaveV3Scroll_AaveV3ScrollActivation_20240122                                                             |    6,600 |     17,976 |
| AaveV3Scroll_ContangoFlashborrower_20240319                                                              |      250 |     24,326 |
| AaveV3Scroll_GeneralizedLTLTVReductionOnAave_20240324                                                    |    3,374 |     21,202 |
| AaveV3Scroll_NativeBridgeAdaptersUpdate_20240322                                                         |    2,445 |     22,131 |
| AaveV3Scroll_StablecoinIRUpdates_20240404                                                                |    3,620 |     20,956 |
| AaveV3Scroll_UpdateADIImplementationAndCCIPAdapters_20240313                                             |      588 |     23,988 |
| AaveV3Scroll_V3PeripheryMaintenance_20240314                                                             |      250 |     24,326 |
| Address                                                                                                  |       45 |     24,531 |
| BaseCCCImplementationUpdatePayload                                                                       |      588 |     23,988 |
| ChainHelpers                                                                                             |       45 |     24,531 |
| ChainIds                                                                                                 |       45 |     24,531 |
| ConfiguratorInputTypes                                                                                   |       45 |     24,531 |
| Create2Utils                                                                                             |      123 |     24,453 |
| DataTypes                                                                                                |       45 |     24,531 |
| ERC1967Proxy                                                                                             |      136 |     24,440 |
| EngineFlags                                                                                              |       45 |     24,531 |
| EnumerableSet                                                                                            |       45 |     24,531 |
| EnvelopeUtils                                                                                            |       45 |     24,531 |
| Errors                                                                                                   |    4,673 |     19,903 |
| GhoInterestRateStrategy                                                                                  |      671 |     23,905 |
| Gho_GHOStabilityModule_20240119                                                                          |    4,494 |     20,082 |
| GovHelpers                                                                                               |       45 |     24,531 |
| GovV3Helpers                                                                                             |    2,581 |     21,995 |
| GovV3StorageHelpers                                                                                      |       45 |     24,531 |
| GovernanceV3Arbitrum                                                                                     |       45 |     24,531 |
| GovernanceV3Avalanche                                                                                    |       45 |     24,531 |
| GovernanceV3BNB                                                                                          |       45 |     24,531 |
| GovernanceV3Base                                                                                         |       45 |     24,531 |
| GovernanceV3Ethereum                                                                                     |       45 |     24,531 |
| GovernanceV3Gnosis                                                                                       |       45 |     24,531 |
| GovernanceV3Metis                                                                                        |       45 |     24,531 |
| GovernanceV3Optimism                                                                                     |       45 |     24,531 |
| GovernanceV3Polygon                                                                                      |       45 |     24,531 |
| GovernanceV3PolygonZkEvm                                                                                 |       45 |     24,531 |
| GovernanceV3Scroll                                                                                       |       45 |     24,531 |
| IpfsUtils                                                                                                |       45 |     24,531 |
| MainnetPayload                                                                                           |    2,583 |     21,993 |
| MiscArbitrum                                                                                             |       45 |     24,531 |
| MiscAvalanche                                                                                            |       45 |     24,531 |
| MiscBNB                                                                                                  |       45 |     24,531 |
| MiscBase                                                                                                 |       45 |     24,531 |
| MiscEthereum                                                                                             |       45 |     24,531 |
| MiscGnosis                                                                                               |       45 |     24,531 |
| MiscMetis                                                                                                |       45 |     24,531 |
| MiscOptimism                                                                                             |       45 |     24,531 |
| MiscPolygon                                                                                              |       45 |     24,531 |
| MiscScroll                                                                                               |       45 |     24,531 |
| MockExecutor                                                                                             |      396 |     24,180 |
| OrbitProgramData                                                                                         |      488 |     24,088 |
| ParaswapClaim                                                                                            |       22 |     24,554 |
| ParaswapClaimer                                                                                          |      159 |     24,417 |
| Payloads                                                                                                 |      484 |     24,092 |
| PayloadsControllerUtils                                                                                  |       45 |     24,531 |
| PayloadsToDeploy                                                                                         |       45 |     24,531 |
| PolygonPayload                                                                                           |    1,593 |     22,983 |
| PoolAddresses                                                                                            |      316 |     24,260 |
| ProxyAdmin                                                                                               |    1,642 |     22,934 |
| ProxyHelpers                                                                                             |       45 |     24,531 |
| ReserveConfiguration                                                                                     |      130 |     24,446 |
| RewardsDataTypes                                                                                         |       45 |     24,531 |
| SafeERC20                                                                                                |       45 |     24,531 |
| StataPayloads                                                                                            |       45 |     24,531 |
| StorageHelpers                                                                                           |       45 |     24,531 |
| StorageSlot                                                                                              |       45 |     24,531 |
| TransactionUtils                                                                                         |       45 |     24,531 |
| TransparentUpgradeableProxy                                                                              |    2,040 |     22,536 |
| WadRayMath                                                                                               |       45 |     24,531 |
Test success 🌈
No files changed, compilation skipped

Ran 2 tests for src/20240409_AaveV3Arbitrum_WeETHArbitrumOnboarding/AaveV3Arbitrum_WeETHArbitrumOnboarding_20240409.t.sol:AaveV3Arbitrum_WeETHArbitrumOnboarding_20240409_Test
[PASS] test_collectorHasweETHFunds() (gas: 3501336)
[PASS] test_defaultProposalExecution() (gas: 67461167)
Logs:
  0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1
  0xf97f4df75117a78c1A5a0DBb814Af92458539FB4
  0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8
  0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f
  0x82aF49447D8a07e3bd95BD0d56f35241523fBab1
  0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9
  0xD22a58f79e9481D1a88e00c343885A588b34b68B
  0x5979D7b546E38E414F7E9822514be443A4800529
  0x3F56e0c36d275367b8C502090EDF38289b3dEa0d
  0xEC70Dcb4A1EFa46b8F2D97C310C9c4790ba5ffA8
  0x93b346b6BC2548dA6A1E7d98E9a421B42541425b
  0xaf88d065e77c8cC2239327C5EDb3A432268e5831
  0x17FC002b466eEc40DaE837Fc4bE5c67993ddBd6F
  0x912CE59144191C1204E64559FE8253a0e49E6548
  0x35751007a407ca6FEFfE80b3cB397736D2cf4dbe
  E2E: Collateral DAI, TestAsset DAI
  SUPPLY: DAI, Amount: 100007500562542190664299
  SUPPLY: DAI, Amount: 1000075005625421906642
  WITHDRAW: DAI, Amount: 500037502812710953321
  WITHDRAW: DAI, Amount: 500037502812710953320
  BORROW: DAI, Amount 1000075005625421906642, Stable: false
  REPAY: DAI, Amount: 1000075005625421906642
  E2E: Collateral DAI, TestAsset LINK
  SUPPLY: DAI, Amount: 100007500562542190664299
  SUPPLY: LINK, Amount: 70166429965477660375
  WITHDRAW: LINK, Amount: 35083214982738830187
  WITHDRAW: LINK, Amount: 35083214982738830187
  BORROW: LINK, Amount 70166429965477660375, Stable: false
  REPAY: LINK, Amount: 70166429965477660375
  E2E: Collateral DAI, TestAsset USDC
  SUPPLY: DAI, Amount: 100007500562542190664299
  SUPPLY: USDC, Amount: 1000088697
  WITHDRAW: USDC, Amount: 500044348
  WITHDRAW: USDC, Amount: 500044349
  BORROW: USDC, Amount 1000088697, Stable: false
  REPAY: USDC, Amount: 1000088697
  E2E: Collateral DAI, TestAsset WBTC
  SUPPLY: DAI, Amount: 100007500562542190664299
  SUPPLY: WBTC, Amount: 1496014
  WITHDRAW: WBTC, Amount: 748007
  WITHDRAW: WBTC, Amount: 748007
  BORROW: WBTC, Amount 1496014, Stable: false
  REPAY: WBTC, Amount: 1496014
  E2E: Collateral DAI, TestAsset WETH
  SUPPLY: DAI, Amount: 100007500562542190664299
  SUPPLY: WETH, Amount: 309921434872870726
  WITHDRAW: WETH, Amount: 154960717436435363
  WITHDRAW: WETH, Amount: 154960717436435363
  BORROW: WETH, Amount 309921434872870726, Stable: false
  REPAY: WETH, Amount: 309921434872870726
  E2E: Collateral DAI, TestAsset USDT
  SUPPLY: DAI, Amount: 100007500562542190664299
  SUPPLY: USDT, Amount: 1000347120
  WITHDRAW: USDT, Amount: 500173560
  WITHDRAW: USDT, Amount: 500173559
  BORROW: USDT, Amount 1000347120, Stable: false
  REPAY: USDT, Amount: 1000347120
  E2E: Collateral DAI, TestAsset AAVE
  SUPPLY: DAI, Amount: 100007500562542190664299
  SUPPLY: AAVE, Amount: 10176942427204839665
  WITHDRAW: AAVE, Amount: 5088471213602419832
  WITHDRAW: AAVE, Amount: 5088471213602419833
  E2E: TestAsset EURS SKIPPED
  E2E: Collateral DAI, TestAsset wstETH
  SUPPLY: DAI, Amount: 100007500562542190664299
  SUPPLY: wstETH, Amount: 266424644193106422
  WITHDRAW: wstETH, Amount: 133212322096553211
  WITHDRAW: wstETH, Amount: 133212322096553211
  BORROW: wstETH, Amount 266424644193106422, Stable: false
  REPAY: wstETH, Amount: 266424644193106422
  E2E: TestAsset MAI SKIPPED
  E2E: Collateral DAI, TestAsset rETH
  SUPPLY: DAI, Amount: 100007500562542190664299
  SUPPLY: rETH, Amount: 280888650276821823
  WITHDRAW: rETH, Amount: 140444325138410911
  WITHDRAW: rETH, Amount: 140444325138410913
  BORROW: rETH, Amount 280888650276821823, Stable: false
  REPAY: rETH, Amount: 280888650276821823
  E2E: Collateral DAI, TestAsset LUSD
  SUPPLY: DAI, Amount: 100007500562542190664299
  SUPPLY: LUSD, Amount: 1001564253066081136179
  WITHDRAW: LUSD, Amount: 500782126533040568089
  WITHDRAW: LUSD, Amount: 500782126533040568090
  BORROW: LUSD, Amount 1001564253066081136179, Stable: false
  REPAY: LUSD, Amount: 1001564253066081136179
  E2E: Collateral DAI, TestAsset USDC
  SUPPLY: DAI, Amount: 100007500562542190664299
  SUPPLY: USDC, Amount: 1000088697
  WITHDRAW: USDC, Amount: 500044348
  WITHDRAW: USDC, Amount: 500044349
  BORROW: USDC, Amount 1000088697, Stable: false
  REPAY: USDC, Amount: 1000088697
  E2E: Collateral DAI, TestAsset FRAX
  SUPPLY: DAI, Amount: 100007500562542190664299
  SUPPLY: FRAX, Amount: 1001814084945018439390
  WITHDRAW: FRAX, Amount: 500907042472509219695
  WITHDRAW: FRAX, Amount: 500907042472509219694
  BORROW: FRAX, Amount 1001814084945018439390, Stable: false
  REPAY: FRAX, Amount: 1001814084945018439390
  E2E: Collateral DAI, TestAsset ARB
  SUPPLY: DAI, Amount: 100007500562542190664299
  SUPPLY: ARB, Amount: 877808988764044943820
  WITHDRAW: ARB, Amount: 438904494382022471910
  WITHDRAW: ARB, Amount: 438904494382022471909
  BORROW: ARB, Amount 877808988764044943820, Stable: false
  REPAY: ARB, Amount: 877808988764044943820
  E2E: Collateral DAI, TestAsset weETH
  SUPPLY: DAI, Amount: 100007500562542190664299
  SUPPLY: weETH, Amount: 299159136712686209
  WITHDRAW: weETH, Amount: 149579568356343104
  WITHDRAW: weETH, Amount: 149579568356343105
  BORROW: weETH, Amount 299159136712686209, Stable: false
  REPAY: weETH, Amount: 299159136712686209

Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 31.58s (34.67s CPU time)

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

Please sign in to comment.