Skip to content

Commit

Permalink
Fix: updated adi tests. Updated chain ids (#299)
Browse files Browse the repository at this point in the history
* fix: use bytecode for create2 adapter helpers and tests

* fix: removed comments

* fix: use mock adapter contract instead of deployed from etherscan

* wip: final version but test not working

* fix: passing predicting address

* fix: added testnets

* fix: ethereum network

* fix: added helper method to get network name

* fix: fixed comments
  • Loading branch information
sendra authored Jun 18, 2024
1 parent 8e1340b commit b645891
Show file tree
Hide file tree
Showing 6 changed files with 345 additions and 55 deletions.
12 changes: 2 additions & 10 deletions diffs/adi_test_adi_diffs_before_adi_test_adi_diffs_after.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,15 @@
{
"forwarderAdaptersByChain": {
"1": {
"0xDA4B6024aA06f7565BBcAaD9B8bE24C3c229AAb5": {
"from": "0x2a323be63e08E08536Fc3b5d8C6f24825e68895e",
"to": null
},
"0x7FAE7765abB4c8f778d57337bB720d0BC53057e3": {
"0xF1592Fc21d1E66350591cEcd51964Dd57Bae5bC0": {
"from": null,
"to": "0x8410d9BD353b420ebA8C48ff1B0518426C280FCC"
}
}
},
"receiverAdaptersByChain": {
"1": {
"0xDA4B6024aA06f7565BBcAaD9B8bE24C3c229AAb5": {
"from": true,
"to": null
},
"0x7FAE7765abB4c8f778d57337bB720d0BC53057e3": {
"0xF1592Fc21d1E66350591cEcd51964Dd57Bae5bC0": {
"from": null,
"to": true
}
Expand Down
76 changes: 76 additions & 0 deletions src/ChainIds.sol
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import {Vm} from 'forge-std/Vm.sol';

library ChainIds {
uint256 internal constant MAINNET = 1;
uint256 internal constant ETHEREUM = 1;
uint256 internal constant OPTIMISM = 10;
uint256 internal constant BNB = 56;
uint256 internal constant POLYGON = 137;
Expand All @@ -18,6 +19,24 @@ library ChainIds {
uint256 internal constant SCROLL = 534352;
uint256 internal constant SEPOLIA = 11155111;
uint256 internal constant HARMONY = 1666600000;
uint256 internal constant CELO = 42220;
uint256 internal constant POLYGON_ZK_EVM = 1101;
}

library TestNetChainIds {
uint256 internal constant ETHEREUM_SEPOLIA = 11155111;
uint256 internal constant POLYGON_AMOY = 80002;
uint256 internal constant AVALANCHE_FUJI = 43113;
uint256 internal constant FANTOM_TESTNET = 4002;
uint256 internal constant HARMONY_TESTNET = 1666700000;
uint256 internal constant METIS_TESTNET = 599;
uint256 internal constant BNB_TESTNET = 97;
uint256 internal constant GNOSIS_CHIADO = 10200;
uint256 internal constant SCROLL_SEPOLIA = 534351;
uint256 internal constant BASE_SEPOLIA = 84532;
uint256 internal constant CELO_ALFAJORES = 44787;
uint256 internal constant OPTIMISM_SEPOLIA = 11155420;
uint256 internal constant ARBITRUM_SEPOLIA = 421614;
}

library ChainHelpers {
Expand Down Expand Up @@ -62,4 +81,61 @@ library ChainHelpers {
}
return (previousFork, newFork);
}

function getNetworkNameFromId(uint256 chainId) internal pure returns (string memory) {
string memory networkName;
if (chainId == ChainIds.ETHEREUM) {
networkName = 'ethereum';
} else if (chainId == ChainIds.POLYGON) {
networkName = 'polygon';
} else if (chainId == ChainIds.AVALANCHE) {
networkName = 'avalanche';
} else if (chainId == ChainIds.ARBITRUM) {
networkName = 'arbitrum';
} else if (chainId == ChainIds.OPTIMISM) {
networkName = 'optimism';
} else if (chainId == ChainIds.METIS) {
networkName = 'metis';
} else if (chainId == ChainIds.BNB) {
networkName = 'binance';
} else if (chainId == ChainIds.BASE) {
networkName = 'base';
} else if (chainId == ChainIds.POLYGON_ZK_EVM) {
networkName = 'zkevm';
} else if (chainId == ChainIds.GNOSIS) {
networkName = 'gnosis';
} else if (chainId == ChainIds.SCROLL) {
networkName = 'scroll';
} else if (chainId == ChainIds.CELO) {
networkName = 'celo';
}
// testnets
else if (chainId == TestNetChainIds.ETHEREUM_SEPOLIA) {
networkName = 'ethereum_sepolia';
} else if (chainId == TestNetChainIds.POLYGON_AMOY) {
networkName = 'polygon_amoy';
} else if (chainId == TestNetChainIds.AVALANCHE_FUJI) {
networkName = 'avalanche_fuji';
} else if (chainId == TestNetChainIds.ARBITRUM_SEPOLIA) {
networkName = 'arbitrum_sepolia';
} else if (chainId == TestNetChainIds.OPTIMISM_SEPOLIA) {
networkName = 'optimism_sepolia';
} else if (chainId == TestNetChainIds.METIS_TESTNET) {
networkName = 'metis_test';
} else if (chainId == TestNetChainIds.BNB_TESTNET) {
networkName = 'binance_testnet';
} else if (chainId == TestNetChainIds.BASE_SEPOLIA) {
networkName = 'base_sepolia';
} else if (chainId == TestNetChainIds.GNOSIS_CHIADO) {
networkName = 'gno_chiado';
} else if (chainId == TestNetChainIds.SCROLL_SEPOLIA) {
networkName = 'scroll_sepolia';
} else if (chainId == TestNetChainIds.CELO_ALFAJORES) {
networkName = 'celo_alfajores';
} else {
revert('chain id is not supported');
}

return networkName;
}
}
60 changes: 37 additions & 23 deletions src/adi/SimpleOneToManyAdapterUpdate.sol
Original file line number Diff line number Diff line change
Expand Up @@ -68,16 +68,22 @@ abstract contract SimpleOneToManyAdapterUpdate is BaseAdaptersUpdate {
override
returns (ICrossChainReceiver.ReceiverBridgeAdapterConfigInput[] memory)
{
// remove old Receiver bridge adapter
ICrossChainReceiver.ReceiverBridgeAdapterConfigInput[]
memory bridgeAdaptersToRemove = new ICrossChainReceiver.ReceiverBridgeAdapterConfigInput[](1);

bridgeAdaptersToRemove[0] = ICrossChainReceiver.ReceiverBridgeAdapterConfigInput({
bridgeAdapter: ADAPTER_TO_REMOVE,
chainIds: getChainsToReceive()
});
if (ADAPTER_TO_REMOVE != address(0)) {
// remove old Receiver bridge adapter
ICrossChainReceiver.ReceiverBridgeAdapterConfigInput[]
memory bridgeAdaptersToRemove = new ICrossChainReceiver.ReceiverBridgeAdapterConfigInput[](
1
);

bridgeAdaptersToRemove[0] = ICrossChainReceiver.ReceiverBridgeAdapterConfigInput({
bridgeAdapter: ADAPTER_TO_REMOVE,
chainIds: getChainsToReceive()
});

return bridgeAdaptersToRemove;
return bridgeAdaptersToRemove;
} else {
return new ICrossChainReceiver.ReceiverBridgeAdapterConfigInput[](0);
}
}

/// @inheritdoc IBaseForwarderAdaptersUpdate
Expand All @@ -88,15 +94,19 @@ abstract contract SimpleOneToManyAdapterUpdate is BaseAdaptersUpdate {
override
returns (ICrossChainForwarder.BridgeAdapterToDisable[] memory)
{
ICrossChainForwarder.BridgeAdapterToDisable[]
memory forwarderAdaptersToRemove = new ICrossChainForwarder.BridgeAdapterToDisable[](1);
if (ADAPTER_TO_REMOVE != address(0)) {
ICrossChainForwarder.BridgeAdapterToDisable[]
memory forwarderAdaptersToRemove = new ICrossChainForwarder.BridgeAdapterToDisable[](1);

forwarderAdaptersToRemove[0] = ICrossChainForwarder.BridgeAdapterToDisable({
bridgeAdapter: ADAPTER_TO_REMOVE,
chainIds: getChainsToSend()
});
forwarderAdaptersToRemove[0] = ICrossChainForwarder.BridgeAdapterToDisable({
bridgeAdapter: ADAPTER_TO_REMOVE,
chainIds: getChainsToSend()
});

return forwarderAdaptersToRemove;
return forwarderAdaptersToRemove;
} else {
return new ICrossChainForwarder.BridgeAdapterToDisable[](0);
}
}

/// @inheritdoc IBaseReceiverAdaptersUpdate
Expand All @@ -107,15 +117,19 @@ abstract contract SimpleOneToManyAdapterUpdate is BaseAdaptersUpdate {
override
returns (ICrossChainReceiver.ReceiverBridgeAdapterConfigInput[] memory)
{
ICrossChainReceiver.ReceiverBridgeAdapterConfigInput[]
memory bridgeAdapterConfig = new ICrossChainReceiver.ReceiverBridgeAdapterConfigInput[](1);
if (NEW_ADAPTER != address(0)) {
ICrossChainReceiver.ReceiverBridgeAdapterConfigInput[]
memory bridgeAdapterConfig = new ICrossChainReceiver.ReceiverBridgeAdapterConfigInput[](1);

bridgeAdapterConfig[0] = ICrossChainReceiver.ReceiverBridgeAdapterConfigInput({
bridgeAdapter: NEW_ADAPTER,
chainIds: getChainsToReceive()
});
bridgeAdapterConfig[0] = ICrossChainReceiver.ReceiverBridgeAdapterConfigInput({
bridgeAdapter: NEW_ADAPTER,
chainIds: getChainsToReceive()
});

return bridgeAdapterConfig;
return bridgeAdapterConfig;
} else {
return new ICrossChainReceiver.ReceiverBridgeAdapterConfigInput[](0);
}
}

/// @inheritdoc IBaseForwarderAdaptersUpdate
Expand Down
112 changes: 90 additions & 22 deletions tests/adi/SimpleOneToManyAdapterUpdatePayloadTest.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,24 @@ pragma solidity ^0.8.0;
import {SimpleOneToManyAdapterUpdate} from '../../src/adi/SimpleOneToManyAdapterUpdate.sol';
import {GovernanceV3Polygon} from 'aave-address-book/GovernanceV3Polygon.sol';
import {GovernanceV3Ethereum} from 'aave-address-book/GovernanceV3Ethereum.sol';
import {ChainIds} from '../../src/ChainIds.sol';
import 'forge-std/Test.sol';
import '../../src/adi/test/ADITestBase.sol';
import {MockAdapterDeploymentHelper} from './mocks/AdaptersByteCode.sol';

contract SimpleOneToManyAdapterUpdatePayload is
SimpleOneToManyAdapterUpdate(
SimpleOneToManyAdapterUpdate.ConstructorInput({
ccc: GovernanceV3Polygon.CROSS_CHAIN_CONTROLLER,
newAdapter: 0x7FAE7765abB4c8f778d57337bB720d0BC53057e3,
adapterToRemove: 0xDA4B6024aA06f7565BBcAaD9B8bE24C3c229AAb5
})
contract SimpleOneToManyAdapterUpdatePayload is SimpleOneToManyAdapterUpdate {
constructor(
address crossChainController,
address newAdapter
)
{
SimpleOneToManyAdapterUpdate(
SimpleOneToManyAdapterUpdate.ConstructorInput({
ccc: crossChainController,
adapterToRemove: address(0),
newAdapter: newAdapter
})
)
{}

function getChainsToReceive() public pure override returns (uint256[] memory) {
uint256[] memory chains = new uint256[](1);
chains[0] = ChainIds.MAINNET;
Expand All @@ -38,18 +43,24 @@ contract SimpleOneToManyAdapterUpdatePayload is
}
}

contract SimpleOneToManyAdapterUpdateEthereumPayload is
SimpleOneToManyAdapterUpdate(
SimpleOneToManyAdapterUpdate.ConstructorInput({
ccc: GovernanceV3Ethereum.CROSS_CHAIN_CONTROLLER,
newAdapter: 0x8410d9BD353b420ebA8C48ff1B0518426C280FCC, // POLYGON native bridge adapter
adapterToRemove: 0xb13712De579E1f9943502FFCf72eab6ec348cF79 // POLYGON
})
contract SimpleOneToManyAdapterUpdateEthereumPayload is SimpleOneToManyAdapterUpdate {
constructor(
address crossChainController,
address newAdapter
)
{
SimpleOneToManyAdapterUpdate(
SimpleOneToManyAdapterUpdate.ConstructorInput({
ccc: crossChainController,
adapterToRemove: address(0),
newAdapter: newAdapter
})
)
{}

function getChainsToReceive() public pure override returns (uint256[] memory) {
uint256[] memory chains = new uint256[](1);
uint256[] memory chains = new uint256[](2);
chains[0] = ChainIds.POLYGON;
chains[1] = ChainIds.AVALANCHE;
return chains;
}
}
Expand All @@ -59,20 +70,77 @@ contract SimpleOneToManyAdapterUpdatePayloadTest is ADITestBase {
SimpleOneToManyAdapterUpdatePayload public payload;

function setUp() public {
vm.createSelectFork(vm.rpcUrl('polygon'), 55428042);
payload = new SimpleOneToManyAdapterUpdatePayload();
vm.createSelectFork(vm.rpcUrl('polygon'), 56680671);
// create payload constructor args
IBaseAdapter.TrustedRemotesConfig[]
memory trustedRemotes = new IBaseAdapter.TrustedRemotesConfig[](1);
trustedRemotes[0] = IBaseAdapter.TrustedRemotesConfig({
originChainId: ChainIds.MAINNET,
originForwarder: GovernanceV3Ethereum.CROSS_CHAIN_CONTROLLER
});

MockAdapterDeploymentHelper.MockAdapterArgs memory args = MockAdapterDeploymentHelper
.MockAdapterArgs({
baseArgs: MockAdapterDeploymentHelper.BaseAdapterArgs({
crossChainController: GovernanceV3Polygon.CROSS_CHAIN_CONTROLLER,
providerGasLimit: 0,
trustedRemotes: trustedRemotes,
isTestnet: false
}),
mockEndpoint: 0x1a44076050125825900e736c501f859c50fE728c
});

// deploy adapter
address newAdapter = GovV3Helpers.deployDeterministic(
MockAdapterDeploymentHelper.getAdapterCode(args)
);
// deploy payload
payload = new SimpleOneToManyAdapterUpdatePayload(
GovernanceV3Polygon.CROSS_CHAIN_CONTROLLER,
newAdapter
);
}

function getDestinationPayloadsByChain()
public
view
pure
override
returns (DestinationPayload[] memory)
{
DestinationPayload[] memory destinationPayload = new DestinationPayload[](1);

IBaseAdapter.TrustedRemotesConfig[]
memory trustedRemotes = new IBaseAdapter.TrustedRemotesConfig[](2);
trustedRemotes[0] = IBaseAdapter.TrustedRemotesConfig({
originChainId: ChainIds.POLYGON,
originForwarder: GovernanceV3Polygon.CROSS_CHAIN_CONTROLLER
});
trustedRemotes[1] = IBaseAdapter.TrustedRemotesConfig({
originChainId: ChainIds.AVALANCHE,
originForwarder: GovernanceV3Avalanche.CROSS_CHAIN_CONTROLLER
});

MockAdapterDeploymentHelper.MockAdapterArgs memory args = MockAdapterDeploymentHelper
.MockAdapterArgs({
baseArgs: MockAdapterDeploymentHelper.BaseAdapterArgs({
crossChainController: GovernanceV3Ethereum.CROSS_CHAIN_CONTROLLER,
providerGasLimit: 0,
trustedRemotes: trustedRemotes,
isTestnet: false
}),
mockEndpoint: 0x1a44076050125825900e736c501f859c50fE728c
});

bytes memory adapterCode = MockAdapterDeploymentHelper.getAdapterCode(args);

address newAdapter = GovV3Helpers.predictDeterministicAddress(adapterCode);

destinationPayload[0] = DestinationPayload({
chainId: ChainIds.MAINNET,
payloadCode: type(SimpleOneToManyAdapterUpdateEthereumPayload).creationCode
payloadCode: abi.encodePacked(
type(SimpleOneToManyAdapterUpdateEthereumPayload).creationCode,
abi.encode(GovernanceV3Ethereum.CROSS_CHAIN_CONTROLLER, newAdapter)
)
});

return destinationPayload;
Expand Down
Loading

1 comment on commit b645891

@github-actions
Copy link
Contributor

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 (35356b0 2024-06-18T00:17:52.470375440Z)
Build log
Compiling 288 files with Solc 0.8.18
Solc 0.8.18 finished in 80.53s
Compiler run successful with warnings:
Warning (5667): Unused function parameter. Remove or comment out the variable name to silence this warning.
   --> src/adi/test/ADITestBase.sol:151:5:
    |
151 |     address payload,
    |     ^^^^^^^^^^^^^^^

Warning (5667): Unused function parameter. Remove or comment out the variable name to silence this warning.
   --> src/adi/test/ADITestBase.sol:152:5:
    |
152 |     address crossChainController,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

| Contract                                    | Size (B) | Margin (B) |
|---------------------------------------------|----------|------------|
| AaveGovernanceV2                            |       86 |     24,490 |
| AavePolEthERC20Bridge                       |    4,186 |     20,390 |
| AavePolEthPlasmaBridge                      |    3,632 |     20,944 |
| AaveSafetyModule                            |       86 |     24,490 |
| AaveSwapper                                 |    5,613 |     18,963 |
| AaveV1                                      |       86 |     24,490 |
| AaveV2Avalanche                             |       86 |     24,490 |
| AaveV2AvalancheAssets                       |       86 |     24,490 |
| AaveV2ConfigEngine                          |    3,180 |     21,396 |
| AaveV2Ethereum                              |       86 |     24,490 |
| AaveV2EthereumAMM                           |       86 |     24,490 |
| AaveV2EthereumAMMAssets                     |       86 |     24,490 |
| AaveV2EthereumArc                           |       86 |     24,490 |
| AaveV2EthereumArcAssets                     |       86 |     24,490 |
| AaveV2EthereumAssets                        |       86 |     24,490 |
| AaveV2EthereumRatesUpdate                   |    1,512 |     23,064 |
| AaveV2Fuji                                  |       86 |     24,490 |
| AaveV2FujiAssets                            |       86 |     24,490 |
| AaveV2Polygon                               |       86 |     24,490 |
| AaveV2PolygonAssets                         |       86 |     24,490 |
| AaveV3Arbitrum                              |       86 |     24,490 |
| AaveV3ArbitrumAssets                        |       86 |     24,490 |
| AaveV3ArbitrumEModes                        |       86 |     24,490 |
| AaveV3ArbitrumRatesUpdates070322            |    4,674 |     19,902 |
| AaveV3ArbitrumSepolia                       |       86 |     24,490 |
| AaveV3ArbitrumSepoliaAssets                 |       86 |     24,490 |
| AaveV3ArbitrumSepoliaEModes                 |       86 |     24,490 |
| AaveV3Avalanche                             |       86 |     24,490 |
| AaveV3AvalancheAssets                       |       86 |     24,490 |
| AaveV3AvalancheCollateralUpdate             |    3,408 |     21,168 |
| AaveV3AvalancheCollateralUpdateCorrectBonus |    3,408 |     21,168 |
| AaveV3AvalancheCollateralUpdateNoChange     |    3,428 |     21,148 |
| AaveV3AvalancheCollateralUpdateWrongBonus   |    3,408 |     21,168 |
| AaveV3AvalancheEModeCategoryUpdateEdgeBonus |    3,379 |     21,197 |
| AaveV3AvalancheEModeCategoryUpdateNoChange  |    3,443 |     21,133 |
| AaveV3AvalancheEModes                       |       86 |     24,490 |
| AaveV3AvalancheRatesUpdates070322           |    5,115 |     19,461 |
| AaveV3BNB                                   |       86 |     24,490 |
| AaveV3BNBAssets                             |       86 |     24,490 |
| AaveV3BNBEModes                             |       86 |     24,490 |
| AaveV3Base                                  |       86 |     24,490 |
| AaveV3BaseAssets                            |       86 |     24,490 |
| AaveV3BaseEModes                            |       86 |     24,490 |
| AaveV3BaseSepolia                           |       86 |     24,490 |
| AaveV3BaseSepoliaAssets                     |       86 |     24,490 |
| AaveV3BaseSepoliaEModes                     |       86 |     24,490 |
| AaveV3ConfigEngine                          |    8,273 |     16,303 |
| AaveV3Ethereum                              |       86 |     24,490 |
| AaveV3EthereumAssetEModeUpdate              |    3,257 |     21,319 |
| AaveV3EthereumAssets                        |       86 |     24,490 |
| AaveV3EthereumEModes                        |       86 |     24,490 |
| AaveV3EthereumMockCapUpdate                 |    3,335 |     21,241 |
| AaveV3EthereumMockCustomListing             |    4,166 |     20,410 |
| AaveV3Fantom                                |       86 |     24,490 |
| AaveV3FantomAssets                          |       86 |     24,490 |
| AaveV3FantomEModes                          |       86 |     24,490 |
| AaveV3FantomTestnet                         |       86 |     24,490 |
| AaveV3FantomTestnetAssets                   |       86 |     24,490 |
| AaveV3FantomTestnetEModes                   |       86 |     24,490 |
| AaveV3Fuji                                  |       86 |     24,490 |
| AaveV3FujiAssets                            |       86 |     24,490 |
| AaveV3FujiEModes                            |       86 |     24,490 |
| AaveV3Gnosis                                |       86 |     24,490 |
| AaveV3GnosisAssets                          |       86 |     24,490 |
| AaveV3GnosisEModes                          |       86 |     24,490 |
| AaveV3Harmony                               |       86 |     24,490 |
| AaveV3HarmonyAssets                         |       86 |     24,490 |
| AaveV3HarmonyEModes                         |       86 |     24,490 |
| AaveV3Metis                                 |       86 |     24,490 |
| AaveV3MetisAssets                           |       86 |     24,490 |
| AaveV3MetisEModes                           |       86 |     24,490 |
| AaveV3Optimism                              |       86 |     24,490 |
| AaveV3OptimismAssets                        |       86 |     24,490 |
| AaveV3OptimismEModes                        |       86 |     24,490 |
| AaveV3OptimismMockRatesUpdate               |    3,669 |     20,907 |
| AaveV3OptimismRatesUpdates070322            |    4,377 |     20,199 |
| AaveV3OptimismSepolia                       |       86 |     24,490 |
| AaveV3OptimismSepoliaAssets                 |       86 |     24,490 |
| AaveV3OptimismSepoliaEModes                 |       86 |     24,490 |
| AaveV3Polygon                               |       86 |     24,490 |
| AaveV3PolygonAssets                         |       86 |     24,490 |
| AaveV3PolygonBorrowUpdate                   |    3,428 |     21,148 |
| AaveV3PolygonBorrowUpdateNoChange           |    3,450 |     21,126 |
| AaveV3PolygonEModeCategoryUpdate            |    3,377 |     21,199 |
| AaveV3PolygonEModes                         |       86 |     24,490 |
| AaveV3PolygonMockListing                    |    3,986 |     20,590 |
| AaveV3PolygonPriceFeedUpdate                |    3,276 |     21,300 |
| AaveV3PolygonRatesUpdates070322             |    5,730 |     18,846 |
| AaveV3PolygonZkEvm                          |       86 |     24,490 |
| AaveV3PolygonZkEvmAssets                    |       86 |     24,490 |
| AaveV3PolygonZkEvmEModes                    |       86 |     24,490 |
| AaveV3Scroll                                |       86 |     24,490 |
| AaveV3ScrollAssets                          |       86 |     24,490 |
| AaveV3ScrollEModes                          |       86 |     24,490 |
| AaveV3ScrollSepolia                         |       86 |     24,490 |
| AaveV3ScrollSepoliaAssets                   |       86 |     24,490 |
| AaveV3ScrollSepoliaEModes                   |       86 |     24,490 |
| AaveV3Sepolia                               |       86 |     24,490 |
| AaveV3SepoliaAssets                         |       86 |     24,490 |
| AaveV3SepoliaEModes                         |       86 |     24,490 |
| Address                                     |       86 |     24,490 |
| BorrowEngine                                |    2,922 |     21,654 |
| CapsEngine                                  |    1,256 |     23,320 |
| CapsPlusRiskSteward                         |    2,607 |     21,969 |
| CapsPlusRiskStewardErrors                   |      556 |     24,020 |
| ChainHelpers                                |       86 |     24,490 |
| ChainIds                                    |       86 |     24,490 |
| CollateralEngine                            |    2,836 |     21,740 |
| ConfiguratorInputTypes                      |       86 |     24,490 |
| Create2Utils                                |      164 |     24,412 |
| DataTypes                                   |       86 |     24,490 |
| DefaultReserveInterestRateStrategy          |    3,485 |     21,091 |
| DeployEngineArbLib                          |       86 |     24,490 |
| DeployEngineAvaLib                          |       86 |     24,490 |
| DeployEngineBaseLib                         |       86 |     24,490 |
| DeployEngineBnbLib                          |       86 |     24,490 |
| DeployEngineEthLib                          |       86 |     24,490 |
| DeployEngineGnoLib                          |       86 |     24,490 |
| DeployEngineMetLib                          |       86 |     24,490 |
| DeployEngineOptLib                          |       86 |     24,490 |
| DeployEnginePolLib                          |       86 |     24,490 |
| DeployEngineScrollLib                       |       86 |     24,490 |
| DeployEngineZkEvmLib                        |       86 |     24,490 |
| DeployRatesFactoryArbLib                    |       86 |     24,490 |
| DeployRatesFactoryAvaLib                    |       86 |     24,490 |
| DeployRatesFactoryBasLib                    |       86 |     24,490 |
| DeployRatesFactoryBnbLib                    |       86 |     24,490 |
| DeployRatesFactoryEthLib                    |       86 |     24,490 |
| DeployRatesFactoryGnoLib                    |       86 |     24,490 |
| DeployRatesFactoryLib                       |       86 |     24,490 |
| DeployRatesFactoryMetLib                    |       86 |     24,490 |
| DeployRatesFactoryOptLib                    |       86 |     24,490 |
| DeployRatesFactoryPolLib                    |       86 |     24,490 |
| DeployRatesFactoryScrollLib                 |       86 |     24,490 |
| DeployRatesFactoryZkEvmLib                  |       86 |     24,490 |
| DeployV2EngineAvaLib                        |       86 |     24,490 |
| DeployV2EngineEthAMMLib                     |       86 |     24,490 |
| DeployV2EngineEthLib                        |       86 |     24,490 |
| DeployV2EnginePolLib                        |       86 |     24,490 |
| DeployV2RatesFactoryAvaLib                  |       86 |     24,490 |
| DeployV2RatesFactoryEthAMMLib               |       86 |     24,490 |
| DeployV2RatesFactoryEthLib                  |       86 |     24,490 |
| DeployV2RatesFactoryLib                     |       86 |     24,490 |
| DeployV2RatesFactoryPolLib                  |       86 |     24,490 |
| EModeEngine                                 |    4,404 |     20,172 |
| ERC1967Proxy                                |      699 |     23,877 |
| EngineFlags                                 |       86 |     24,490 |
| EnumerableSet                               |       86 |     24,490 |
| EnvelopeUtils                               |       86 |     24,490 |
| Errors                                      |    4,714 |     19,862 |
| FreezingSteward                             |      715 |     23,861 |
| GovHelpers                                  |       86 |     24,490 |
| GovV3Helpers                                |    2,622 |     21,954 |
| GovV3StorageHelpers                         |       86 |     24,490 |
| GovernanceV3Arbitrum                        |       86 |     24,490 |
| GovernanceV3Avalanche                       |       86 |     24,490 |
| GovernanceV3BNB                             |       86 |     24,490 |
| GovernanceV3Base                            |       86 |     24,490 |
| GovernanceV3Ethereum                        |       86 |     24,490 |
| GovernanceV3Fuji                            |       86 |     24,490 |
| GovernanceV3Gnosis                          |       86 |     24,490 |
| GovernanceV3Metis                           |       86 |     24,490 |
| GovernanceV3Optimism                        |       86 |     24,490 |
| GovernanceV3Polygon                         |       86 |     24,490 |
| GovernanceV3PolygonZkEvm                    |       86 |     24,490 |
| GovernanceV3Scroll                          |       86 |     24,490 |
| IpfsUtils                                   |       86 |     24,490 |
| ListingEngine                               |    8,792 |     15,784 |
| MiscArbitrum                                |       86 |     24,490 |
| MiscArbitrumSepolia                         |       86 |     24,490 |
| MiscAvalanche                               |       86 |     24,490 |
| MiscBNB                                     |       86 |     24,490 |
| MiscBase                                    |       86 |     24,490 |
| MiscBaseSepolia                             |       86 |     24,490 |
| MiscEthereum                                |       86 |     24,490 |
| MiscFantom                                  |       86 |     24,490 |
| MiscFuji                                    |       86 |     24,490 |
| MiscGnosis                                  |       86 |     24,490 |
| MiscMetis                                   |       86 |     24,490 |
| MiscOptimism                                |       86 |     24,490 |
| MiscOptimismSepolia                         |       86 |     24,490 |
| MiscPolygon                                 |       86 |     24,490 |
| MiscPolygonZkEvm                            |       86 |     24,490 |
| MiscScroll                                  |       86 |     24,490 |
| MiscSepolia                                 |       86 |     24,490 |
| MockAdapter                                 |      970 |     23,606 |
| MockAdapterDeploymentHelper                 |       86 |     24,490 |
| MockExecutor                                |      437 |     24,139 |
| MyPayload                                   |    1,530 |     23,046 |
| PayloadWithEmit                             |      150 |     24,426 |
| PayloadsControllerUtils                     |       86 |     24,490 |
| PercentageMath                              |       86 |     24,490 |
| PriceFeedEngine                             |    1,657 |     22,919 |
| ProxyAdmin                                  |    1,683 |     22,893 |
| ProxyHelpers                                |       86 |     24,490 |
| RateEngine                                  |    3,596 |     20,980 |
| ReserveConfiguration                        |      171 |     24,405 |
| SafeCast                                    |       86 |     24,490 |
| SafeERC20                                   |       86 |     24,490 |
| SafeMath                                    |       86 |     24,490 |
| SimpleOneToManyAdapterUpdateEthereumPayload |    3,042 |     21,534 |
| SimpleOneToManyAdapterUpdatePayload         |    3,125 |     21,451 |
| StorageHelpers                              |       86 |     24,490 |
| StorageSlot                                 |       86 |     24,490 |
| StrategicAssetsManager                      |    9,691 |     14,885 |
| TestNetChainIds                             |       86 |     24,490 |
| TransactionUtils                            |       86 |     24,490 |
| TransparentProxyFactory                     |    7,505 |     17,071 |
| TransparentUpgradeableProxy                 |    2,096 |     22,480 |
| V2RateStrategyFactory                       |    8,842 |     15,734 |
| V3RateStrategyFactory                       |    9,279 |     15,297 |
| WadRayMath                                  |       86 |     24,490 |
Test success 🌈
No files changed, compilation skipped

Ran 3 tests for tests/bridges/AavePolEthERC20BridgeTest.t.sol:BridgeTest
[PASS] test_revertsIf_invalidChain() (gas: 8591)
[PASS] test_revertsIf_notOwner() (gas: 66692)
[PASS] test_successful() (gas: 59513)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.69s (930.46ms CPU time)

Ran 2 tests for tests/bridges/AavePolEthERC20BridgeTest.t.sol:EmergencyTokenTransfer
[PASS] test_revertsIf_invalidCaller() (gas: 13140)
[PASS] test_successful_governanceCaller() (gas: 59303)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 552.31ms (383.16ms CPU time)

Ran 2 tests for tests/bridges/AavePolEthERC20BridgeTest.t.sol:ExitMultipleTest
[PASS] test_revertsIf_invalidChain() (gas: 11692)
[PASS] test_revertsIf_proofAlreadyProcessed() (gas: 40005)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 466.84ms (289.94ms CPU time)

Ran 2 tests for tests/bridges/AavePolEthERC20BridgeTest.t.sol:ExitTest
[PASS] test_revertsIf_invalidChain() (gas: 11198)
[PASS] test_revertsIf_proofAlreadyProcessed() (gas: 39281)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 182.04ms (726.41µs CPU time)

Ran 3 tests for tests/asset-manager/TestVeTokenManager.t.sol:BuyBoostTest
[PASS] test_revertsIf_estimatedFeeExceedsMaxFee() (gas: 51608)
[PASS] test_revertsIf_invalidCaller() (gas: 16493)
[PASS] test_successful() (gas: 544176)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 4.09s (3.64s CPU time)

Ran 1 test for tests/bridges/AavePolEthERC20BridgeTest.t.sol:ForkedBridgeTests
[PASS] test_successful() (gas: 400352)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 2.13s (2.13s CPU time)

Ran 3 tests for tests/bridges/AavePolEthERC20BridgeTest.t.sol:IsTokenMapped
[PASS] test_revertsIf_invalidChain() (gas: 10949)
[PASS] test_successful_returnsFalse() (gas: 18658)
[PASS] test_successful_returnsTrue() (gas: 17018)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 351.96ms (151.95ms CPU time)

Ran 3 tests for tests/asset-manager/TestVeTokenManager.t.sol:Claim
[PASS] test_revertsIf_invalidCaller() (gas: 12810)
[PASS] test_revertsIf_noRewardsWereEarned() (gas: 164020)
[PASS] test_successful() (gas: 1208793)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.46s (1.36s CPU time)

Ran 2 tests for tests/bridges/AavePolEthERC20BridgeTest.t.sol:ReceiveEther
[PASS] test_revertsIf_invalidChain() (gas: 18950)
[PASS] test_successful_forwardsETH() (gas: 29826)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 472.40ms (300.08ms CPU time)

Ran 2 tests for tests/asset-manager/TestVeTokenManager.t.sol:ClearDelegationSnapshot
[PASS] test_revertsIf_invalidCaller() (gas: 12801)
[PASS] test_successful() (gas: 100175)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 319.97ms (233.90ms CPU time)

Ran 2 tests for tests/bridges/AavePolEthERC20BridgeTest.t.sol:TransferOwnership
[PASS] test_revertsIf_invalidCaller() (gas: 14631)
[PASS] test_successful() (gas: 13464)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 234.82ms (482.09µs CPU time)

Ran 5 tests for tests/asset-manager/TestVeTokenManager.t.sol:LockTest
[PASS] test_revertsIf_invalidCaller() (gas: 12834)
[PASS] test_revertsIf_nothingToLockOrRelock() (gas: 119271)
[PASS] test_successful_increaseBalance() (gas: 833681)
[PASS] test_successful_increaseUnlockTime() (gas: 864675)
[PASS] test_successful_locksFirstTime() (gas: 551390)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 420.57ms (348.05ms CPU time)

Ran 2 tests for tests/asset-manager/TestVeTokenManager.t.sol:RemoveBoostOfferTest
[PASS] test_revertsIf_invalidCaller() (gas: 12780)
[PASS] test_successful() (gas: 149611)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 85.66ms (960.42µs CPU time)

Ran 2 tests for tests/asset-manager/TestVeTokenManager.t.sol:SellBoostTest
[PASS] test_revertsIf_invalidCaller() (gas: 13541)
[PASS] test_successful() (gas: 164938)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 82.87ms (652.81µs CPU time)

Ran 2 tests for tests/asset-manager/TestVeTokenManager.t.sol:SetDelegationSnapshot
[PASS] test_revertsIf_invalidCaller() (gas: 14537)
[PASS] test_successful() (gas: 101663)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 75.46ms (495.03µs CPU time)

Ran 2 tests for tests/asset-manager/TestVeTokenManager.t.sol:SetLockDurationTest
[PASS] test_revertsIf_invalidCaller() (gas: 12828)
[PASS] test_successful() (gas: 35682)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 80.67ms (161.12µs CPU time)

Ran 2 tests for tests/asset-manager/TestVeTokenManager.t.sol:SetSpaceIdTest
[PASS] test_revertsIf_invalidCaller() (gas: 12769)
[PASS] test_successful() (gas: 101468)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 94.91ms (268.15µs CPU time)

Ran 2 tests for tests/bridges/AavePolEthERC20BridgeTest.t.sol:WithdrawToCollectorTest
[PASS] test_revertsIf_invalidChain() (gas: 10888)
[PASS] test_successful() (gas: 59260)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 938.71ms (774.95ms CPU time)

Ran 3 tests for tests/bridges/polygon/AavePolEthPlasmaBridge.t.sol:BridgeTest
[PASS] test_revertsIf_invalidChain() (gas: 8500)
[PASS] test_revertsIf_notOwner() (gas: 22910)
[PASS] test_successful() (gas: 39988)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 801.28ms (285.29ms CPU time)

Ran 2 tests for tests/bridges/polygon/AavePolEthPlasmaBridge.t.sol:EmergencyTokenTransfer
[PASS] test_revertsIf_invalidCaller() (gas: 13148)
[PASS] test_successful_governanceCaller() (gas: 45424)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 588.43ms (377.73ms CPU time)

Ran 2 tests for tests/bridges/polygon/AavePolEthPlasmaBridge.t.sol:ExitTest
[PASS] test_revertsIf_invalidChain() (gas: 11220)
[PASS] test_revertsIf_proofAlreadyProcessed() (gas: 169813)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.36s (1.21s CPU time)

Ran 1 test for tests/bridges/polygon/AavePolEthPlasmaBridge.t.sol:ForkedBridgeTests
[PASS] test_successful() (gas: 512002)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 3.36s (3.36s CPU time)

Ran 2 tests for tests/bridges/polygon/AavePolEthPlasmaBridge.t.sol:TransferOwnership
[PASS] test_revertsIf_invalidCaller() (gas: 14681)
[PASS] test_successful() (gas: 13425)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 186.31ms (369.67µs CPU time)

Ran 7 tests for tests/swaps/AaveSwapperTest.t.sol:GetExpectedOut
[PASS] test_aaveToUsdc() (gas: 88295)
[PASS] test_aaveToUsdc_withEthBasedOracles() (gas: 107379)
[PASS] test_balTo80BAL20WETH() (gas: 83708)
[PASS] test_ethToBal() (gas: 69531)
[PASS] test_ethToDai() (gas: 73712)
[PASS] test_revertsIf_fromOracleIsAddressZero() (gas: 9238)
[PASS] test_revertsIf_toOracleIsAddressZero() (gas: 9242)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 6.67s (6.34s CPU time)

Ran 1 test for tests/swaps/AaveSwapperTest.t.sol:Initialize
[PASS] test_revertsIf_alreadyInitialized() (gas: 10894)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 78.85ms (62.01µs CPU time)

Ran 2 tests for tests/swaps/AaveSwapperTest.t.sol:RemoveGuardian
[PASS] test_revertsIf_invalidCaller() (gas: 12924)
[PASS] test_successful() (gas: 16184)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 88.80ms (192.26µs CPU time)

Ran 2 tests for tests/swaps/AaveSwapperTest.t.sol:TransferOwnership
[PASS] test_revertsIf_invalidCaller() (gas: 12352)
[PASS] test_successful() (gas: 18297)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 81.64ms (348.83µs CPU time)

Ran 2 tests for tests/swaps/AaveSwapperTest.t.sol:UpdateGuardian
[PASS] test_revertsIf_invalidCaller() (gas: 14546)
[PASS] test_successful() (gas: 22582)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 88.60ms (363.22µs CPU time)

Ran 2 tests for tests/bridges/polygon/AavePolEthPlasmaBridge.t.sol:WithdrawToCollectorTest
[PASS] test_revertsIf_invalidChain() (gas: 10763)
[PASS] test_successful() (gas: 42739)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 561.74ms (368.81ms CPU time)

Ran 6 tests for tests/swaps/AaveSwapperTest.t.sol:AaveSwapperSwap
[PASS] test_revertsIf_amountIsZero() (gas: 12452)
[PASS] test_revertsIf_fromTokenIsZeroAddress() (gas: 12435)
[PASS] test_revertsIf_invalidCaller() (gas: 11669)
[PASS] test_revertsIf_invalidRecipient() (gas: 12496)
[PASS] test_revertsIf_toTokenIsZeroAddress() (gas: 12373)
[PASS] test_successful() (gas: 384499)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 651.11ms (561.95ms CPU time)

Ran 3 tests for tests/swaps/AaveSwapperTest.t.sol:CancelSwap
[PASS] test_revertsIf_invalidCaller() (gas: 15418)
[PASS] test_revertsIf_noMatchingTrade() (gas: 389583)
[PASS] test_successful() (gas: 428095)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 343.38ms (158.21ms CPU time)

Ran 2 tests for tests/swaps/AaveSwapperTest.t.sol:EmergencyTokenTransfer
[PASS] test_revertsIf_invalidCaller() (gas: 10861)
[PASS] test_successful_governanceCaller() (gas: 59055)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 157.27ms (74.02ms CPU time)

Ran 2 tests for tests/ProxyHelpersTest.t.sol:ProxyHelpersTest
[PASS] testAdmin() (gas: 3274)
[PASS] testImplementation() (gas: 3219)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 462.51ms (284.83ms CPU time)

Ran 3 tests for tests/asset-manager/TestVeTokenManager.t.sol:UnlockTest
[PASS] test_revertsIf_invalidCaller() (gas: 12790)
[PASS] test_revertsIf_unlockTimeHasNotPassed() (gas: 564623)
[PASS] test_successful_unlock() (gas: 5347634)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 23.91s (23.47s CPU time)

Ran 3 tests for tests/asset-manager/TestVeTokenManager.t.sol:UpdateBoostOfferTest
[PASS] test_revertsIf_invalidCaller() (gas: 13574)
[PASS] test_revertsIf_noOfferExists() (gas: 22570)
[PASS] test_successful() (gas: 181149)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 147.77ms (1.04ms CPU time)

Ran 1 test for tests/adi/SimpleOneToManyAdapterUpdatePayloadTest.t.sol:SimpleOneToManyAdapterUpdatePayloadTest
[PASS] test_defaultTest() (gas: 1652824)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 8.92s (8.48s CPU time)

Ran 4 tests for tests/asset-manager/TestLSDLiquidityGaugeManager.t.sol:SetGaugeController
[PASS] test_revertsIf_invalidCaller() (gas: 12872)
[PASS] test_revertsIf_invalidZeroAddress() (gas: 11485)
[PASS] test_revertsIf_settingToSameController() (gas: 36517)
[PASS] test_successful() (gas: 39567)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 78.41ms (359.74µs CPU time)

Ran 2 tests for tests/asset-manager/TestVlTokenManager.t.sol:ClaimVLAURARewardsTest
[PASS] test_revertsIf_invalidCaller() (gas: 12834)
[PASS] test_successful() (gas: 371800)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.83s (1.75s CPU time)

Ran 3 tests for tests/asset-manager/TestVlTokenManager.t.sol:DelegateVLAURATest
[PASS] test_revertsIf_invalidCaller() (gas: 14551)
[PASS] test_revertsIf_nothingToDelegate() (gas: 23759)
[PASS] test_revertsIf_successful() (gas: 411312)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 337.23ms (249.71ms CPU time)

Ran 2 tests for tests/asset-manager/TestVlTokenManager.t.sol:EmergencyWithdrawVLAURA
[PASS] test_revertsIf_invalidCaller() (gas: 12811)
[PASS] test_successful() (gas: 407633)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 271.58ms (150.53ms CPU time)

Ran 3 tests for tests/asset-manager/TestVlTokenManager.t.sol:LockVLAURATest
[PASS] test_revertsIf_insufficientBalance() (gas: 93448)
[PASS] test_revertsIf_invalidCaller() (gas: 12905)
[PASS] test_successful() (gas: 334051)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 84.05ms (1.81ms CPU time)

Ran 3 tests for tests/asset-manager/TestLSDLiquidityGaugeManager.t.sol:VoteForGaugeWeight
[PASS] test_revertsIf_gaugeIsZeroAddress() (gas: 11597)
[PASS] test_revertsIf_invalidCaller() (gas: 12972)
[PASS] test_successful() (gas: 829941)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 3.27s (3.17s CPU time)

Ran 1 test for tests/asset-manager/TestStrategicAssetsManager.t.sol:Initialize
[PASS] test_revertsIf_alreadyInitialized() (gas: 10916)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 82.79ms (72.88µs CPU time)

Ran 2 tests for tests/asset-manager/TestStrategicAssetsManager.t.sol:RemoveStrategicAssetManager
[PASS] test_revertsIf_invalidCaller() (gas: 12902)
[PASS] test_successful() (gas: 16362)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 80.41ms (141.94µs CPU time)

Ran 2 tests for tests/asset-manager/TestStrategicAssetsManager.t.sol:SetStrategicAssetManager
[PASS] test_revertsIf_invalidCaller() (gas: 14524)
[PASS] test_successful() (gas: 22760)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 103.37ms (295.67µs CPU time)

Ran 4 tests for tests/asset-manager/TestVlTokenManager.t.sol:RelockVLAURATest
[PASS] test_revertsIf_invalidCaller() (gas: 12788)
[PASS] test_revertsIf_noExpiredLocks() (gas: 344487)
[PASS] test_revertsIf_noLocks() (gas: 65175)
[PASS] test_successful() (gas: 732818)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 1.52s (1.44s CPU time)

Ran 2 tests for tests/asset-manager/TestStrategicAssetsManager.t.sol:TransferOwnership
[PASS] test_revertsIf_invalidCaller() (gas: 12308)
[PASS] test_successful() (gas: 18232)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 80.85ms (568.67µs CPU time)

Ran 4 tests for tests/asset-manager/TestVlTokenManager.t.sol:UnlockVLAURATest
[PASS] test_revertsIf_invalidCaller() (gas: 12813)
[PASS] test_revertsIf_noExpiredLocks() (gas: 344513)
[PASS] test_revertsIf_noLocks() (gas: 65208)
[PASS] test_successful() (gas: 369544)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 27.58ms (4.63ms CPU time)

Ran 3 tests for tests/asset-manager/TestStrategicAssetsManager.t.sol:WithdrawERC20
[PASS] test_revertsIf_insufficientBalance() (gas: 18086)
[PASS] test_revertsIf_invalidCaller() (gas: 10801)
[PASS] test_successful() (gas: 216863)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 153.85ms (80.13ms CPU time)

Ran 2 tests for tests/v2-config-engine/V2RateStrategyFactory.t.sol:V2RateStrategyFactoryTest
[PASS] testCreateStrategies() (gas: 850782)
[PASS] testMultipleCreateStrategies() (gas: 850436)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 2.04s (1.74s CPU time)

Ran 2 tests for tests/v3-config-engine/V3RateStrategyFactory.t.sol:V3RateStrategyFactoryTest
[PASS] testCreateStrategies() (gas: 714607)
[PASS] test_multipleCreateStrategies() (gas: 714585)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 469.99ms (220.20ms CPU time)

Ran 2 tests for tests/ProtocolV3TestBase.t.sol:ProtocolV3TestE2ETestAsset
[PASS] test_e2eTestAssetMAI() (gas: 1875515)
Logs:
  E2E: Collateral DAI, TestAsset MAI
  SUPPLY: DAI, Amount: 100000000000000000000000
  SUPPLY: MAI, Amount: 1008550074022028407809
  WITHDRAW: MAI, Amount: 504275037011014203904
  WITHDRAW: MAI, Amount: 504275037011014203906
  BORROW: MAI, Amount 1008550074022028407809, Stable: false
  REPAY: MAI, Amount: 1008550074022028407809

[PASS] test_e2eTestAssetUSDC() (gas: 2554928)
Logs:
  E2E: Collateral DAI, TestAsset USDC
  SUPPLY: DAI, Amount: 100000000000000000000000
  SUPPLY: USDC, Amount: 1000008660
  WITHDRAW: USDC, Amount: 500004330
  WITHDRAW: USDC, Amount: 500004330
  BORROW: USDC, Amount 1000008660, Stable: false
  REPAY: USDC, Amount: 1000008660
  BORROW: USDC, Amount 1000008660, Stable: true
  REPAY: USDC, Amount: 1000008660

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

Ran 2 tests for tests/ProtocolV3TestBase.t.sol:ProtocolV3TestE2ETestAvalancheAll
[PASS] test_deal() (gas: 47771)
[PASS] test_e2e() (gas: 13824151)
Logs:
  E2E: Collateral DAI.e, TestAsset DAI.e
  SUPPLY: DAI.e, Amount: 99906474551977657155806
  SUPPLY: DAI.e, Amount: 999064745519776571558
  WITHDRAW: DAI.e, Amount: 499532372759888285779
  WITHDRAW: DAI.e, Amount: 499532372759888285778
  BORROW: DAI.e, Amount 999064745519776571558, Stable: false
  REPAY: DAI.e, Amount: 999064745519776571558
  E2E: Collateral DAI.e, TestAsset LINK.e
  SUPPLY: DAI.e, Amount: 99906474551977657155806
  SUPPLY: LINK.e, Amount: 63877681904474759372
  WITHDRAW: LINK.e, Amount: 31938840952237379686
  WITHDRAW: LINK.e, Amount: 31938840952237379687
  BORROW: LINK.e, Amount 63877681904474759372, Stable: false
  REPAY: LINK.e, Amount: 63877681904474759372
  E2E: Collateral DAI.e, TestAsset USDC
  SUPPLY: DAI.e, Amount: 99906474551977657155806
  SUPPLY: USDC, Amount: 1000048142
  WITHDRAW: USDC, Amount: 500024071
  WITHDRAW: USDC, Amount: 500024070
  BORROW: USDC, Amount 1000048142, Stable: false
  REPAY: USDC, Amount: 1000048142
  E2E: Collateral DAI.e, TestAsset WBTC.e
  SUPPLY: DAI.e, Amount: 99906474551977657155806
  SUPPLY: WBTC.e, Amount: 2279072
  WITHDRAW: WBTC.e, Amount: 1139536
  WITHDRAW: WBTC.e, Amount: 1139535
  BORROW: WBTC.e, Amount 2279072, Stable: false
  REPAY: WBTC.e, Amount: 2279072
  E2E: Collateral DAI.e, TestAsset WETH.e
  SUPPLY: DAI.e, Amount: 99906474551977657155806
  SUPPLY: WETH.e, Amount: 439512995726389232
  WITHDRAW: WETH.e, Amount: 219756497863194616
  WITHDRAW: WETH.e, Amount: 219756497863194616
  BORROW: WETH.e, Amount 439512995726389232, Stable: false
  REPAY: WETH.e, Amount: 439512995726389232
  E2E: Collateral DAI.e, TestAsset USDt
  SUPPLY: DAI.e, Amount: 99906474551977657155806
  SUPPLY: USDt, Amount: 999760057
  WITHDRAW: USDt, Amount: 499880028
  WITHDRAW: USDt, Amount: 499880029
  BORROW: USDt, Amount 999760057, Stable: false
  REPAY: USDt, Amount: 999760057
  E2E: Collateral DAI.e, TestAsset AAVE.e
  SUPPLY: DAI.e, Amount: 99906474551977657155806
  SUPPLY: AAVE.e, Amount: 10221219906684350739
  WITHDRAW: AAVE.e, Amount: 5110609953342175369
  WITHDRAW: AAVE.e, Amount: 5110609953342175370
  E2E: Collateral DAI.e, TestAsset WAVAX
  SUPPLY: DAI.e, Amount: 99906474551977657155806
  SUPPLY: WAVAX, Amount: 37735849070843716630
  WITHDRAW: WAVAX, Amount: 18867924535421858315
  WITHDRAW: WAVAX, Amount: 18867924535421858315
  BORROW: WAVAX, Amount 37735849070843716630, Stable: false
  REPAY: WAVAX, Amount: 37735849070843716630
  E2E: Collateral DAI.e, TestAsset sAVAX
  SUPPLY: DAI.e, Amount: 99906474551977657155806
  SUPPLY: sAVAX, Amount: 33715148546009590037
  WITHDRAW: sAVAX, Amount: 16857574273004795018
  WITHDRAW: sAVAX, Amount: 16857574273004795019
  E2E: Collateral DAI.e, TestAsset FRAX
  SUPPLY: DAI.e, Amount: 99906474551977657155806
  SUPPLY: FRAX, Amount: 1000000000000000000000
  WITHDRAW: FRAX, Amount: 500000000000000000000
  WITHDRAW: FRAX, Amount: 500000000000000000000
  BORROW: FRAX, Amount 1000000000000000000000, Stable: false
  REPAY: FRAX, Amount: 1000000000000000000000
  E2E: TestAsset MAI SKIPPED
  E2E: Collateral DAI.e, TestAsset BTC.b
  SUPPLY: DAI.e, Amount: 99906474551977657155806
  SUPPLY: BTC.b, Amount: 2279072
  WITHDRAW: BTC.b, Amount: 1139536
  WITHDRAW: BTC.b, Amount: 1139537
  BORROW: BTC.b, Amount 2279072, Stable: false
  REPAY: BTC.b, Amount: 2279072

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

Ran 1 test for tests/ProtocolV3TestBase.t.sol:ProtocolV3TestE2ETestMetisAll
[PASS] test_e2e() (gas: 5570772)
Logs:
  E2E: Collateral m.DAI, TestAsset m.DAI
  SUPPLY: m.DAI, Amount: 99997001089937312779989
  SUPPLY: m.DAI, Amount: 999970010899373127799
  WITHDRAW: m.DAI, Amount: 499985005449686563899
  WITHDRAW: m.DAI, Amount: 499985005449686563901
  BORROW: m.DAI, Amount 999970010899373127799, Stable: false
  REPAY: m.DAI, Amount: 999970010899373127799
  E2E: Collateral m.DAI, TestAsset Metis
  SUPPLY: m.DAI, Amount: 99997001089937312779989
  SUPPLY: Metis, Amount: 11636857213789306770
  WITHDRAW: Metis, Amount: 5818428606894653385
  WITHDRAW: Metis, Amount: 5818428606894653385
  BORROW: Metis, Amount 11636857213789306770, Stable: false
  REPAY: Metis, Amount: 11636857213789306770
  E2E: Collateral m.DAI, TestAsset m.USDC
  SUPPLY: m.DAI, Amount: 99997001089937312779989
  SUPPLY: m.USDC, Amount: 1000018220
  WITHDRAW: m.USDC, Amount: 500009110
  WITHDRAW: m.USDC, Amount: 500009109
  Skip Borrowing: m.USDC, borrow cap fully utilized
  E2E: Collateral m.DAI, TestAsset m.USDT
  SUPPLY: m.DAI, Amount: 99997001089937312779989
  SUPPLY: m.USDT, Amount: 1000340115
  WITHDRAW: m.USDT, Amount: 500170057
  WITHDRAW: m.USDT, Amount: 500170059
  Skip Borrowing: m.USDT, borrow cap fully utilized
  E2E: Collateral m.DAI, TestAsset WETH
  SUPPLY: m.DAI, Amount: 99997001089937312779989
  SUPPLY: WETH, Amount: 435637728812215165
  WITHDRAW: WETH, Amount: 217818864406107582
  WITHDRAW: WETH, Amount: 217818864406107582
  BORROW: WETH, Amount 435637728812215165, Stable: false
  REPAY: WETH, Amount: 435637728812215165

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

Ran 2 tests for tests/ProtocolV2TestBase.t.sol:ProtocolV2TestE2ETestAsset
[PASS] test_defaultTest() (gas: 51738480)
[PASS] test_e2eTestAssetUSDT() (gas: 3329752)
Logs:
  E2E: Collateral DAI, TestAsset USDT
  SUPPLY: DAI, Amount: 198482420985917995751553
  SUPPLY: USDT, Amount: 1988551823
  WITHDRAW: USDT, Amount: 994275911
  WITHDRAW: USDT, Amount: 994275912
  BORROW: USDT, Amount 1988551823, Stable: false
  REPAY: USDT, Amount: 1988551823

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

Ran 1 test for tests/v2-config-engine/AaveV2ConfigEngineTest.t.sol:AaveV2ConfigEngineTest
[PASS] testV2RateStrategiesUpdates() (gas: 180815495)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 112.67s (112.67s CPU time)

Ran 1 test for tests/ProtocolV3TestBase.t.sol:ProtocolV3TestE2ETestAllMainnet
[PASS] test_e2e() (gas: 33605049)
Logs:
  E2E: Collateral WETH, TestAsset WETH
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: WETH, Amount: 301641836516157444
  WITHDRAW: WETH, Amount: 150820918258078722
  WITHDRAW: WETH, Amount: 150820918258078722
  BORROW: WETH, Amount 301641836516157444, Stable: false
  REPAY: WETH, Amount: 301641836516157444
  E2E: Collateral WETH, TestAsset wstETH
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: wstETH, Amount: 259819096458389056
  WITHDRAW: wstETH, Amount: 129909548229194528
  WITHDRAW: wstETH, Amount: 129909548229194528
  BORROW: wstETH, Amount 259819096458389056, Stable: false
  REPAY: wstETH, Amount: 259819096458389056
  E2E: Collateral WETH, TestAsset WBTC
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: WBTC, Amount: 1554641
  WITHDRAW: WBTC, Amount: 777320
  WITHDRAW: WBTC, Amount: 777321
  BORROW: WBTC, Amount 1554641, Stable: false
  REPAY: WBTC, Amount: 1554641
  E2E: Collateral WETH, TestAsset USDC
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: USDC, Amount: 999904829
  WITHDRAW: USDC, Amount: 499952414
  WITHDRAW: USDC, Amount: 499952415
  BORROW: USDC, Amount 999904829, Stable: false
  REPAY: USDC, Amount: 999904829
  E2E: Collateral WETH, TestAsset DAI
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: DAI, Amount: 1000142610334807640221
  WITHDRAW: DAI, Amount: 500071305167403820110
  WITHDRAW: DAI, Amount: 500071305167403820110
  BORROW: DAI, Amount 1000142610334807640221, Stable: false
  REPAY: DAI, Amount: 1000142610334807640221
  E2E: Collateral WETH, TestAsset LINK
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: LINK, Amount: 57835386822600971454
  WITHDRAW: LINK, Amount: 28917693411300485727
  WITHDRAW: LINK, Amount: 28917693411300485726
  BORROW: LINK, Amount 57835386822600971454, Stable: false
  REPAY: LINK, Amount: 57835386822600971454
  E2E: Collateral WETH, TestAsset AAVE
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: AAVE, Amount: 8869941953320547114
  WITHDRAW: AAVE, Amount: 4434970976660273557
  WITHDRAW: AAVE, Amount: 4434970976660273557
  E2E: Collateral WETH, TestAsset cbETH
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: cbETH, Amount: 282731472876824898
  WITHDRAW: cbETH, Amount: 141365736438412449
  WITHDRAW: cbETH, Amount: 141365736438412450
  BORROW: cbETH, Amount 282731472876824898, Stable: false
  REPAY: cbETH, Amount: 282731472876824898
  E2E: Collateral WETH, TestAsset USDT
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: USDT, Amount: 1000361030
  WITHDRAW: USDT, Amount: 500180515
  WITHDRAW: USDT, Amount: 500180514
  BORROW: USDT, Amount 1000361030, Stable: false
  REPAY: USDT, Amount: 1000361030
  E2E: Collateral WETH, TestAsset rETH
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: rETH, Amount: 273875273174750208
  WITHDRAW: rETH, Amount: 136937636587375104
  WITHDRAW: rETH, Amount: 136937636587375104
  BORROW: rETH, Amount 273875273174750208, Stable: false
  REPAY: rETH, Amount: 273875273174750208
  E2E: Collateral WETH, TestAsset LUSD
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: LUSD, Amount: 1002673709660707048200
  WITHDRAW: LUSD, Amount: 501336854830353524100
  WITHDRAW: LUSD, Amount: 501336854830353524100
  BORROW: LUSD, Amount 1002673709660707048200, Stable: false
  REPAY: LUSD, Amount: 1002673709660707048200
  E2E: Collateral WETH, TestAsset CRV
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: CRV, Amount: 1580278128950695322376
  WITHDRAW: CRV, Amount: 790139064475347661188
  WITHDRAW: CRV, Amount: 790139064475347661189
  BORROW: CRV, Amount 1580278128950695322376, Stable: false
  REPAY: CRV, Amount: 1580278128950695322376
  E2E: Collateral WETH, TestAsset MKR
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: MKR, Amount: 350020948893799673
  WITHDRAW: MKR, Amount: 175010474446899836
  WITHDRAW: MKR, Amount: 175010474446899837
  BORROW: MKR, Amount 350020948893799673, Stable: false
  REPAY: MKR, Amount: 350020948893799673
  E2E: Collateral WETH, TestAsset SNX
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: SNX, Amount: 268792049122585608345
  WITHDRAW: SNX, Amount: 134396024561292804172
  WITHDRAW: SNX, Amount: 134396024561292804174
  BORROW: SNX, Amount 268792049122585608345, Stable: false
  REPAY: SNX, Amount: 268792049122585608345
  E2E: Collateral WETH, TestAsset BAL
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: BAL, Amount: 215726458850177974328
  WITHDRAW: BAL, Amount: 107863229425088987164
  WITHDRAW: BAL, Amount: 107863229425088987163
  BORROW: BAL, Amount 215726458850177974328, Stable: false
  REPAY: BAL, Amount: 215726458850177974328
  E2E: Collateral WETH, TestAsset UNI
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: UNI, Amount: 89806390892195061277
  WITHDRAW: UNI, Amount: 44903195446097530638
  WITHDRAW: UNI, Amount: 44903195446097530639
  BORROW: UNI, Amount 89806390892195061277, Stable: false
  REPAY: UNI, Amount: 89806390892195061277
  E2E: Collateral WETH, TestAsset LDO
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: LDO, Amount: 419720178181456810376
  WITHDRAW: LDO, Amount: 209860089090728405188
  WITHDRAW: LDO, Amount: 209860089090728405188
  BORROW: LDO, Amount 419720178181456810376, Stable: false
  REPAY: LDO, Amount: 419720178181456810376
  E2E: Collateral WETH, TestAsset ENS
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: ENS, Amount: 50400685449322110780
  WITHDRAW: ENS, Amount: 25200342724661055390
  WITHDRAW: ENS, Amount: 25200342724661055390
  BORROW: ENS, Amount 50400685449322110780, Stable: false
  REPAY: ENS, Amount: 50400685449322110780
  E2E: Collateral WETH, TestAsset 1INCH
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: 1INCH, Amount: 1937346223143537981672
  WITHDRAW: 1INCH, Amount: 968673111571768990836
  WITHDRAW: 1INCH, Amount: 968673111571768990836
  BORROW: 1INCH, Amount 1937346223143537981672, Stable: false
  REPAY: 1INCH, Amount: 1937346223143537981672
  E2E: Collateral WETH, TestAsset FRAX
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: FRAX, Amount: 1002424162351815395170
  WITHDRAW: FRAX, Amount: 501212081175907697585
  WITHDRAW: FRAX, Amount: 501212081175907697586
  BORROW: FRAX, Amount 1002424162351815395170, Stable: false
  REPAY: FRAX, Amount: 1002424162351815395170
  E2E: Collateral WETH, TestAsset GHO
  SUPPLY: WETH, Amount: 30164183651615744497
  BORROW: GHO, Amount 1000000000000000000000, Stable: false
  REPAY: GHO, Amount: 1000000000000000000000
  E2E: Collateral WETH, TestAsset RPL
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: RPL, Amount: 36913990402362495385
  WITHDRAW: RPL, Amount: 18456995201181247692
  WITHDRAW: RPL, Amount: 18456995201181247694
  BORROW: RPL, Amount 36913990402362495385, Stable: false
  REPAY: RPL, Amount: 36913990402362495385
  E2E: Collateral WETH, TestAsset sDAI
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: sDAI, Amount: 940574131340755880361
  WITHDRAW: sDAI, Amount: 470287065670377940180
  WITHDRAW: sDAI, Amount: 470287065670377940182
  E2E: Collateral WETH, TestAsset STG
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: STG, Amount: 1484440928892473912694
  WITHDRAW: STG, Amount: 742220464446236956347
  WITHDRAW: STG, Amount: 742220464446236956347
  BORROW: STG, Amount 1484440928892473912694, Stable: false
  REPAY: STG, Amount: 1484440928892473912694
  E2E: Collateral WETH, TestAsset KNC
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: KNC, Amount: 1319621933594512906430
  WITHDRAW: KNC, Amount: 659810966797256453215
  WITHDRAW: KNC, Amount: 659810966797256453215
  BORROW: KNC, Amount 1319621933594512906430, Stable: false
  REPAY: KNC, Amount: 1319621933594512906430
  E2E: Collateral WETH, TestAsset FXS
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: FXS, Amount: 141508498537689383406
  WITHDRAW: FXS, Amount: 70754249268844691703
  WITHDRAW: FXS, Amount: 70754249268844691702
  BORROW: FXS, Amount 141508498537689383406, Stable: false
  REPAY: FXS, Amount: 141508498537689383406
  E2E: Collateral WETH, TestAsset crvUSD
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: crvUSD, Amount: 1001433201125791176041
  WITHDRAW: crvUSD, Amount: 500716600562895588020
  WITHDRAW: crvUSD, Amount: 500716600562895588021
  BORROW: crvUSD, Amount 1001433201125791176041, Stable: false
  REPAY: crvUSD, Amount: 1001433201125791176041
  E2E: Collateral WETH, TestAsset PYUSD
  SUPPLY: WETH, Amount: 30164183651615744497
  SUPPLY: PYUSD, Amount: 1000500250
  WITHDRAW: PYUSD, Amount: 500250125
  WITHDRAW: PYUSD, Amount: 500250126
  BORROW: PYUSD, Amount 1000500250, Stable: false
  REPAY: PYUSD, Amount: 1000500250

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

Ran 1 test for tests/ProtocolV3TestBase.t.sol:ProtocolV3TestE2ETestOptimismAll
[PASS] test_e2e() (gas: 15592920)
Logs:
  E2E: Collateral LINK, TestAsset DAI
  SUPPLY: LINK, Amount: 16165535079211121888134
  SUPPLY: DAI, Amount: 1000028340803178362074
  WITHDRAW: DAI, Amount: 500014170401589181037
  WITHDRAW: DAI, Amount: 500014170401589181037
  BORROW: DAI, Amount 1000028340803178362074, Stable: false
  REPAY: DAI, Amount: 1000028340803178362074
  BORROW: DAI, Amount 1000028340803178362074, Stable: true
  REPAY: DAI, Amount: 1000028340803178362074
  E2E: Collateral LINK, TestAsset LINK
  SUPPLY: LINK, Amount: 16165535079211121888134
  SUPPLY: LINK, Amount: 161655350792111218881
  WITHDRAW: LINK, Amount: 80827675396055609440
  WITHDRAW: LINK, Amount: 80827675396055609441
  BORROW: LINK, Amount 161655350792111218881, Stable: false
  REPAY: LINK, Amount: 161655350792111218881
  E2E: Collateral LINK, TestAsset USDC
  SUPPLY: LINK, Amount: 16165535079211121888134
  SUPPLY: USDC, Amount: 1000000000
  WITHDRAW: USDC, Amount: 500000000
  WITHDRAW: USDC, Amount: 500000000
  BORROW: USDC, Amount 1000000000, Stable: false
  REPAY: USDC, Amount: 1000000000
  BORROW: USDC, Amount 1000000000, Stable: true
  REPAY: USDC, Amount: 1000000000
  E2E: Collateral LINK, TestAsset WBTC
  SUPPLY: LINK, Amount: 16165535079211121888134
  SUPPLY: WBTC, Amount: 3859651
  WITHDRAW: WBTC, Amount: 1929825
  WITHDRAW: WBTC, Amount: 1929826
  BORROW: WBTC, Amount 3859651, Stable: false
  REPAY: WBTC, Amount: 3859651
  E2E: Collateral LINK, TestAsset WETH
  SUPPLY: LINK, Amount: 16165535079211121888134
  SUPPLY: WETH, Amount: 545589454847016716
  WITHDRAW: WETH, Amount: 272794727423508358
  WITHDRAW: WETH, Amount: 272794727423508359
  BORROW: WETH, Amount 545589454847016716, Stable: false
  REPAY: WETH, Amount: 545589454847016716
  E2E: Collateral LINK, TestAsset USDT
  SUPPLY: LINK, Amount: 16165535079211121888134
  SUPPLY: USDT, Amount: 999945153
  WITHDRAW: USDT, Amount: 499972576
  WITHDRAW: USDT, Amount: 499972576
  BORROW: USDT, Amount 999945153, Stable: false
  REPAY: USDT, Amount: 999945153
  BORROW: USDT, Amount 999945153, Stable: true
  REPAY: USDT, Amount: 999945153
  E2E: Collateral LINK, TestAsset AAVE
  SUPPLY: LINK, Amount: 16165535079211121888134
  SUPPLY: AAVE, Amount: 16473146728162900180
  WITHDRAW: AAVE, Amount: 8236573364081450090
  WITHDRAW: AAVE, Amount: 8236573364081450090
  E2E: Collateral LINK, TestAsset sUSD
  SUPPLY: LINK, Amount: 16165535079211121888134
  SUPPLY: sUSD, Amount: 1002139326949598925802
  WITHDRAW: sUSD, Amount: 501069663474799462901
  WITHDRAW: sUSD, Amount: 501069663474799462900
  BORROW: sUSD, Amount 1002139326949598925802, Stable: false
  REPAY: sUSD, Amount: 1002139326949598925802
  E2E: Collateral LINK, TestAsset OP
  SUPPLY: LINK, Amount: 16165535079211121888134
  SUPPLY: OP, Amount: 656598818122127380170
  WITHDRAW: OP, Amount: 328299409061063690085
  WITHDRAW: OP, Amount: 328299409061063690085
  E2E: Collateral LINK, TestAsset wstETH
  SUPPLY: LINK, Amount: 16165535079211121888134
  SUPPLY: wstETH, Amount: 484382291714219929
  WITHDRAW: wstETH, Amount: 242191145857109964
  WITHDRAW: wstETH, Amount: 242191145857109965
  BORROW: wstETH, Amount 484382291714219929, Stable: false
  REPAY: wstETH, Amount: 484382291714219929
  E2E: Collateral LINK, TestAsset LUSD
  SUPPLY: LINK, Amount: 16165535079211121888134
  SUPPLY: LUSD, Amount: 994369254826541580848
  WITHDRAW: LUSD, Amount: 497184627413270790424
  WITHDRAW: LUSD, Amount: 497184627413270790424
  BORROW: LUSD, Amount 994369254826541580848, Stable: false
  REPAY: LUSD, Amount: 994369254826541580848
  E2E: TestAsset MAI SKIPPED

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

Ran 1 test for tests/ProtocolV3TestBase.t.sol:ProtocolV3TestBaseTest
[PASS] test_e2eTestDPI() (gas: 2402723)
Logs:
  E2E: Collateral WMATIC, TestAsset DPI
  SUPPLY: WMATIC, Amount: 184940190804644255059524
  SUPPLY: DPI, Amount: 16186339863817362599
  WITHDRAW: DPI, Amount: 8093169931908681299
  WITHDRAW: DPI, Amount: 8093169931908681300
  BORROW: DPI, Amount 16186339863817362599, Stable: false
  REPAY: DPI, Amount: 16186339863817362599

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

Ran 1 test for tests/v3-config-engine/AaveV3ConfigEngineGauntletProposal.t.sol:AaveV3ArbitrumConfigEngineRatesTest
[PASS] testEngine() (gas: 17588832)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 38.05s (37.81s CPU time)

Ran 1 test for tests/v3-config-engine/AaveV3ConfigEngineGauntletProposal.t.sol:AaveV3AvalancheConfigEngineRatesTest
[PASS] testEngine() (gas: 28571212)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 17.68s (17.29s CPU time)

Ran 1 test for tests/ProtocolV3TestBase.t.sol:ProtocolV3TestOptimismSnapshot
[PASS] test_snapshot() (gas: 7658823)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 40.47s (40.27s CPU time)

Ran 1 test for tests/swaps/DepositV2SwapPayloadTest.t.sol:DepositV2SwapPayloadTest
[PASS] test_successful() (gas: 565530)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 5.07s (4.58s CPU time)

Ran 1 test for tests/swaps/DepositV3SwapPayloadTest.t.sol:DepositV3SwapPayloadTest
[PASS] test_successful() (gas: 187665)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 4.01s (3.59s CPU time)

Ran 2 tests for tests/ProtocolV3TestBase.t.sol:ProtocolV3TestE2ETestArbitrumAll
[PASS] test_deal() (gas: 47749)
[PASS] test_e2e() (gas: 18028554)
Logs:
  E2E: Collateral DAI, TestAsset DAI
  SUPPLY: DAI, Amount: 99999086008353883645503
  SUPPLY: DAI, Amount: 999990860083538836455
  WITHDRAW: DAI, Amount: 499995430041769418227
  WITHDRAW: DAI, Amount: 499995430041769418228
  BORROW: DAI, Amount 999990860083538836455, Stable: false
  REPAY: DAI, Amount: 999990860083538836455
  E2E: Collateral DAI, TestAsset LINK
  SUPPLY: DAI, Amount: 99999086008353883645503
  SUPPLY: LINK, Amount: 63975364796438638841
  WITHDRAW: LINK, Amount: 31987682398219319420
  WITHDRAW: LINK, Amount: 31987682398219319421
  BORROW: LINK, Amount 63975364796438638841, Stable: false
  REPAY: LINK, Amount: 63975364796438638841
  E2E: Collateral DAI, TestAsset USDC
  SUPPLY: DAI, Amount: 99999086008353883645503
  SUPPLY: USDC, Amount: 999865867
  WITHDRAW: USDC, Amount: 499932933
  WITHDRAW: USDC, Amount: 499932933
  BORROW: USDC, Amount 999865867, Stable: false
  REPAY: USDC, Amount: 999865867
  E2E: Collateral DAI, TestAsset WBTC
  SUPPLY: DAI, Amount: 99999086008353883645503
  SUPPLY: WBTC, Amount: 2331545
  WITHDRAW: WBTC, Amount: 1165772
  WITHDRAW: WBTC, Amount: 1165773
  BORROW: WBTC, Amount 2331545, Stable: false
  REPAY: WBTC, Amount: 2331545
  E2E: Collateral DAI, TestAsset WETH
  SUPPLY: DAI, Amount: 99999086008353883645503
  SUPPLY: WETH, Amount: 435612114541922911
  WITHDRAW: WETH, Amount: 217806057270961455
  WITHDRAW: WETH, Amount: 217806057270961455
  BORROW: WETH, Amount 435612114541922911, Stable: false
  REPAY: WETH, Amount: 435612114541922911
  E2E: Collateral DAI, TestAsset USDT
  SUPPLY: DAI, Amount: 99999086008353883645503
  SUPPLY: USDT, Amount: 1000010000
  WITHDRAW: USDT, Amount: 500005000
  WITHDRAW: USDT, Amount: 500005000
  BORROW: USDT, Amount 1000010000, Stable: false
  REPAY: USDT, Amount: 1000010000
  E2E: Collateral DAI, TestAsset AAVE
  SUPPLY: DAI, Amount: 99999086008353883645503
  SUPPLY: AAVE, Amount: 9211500189526616399
  WITHDRAW: AAVE, Amount: 4605750094763308199
  WITHDRAW: AAVE, Amount: 4605750094763308200
  E2E: Collateral DAI, TestAsset EURS
  SUPPLY: DAI, Amount: 99999086008353883645503
  SUPPLY: EURS, Amount: 90365
  WITHDRAW: EURS, Amount: 45182
  WITHDRAW: EURS, Amount: 45183
  BORROW: EURS, Amount 90365, Stable: false
  REPAY: EURS, Amount: 90365
  E2E: Collateral DAI, TestAsset wstETH
  SUPPLY: DAI, Amount: 99999086008353883645503
  SUPPLY: wstETH, Amount: 378288935072691655
  WITHDRAW: wstETH, Amount: 189144467536345827
  WITHDRAW: wstETH, Amount: 189144467536345828
  BORROW: wstETH, Amount 378288935072691655, Stable: false
  REPAY: wstETH, Amount: 378288935072691655
  E2E: TestAsset MAI SKIPPED
  E2E: Collateral DAI, TestAsset rETH
  SUPPLY: DAI, Amount: 99999086008353883645503
  SUPPLY: rETH, Amount: 398306593701601373
  WITHDRAW: rETH, Amount: 199153296850800686
  WITHDRAW: rETH, Amount: 199153296850800687
  BORROW: rETH, Amount 398306593701601373, Stable: false
  REPAY: rETH, Amount: 398306593701601373
  E2E: Collateral DAI, TestAsset LUSD
  SUPPLY: DAI, Amount: 99999086008353883645503
  SUPPLY: LUSD, Amount: 1002232362341555958326
  WITHDRAW: LUSD, Amount: 501116181170777979163
  WITHDRAW: LUSD, Amount: 501116181170777979163
  BORROW: LUSD, Amount 1002232362341555958326, Stable: false
  REPAY: LUSD, Amount: 1002232362341555958326
  E2E: Collateral DAI, TestAsset USDC
  SUPPLY: DAI, Amount: 99999086008353883645503
  SUPPLY: USDC, Amount: 999865867
  WITHDRAW: USDC, Amount: 499932933
  WITHDRAW: USDC, Amount: 499932935
  BORROW: USDC, Amount 999865867, Stable: false
  REPAY: USDC, Amount: 999865867
  E2E: Collateral DAI, TestAsset FRAX
  SUPPLY: DAI, Amount: 99999086008353883645503
  SUPPLY: FRAX, Amount: 1000766747451227232256
  WITHDRAW: FRAX, Amount: 500383373725613616128
  WITHDRAW: FRAX, Amount: 500383373725613616129
  BORROW: FRAX, Amount 1000766747451227232256, Stable: false
  REPAY: FRAX, Amount: 1000766747451227232256
  E2E: Collateral DAI, TestAsset ARB
  SUPPLY: DAI, Amount: 99999086008353883645503
  SUPPLY: ARB, Amount: 676722766984049644382
  WITHDRAW: ARB, Amount: 338361383492024822191
  WITHDRAW: ARB, Amount: 338361383492024822192
  BORROW: ARB, Amount 676722766984049644382, Stable: false
  REPAY: ARB, Amount: 676722766984049644382

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

Ran 1 test for tests/PreviewLink.t.sol:PreviewLink
[PASS] testPreviewLink() (gas: 30383)
Logs:
  https://vote.onaave.com/proposal-create-overview?ipfsHash=0x12f2d9c91e4e23ae4009ab9ef5862ee0ae79498937b66252213221f04a5d5b32&votingPortal=0x7FA9385bE102ac3EAc297483Dd6233D62b3e1496&payload[0].chainId=12&payload[0].accessLevel=1&payload[0].payloadsController=0x00000000000000000000000002f52a6ee8f5428d&payload[0].payloadId=1&payload[1].chainId=32&payload[1].accessLevel=1&payload[1].payloadsController=0x00000000000000000000000000018b08761d540a&payload[1].payloadId=2

Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 428.44µs (265.12µs CPU time)

Ran 1 test for tests/v3-config-engine/AaveV3ConfigEngineGauntletProposal.t.sol:AaveV3PolygonConfigEngineRatesTest
[PASS] testEngine() (gas: 71907297)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 64.84s (64.62s CPU time)

Ran 1 test for tests/v3-config-engine/AaveV3ConfigEngineGauntletProposal.t.sol:AaveV3OptimismConfigEngineRatesTest
[PASS] testEngine() (gas: 20475730)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 44.60s (44.41s CPU time)

Ran 9 tests for tests/riskstewards/CapsPlusRiskSteward.t.sol:CapsPlusRiskSteward_Test
[PASS] test_debounce() (gas: 135500)
[PASS] test_increaseCapsMax() (gas: 119606)
[PASS] test_invalidCaller() (gas: 7547)
[PASS] test_keepCurrent() (gas: 52442)
[PASS] test_unlisted() (gas: 32845)
[PASS] test_updateBorrowCapBiggerMax() (gas: 37192)
[PASS] test_updateBorrowCapNotStrictlyHigher() (gas: 45964)
[PASS] test_updateSupplyCapBiggerMax() (gas: 36948)
[PASS] test_updateSupplyCapNotStrictlyHigher() (gas: 45517)
Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 1.94s (1.40s CPU time)

Ran 1 test for tests/CommonTestBase.t.sol:CommonTestBaseTest
[PASS] test_deal2_shouldMaintainCurrentCaller() (gas: 52826)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 548.66ms (387.11ms CPU time)

Ran 1 test for tests/ProtocolV2TestBase.t.sol:ProtocolV2TestBaseTest
[PASS] testE2E() (gas: 21351673)
Logs:
  E2E: Collateral AAVE, TestAsset USDT
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: USDT, Amount: 1922278804
  WITHDRAW: USDT, Amount: 961139402
  WITHDRAW: USDT, Amount: 961139403
  BORROW: USDT, Amount 1922278804, Stable: false
  REPAY: USDT, Amount: 1922278804
  BORROW: USDT, Amount 1922278804, Stable: true
  REPAY: USDT, Amount: 1922278804
  E2E: Collateral AAVE, TestAsset WBTC
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: WBTC, Amount: 6293388
  WITHDRAW: WBTC, Amount: 3146694
  WITHDRAW: WBTC, Amount: 3146693
  BORROW: WBTC, Amount 6293388, Stable: false
  REPAY: WBTC, Amount: 6293388
  BORROW: WBTC, Amount 6293388, Stable: true
  REPAY: WBTC, Amount: 6293388
  E2E: Collateral AAVE, TestAsset WETH
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: WETH, Amount: 1000000000000000000
  WITHDRAW: WETH, Amount: 500000000000000000
  WITHDRAW: WETH, Amount: 500000000000000001
  BORROW: WETH, Amount 1000000000000000000, Stable: false
  REPAY: WETH, Amount: 1000000000000000000
  BORROW: WETH, Amount 1000000000000000000, Stable: true
  REPAY: WETH, Amount: 1000000000000000000
  E2E: Collateral AAVE, TestAsset AAVE
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: AAVE, Amount: 25535972511960226937
  WITHDRAW: AAVE, Amount: 12767986255980113468
  WITHDRAW: AAVE, Amount: 12767986255980113469
  E2E: Collateral AAVE, TestAsset DAI
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: DAI, Amount: 1914944850736299739803
  WITHDRAW: DAI, Amount: 957472425368149869901
  WITHDRAW: DAI, Amount: 957472425368149869902
  BORROW: DAI, Amount 1914944850736299739803, Stable: false
  REPAY: DAI, Amount: 1914944850736299739803
  BORROW: DAI, Amount 1914944850736299739803, Stable: true
  REPAY: DAI, Amount: 1914944850736299739803
  E2E: Collateral AAVE, TestAsset sUSD
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: sUSD, Amount: 1919434649608077907661
  WITHDRAW: sUSD, Amount: 959717324804038953830
  WITHDRAW: sUSD, Amount: 959717324804038953830
  BORROW: sUSD, Amount 1919434649608077907661, Stable: false
  REPAY: sUSD, Amount: 1919434649608077907661
  E2E: Collateral AAVE, TestAsset USDC
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: USDC, Amount: 1912585127
  WITHDRAW: USDC, Amount: 956292563
  WITHDRAW: USDC, Amount: 956292564
  BORROW: USDC, Amount 1912585127, Stable: false
  REPAY: USDC, Amount: 1912585127
  BORROW: USDC, Amount 1912585127, Stable: true
  REPAY: USDC, Amount: 1912585127
  E2E: Collateral AAVE, TestAsset CRV
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: CRV, Amount: 2447532600357965341777
  WITHDRAW: CRV, Amount: 1223766300178982670888
  WITHDRAW: CRV, Amount: 1223766300178982670889
  E2E: Collateral AAVE, TestAsset GUSD
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: GUSD, Amount: 191331
  WITHDRAW: GUSD, Amount: 95665
  WITHDRAW: GUSD, Amount: 95665
  BORROW: GUSD, Amount 191331, Stable: false
  REPAY: GUSD, Amount: 191331
  E2E: Collateral AAVE, TestAsset USDP
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: USDP, Amount: 1939299150785117381031
  WITHDRAW: USDP, Amount: 969649575392558690515
  WITHDRAW: USDP, Amount: 969649575392558690516
  BORROW: USDP, Amount 1939299150785117381031, Stable: false
  REPAY: USDP, Amount: 1939299150785117381031
  E2E: Collateral AAVE, TestAsset FRAX
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: FRAX, Amount: 1937630504372688546970
  WITHDRAW: FRAX, Amount: 968815252186344273485
  WITHDRAW: FRAX, Amount: 968815252186344273486
  BORROW: FRAX, Amount 1937630504372688546970, Stable: false
  REPAY: FRAX, Amount: 1937630504372688546970
  E2E: Collateral AAVE, TestAsset stETH
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: stETH, Amount: 1000000000000000000
  WITHDRAW: stETH, Amount: 500000000000000000
  WITHDRAW: stETH, Amount: 499999999999999999
  E2E: Collateral AAVE, TestAsset LUSD
  SUPPLY: AAVE, Amount: 2553597251196022693793
  SUPPLY: LUSD, Amount: 1910246445122217347247
  WITHDRAW: LUSD, Amount: 955123222561108673623
  WITHDRAW: LUSD, Amount: 955123222561108673623
  BORROW: LUSD, Amount 1910246445122217347247, Stable: false
  REPAY: LUSD, Amount: 1910246445122217347247
  BORROW: LUSD, Amount 1910246445122217347247, Stable: true
  REPAY: LUSD, Amount: 1910246445122217347247

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

Ran 9 tests for tests/GovV3Test.t.sol:GovernanceV3Test
[PASS] testFail_findPayload() (gas: 18135)
[PASS] test_executePayloadViaAddress() (gas: 76605)
[PASS] test_executePayloadViaId() (gas: 1499026)
[PASS] test_expectRevertOnNonExistingPayload() (gas: 3374)
[PASS] test_helpers() (gas: 202942870)
Logs:
  0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
  0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0
  0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599
  0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
  0x6B175474E89094C44Da98b954EedeAC495271d0F
  0x514910771AF9Ca656af840dff83E8264EcF986CA
  0xBe9895146f7AF43049ca1c1AE358B0541Ea49704
  0xdAC17F958D2ee523a2206206994597C13D831ec7
  0xae78736Cd615f374D3085123A210448E74Fc6393
  0x5f98805A4E8be255a32880FDeC7F6728C6568bA0
  0xD533a949740bb3306d119CC777fa900bA034cd52
  0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2
  0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F
  0xba100000625a3754423978a60c9317c58a424e3D
  0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984
  0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32
  0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72
  0x111111111117dC0aa78b770fA6A738034120C302
  0x853d955aCEf822Db058eb8505911ED77F175b99e
  0xD33526068D116cE69F19A9ee46F0bd304F21A51f
  0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6
  0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202
  0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0
  0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E
  E2E: Collateral WETH, TestAsset WETH
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: WETH, Amount: 387152512099111656
  WITHDRAW: WETH, Amount: 193576256049555828
  WITHDRAW: WETH, Amount: 193576256049555829
  BORROW: WETH, Amount 387152512099111656, Stable: false
  REPAY: WETH, Amount: 387152512099111656
  E2E: Collateral WETH, TestAsset wstETH
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: wstETH, Amount: 335646642971739590
  WITHDRAW: wstETH, Amount: 167823321485869795
  WITHDRAW: wstETH, Amount: 167823321485869796
  BORROW: wstETH, Amount 335646642971739590, Stable: false
  REPAY: wstETH, Amount: 335646642971739590
  E2E: Collateral WETH, TestAsset WBTC
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: WBTC, Amount: 2287699
  WITHDRAW: WBTC, Amount: 1143849
  WITHDRAW: WBTC, Amount: 1143850
  BORROW: WBTC, Amount 2287699, Stable: false
  REPAY: WBTC, Amount: 2287699
  E2E: Collateral WETH, TestAsset USDC
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: USDC, Amount: 999957431
  WITHDRAW: USDC, Amount: 499978715
  WITHDRAW: USDC, Amount: 499978717
  BORROW: USDC, Amount 999957431, Stable: false
  REPAY: USDC, Amount: 999957431
  E2E: Collateral WETH, TestAsset DAI
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: DAI, Amount: 1000373749636601730772
  WITHDRAW: DAI, Amount: 500186874818300865386
  WITHDRAW: DAI, Amount: 500186874818300865386
  BORROW: DAI, Amount 1000373749636601730772, Stable: false
  REPAY: DAI, Amount: 1000373749636601730772
  E2E: Collateral WETH, TestAsset LINK
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: LINK, Amount: 69903880612291948977
  WITHDRAW: LINK, Amount: 34951940306145974488
  WITHDRAW: LINK, Amount: 34951940306145974489
  BORROW: LINK, Amount 69903880612291948977, Stable: false
  REPAY: LINK, Amount: 69903880612291948977
  E2E: Collateral WETH, TestAsset AAVE
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: AAVE, Amount: 9480842960220067589
  WITHDRAW: AAVE, Amount: 4740421480110033794
  WITHDRAW: AAVE, Amount: 4740421480110033795
  E2E: Collateral WETH, TestAsset cbETH
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: cbETH, Amount: 366101666287891006
  WITHDRAW: cbETH, Amount: 183050833143945503
  WITHDRAW: cbETH, Amount: 183050833143945502
  BORROW: cbETH, Amount 366101666287891006, Stable: false
  REPAY: cbETH, Amount: 366101666287891006
  E2E: Collateral WETH, TestAsset USDT
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: USDT, Amount: 999961761
  WITHDRAW: USDT, Amount: 499980880
  WITHDRAW: USDT, Amount: 499980882
  BORROW: USDT, Amount 999961761, Stable: false
  REPAY: USDT, Amount: 999961761
  E2E: Collateral WETH, TestAsset rETH
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: rETH, Amount: 353501562217827242
  WITHDRAW: rETH, Amount: 176750781108913621
  WITHDRAW: rETH, Amount: 176750781108913622
  BORROW: rETH, Amount 353501562217827242, Stable: false
  REPAY: rETH, Amount: 353501562217827242
  E2E: Collateral WETH, TestAsset LUSD
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: LUSD, Amount: 991284291472712808267
  WITHDRAW: LUSD, Amount: 495642145736356404133
  WITHDRAW: LUSD, Amount: 495642145736356404134
  BORROW: LUSD, Amount 991284291472712808267, Stable: false
  REPAY: LUSD, Amount: 991284291472712808267
  E2E: Collateral WETH, TestAsset CRV
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: CRV, Amount: 1762425096933380331335
  WITHDRAW: CRV, Amount: 881212548466690165667
  WITHDRAW: CRV, Amount: 881212548466690165669
  BORROW: CRV, Amount 1762425096933380331335, Stable: false
  REPAY: CRV, Amount: 1762425096933380331335
  E2E: Collateral WETH, TestAsset MKR
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: MKR, Amount: 489494757217453346
  WITHDRAW: MKR, Amount: 244747378608726673
  WITHDRAW: MKR, Amount: 244747378608726672
  BORROW: MKR, Amount 489494757217453346, Stable: false
  REPAY: MKR, Amount: 489494757217453346
  E2E: Collateral WETH, TestAsset SNX
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: SNX, Amount: 258591040854798544649
  WITHDRAW: SNX, Amount: 129295520427399272324
  WITHDRAW: SNX, Amount: 129295520427399272325
  BORROW: SNX, Amount 258591040854798544649, Stable: false
  REPAY: SNX, Amount: 258591040854798544649
  E2E: Collateral WETH, TestAsset BAL
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: BAL, Amount: 230914051358559383391
  WITHDRAW: BAL, Amount: 115457025679279691695
  WITHDRAW: BAL, Amount: 115457025679279691695
  BORROW: BAL, Amount 230914051358559383391, Stable: false
  REPAY: BAL, Amount: 230914051358559383391
  E2E: Collateral WETH, TestAsset UNI
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: UNI, Amount: 149316137911693820856
  WITHDRAW: UNI, Amount: 74658068955846910428
  WITHDRAW: UNI, Amount: 74658068955846910428
  BORROW: UNI, Amount 149316137911693820856, Stable: false
  REPAY: UNI, Amount: 149316137911693820856
  E2E: Collateral WETH, TestAsset LDO
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: LDO, Amount: 275384694725064278711
  WITHDRAW: LDO, Amount: 137692347362532139355
  WITHDRAW: LDO, Amount: 137692347362532139356
  BORROW: LDO, Amount 275384694725064278711, Stable: false
  REPAY: LDO, Amount: 275384694725064278711
  E2E: Collateral WETH, TestAsset ENS
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: ENS, Amount: 41260909104308758690
  WITHDRAW: ENS, Amount: 20630454552154379345
  WITHDRAW: ENS, Amount: 20630454552154379344
  BORROW: ENS, Amount 41260909104308758690, Stable: false
  REPAY: ENS, Amount: 41260909104308758690
  E2E: Collateral WETH, TestAsset 1INCH
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: 1INCH, Amount: 2083605243817651536858
  WITHDRAW: 1INCH, Amount: 1041802621908825768429
  WITHDRAW: 1INCH, Amount: 1041802621908825768430
  BORROW: 1INCH, Amount 2083605243817651536858, Stable: false
  REPAY: 1INCH, Amount: 2083605243817651536858
  E2E: Collateral WETH, TestAsset FRAX
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: FRAX, Amount: 1002074815947916480030
  WITHDRAW: FRAX, Amount: 501037407973958240015
  WITHDRAW: FRAX, Amount: 501037407973958240016
  BORROW: FRAX, Amount 1002074815947916480030, Stable: false
  REPAY: FRAX, Amount: 1002074815947916480030
  E2E: Collateral WETH, TestAsset GHO
  SUPPLY: WETH, Amount: 38715251209911165659
  BORROW: GHO, Amount 1000000000000000000000, Stable: false
  REPAY: GHO, Amount: 1000000000000000000000
  E2E: Collateral WETH, TestAsset RPL
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: RPL, Amount: 28861389285133957390
  WITHDRAW: RPL, Amount: 14430694642566978695
  WITHDRAW: RPL, Amount: 14430694642566978695
  BORROW: RPL, Amount 28861389285133957390, Stable: false
  REPAY: RPL, Amount: 28861389285133957390
  E2E: Collateral WETH, TestAsset sDAI
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: sDAI, Amount: 951708828414645146702
  WITHDRAW: sDAI, Amount: 475854414207322573351
  WITHDRAW: sDAI, Amount: 475854414207322573351
  E2E: Collateral WETH, TestAsset STG
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: STG, Amount: 1758103830166326116094
  WITHDRAW: STG, Amount: 879051915083163058047
  WITHDRAW: STG, Amount: 879051915083163058047
  BORROW: STG, Amount 1758103830166326116094, Stable: false
  REPAY: STG, Amount: 1758103830166326116094
  E2E: Collateral WETH, TestAsset KNC
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: KNC, Amount: 1495089274621257257051
  WITHDRAW: KNC, Amount: 747544637310628628525
  WITHDRAW: KNC, Amount: 747544637310628628526
  BORROW: KNC, Amount 1495089274621257257051, Stable: false
  REPAY: KNC, Amount: 1495089274621257257051
  E2E: Collateral WETH, TestAsset FXS
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: FXS, Amount: 110165362284908051526
  WITHDRAW: FXS, Amount: 55082681142454025763
  WITHDRAW: FXS, Amount: 55082681142454025762
  BORROW: FXS, Amount 110165362284908051526, Stable: false
  REPAY: FXS, Amount: 110165362284908051526
  E2E: Collateral WETH, TestAsset crvUSD
  SUPPLY: WETH, Amount: 38715251209911165659
  SUPPLY: crvUSD, Amount: 1000920626774094276433
  WITHDRAW: crvUSD, Amount: 500460313387047138216
  WITHDRAW: crvUSD, Amount: 500460313387047138217
  BORROW: crvUSD, Amount 1000920626774094276433, Stable: false
  REPAY: crvUSD, Amount: 1000920626774094276433

[PASS] test_injectPayloadIntoPayloadsController() (gas: 65006)
[PASS] test_injectProposalIntoGovernance() (gas: 106177)
[PASS] test_payloadCreation() (gas: 1855307)
Logs:
  https://vote.onaave.com/proposal-create-overview?ipfsHash=0x6861736800000000000000000000000000000000000000000000000000000000&votingPortal=0x9b24C168d6A76b5459B1d47071a54962a4df36c3&payload[0].chainId=1&payload[0].accessLevel=1&payload[0].payloadsController=0xdAbad81aF85554E9ae636395611C58F7eC1aAEc5&payload[0].payloadId=47
  0x3bec1bfc00000000000000000000000000000000000000000000000000000000000000600000000000000000000000009b24c168d6a76b5459b1d47071a54962a4df36c36861736800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000dabad81af85554e9ae636395611c58f7ec1aaec5000000000000000000000000000000000000000000000000000000000000002f

[PASS] test_readyPayloadId() (gas: 1400157)
Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 153.46s (156.41s CPU time)

Ran 21 tests for tests/v3-config-engine/AaveV3ConfigEngineTest.t.sol:AaveV3ConfigEngineTest
[PASS] testArbitrumRateStrategiesUpdates() (gas: 51983081)
[PASS] testAssetEModeUpdates() (gas: 145379427)
[PASS] testAvaxRateStrategiesUpdates() (gas: 36117061)
[PASS] testBorrowUpdatesNoChange() (gas: 98798060)
[PASS] testBorrowsUpdates() (gas: 98847259)
[PASS] testCapsUpdates() (gas: 145395789)
[PASS] testCollateralUpdateCorrectBonus() (gas: 35578624)
[PASS] testCollateralUpdateWrongBonus() (gas: 8018990)
[PASS] testCollateralsUpdates() (gas: 35580084)
[PASS] testCollateralsUpdatesNoChange() (gas: 35555724)
[PASS] testEModeCategoryUpdates() (gas: 98902171)
[PASS] testEModeCategoryUpdatesNoChange() (gas: 35570303)
[PASS] testEModeCategoryUpdatesWrongBonus() (gas: 8032277)
[PASS] testFailCollateralsUpdatesNoChange() (gas: 8700844)
[PASS] testFailEModeCategoryUpdatesNoChange() (gas: 8047788)
[PASS] testListings() (gas: 106391031)
[PASS] testListingsCustom() (gas: 154974483)
[PASS] testOptimismRateStrategiesUpdates() (gas: 46056582)
[PASS] testPolygonRateStrategiesUpdates() (gas: 99571357)
[PASS] testPriceFeedsUpdates() (gas: 98769228)
[PASS] testRateStrategiesUpdates() (gas: 45842206)
Suite result: ok. 21 passed; 0 failed; 0 skipped; finished in 144.98s (336.39s CPU time)

Ran 73 test suites in 360.78s (1233.82s CPU time): 189 tests passed, 0 failed, 0 skipped (189 total tests)

Please sign in to comment.