Skip to content

Commit

Permalink
feat: 3.2.0 (#345)
Browse files Browse the repository at this point in the history
* feat: upgrade to 3.2.0

* feat: upgrade to aave 3.2

* fix: upgrade v3.2.0

* fix: update breaking change

* fix: remove solidity utils

* fix: patch helpers

* fix: bump 3.2.0

* fix: update 3.2.0

* fix: lint code

* fix: update deps

* fix: make it build

* fix: bump deps

* fix: update resetting of key

* fix: update snapshot helper

* fix: inline id

* fix: update zksync

* fix: inline address

* fix: align zksync with upstream

* fix: use correct interface

* fix: bump address book

* fix: compile

* fix: update main

---------

Co-authored-by: Harsh Pandey <harshsatishpandey@gmail.com>
  • Loading branch information
sakulstra and brotherlymite authored Oct 10, 2024
1 parent 8a96ac9 commit 7bbdb8b
Show file tree
Hide file tree
Showing 70 changed files with 405 additions and 2,982 deletions.
1 change: 1 addition & 0 deletions .assets/17f6b65b666e033f6d757eab80af272608f3179e.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .assets/229e4f50d5cb7a04464c2bd175ef23d256e2d25d.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .assets/23e67c7d46dd80f36d580b243c5716c84080a34f.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .assets/3f4ff4e3916b8e502cabc40483a392da51ad678a.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .assets/4023527fa4852947cff1f02ae9ff00ea9bc77719.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .assets/47b0af3d54a5c5cfec9387787b9ad4e8de5bce63.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .assets/5f6eef0835ac19ee0c898e4b760d8970954291bf.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .assets/64fd6acec636adec0e975e8031f8e3f7fb87bb7d.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .assets/772fdedb24491c4dde9a73af5e1fd183523d5024.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .assets/838ead98a9ae093ded1390e58ff2a328cd8e29a4.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .assets/8a8a0e067285eb92c25c539be301949997ccd175.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .assets/8f48c9478437c54125028a1d71100121cc58dcd0.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .assets/952932c7b15c44b006f762abc15f3c37d87b04d9.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .assets/9b3ea57ff4b19f392d36203fa741c94e83a96393.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .assets/bf52f4b65079681aa65fd69327e3061d269fe51d.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .assets/c6f6294fedb5e5b5fc418d2c7861ece2c2bdef75.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .assets/ea9358e636f19fd911c6b5fcbe0f3b0c33f010bb.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .assets/ee98e9626d6dd42942fdaf5d08078961de8bf38f.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions .assets/fefe2c9708de2db1319f2fac935bcc21796a28c0.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
[submodule "lib/forge-std"]
path = lib/forge-std
url = https://github.com/foundry-rs/forge-std
[submodule "lib/solidity-utils"]
path = lib/solidity-utils
url = https://github.com/bgd-labs/solidity-utils
[submodule "lib/aave-address-book"]
path = lib/aave-address-book
url = https://github.com/bgd-labs/aave-address-book
2,088 changes: 2 additions & 2,086 deletions diffs/default_before_default_after.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion lib/aave-address-book
Submodule aave-address-book updated 142 files
1 change: 0 additions & 1 deletion lib/solidity-utils
Submodule solidity-utils deleted from 5d728d
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"test": "tests"
},
"scripts": {
"prettier": "prettier --write 'src/**/*.sol'",
"lint:fix": "prettier --write 'src/**/*.sol'",
"prettier:tests": "prettier --write 'tests/**/*.sol'"
},
"repository": {
Expand All @@ -26,6 +26,6 @@
"prettier-plugin-solidity": "^1.1.3"
},
"dependencies": {
"@bgd-labs/aave-cli": "0.16.2"
"@bgd-labs/aave-cli": "1.0.0"
}
}
5 changes: 2 additions & 3 deletions remappings.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
aave-address-book/=lib/aave-address-book/src/
aave-v3-origin/=lib/aave-address-book/lib/aave-v3-origin/src/
aave-v3-core/=lib/aave-address-book/lib/aave-v3-origin/src/core
aave-v3-periphery/=lib/aave-address-book/lib/aave-v3-origin/src/periphery
aave-v3-origin-tests/=lib/aave-address-book/lib/aave-v3-origin/tests
forge-std/=lib/forge-std/src/
solidity-utils/=lib/solidity-utils/src/
solidity-utils/=lib/aave-address-book/lib/aave-v3-origin/lib/solidity-utils/src/
2 changes: 1 addition & 1 deletion scripts/RiskStewards.s.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ pragma solidity ^0.8.0;

import 'solidity-utils/contracts/utils/ScriptUtils.sol';
import {CapsPlusRiskSteward} from '../src/riskstewards/CapsPlusRiskSteward.sol';
import {IAaveV3ConfigEngine} from 'aave-v3-origin/periphery/contracts/v3-config-engine/IAaveV3ConfigEngine.sol';
import {IAaveV3ConfigEngine} from 'aave-v3-origin/contracts/extensions/v3-config-engine/IAaveV3ConfigEngine.sol';
import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol';
import {AaveV3Polygon} from 'aave-address-book/AaveV3Polygon.sol';
import {AaveV3Avalanche} from 'aave-address-book/AaveV3Avalanche.sol';
Expand Down
17 changes: 13 additions & 4 deletions src/GovV3Helpers.sol
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import {Vm} from 'forge-std/Vm.sol';
import {ChainIds, ChainHelpers} from 'solidity-utils/contracts/utils/ChainHelpers.sol';
import {IpfsUtils} from './IpfsUtils.sol';
import {console2} from 'forge-std/console2.sol';
import {ProxyHelpers} from 'aave-v3-origin-tests/utils/ProxyHelpers.sol';
import {PayloadsControllerUtils, IGovernancePowerStrategy, IPayloadsControllerCore, IGovernanceCore} from 'aave-address-book/GovernanceV3.sol';
import {IVotingMachineWithProofs} from 'aave-address-book/governance-v3/IVotingMachineWithProofs.sol';
import {IVotingPortal} from 'aave-address-book/governance-v3/IVotingPortal.sol';
Expand All @@ -24,7 +25,6 @@ import {MiscEthereum} from 'aave-address-book/MiscEthereum.sol';
import {Address} from 'solidity-utils/contracts/oz-common/Address.sol';
import {Create2Utils} from 'solidity-utils/contracts/utils/ScriptUtils.sol';
import {StorageHelpers} from './StorageHelpers.sol';
import {ProxyHelpers} from './ProxyHelpers.sol';
import {Create2UtilsZkSync} from 'solidity-utils/../zksync/src/contracts/utils/ScriptUtilsZkSync.sol';

interface IGovernance_V2_5 {
Expand Down Expand Up @@ -232,10 +232,19 @@ library GovV3Helpers {
return buildAction(payloadAddress);
}

function _getBytecodeHashFromArtifacts(Vm vm, string memory contractName) private view returns (bytes32 bytecodeHash) {
string memory artifactPath = string.concat('zkout/', contractName, '.sol/', contractName, '.json');
function _getBytecodeHashFromArtifacts(
Vm vm,
string memory contractName
) private view returns (bytes32 bytecodeHash) {
string memory artifactPath = string.concat(
'zkout/',
contractName,
'.sol/',
contractName,
'.json'
);
string memory artifact = vm.readFile(artifactPath);
bytecodeHash = vm.parseJsonBytes32(artifact, ".hash");
bytecodeHash = vm.parseJsonBytes32(artifact, '.hash');

require(bytecodeHash != (bytes32(0)), 'Unable to fetch bytecodeHash from the zkout artifacts');
return bytecodeHash;
Expand Down
2 changes: 1 addition & 1 deletion src/ProtocolV2TestBase.sol
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import {ChainIds} from 'solidity-utils/contracts/utils/ChainHelpers.sol';
import {IInitializableAdminUpgradeabilityProxy} from './interfaces/IInitializableAdminUpgradeabilityProxy.sol';
import {ExtendedAggregatorV2V3Interface} from './interfaces/ExtendedAggregatorV2V3Interface.sol';
import {CommonTestBase, ReserveTokens} from './CommonTestBase.sol';
import {ProxyHelpers} from './ProxyHelpers.sol';
import {ProxyHelpers} from 'aave-v3-origin/../tests/utils/ProxyHelpers.sol';

struct ReserveConfig {
string symbol;
Expand Down
89 changes: 55 additions & 34 deletions src/ProtocolV3TestBase.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,13 @@ import {IAaveOracle, IPool, IPoolAddressesProvider, IPoolDataProvider, IReserveI
import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol';
import {IERC20Metadata} from 'solidity-utils/contracts/oz-common/interfaces/IERC20Metadata.sol';
import {SafeERC20} from 'solidity-utils/contracts/oz-common/SafeERC20.sol';
import {ReserveConfiguration} from 'aave-v3-origin/core/contracts/protocol/libraries/configuration/ReserveConfiguration.sol';
import {IDefaultInterestRateStrategyV2} from 'aave-v3-origin/core/contracts/interfaces/IDefaultInterestRateStrategyV2.sol';
import {ReserveConfiguration} from 'aave-v3-origin/contracts/protocol/libraries/configuration/ReserveConfiguration.sol';
import {IDefaultInterestRateStrategyV2} from 'aave-v3-origin/contracts/interfaces/IDefaultInterestRateStrategyV2.sol';
import {AaveV3EthereumAssets} from 'aave-address-book/AaveV3Ethereum.sol';
import {DiffUtils} from 'aave-v3-origin/../tests/utils/DiffUtils.sol';
import {ProtocolV3TestBase as RawProtocolV3TestBase, ReserveConfig} from 'aave-v3-origin/../tests/utils/ProtocolV3TestBase.sol';
import {DiffUtils} from 'aave-v3-origin-tests/utils/DiffUtils.sol';
import {ProtocolV3TestBase as RawProtocolV3TestBase, ReserveConfig} from 'aave-v3-origin-tests/utils/ProtocolV3TestBase.sol';
import {IInitializableAdminUpgradeabilityProxy} from './interfaces/IInitializableAdminUpgradeabilityProxy.sol';
import {ExtendedAggregatorV2V3Interface} from './interfaces/ExtendedAggregatorV2V3Interface.sol';
import {ProxyHelpers} from './ProxyHelpers.sol';
import {CommonTestBase, ReserveTokens} from './CommonTestBase.sol';
import {ILegacyDefaultInterestRateStrategy} from './dependencies/ILegacyDefaultInterestRateStrategy.sol';

Expand Down Expand Up @@ -317,35 +316,57 @@ contract ProtocolV3TestBase is RawProtocolV3TestBase, CommonTestBase {
return configuration.getIsVirtualAccActive();
}

function _logReserveConfig(ReserveConfig memory config) internal pure {
console.log('Symbol ', config.symbol);
console.log('Underlying address ', config.underlying);
console.log('AToken address ', config.aToken);
console.log('Stable debt token address ', config.stableDebtToken);
console.log('Variable debt token address ', config.variableDebtToken);
console.log('Decimals ', config.decimals);
console.log('LTV ', config.ltv);
console.log('Liquidation Threshold ', config.liquidationThreshold);
console.log('Liquidation Bonus ', config.liquidationBonus);
console.log('Liquidation protocol fee ', config.liquidationProtocolFee);
console.log('Reserve Factor ', config.reserveFactor);
console.log('Usage as collateral enabled ', (config.usageAsCollateralEnabled) ? 'Yes' : 'No');
console.log('Borrowing enabled ', (config.borrowingEnabled) ? 'Yes' : 'No');
console.log('Stable borrow rate enabled ', (config.stableBorrowRateEnabled) ? 'Yes' : 'No');
console.log('Supply cap ', config.supplyCap);
console.log('Borrow cap ', config.borrowCap);
console.log('Debt ceiling ', config.debtCeiling);
console.log('eMode category ', config.eModeCategory);
console.log('Interest rate strategy ', config.interestRateStrategy);
console.log('Is active ', (config.isActive) ? 'Yes' : 'No');
console.log('Is frozen ', (config.isFrozen) ? 'Yes' : 'No');
console.log('Is siloed ', (config.isSiloed) ? 'Yes' : 'No');
console.log('Is borrowable in isolation ', (config.isBorrowableInIsolation) ? 'Yes' : 'No');
console.log('Is flashloanable ', (config.isFlashloanable) ? 'Yes' : 'No');
console.log('Is virtual accounting active ', (config.virtualAccActive) ? 'Yes' : 'No');
console.log('Virtual balance ', config.virtualBalance);
console.log('-----');
console.log('-----');
function _writeEModeConfigs(string memory path, IPool pool) internal virtual override {
// keys for json stringification
string memory eModesKey = 'emodes';
string memory content = '{}';
vm.serializeJson(eModesKey, '{}');
uint8 emptyCounter = 0;
for (uint8 i = 0; i < 256; i++) {
try pool.getEModeCategoryCollateralConfig(i) returns (DataTypes.CollateralConfig memory cfg) {
if (cfg.liquidationThreshold == 0) {
if (++emptyCounter > 2) break;
} else {
string memory key = vm.toString(i);
vm.serializeJson(key, '{}');
vm.serializeUint(key, 'eModeCategory', i);
vm.serializeString(key, 'label', pool.getEModeCategoryLabel(i));
vm.serializeUint(key, 'ltv', cfg.ltv);
vm.serializeString(
key,
'collateralBitmap',
vm.toString(pool.getEModeCategoryCollateralBitmap(i))
);
vm.serializeString(
key,
'borrowableBitmap',
vm.toString(pool.getEModeCategoryBorrowableBitmap(i))
);
vm.serializeUint(key, 'liquidationThreshold', cfg.liquidationThreshold);
string memory object = vm.serializeUint(key, 'liquidationBonus', cfg.liquidationBonus);
content = vm.serializeString(eModesKey, key, object);
emptyCounter = 0;
}
} catch {
DataTypes.EModeCategoryLegacy memory category = pool.getEModeCategoryData(i);
if (category.liquidationThreshold == 0) {
if (++emptyCounter > 2) break;
} else {
string memory key = vm.toString(i);
vm.serializeJson(key, '{}');
vm.serializeUint(key, 'eModeCategory', i);
vm.serializeString(key, 'label', category.label);
vm.serializeUint(key, 'ltv', category.ltv);
vm.serializeUint(key, 'liquidationThreshold', category.liquidationThreshold);
vm.serializeUint(key, 'liquidationBonus', category.liquidationBonus);
string memory object = vm.serializeAddress(key, 'priceSource', category.priceSource);
content = vm.serializeString(eModesKey, key, object);
emptyCounter = 0;
}
}
}
string memory output = vm.serializeString('root', 'eModes', content);
vm.writeJson(output, path);
}

function _writeStrategyConfigs(
Expand Down
30 changes: 0 additions & 30 deletions src/ProxyHelpers.sol

This file was deleted.

21 changes: 19 additions & 2 deletions src/asset-manager/AaveWstethWithdrawer.sol
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import {SafeERC20} from 'solidity-utils/contracts/oz-common/SafeERC20.sol';
import {OwnableWithGuardian} from 'solidity-utils/contracts/access-control/OwnableWithGuardian.sol';
import {Initializable} from 'solidity-utils/contracts/transparent-proxy/Initializable.sol';
import {Rescuable721, Rescuable} from 'solidity-utils/contracts/utils/Rescuable721.sol';
import {RescuableBase, IRescuableBase} from 'solidity-utils/contracts/utils/RescuableBase.sol';
import {AaveV3Ethereum, AaveV3EthereumAssets} from 'aave-address-book/AaveV3Ethereum.sol';
import {GovernanceV3Ethereum} from 'aave-address-book/GovernanceV3Ethereum.sol';
import {IAaveWstethWithdrawer, IWithdrawalQueueERC721, IWETH} from './interfaces/IAaveWstethWithdrawer.sol';
Expand All @@ -31,7 +32,12 @@ import {IAaveWstethWithdrawer, IWithdrawalQueueERC721, IWETH} from './interfaces
* @author defijesus.eth
* @notice Helper contract to natively withdraw wstETH to the collector
*/
contract AaveWstethWithdrawer is Initializable, OwnableWithGuardian, Rescuable721, IAaveWstethWithdrawer {
contract AaveWstethWithdrawer is
Initializable,
OwnableWithGuardian,
Rescuable721,
IAaveWstethWithdrawer
{
using SafeERC20 for IERC20;

/// auto incrementing index to store requestIds of withdrawals
Expand All @@ -58,7 +64,10 @@ contract AaveWstethWithdrawer is Initializable, OwnableWithGuardian, Rescuable72
/// @inheritdoc IAaveWstethWithdrawer
function startWithdraw(uint256[] calldata amounts) external onlyOwnerOrGuardian {
uint256 index = nextIndex++;
uint256[] memory rIds = WSTETH_WITHDRAWAL_QUEUE.requestWithdrawalsWstETH(amounts, address(this));
uint256[] memory rIds = WSTETH_WITHDRAWAL_QUEUE.requestWithdrawalsWstETH(
amounts,
address(this)
);

requestIds[index] = rIds;
emit StartedWithdrawal(amounts, index);
Expand Down Expand Up @@ -92,6 +101,14 @@ contract AaveWstethWithdrawer is Initializable, OwnableWithGuardian, Rescuable72
return owner();
}

/// @inheritdoc IRescuableBase
function maxRescue(
address erc20Token
) public view override(RescuableBase, IRescuableBase) returns (uint256) {
return type(uint256).max;
}

fallback() external payable {}

receive() external payable {}
}
3 changes: 1 addition & 2 deletions src/asset-manager/interfaces/IAaveWstethWithdrawer.sol
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ interface IAaveWstethWithdrawer {
}

interface IWithdrawalQueueERC721 {

/// @notice Request the batch of wstETH for withdrawal. Approvals for the passed amounts should be done before.
/// @param _amounts an array of wstETH amount values.
/// The standalone withdrawal request will be created for each item in the passed list.
Expand Down Expand Up @@ -72,4 +71,4 @@ interface IWithdrawalQueueERC721 {

interface IWETH {
function deposit() external payable;
}
}
8 changes: 8 additions & 0 deletions src/bridges/arbitrum/AaveArbEthERC20Bridge.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol';
import {SafeERC20} from 'solidity-utils/contracts/oz-common/SafeERC20.sol';
import {Ownable} from 'solidity-utils/contracts/oz-common/Ownable.sol';
import {Rescuable} from 'solidity-utils/contracts/utils/Rescuable.sol';
import {RescuableBase, IRescuableBase} from 'solidity-utils/contracts/utils/RescuableBase.sol';
import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol';
import {ChainIds} from 'solidity-utils/contracts/utils/ChainHelpers.sol';

Expand Down Expand Up @@ -113,4 +114,11 @@ contract AaveArbEthERC20Bridge is Ownable, Rescuable, IAaveArbEthERC20Bridge {
function whoCanRescue() public view override returns (address) {
return owner();
}

/// @inheritdoc IRescuableBase
function maxRescue(
address erc20Token
) public view override(RescuableBase, IRescuableBase) returns (uint256) {
return type(uint256).max;
}
}
8 changes: 8 additions & 0 deletions src/bridges/optimism/AaveOpEthERC20Bridge.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol';
import {SafeERC20} from 'solidity-utils/contracts/oz-common/SafeERC20.sol';
import {Ownable} from 'solidity-utils/contracts/oz-common/Ownable.sol';
import {Rescuable} from 'solidity-utils/contracts/utils/Rescuable.sol';
import {RescuableBase, IRescuableBase} from 'solidity-utils/contracts/utils/RescuableBase.sol';
import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol';
import {ChainIds} from 'solidity-utils/contracts/utils/ChainHelpers.sol';

Expand Down Expand Up @@ -54,4 +55,11 @@ contract AaveOpEthERC20Bridge is Ownable, Rescuable, IAaveOpEthERC20Bridge {
function whoCanRescue() public view override returns (address) {
return owner();
}

/// @inheritdoc IRescuableBase
function maxRescue(
address erc20Token
) public view override(RescuableBase, IRescuableBase) returns (uint256) {
return type(uint256).max;
}
}
8 changes: 8 additions & 0 deletions src/bridges/polygon/AavePolEthERC20Bridge.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol';
import {SafeERC20} from 'solidity-utils/contracts/oz-common/SafeERC20.sol';
import {Ownable} from 'solidity-utils/contracts/oz-common/Ownable.sol';
import {Rescuable} from 'solidity-utils/contracts/utils/Rescuable.sol';
import {RescuableBase, IRescuableBase} from 'solidity-utils/contracts/utils/RescuableBase.sol';
import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol';
import {AaveV2Polygon} from 'aave-address-book/AaveV2Polygon.sol';
import {ChainIds} from 'solidity-utils/contracts/utils/ChainHelpers.sol';
Expand Down Expand Up @@ -97,6 +98,13 @@ contract AavePolEthERC20Bridge is Ownable, Rescuable, IAavePolEthERC20Bridge {
return owner();
}

/// @inheritdoc IRescuableBase
function maxRescue(
address erc20Token
) public view override(RescuableBase, IRescuableBase) returns (uint256) {
return type(uint256).max;
}

receive() external payable {
if (block.chainid != ChainIds.MAINNET) revert InvalidChain();

Expand Down
8 changes: 8 additions & 0 deletions src/bridges/polygon/AavePolEthPlasmaBridge.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol';
import {SafeERC20} from 'solidity-utils/contracts/oz-common/SafeERC20.sol';
import {Ownable} from 'solidity-utils/contracts/oz-common/Ownable.sol';
import {Rescuable} from 'solidity-utils/contracts/utils/Rescuable.sol';
import {RescuableBase, IRescuableBase} from 'solidity-utils/contracts/utils/RescuableBase.sol';
import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol';
import {ChainIds} from 'solidity-utils/contracts/utils/ChainHelpers.sol';

Expand Down Expand Up @@ -102,6 +103,13 @@ contract AavePolEthPlasmaBridge is Ownable, Rescuable, IAavePolEthPlasmaBridge {
return owner();
}

/// @inheritdoc IRescuableBase
function maxRescue(
address erc20Token
) public view override(RescuableBase, IRescuableBase) returns (uint256) {
return type(uint256).max;
}

/// @dev Allows the contract to receive Matic on Polygon
receive() external payable {
if (block.chainid != ChainIds.POLYGON) revert InvalidChain();
Expand Down
Loading

1 comment on commit 7bbdb8b

@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 (f79c53c 2024-10-10T00:21:39.014342132Z)
Build log
Compiling 281 files with Solc 0.8.18
Solc 0.8.18 finished in 62.81s
Compiler run successful with warnings:
Warning (5667): Unused function parameter. Remove or comment out the variable name to silence this warning.
   --> src/swaps/AaveSwapper.sol:146:5:
    |
146 |     address erc20Token
    |     ^^^^^^^^^^^^^^^^^^

Warning (5667): Unused function parameter. Remove or comment out the variable name to silence this warning.
   --> src/asset-manager/AaveWstethWithdrawer.sol:106:5:
    |
106 |     address erc20Token
    |     ^^^^^^^^^^^^^^^^^^

Warning (5667): Unused function parameter. Remove or comment out the variable name to silence this warning.
   --> src/bridges/arbitrum/AaveArbEthERC20Bridge.sol:120:5:
    |
120 |     address erc20Token
    |     ^^^^^^^^^^^^^^^^^^

Warning (5667): Unused function parameter. Remove or comment out the variable name to silence this warning.
   --> src/bridges/polygon/AavePolEthERC20Bridge.sol:103:5:
    |
103 |     address erc20Token
    |     ^^^^^^^^^^^^^^^^^^

Warning (5667): Unused function parameter. Remove or comment out the variable name to silence this warning.
   --> src/bridges/polygon/AavePolEthPlasmaBridge.sol:108:5:
    |
108 |     address erc20Token
    |     ^^^^^^^^^^^^^^^^^^

Warning (5667): Unused function parameter. Remove or comment out the variable name to silence this warning.
  --> src/bridges/optimism/AaveOpEthERC20Bridge.sol:61:5:
   |
61 |     address erc20Token
   |     ^^^^^^^^^^^^^^^^^^

Warning (2018): Function state mutability can be restricted to pure
   --> src/swaps/AaveSwapper.sol:145:3:
    |
145 |   function maxRescue(
    |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
   --> src/asset-manager/AaveWstethWithdrawer.sol:105:3:
    |
105 |   function maxRescue(
    |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
   --> src/bridges/arbitrum/AaveArbEthERC20Bridge.sol:119:3:
    |
119 |   function maxRescue(
    |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
   --> src/bridges/polygon/AavePolEthERC20Bridge.sol:102:3:
    |
102 |   function maxRescue(
    |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
   --> src/bridges/polygon/AavePolEthPlasmaBridge.sol:107:3:
    |
107 |   function maxRescue(
    |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
  --> src/bridges/optimism/AaveOpEthERC20Bridge.sol:60:3:
   |
60 |   function maxRescue(
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to pure
   --> src/ProtocolV2TestBase.sol:663:3:
    |
663 |   function _logReserveConfig(ReserveConfig memory config) internal view {
    |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to view
  --> tests/ProxyHelpersTest.t.sol:13:3:
   |
13 |   function testAdmin() public {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to view
  --> tests/ProxyHelpersTest.t.sol:21:3:
   |
21 |   function testImplementation() public {
   |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to view
   --> tests/swaps/AaveSwapperTest.t.sol:384:3:
    |
384 |   function test_aaveToUsdc_withEthBasedOracles() public {
    |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to view
   --> tests/swaps/AaveSwapperTest.t.sol:406:3:
    |
406 |   function test_aaveToUsdc() public {
    |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to view
   --> tests/swaps/AaveSwapperTest.t.sol:421:3:
    |
421 |   function test_ethToDai() public {
    |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to view
   --> tests/swaps/AaveSwapperTest.t.sol:436:3:
    |
436 |   function test_ethToBal() public {
    |   ^ (Relevant source part starts here and spans across multiple lines).

Warning (2018): Function state mutability can be restricted to view
   --> tests/swaps/AaveSwapperTest.t.sol:451:3:
    |
451 |   function test_balTo80BAL20WETH() public {
    |   ^ (Relevant source part starts here and spans across multiple lines).

| Contract                                    | Size (B) | Margin (B) |
|---------------------------------------------|----------|------------|
| AaveArbEthERC20Bridge                       |    3,771 |     20,805 |
| AaveGovernanceV2                            |       86 |     24,490 |
| AaveOpEthERC20Bridge                        |    3,053 |     21,523 |
| AavePolEthERC20Bridge                       |    4,307 |     20,269 |
| AavePolEthPlasmaBridge                      |    3,729 |     20,847 |
| AaveSafetyModule                            |       86 |     24,490 |
| AaveSwapper                                 |    5,707 |     18,869 |
| 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 |
| AaveV3ArbitrumExternalLibraries             |       86 |     24,490 |
| AaveV3ArbitrumSepolia                       |       86 |     24,490 |
| AaveV3ArbitrumSepoliaAssets                 |       86 |     24,490 |
| AaveV3Avalanche                             |       86 |     24,490 |
| AaveV3AvalancheAssets                       |       86 |     24,490 |
| AaveV3AvalancheCollateralUpdate             |    3,310 |     21,266 |
| AaveV3AvalancheCollateralUpdateCorrectBonus |    3,310 |     21,266 |
| AaveV3AvalancheCollateralUpdateNoChange     |    3,330 |     21,246 |
| AaveV3AvalancheCollateralUpdateWrongBonus   |    3,310 |     21,266 |
| AaveV3AvalancheEModeCategoryUpdateEdgeBonus |    3,249 |     21,327 |
| AaveV3AvalancheEModeCategoryUpdateNoChange  |    3,313 |     21,263 |
| AaveV3AvalancheEModes                       |       86 |     24,490 |
| AaveV3AvalancheExternalLibraries            |       86 |     24,490 |
| AaveV3BNB                                   |       86 |     24,490 |
| AaveV3BNBAssets                             |       86 |     24,490 |
| AaveV3BNBEModes                             |       86 |     24,490 |
| AaveV3BNBExternalLibraries                  |       86 |     24,490 |
| AaveV3Base                                  |       86 |     24,490 |
| AaveV3BaseAssets                            |       86 |     24,490 |
| AaveV3BaseEModes                            |       86 |     24,490 |
| AaveV3BaseExternalLibraries                 |       86 |     24,490 |
| AaveV3BaseSepolia                           |       86 |     24,490 |
| AaveV3BaseSepoliaAssets                     |       86 |     24,490 |
| AaveV3BaseSepoliaEModes                     |       86 |     24,490 |
| AaveV3BaseSepoliaExternalLibraries          |       86 |     24,490 |
| AaveV3Ethereum                              |       86 |     24,490 |
| AaveV3EthereumAssetEModeUpdate              |    3,199 |     21,377 |
| AaveV3EthereumAssets                        |       86 |     24,490 |
| AaveV3EthereumEModes                        |       86 |     24,490 |
| AaveV3EthereumEtherFi                       |       86 |     24,490 |
| AaveV3EthereumEtherFiAssets                 |       86 |     24,490 |
| AaveV3EthereumEtherFiEModes                 |       86 |     24,490 |
| AaveV3EthereumEtherFiExternalLibraries      |       86 |     24,490 |
| AaveV3EthereumExternalLibraries             |       86 |     24,490 |
| AaveV3EthereumLido                          |       86 |     24,490 |
| AaveV3EthereumLidoAssets                    |       86 |     24,490 |
| AaveV3EthereumLidoEModes                    |       86 |     24,490 |
| AaveV3EthereumLidoExternalLibraries         |       86 |     24,490 |
| AaveV3EthereumMockCapUpdate                 |    3,237 |     21,339 |
| AaveV3Fantom                                |       86 |     24,490 |
| AaveV3FantomAssets                          |       86 |     24,490 |
| AaveV3FantomTestnet                         |       86 |     24,490 |
| AaveV3FantomTestnetAssets                   |       86 |     24,490 |
| AaveV3Fuji                                  |       86 |     24,490 |
| AaveV3FujiAssets                            |       86 |     24,490 |
| AaveV3FujiEModes                            |       86 |     24,490 |
| AaveV3FujiExternalLibraries                 |       86 |     24,490 |
| AaveV3Gnosis                                |       86 |     24,490 |
| AaveV3GnosisAssets                          |       86 |     24,490 |
| AaveV3GnosisEModes                          |       86 |     24,490 |
| AaveV3GnosisExternalLibraries               |       86 |     24,490 |
| AaveV3Harmony                               |       86 |     24,490 |
| AaveV3HarmonyAssets                         |       86 |     24,490 |
| AaveV3Metis                                 |       86 |     24,490 |
| AaveV3MetisAssets                           |       86 |     24,490 |
| AaveV3MetisEModes                           |       86 |     24,490 |
| AaveV3MetisExternalLibraries                |       86 |     24,490 |
| AaveV3Optimism                              |       86 |     24,490 |
| AaveV3OptimismAssets                        |       86 |     24,490 |
| AaveV3OptimismEModes                        |       86 |     24,490 |
| AaveV3OptimismExternalLibraries             |       86 |     24,490 |
| AaveV3OptimismMockRatesUpdate               |    3,446 |     21,130 |
| AaveV3OptimismSepolia                       |       86 |     24,490 |
| AaveV3OptimismSepoliaAssets                 |       86 |     24,490 |
| AaveV3Polygon                               |       86 |     24,490 |
| AaveV3PolygonAssets                         |       86 |     24,490 |
| AaveV3PolygonBorrowUpdate                   |    3,305 |     21,271 |
| AaveV3PolygonBorrowUpdateNoChange           |    3,327 |     21,249 |
| AaveV3PolygonEModeCategoryUpdate            |    3,247 |     21,329 |
| AaveV3PolygonEModes                         |       86 |     24,490 |
| AaveV3PolygonExternalLibraries              |       86 |     24,490 |
| AaveV3PolygonPriceFeedUpdate                |    3,178 |     21,398 |
| AaveV3PolygonZkEvm                          |       86 |     24,490 |
| AaveV3PolygonZkEvmAssets                    |       86 |     24,490 |
| AaveV3Scroll                                |       86 |     24,490 |
| AaveV3ScrollAssets                          |       86 |     24,490 |
| AaveV3ScrollEModes                          |       86 |     24,490 |
| AaveV3ScrollExternalLibraries               |       86 |     24,490 |
| AaveV3ScrollSepolia                         |       86 |     24,490 |
| AaveV3ScrollSepoliaAssets                   |       86 |     24,490 |
| AaveV3Sepolia                               |       86 |     24,490 |
| AaveV3SepoliaAssets                         |       86 |     24,490 |
| AaveV3ZkSync                                |       86 |     24,490 |
| AaveV3ZkSyncAssets                          |       86 |     24,490 |
| AaveV3ZkSyncEModes                          |       86 |     24,490 |
| AaveV3ZkSyncExternalLibraries               |       86 |     24,490 |
| AaveWstethWithdrawer                        |    5,700 |     18,876 |
| Address                                     |       86 |     24,490 |
| ArbSysMock                                  |      647 |     23,929 |
| CapsPlusRiskSteward                         |    2,665 |     21,911 |
| CapsPlusRiskStewardErrors                   |      556 |     24,020 |
| ChainHelpers                                |       86 |     24,490 |
| ChainIds                                    |       86 |     24,490 |
| CollectorUtils                              |       86 |     24,490 |
| ConfiguratorInputTypes                      |       86 |     24,490 |
| Create2Utils                                |      164 |     24,412 |
| Create2UtilsZkSync                          |      147 |     24,429 |
| DataTypes                                   |       86 |     24,490 |
| DefaultReserveInterestRateStrategy          |    3,485 |     21,091 |
| 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 |
| ERC1967Proxy                                |      699 |     23,877 |
| EngineFlags                                 |       86 |     24,490 |
| Errors                                      |    4,714 |     19,862 |
| FreezingSteward                             |      715 |     23,861 |
| 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 |
| GovernanceV3ZkSync                          |       86 |     24,490 |
| IpfsUtils                                   |       86 |     24,490 |
| 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 |
| MiscZkSync                                  |       86 |     24,490 |
| MyPayload                                   |    1,530 |     23,046 |
| PayloadWithEmit                             |      150 |     24,426 |
| PayloadsControllerUtils                     |       86 |     24,490 |
| PercentageMath                              |       86 |     24,490 |
| ProxyAdmin                                  |    1,683 |     22,893 |
| ProxyHelpers                                |       86 |     24,490 |
| ReserveConfiguration                        |      171 |     24,405 |
| SafeERC20                                   |       86 |     24,490 |
| SafeMath                                    |       86 |     24,490 |
| StorageHelpers                              |       86 |     24,490 |
| StorageSlot                                 |       86 |     24,490 |
| StrategicAssetsManager                      |    9,691 |     14,885 |
| TestNetChainIds                             |       86 |     24,490 |
| TransparentProxyFactory                     |    7,505 |     17,071 |
| TransparentUpgradeableProxy                 |    2,096 |     22,480 |
| V2RateStrategyFactory                       |    8,842 |     15,734 |
| WadRayMath                                  |       86 |     24,490 |
Test success 🌈
No files changed, compilation skipped

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

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

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

Ran 2 tests for tests/asset-manager/TestVeTokenManager.t.sol:SetSpaceIdTest
[PASS] test_revertsIf_invalidCaller() (gas: 12755)
[PASS] test_successful() (gas: 101873)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 471.00ms (333.29ms CPU time)

Ran 3 tests for tests/asset-manager/TestStrategicAssetsManager.t.sol:WithdrawERC20
[PASS] test_revertsIf_insufficientBalance() (gas: 18094)
[PASS] test_revertsIf_invalidCaller() (gas: 10787)
[PASS] test_successful() (gas: 217537)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 583.69ms (390.55ms CPU time)

Ran 3 tests for tests/bridges/arbitrum/AaveArbEthERC20BridgeTest.t.sol:BridgeTest
[PASS] test_revertsIf_invalidChain() (gas: 8856)
[PASS] test_revertsIf_notOwner() (gas: 68888)
[PASS] test_successful_arbitrumBridge() (gas: 305586)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 5.20s (3.74s CPU time)

Ran 2 tests for tests/bridges/arbitrum/AaveArbEthERC20BridgeTest.t.sol:EmergencyTokenTransfer
[PASS] test_revertsIf_invalidCaller() (gas: 13126)
[PASS] test_successful_governanceCaller() (gas: 59401)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.30s (1.02s CPU time)

Ran 3 tests for tests/asset-manager/TestVeTokenManager.t.sol:BuyBoostTest
[PASS] test_revertsIf_estimatedFeeExceedsMaxFee() (gas: 51687)
[PASS] test_revertsIf_invalidCaller() (gas: 16598)
[PASS] test_successful() (gas: 544258)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 5.34s (5.22s CPU time)

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

Ran 3 tests for tests/asset-manager/TestVeTokenManager.t.sol:Claim
[PASS] test_revertsIf_invalidCaller() (gas: 12883)
[PASS] test_revertsIf_noRewardsWereEarned() (gas: 164078)
[PASS] test_successful() (gas: 1209455)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 2.03s (1.90s CPU time)

Ran 2 tests for tests/asset-manager/TestVeTokenManager.t.sol:ClearDelegationSnapshot
[PASS] test_revertsIf_invalidCaller() (gas: 12829)
[PASS] test_successful() (gas: 100843)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 118.27ms (408.21µs CPU time)

Ran 5 tests for tests/asset-manager/TestVeTokenManager.t.sol:LockTest
[PASS] test_revertsIf_invalidCaller() (gas: 12884)
[PASS] test_revertsIf_nothingToLockOrRelock() (gas: 119337)
[PASS] test_successful_increaseBalance() (gas: 836612)
[PASS] test_successful_increaseUnlockTime() (gas: 868271)
[PASS] test_successful_locksFirstTime() (gas: 553416)
Suite result: ok. 5 passed; 0 failed; 0 skipped; finished in 656.59ms (537.50ms CPU time)

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

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

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

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

Ran 2 tests for tests/bridges/arbitrum/AaveArbEthERC20BridgeTest.t.sol:ExitTest
[PASS] test_revertsIf_invalidChain() (gas: 15075)
[PASS] test_successful_exitsLink() (gas: 962353)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 4.44s (4.20s CPU time)

Ran 2 tests for tests/bridges/arbitrum/AaveArbEthERC20BridgeTest.t.sol:TransferOwnership
[PASS] test_revertsIf_invalidCaller() (gas: 14697)
[PASS] test_successful() (gas: 16301)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 260.42ms (819.38µs CPU time)

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

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

Ran 6 tests for tests/swaps/AaveSwapperTest.t.sol:AaveSwapperSwap
[PASS] test_revertsIf_amountIsZero() (gas: 12438)
[PASS] test_revertsIf_fromTokenIsZeroAddress() (gas: 12399)
[PASS] test_revertsIf_invalidCaller() (gas: 11633)
[PASS] test_revertsIf_invalidRecipient() (gas: 12460)
[PASS] test_revertsIf_toTokenIsZeroAddress() (gas: 12337)
[PASS] test_successful() (gas: 337491)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 1.71s (1.12s CPU time)

Ran 3 tests for tests/swaps/AaveSwapperTest.t.sol:CancelSwap
[PASS] test_revertsIf_invalidCaller() (gas: 15523)
[PASS] test_revertsIf_noMatchingTrade() (gas: 342661)
[PASS] test_successful() (gas: 381129)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 362.96ms (229.18ms CPU time)

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

Ran 3 tests for tests/bridges/optimism/AaveOpEthERC20BridgeTest.t.sol:BridgeTest
[PASS] test_revertsIf_invalidChain() (gas: 676832)
[PASS] test_revertsIf_notOwner() (gas: 192840)
[PASS] test_successful() (gas: 329763)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 4.16s (3.55s CPU time)

Ran 2 tests for tests/bridges/optimism/AaveOpEthERC20BridgeTest.t.sol:EmergencyTokenTransfer
[PASS] test_revertsIf_invalidCaller() (gas: 13332)
[PASS] test_successful_governanceCaller() (gas: 208479)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 663.29ms (392.52ms CPU time)

Ran 2 tests for tests/bridges/optimism/AaveOpEthERC20BridgeTest.t.sol:TransferOwnership
[PASS] test_revertsIf_invalidCaller() (gas: 14763)
[PASS] test_successful() (gas: 16312)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 124.83ms (296.20µs CPU time)

Ran 3 tests for tests/bridges/polygon/AavePolEthERC20BridgeTest.t.sol:BridgeTest
[PASS] test_revertsIf_invalidChain() (gas: 8614)
[PASS] test_revertsIf_notOwner() (gas: 66671)
[PASS] test_successful() (gas: 59514)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 2.30s (1.19s CPU time)

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

Ran 2 tests for tests/bridges/polygon/AavePolEthERC20BridgeTest.t.sol:ExitMultipleTest
[PASS] test_revertsIf_invalidChain() (gas: 11722)
[PASS] test_revertsIf_proofAlreadyProcessed() (gas: 40013)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 707.88ms (444.32ms CPU time)

Ran 2 tests for tests/bridges/polygon/AavePolEthERC20BridgeTest.t.sol:ExitTest
[PASS] test_revertsIf_invalidChain() (gas: 11228)
[PASS] test_revertsIf_proofAlreadyProcessed() (gas: 39289)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 350.14ms (537.79µs CPU time)

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

Ran 7 tests for tests/swaps/AaveSwapperTest.t.sol:GetExpectedOut
[PASS] test_aaveToUsdc() (gas: 91185)
[PASS] test_aaveToUsdc_withEthBasedOracles() (gas: 110292)
[PASS] test_balTo80BAL20WETH() (gas: 86598)
[PASS] test_ethToBal() (gas: 72399)
[PASS] test_ethToDai() (gas: 76602)
[PASS] test_revertsIf_fromOracleIsAddressZero() (gas: 9291)
[PASS] test_revertsIf_toOracleIsAddressZero() (gas: 9295)
Suite result: ok. 7 passed; 0 failed; 0 skipped; finished in 9.15s (9.03s CPU time)

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

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

Ran 3 tests for tests/bridges/polygon/AavePolEthERC20BridgeTest.t.sol:IsTokenMapped
[PASS] test_revertsIf_invalidChain() (gas: 10957)
[PASS] test_successful_returnsFalse() (gas: 19111)
[PASS] test_successful_returnsTrue() (gas: 17358)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 474.65ms (225.95ms CPU time)

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

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

Ran 2 tests for tests/bridges/polygon/AavePolEthERC20BridgeTest.t.sol:ReceiveEther
[PASS] test_revertsIf_invalidChain() (gas: 19308)
[PASS] test_successful_forwardsETH() (gas: 31201)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 725.01ms (461.67ms CPU time)

Ran 2 tests for tests/bridges/polygon/AavePolEthERC20BridgeTest.t.sol:TransferOwnership
[PASS] test_revertsIf_invalidCaller() (gas: 14691)
[PASS] test_successful() (gas: 16328)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 261.19ms (381.68µs CPU time)

Ran 2 tests for tests/bridges/polygon/AavePolEthERC20BridgeTest.t.sol:WithdrawToCollectorTest
[PASS] test_revertsIf_invalidChain() (gas: 10896)
[PASS] test_successful() (gas: 60287)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 1.48s (1.23s CPU time)

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

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

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

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

Ran 3 tests for tests/asset-manager/TestVeTokenManager.t.sol:UnlockTest
[PASS] test_revertsIf_invalidCaller() (gas: 12863)
[PASS] test_revertsIf_unlockTimeHasNotPassed() (gas: 564799)
[PASS] test_successful_unlock() (gas: 5347766)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 32.89s (32.76s CPU time)

Ran 3 tests for tests/asset-manager/TestVeTokenManager.t.sol:UpdateBoostOfferTest
[PASS] test_revertsIf_invalidCaller() (gas: 13605)
[PASS] test_revertsIf_noOfferExists() (gas: 22578)
[PASS] test_successful() (gas: 183877)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 129.40ms (884.41µs CPU time)

Ran 2 tests for tests/asset-manager/AaveWstethWithdrawerTest.t.sol:TransferOwnership
[PASS] test_revertsIf_invalidCaller() (gas: 19703)
[PASS] test_successful() (gas: 26659)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 919.22ms (107.01ms CPU time)

Ran 2 tests for tests/asset-manager/AaveWstethWithdrawerTest.t.sol:UpdateGuardian
[PASS] test_revertsIf_invalidCaller() (gas: 21897)
[PASS] test_successful() (gas: 28479)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 236.55ms (106.82ms CPU time)

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

Ran 3 tests for tests/asset-manager/TestVlTokenManager.t.sol:DelegateVLAURATest
[PASS] test_revertsIf_invalidCaller() (gas: 14565)
[PASS] test_revertsIf_nothingToDelegate() (gas: 23773)
[PASS] test_revertsIf_successful() (gas: 411676)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 455.19ms (327.02ms CPU time)

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

Ran 9 tests for tests/riskstewards/CapsPlusRiskSteward.t.sol:CapsPlusRiskSteward_Test
[PASS] test_debounce() (gas: 136318)
[PASS] test_increaseCapsMax() (gas: 121499)
[PASS] test_invalidCaller() (gas: 7533)
[PASS] test_keepCurrent() (gas: 53942)
[PASS] test_unlisted() (gas: 32887)
[PASS] test_updateBorrowCapBiggerMax() (gas: 37279)
[PASS] test_updateBorrowCapNotStrictlyHigher() (gas: 46126)
[PASS] test_updateSupplyCapBiggerMax() (gas: 37057)
[PASS] test_updateSupplyCapNotStrictlyHigher() (gas: 45701)
Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 2.90s (2.01s CPU time)

Ran 3 tests for tests/asset-manager/TestVlTokenManager.t.sol:LockVLAURATest
[PASS] test_revertsIf_insufficientBalance() (gas: 93456)
[PASS] test_revertsIf_invalidCaller() (gas: 12913)
[PASS] test_successful() (gas: 334440)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 132.02ms (1.66ms CPU time)

Ran 4 tests for tests/asset-manager/TestVlTokenManager.t.sol:RelockVLAURATest
[PASS] test_revertsIf_invalidCaller() (gas: 12838)
[PASS] test_revertsIf_noExpiredLocks() (gas: 344591)
[PASS] test_revertsIf_noLocks() (gas: 65225)
[PASS] test_successful() (gas: 733710)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 2.06s (1.94s CPU time)

Ran 4 tests for tests/asset-manager/TestVlTokenManager.t.sol:UnlockVLAURATest
[PASS] test_revertsIf_invalidCaller() (gas: 12863)
[PASS] test_revertsIf_noExpiredLocks() (gas: 344617)
[PASS] test_revertsIf_noLocks() (gas: 65258)
[PASS] test_successful() (gas: 370561)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 126.19ms (3.23ms CPU time)

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

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

Ran 2 tests for tests/asset-manager/AaveWstethWithdrawerTest.t.sol:EmergencyTokenTransfer
[PASS] test_revertsIf_invalidCaller() (gas: 193958)
[PASS] test_successful_governanceCaller() (gas: 206572)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 468.49ms (332.82ms CPU time)

Ran 3 tests for tests/asset-manager/AaveWstethWithdrawerTest.t.sol:FinalizeWithdrawal
[PASS] test_finalizeWithdrawalGuardian() (gas: 770545)
[PASS] test_finalizeWithdrawalOwner() (gas: 768852)
[PASS] test_finalizeWithdrawalWithExtraFunds() (gas: 769391)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 7.85s (7.73s CPU time)

Ran 3 tests for tests/asset-manager/AaveWstethWithdrawerTest.t.sol:StartWithdrawal
[PASS] test_revertsIf_invalidCaller() (gas: 68140)
[PASS] test_startWithdrawalGuardian() (gas: 360436)
[PASS] test_startWithdrawalOwner() (gas: 358253)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 125.21ms (4.31ms CPU time)

Ran 6 tests for tests/CollectorUtils.t.sol:CollectorUtilsTest
[PASS] testDepositAllCollectorFundsToV3() (gas: 209941)
[PASS] testDepositCollectorFundsToV3(uint128) (runs: 256, μ: 213785, ~: 213785)
[PASS] testStream(uint128) (runs: 256, μ: 224301, ~: 224322)
[PASS] testSwap(address,address,address,address,address,uint256,uint256) (runs: 256, μ: 77045, ~: 77045)
[PASS] testWithdrawCollectorFundsFromV2(uint128) (runs: 256, μ: 324707, ~: 323242)
[PASS] testWithdrawCollectorFundsFromV3(uint128) (runs: 256, μ: 300999, ~: 299911)
Suite result: ok. 6 passed; 0 failed; 0 skipped; finished in 68.79s (75.28s CPU time)

Ran 2 tests for tests/asset-manager/AaveWstethWithdrawerTest.t.sol:Emergency721TokenTransfer
[PASS] test_revertsIf_invalidCaller() (gas: 705644)
[PASS] test_successful_governanceCaller() (gas: 749795)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 482.34ms (354.52ms CPU time)

Ran 2 tests for tests/ProxyHelpersTest.t.sol:ProxyHelpersTest
[PASS] testAdmin() (gas: 3596)
[PASS] testImplementation() (gas: 3541)
Suite result: ok. 2 passed; 0 failed; 0 skipped; finished in 708.53ms (344.44ms CPU time)

Ran 4 tests for tests/asset-manager/TestLSDLiquidityGaugeManager.t.sol:SetGaugeController
[PASS] test_revertsIf_invalidCaller() (gas: 12825)
[PASS] test_revertsIf_invalidZeroAddress() (gas: 11405)
[PASS] test_revertsIf_settingToSameController() (gas: 36577)
[PASS] test_successful() (gas: 39851)
Suite result: ok. 4 passed; 0 failed; 0 skipped; finished in 191.86ms (350.74µs CPU time)

Ran 3 tests for tests/asset-manager/TestLSDLiquidityGaugeManager.t.sol:VoteForGaugeWeight
[PASS] test_revertsIf_gaugeIsZeroAddress() (gas: 11605)
[PASS] test_revertsIf_invalidCaller() (gas: 12980)
[PASS] test_successful() (gas: 830468)
Suite result: ok. 3 passed; 0 failed; 0 skipped; finished in 5.53s (5.40s CPU time)

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

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

Ran 2 tests for tests/ProtocolV3TestBase.t.sol:ProtocolV3TestE2ETestAvalancheAll
[PASS] test_deal() (gas: 190668)
[PASS] test_e2e() (gas: 13870040)
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
  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
  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
  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
  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
  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
  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
  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
  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
  REPAY: BTC.b, Amount: 2279072

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

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

Ran 1 test for tests/ProtocolV3TestBase.t.sol:ProtocolV3TestE2ETestMetisAll
[PASS] test_e2e() (gas: 5530429)
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
  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
  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
  REPAY: WETH, Amount: 435637728812215165

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

Ran 9 tests for tests/GovV3Test.t.sol:GovernanceV3Test
[PASS] testFail_findPayload() (gas: 18181)
[PASS] test_executePayloadViaAddress() (gas: 76768)
[PASS] test_executePayloadViaId() (gas: 803101)
[PASS] test_expectRevertOnNonExistingPayload() (gas: 3516)
[PASS] test_helpers() (gas: 222283613)
Logs:
  0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2
  0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0
  0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599
  0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
  0x6B175474E89094C44Da98b954EedeAC495271d0F
  0x514910771AF9Ca656af840dff83E8264EcF986CA
  0xBe9895146f7AF43049ca1c1AE358B0541Ea49704
  0xdAC17F958D2ee523a2206206994597C13D831ec7
  0xae78736Cd615f374D3085123A210448E74Fc6393
  0x5f98805A4E8be255a32880FDeC7F6728C6568bA0
  0xD533a949740bb3306d119CC777fa900bA034cd52
  0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2
  0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F
  0xba100000625a3754423978a60c9317c58a424e3D
  0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984
  0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32
  0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72
  0x111111111117dC0aa78b770fA6A738034120C302
  0x853d955aCEf822Db058eb8505911ED77F175b99e
  0xD33526068D116cE69F19A9ee46F0bd304F21A51f
  0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6
  0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202
  0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0
  0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E
  0x6c3ea9036406852006290770BEdFcAbA0e23A0e8
  0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee
  0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38
  0x4c9EDD5852cd905f086C759E8383e09bff1E68B3
  0xA35b1B31Ce002FBF2058D22F30f95D405200A15b
  E2E: Collateral WETH, TestAsset WETH
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: WETH, Amount: 315607122467430149
  WITHDRAW: WETH, Amount: 157803561233715074
  WITHDRAW: WETH, Amount: 157803561233715074
  BORROW: WETH, Amount 315607122467430149
  REPAY: WETH, Amount: 315607122467430149
  E2E: Collateral WETH, TestAsset wstETH
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: wstETH, Amount: 268904306517589906
  WITHDRAW: wstETH, Amount: 134452153258794953
  WITHDRAW: wstETH, Amount: 134452153258794952
  BORROW: wstETH, Amount 268904306517589906
  REPAY: wstETH, Amount: 268904306517589906
  E2E: Collateral WETH, TestAsset WBTC
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: WBTC, Amount: 1556434
  WITHDRAW: WBTC, Amount: 778217
  WITHDRAW: WBTC, Amount: 778216
  BORROW: WBTC, Amount 1556434
  REPAY: WBTC, Amount: 1556434
  E2E: Collateral WETH, TestAsset USDC
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: USDC, Amount: 1000047462
  WITHDRAW: USDC, Amount: 500023731
  WITHDRAW: USDC, Amount: 500023731
  BORROW: USDC, Amount 1000047462
  REPAY: USDC, Amount: 1000047462
  E2E: Collateral WETH, TestAsset DAI
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: DAI, Amount: 1000342187051924851934
  WITHDRAW: DAI, Amount: 500171093525962425967
  WITHDRAW: DAI, Amount: 500171093525962425967
  BORROW: DAI, Amount 1000342187051924851934
  REPAY: DAI, Amount: 1000342187051924851934
  E2E: Collateral WETH, TestAsset LINK
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: LINK, Amount: 76237990610529076407
  WITHDRAW: LINK, Amount: 38118995305264538203
  WITHDRAW: LINK, Amount: 38118995305264538203
  BORROW: LINK, Amount 76237990610529076407
  REPAY: LINK, Amount: 76237990610529076407
  E2E: Collateral WETH, TestAsset AAVE
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: AAVE, Amount: 11316941121350427950
  WITHDRAW: AAVE, Amount: 5658470560675213975
  WITHDRAW: AAVE, Amount: 5658470560675213975
  E2E: Collateral WETH, TestAsset cbETH
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: cbETH, Amount: 293005040233111248
  WITHDRAW: cbETH, Amount: 146502520116555624
  WITHDRAW: cbETH, Amount: 146502520116555623
  BORROW: cbETH, Amount 293005040233111248
  REPAY: cbETH, Amount: 293005040233111248
  E2E: Collateral WETH, TestAsset USDT
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: USDT, Amount: 999863378
  WITHDRAW: USDT, Amount: 499931689
  WITHDRAW: USDT, Amount: 499931688
  BORROW: USDT, Amount 999863378
  REPAY: USDT, Amount: 999863378
  E2E: Collateral WETH, TestAsset rETH
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: rETH, Amount: 283820943028476448
  WITHDRAW: rETH, Amount: 141910471514238224
  WITHDRAW: rETH, Amount: 141910471514238225
  BORROW: rETH, Amount 283820943028476448
  REPAY: rETH, Amount: 283820943028476448
  E2E: Collateral WETH, TestAsset LUSD
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: LUSD, Amount: 1002784270638799452231
  WITHDRAW: LUSD, Amount: 501392135319399726115
  WITHDRAW: LUSD, Amount: 501392135319399726115
  BORROW: LUSD, Amount 1002784270638799452231
  REPAY: LUSD, Amount: 1002784270638799452231
  E2E: Collateral WETH, TestAsset CRV
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: CRV, Amount: 3904724716907458024209
  WITHDRAW: CRV, Amount: 1952362358453729012104
  WITHDRAW: CRV, Amount: 1952362358453729012105
  Skip Borrowing: CRV, borrow cap fully utilized
  E2E: Collateral WETH, TestAsset MKR
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: MKR, Amount: 376117295851000053
  WITHDRAW: MKR, Amount: 188058647925500026
  WITHDRAW: MKR, Amount: 188058647925500026
  BORROW: MKR, Amount 376117295851000053
  REPAY: MKR, Amount: 376117295851000053
  E2E: Collateral WETH, TestAsset SNX
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: SNX, Amount: 608444169500693130471
  WITHDRAW: SNX, Amount: 304222084750346565235
  WITHDRAW: SNX, Amount: 304222084750346565236
  BORROW: SNX, Amount 608444169500693130471
  REPAY: SNX, Amount: 608444169500693130471
  E2E: Collateral WETH, TestAsset BAL
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: BAL, Amount: 400753416422875005009
  WITHDRAW: BAL, Amount: 200376708211437502504
  WITHDRAW: BAL, Amount: 200376708211437502504
  BORROW: BAL, Amount 400753416422875005009
  REPAY: BAL, Amount: 400753416422875005009
  E2E: Collateral WETH, TestAsset UNI
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: UNI, Amount: 139138178124695635235
  WITHDRAW: UNI, Amount: 69569089062347817617
  WITHDRAW: UNI, Amount: 69569089062347817619
  BORROW: UNI, Amount 139138178124695635235
  REPAY: UNI, Amount: 139138178124695635235
  E2E: Collateral WETH, TestAsset LDO
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: LDO, Amount: 647401567058799522238
  WITHDRAW: LDO, Amount: 323700783529399761119
  WITHDRAW: LDO, Amount: 323700783529399761118
  BORROW: LDO, Amount 647401567058799522238
  REPAY: LDO, Amount: 647401567058799522238
  E2E: Collateral WETH, TestAsset ENS
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: ENS, Amount: 38798789477768293629
  WITHDRAW: ENS, Amount: 19399394738884146814
  WITHDRAW: ENS, Amount: 19399394738884146815
  BORROW: ENS, Amount 38798789477768293629
  REPAY: ENS, Amount: 38798789477768293629
  E2E: Collateral WETH, TestAsset 1INCH
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: 1INCH, Amount: 2722569216693966775725
  WITHDRAW: 1INCH, Amount: 1361284608346983387862
  WITHDRAW: 1INCH, Amount: 1361284608346983387863
  BORROW: 1INCH, Amount 2722569216693966775725
  REPAY: 1INCH, Amount: 2722569216693966775725
  E2E: Collateral WETH, TestAsset FRAX
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: FRAX, Amount: 1003668962074310746649
  WITHDRAW: FRAX, Amount: 501834481037155373324
  WITHDRAW: FRAX, Amount: 501834481037155373325
  BORROW: FRAX, Amount 1003668962074310746649
  REPAY: FRAX, Amount: 1003668962074310746649
  E2E: Collateral WETH, TestAsset GHO
  SUPPLY: WETH, Amount: 31560712246743014949
  BORROW: GHO, Amount 1000000000000000000000
  REPAY: GHO, Amount: 1000000000000000000000
  E2E: Collateral WETH, TestAsset RPL
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: RPL, Amount: 63906710517747244997
  WITHDRAW: RPL, Amount: 31953355258873622498
  WITHDRAW: RPL, Amount: 31953355258873622499
  BORROW: RPL, Amount 63906710517747244997
  REPAY: RPL, Amount: 63906710517747244997
  E2E: Collateral WETH, TestAsset sDAI
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: sDAI, Amount: 910718736038966376127
  WITHDRAW: sDAI, Amount: 455359368019483188063
  WITHDRAW: sDAI, Amount: 455359368019483188064
  E2E: TestAsset STG SKIPPED
  E2E: TestAsset KNC SKIPPED
  E2E: TestAsset FXS SKIPPED
  E2E: Collateral WETH, TestAsset crvUSD
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: crvUSD, Amount: 1004860782919392489708
  WITHDRAW: crvUSD, Amount: 502430391459696244854
  WITHDRAW: crvUSD, Amount: 502430391459696244855
  BORROW: crvUSD, Amount 1004860782919392489708
  REPAY: crvUSD, Amount: 1004860782919392489708
  E2E: Collateral WETH, TestAsset PYUSD
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: PYUSD, Amount: 999990000
  WITHDRAW: PYUSD, Amount: 499995000
  WITHDRAW: PYUSD, Amount: 499995001
  BORROW: PYUSD, Amount 999990000
  REPAY: PYUSD, Amount: 999990000
  E2E: Collateral WETH, TestAsset weETH
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: weETH, Amount: 302369953733207440
  WITHDRAW: weETH, Amount: 151184976866603720
  WITHDRAW: weETH, Amount: 151184976866603721
  BORROW: weETH, Amount 302369953733207440
  REPAY: weETH, Amount: 302369953733207440
  E2E: Collateral WETH, TestAsset osETH
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: osETH, Amount: 308748361703619774
  WITHDRAW: osETH, Amount: 154374180851809887
  WITHDRAW: osETH, Amount: 154374180851809886
  BORROW: osETH, Amount 308748361703619774
  REPAY: osETH, Amount: 308748361703619774
  E2E: Collateral WETH, TestAsset USDe
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: USDe, Amount: 1000220348542783975309
  WITHDRAW: USDe, Amount: 500110174271391987654
  WITHDRAW: USDe, Amount: 500110174271391987655
  BORROW: USDe, Amount 1000220348542783975309
  REPAY: USDe, Amount: 1000220348542783975309
  E2E: Collateral WETH, TestAsset ETHx
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: ETHx, Amount: 304733029862948730
  WITHDRAW: ETHx, Amount: 152366514931474365
  WITHDRAW: ETHx, Amount: 152366514931474365
  BORROW: ETHx, Amount 304733029862948730
  REPAY: ETHx, Amount: 304733029862948730
  E2E: Collateral WETH, TestAsset sUSDe
  SUPPLY: WETH, Amount: 31560712246743014949
  SUPPLY: sUSDe, Amount: 916688305094108413095
  WITHDRAW: sUSDe, Amount: 458344152547054206547
  WITHDRAW: sUSDe, Amount: 458344152547054206548

[PASS] test_injectPayloadIntoPayloadsController() (gas: 67263)
[PASS] test_injectProposalIntoGovernance() (gas: 107460)
[PASS] test_payloadCreation() (gas: 1159161)
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=148
  0x3bec1bfc00000000000000000000000000000000000000000000000000000000000000600000000000000000000000009b24c168d6a76b5459b1d47071a54962a4df36c36861736800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000dabad81af85554e9ae636395611c58f7ec1aaec50000000000000000000000000000000000000000000000000000000000000094

[PASS] test_readyPayloadId() (gas: 701361)
Suite result: ok. 9 passed; 0 failed; 0 skipped; finished in 232.67s (232.17s CPU time)

Ran 1 test for tests/PreviewLink.t.sol:PreviewLink
[PASS] testPreviewLink() (gas: 30381)
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 989.20µs (630.30µs CPU time)

Ran 1 test for tests/ProtocolV3TestBase.t.sol:ProtocolV3TestFantomSnapshot
[PASS] test_snapshot() (gas: 3108415)
Suite result: ok. 1 passed; 0 failed; 0 skipped; finished in 39.87s (39.11s CPU time)

Ran 1 test for tests/ProtocolV3TestBase.t.sol:ProtocolV3TestE2ETestOptimismAll
[PASS] test_e2e() (gas: 16913787)
Logs:
  E2E: Collateral DAI, TestAsset DAI
  SUPPLY: DAI, Amount: 100024072793599235528014
  SUPPLY: DAI, Amount: 1000240727935992355280
  WITHDRAW: DAI, Amount: 500120363967996177640
  WITHDRAW: DAI, Amount: 500120363967996177641
  BORROW: DAI, Amount 1000240727935992355280
  REPAY: DAI, Amount: 1000240727935992355280
  E2E: Collateral DAI, TestAsset LINK
  SUPPLY: DAI, Amount: 100024072793599235528014
  SUPPLY: LINK, Amount: 76288613863350003921
  WITHDRAW: LINK, Amount: 38144306931675001960
  WITHDRAW: LINK, Amount: 38144306931675001962
  BORROW: LINK, Amount 76288613863350003921
  REPAY: LINK, Amount: 76288613863350003921
  E2E: Collateral DAI, TestAsset USDC
  SUPPLY: DAI, Amount: 100024072793599235528014
  SUPPLY: USDC, Amount: 1000050002
  WITHDRAW: USDC, Amount: 500025001
  WITHDRAW: USDC, Amount: 500025000
  BORROW: USDC, Amount 1000050002
  REPAY: USDC, Amount: 1000050002
  E2E: Collateral DAI, TestAsset WBTC
  SUPPLY: DAI, Amount: 100024072793599235528014
  SUPPLY: WBTC, Amount: 1556671
  WITHDRAW: WBTC, Amount: 778335
  WITHDRAW: WBTC, Amount: 778335
  BORROW: WBTC, Amount 1556671
  REPAY: WBTC, Amount: 1556671
  E2E: Collateral DAI, TestAsset WETH
  SUPPLY: DAI, Amount: 100024072793599235528014
  SUPPLY: WETH, Amount: 314316162520206817
  WITHDRAW: WETH, Amount: 157158081260103408
  WITHDRAW: WETH, Amount: 157158081260103409
  BORROW: WETH, Amount 314316162520206817
  REPAY: WETH, Amount: 314316162520206817
  E2E: Collateral DAI, TestAsset USDT
  SUPPLY: DAI, Amount: 100024072793599235528014
  SUPPLY: USDT, Amount: 1000005890
  WITHDRAW: USDT, Amount: 500002945
  WITHDRAW: USDT, Amount: 500002945
  BORROW: USDT, Amount 1000005890
  REPAY: USDT, Amount: 1000005890
  E2E: Collateral DAI, TestAsset AAVE
  SUPPLY: DAI, Amount: 100024072793599235528014
  SUPPLY: AAVE, Amount: 11304365519876465893
  WITHDRAW: AAVE, Amount: 5652182759938232946
  WITHDRAW: AAVE, Amount: 5652182759938232946
  E2E: Collateral DAI, TestAsset sUSD
  SUPPLY: DAI, Amount: 100024072793599235528014
  SUPPLY: sUSD, Amount: 1000656170277097503917
  WITHDRAW: sUSD, Amount: 500328085138548751958
  WITHDRAW: sUSD, Amount: 500328085138548751959
  BORROW: sUSD, Amount 1000656170277097503917
  REPAY: sUSD, Amount: 1000656170277097503917
  E2E: Collateral DAI, TestAsset OP
  SUPPLY: DAI, Amount: 100024072793599235528014
  SUPPLY: OP, Amount: 585676573079396231409
  WITHDRAW: OP, Amount: 292838286539698115704
  WITHDRAW: OP, Amount: 292838286539698115704
  BORROW: OP, Amount 585676573079396231409
  REPAY: OP, Amount: 585676573079396231409
  E2E: Collateral DAI, TestAsset wstETH
  SUPPLY: DAI, Amount: 100024072793599235528014
  SUPPLY: wstETH, Amount: 267804379853630361
  WITHDRAW: wstETH, Amount: 133902189926815180
  WITHDRAW: wstETH, Amount: 133902189926815182
  BORROW: wstETH, Amount 267804379853630361
  REPAY: wstETH, Amount: 267804379853630361
  E2E: Collateral DAI, TestAsset LUSD
  SUPPLY: DAI, Amount: 100024072793599235528014
  SUPPLY: LUSD, Amount: 1001638319701236129863
  WITHDRAW: LUSD, Amount: 500819159850618064931
  WITHDRAW: LUSD, Amount: 500819159850618064932
  BORROW: LUSD, Amount 1001638319701236129863
  REPAY: LUSD, Amount: 1001638319701236129863
  E2E: TestAsset MAI SKIPPED
  E2E: Collateral DAI, TestAsset rETH
  SUPPLY: DAI, Amount: 100024072793599235528014
  SUPPLY: rETH, Amount: 282679976871048760
  WITHDRAW: rETH, Amount: 141339988435524380
  WITHDRAW: rETH, Amount: 141339988435524381
  BORROW: rETH, Amount 282679976871048760
  REPAY: rETH, Amount: 282679976871048760
  E2E: Collateral DAI, TestAsset USDC
  SUPPLY: DAI, Amount: 100024072793599235528014
  SUPPLY: USDC, Amount: 1000050002
  WITHDRAW: USDC, Amount: 500025001
  WITHDRAW: USDC, Amount: 500025001
  BORROW: USDC, Amount 1000050002
  REPAY: USDC, Amount: 1000050002

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

Ran 2 tests for tests/ProtocolV2TestBase.t.sol:ProtocolV2TestE2ETestAsset
[PASS] test_defaultTest() (gas: 52297826)
[PASS] test_e2eTestAssetUSDT() (gas: 3270910)
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 177.91s (177.78s CPU time)

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

Ran 1 test for tests/ProtocolV2TestBase.t.sol:ProtocolV2TestBaseTest
[PASS] testE2E() (gas: 21589811)
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 121.27s (120.90s CPU time)

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

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

Ran 2 tests for tests/ProtocolV3TestBase.t.sol:ProtocolV3TestE2ETestArbitrumAll
[PASS] test_deal() (gas: 190668)
[PASS] test_e2e() (gas: 17561604)
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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  REPAY: ARB, Amount: 676722766984049644382

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

Ran 2 tests for tests/ProtocolV3TestBase.t.sol:ProtocolV3TestE2ETestAsset
[PASS] test_e2eTestAssetMAI() (gas: 1893109)
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
  REPAY: MAI, Amount: 1008550074022028407809

[PASS] test_e2eTestAssetUSDC() (gas: 1967393)
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
  REPAY: USDC, Amount: 1000008660

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

Ran 1 test for tests/ProtocolV3TestBase.t.sol:ProtocolV3TestE2ETestAllMainnet
[PASS] test_e2e() (gas: 33233556)
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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  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
  REPAY: FRAX, Amount: 1002424162351815395170
  E2E: Collateral WETH, TestAsset GHO
  SUPPLY: WETH, Amount: 30164183651615744497
  BORROW: GHO, Amount 1000000000000000000000
  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
  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
  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
  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
  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
  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
  REPAY: PYUSD, Amount: 1000500250

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

Ran 81 test suites in 439.11s (1593.34s CPU time): 198 tests passed, 0 failed, 0 skipped (198 total tests)

Please sign in to comment.