From 37a439782e5c0420798678a67081246cff55ce64 Mon Sep 17 00:00:00 2001 From: Lukas Date: Thu, 19 Sep 2024 16:39:06 +0200 Subject: [PATCH 01/22] feat: upgrade to 3.2.0 --- .gitmodules | 1 + lib/aave-address-book | 2 +- lib/forge-std | 2 +- lib/solidity-utils | 2 +- remappings.txt | 2 -- scripts/RiskStewards.s.sol | 2 +- src/ProtocolV3TestBase.sol | 4 ++-- src/asset-manager/AaveWstethWithdrawer.sol | 21 +++++++++++++++++-- .../arbitrum/AaveArbEthERC20Bridge.sol | 8 +++++++ src/bridges/optimism/AaveOpEthERC20Bridge.sol | 8 +++++++ src/bridges/polygon/AavePolEthERC20Bridge.sol | 8 +++++++ .../polygon/AavePolEthPlasmaBridge.sol | 8 +++++++ src/riskstewards/CapsPlusRiskSteward.sol | 4 ++-- src/riskstewards/ICapsPlusRiskSteward.sol | 4 ++-- src/swaps/AaveSwapper.sol | 8 +++++++ src/v2-config-engine/AaveV2ConfigEngine.sol | 2 +- src/v2-config-engine/AaveV2Payload.sol | 4 ++-- .../AaveV3PayloadArbitrum.sol | 2 +- .../AaveV3PayloadAvalanche.sol | 2 +- src/v3-config-engine/AaveV3PayloadBNB.sol | 2 +- src/v3-config-engine/AaveV3PayloadBase.sol | 2 +- .../AaveV3PayloadEthereum.sol | 2 +- .../AaveV3PayloadEthereumEtherFi.sol | 9 +++++--- .../AaveV3PayloadEthereumLido.sol | 6 ++++-- src/v3-config-engine/AaveV3PayloadGnosis.sol | 2 +- src/v3-config-engine/AaveV3PayloadMetis.sol | 2 +- .../AaveV3PayloadOptimism.sol | 2 +- src/v3-config-engine/AaveV3PayloadPolygon.sol | 2 +- .../AaveV3PayloadPolygonZkEvm.sol | 2 +- src/v3-config-engine/AaveV3PayloadScroll.sol | 2 +- src/v3-config-engine/AaveV3PayloadZkSync.sol | 2 +- .../mocks/AaveV3EthereumAssetEModeUpdate.sol | 2 +- tests/mocks/AaveV3PolygonBorrowUpdate.sol | 2 +- .../AaveV3PolygonBorrowUpdateNoChange.sol | 2 +- .../AaveV3PolygonEModeCategoryUpdate.sol | 2 +- tests/mocks/AaveV3PolygonPriceFeedUpdate.sol | 2 +- tests/riskstewards/CapsPlusRiskSteward.t.sol | 6 +++--- 37 files changed, 103 insertions(+), 42 deletions(-) diff --git a/.gitmodules b/.gitmodules index 837cb4ae2..dc2362419 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,4 @@ [submodule "lib/aave-address-book"] path = lib/aave-address-book url = https://github.com/bgd-labs/aave-address-book + branch = feat/3.2.0 diff --git a/lib/aave-address-book b/lib/aave-address-book index 2669c8995..80b427563 160000 --- a/lib/aave-address-book +++ b/lib/aave-address-book @@ -1 +1 @@ -Subproject commit 2669c89957af067ed48626455de98a646dc81c78 +Subproject commit 80b42756306124b64e21fbc29f6f2f6917fe1184 diff --git a/lib/forge-std b/lib/forge-std index bf6606142..5a802d7c1 160000 --- a/lib/forge-std +++ b/lib/forge-std @@ -1 +1 @@ -Subproject commit bf6606142994b1e47e2882ce0cd477c020d77623 +Subproject commit 5a802d7c10abb4bbfb3e7214c75052ef9e6a06f8 diff --git a/lib/solidity-utils b/lib/solidity-utils index 5d728d5d4..a842c3630 160000 --- a/lib/solidity-utils +++ b/lib/solidity-utils @@ -1 +1 @@ -Subproject commit 5d728d5d4c43508b46223fffbae94ee16f61f977 +Subproject commit a842c36308e76b8202a46962a6c2d59daceb640a diff --git a/remappings.txt b/remappings.txt index 706bff1af..93fccce41 100644 --- a/remappings.txt +++ b/remappings.txt @@ -1,6 +1,4 @@ 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 forge-std/=lib/forge-std/src/ solidity-utils/=lib/solidity-utils/src/ diff --git a/scripts/RiskStewards.s.sol b/scripts/RiskStewards.s.sol index 71e551e10..5431fd71a 100644 --- a/scripts/RiskStewards.s.sol +++ b/scripts/RiskStewards.s.sol @@ -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'; diff --git a/src/ProtocolV3TestBase.sol b/src/ProtocolV3TestBase.sol index 54aea4a87..980cdd0b0 100644 --- a/src/ProtocolV3TestBase.sol +++ b/src/ProtocolV3TestBase.sol @@ -6,8 +6,8 @@ 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'; diff --git a/src/asset-manager/AaveWstethWithdrawer.sol b/src/asset-manager/AaveWstethWithdrawer.sol index 03dec2a09..86ae9f610 100644 --- a/src/asset-manager/AaveWstethWithdrawer.sol +++ b/src/asset-manager/AaveWstethWithdrawer.sol @@ -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'; @@ -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 @@ -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); @@ -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 {} } diff --git a/src/bridges/arbitrum/AaveArbEthERC20Bridge.sol b/src/bridges/arbitrum/AaveArbEthERC20Bridge.sol index a6019ac09..3e73c4cb8 100644 --- a/src/bridges/arbitrum/AaveArbEthERC20Bridge.sol +++ b/src/bridges/arbitrum/AaveArbEthERC20Bridge.sol @@ -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'; @@ -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; + } } diff --git a/src/bridges/optimism/AaveOpEthERC20Bridge.sol b/src/bridges/optimism/AaveOpEthERC20Bridge.sol index 2d7bcc3af..1a3c8940f 100644 --- a/src/bridges/optimism/AaveOpEthERC20Bridge.sol +++ b/src/bridges/optimism/AaveOpEthERC20Bridge.sol @@ -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'; @@ -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; + } } diff --git a/src/bridges/polygon/AavePolEthERC20Bridge.sol b/src/bridges/polygon/AavePolEthERC20Bridge.sol index 7a7514ba4..9e18d3237 100644 --- a/src/bridges/polygon/AavePolEthERC20Bridge.sol +++ b/src/bridges/polygon/AavePolEthERC20Bridge.sol @@ -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'; @@ -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(); diff --git a/src/bridges/polygon/AavePolEthPlasmaBridge.sol b/src/bridges/polygon/AavePolEthPlasmaBridge.sol index f56e06c24..465f02b16 100644 --- a/src/bridges/polygon/AavePolEthPlasmaBridge.sol +++ b/src/bridges/polygon/AavePolEthPlasmaBridge.sol @@ -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'; @@ -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(); diff --git a/src/riskstewards/CapsPlusRiskSteward.sol b/src/riskstewards/CapsPlusRiskSteward.sol index ef8528fbc..0daf0578f 100644 --- a/src/riskstewards/CapsPlusRiskSteward.sol +++ b/src/riskstewards/CapsPlusRiskSteward.sol @@ -3,8 +3,8 @@ pragma solidity ^0.8.0; import {IACLManager, IPoolConfigurator, IPoolDataProvider} from 'aave-address-book/AaveV3.sol'; import {Address} from 'solidity-utils/contracts/oz-common/Address.sol'; -import {EngineFlags} from 'aave-v3-origin/periphery/contracts/v3-config-engine/EngineFlags.sol'; -import {IAaveV3ConfigEngine} from 'aave-v3-origin/periphery/contracts/v3-config-engine/IAaveV3ConfigEngine.sol'; +import {EngineFlags} from 'aave-v3-origin/contracts/extensions/v3-config-engine/EngineFlags.sol'; +import {IAaveV3ConfigEngine} from 'aave-v3-origin/contracts/extensions/v3-config-engine/IAaveV3ConfigEngine.sol'; import {ICapsPlusRiskSteward} from './ICapsPlusRiskSteward.sol'; /** diff --git a/src/riskstewards/ICapsPlusRiskSteward.sol b/src/riskstewards/ICapsPlusRiskSteward.sol index 143a0a832..f79d3301f 100644 --- a/src/riskstewards/ICapsPlusRiskSteward.sol +++ b/src/riskstewards/ICapsPlusRiskSteward.sol @@ -3,8 +3,8 @@ pragma solidity ^0.8.0; import {IACLManager, IPoolConfigurator, IPoolDataProvider} from 'aave-address-book/AaveV3.sol'; import {Address} from 'solidity-utils/contracts/oz-common/Address.sol'; -import {EngineFlags} from 'aave-v3-origin/periphery/contracts/v3-config-engine/EngineFlags.sol'; -import {IAaveV3ConfigEngine} from 'aave-v3-origin/periphery/contracts/v3-config-engine/IAaveV3ConfigEngine.sol'; +import {EngineFlags} from 'aave-v3-origin/contracts/extensions/v3-config-engine/EngineFlags.sol'; +import {IAaveV3ConfigEngine} from 'aave-v3-origin/contracts/extensions/v3-config-engine/IAaveV3ConfigEngine.sol'; /** * @title ICapsPlusRiskSteward diff --git a/src/swaps/AaveSwapper.sol b/src/swaps/AaveSwapper.sol index 80e8021c8..66402dacd 100644 --- a/src/swaps/AaveSwapper.sol +++ b/src/swaps/AaveSwapper.sol @@ -5,6 +5,7 @@ pragma solidity ^0.8.0; import {IERC20} from 'solidity-utils/contracts/oz-common/interfaces/IERC20.sol'; import {SafeERC20} from 'solidity-utils/contracts/oz-common/SafeERC20.sol'; import {Rescuable} from 'solidity-utils/contracts/utils/Rescuable.sol'; +import {RescuableBase, IRescuableBase} from 'solidity-utils/contracts/utils/RescuableBase.sol'; import {OwnableWithGuardian} from 'solidity-utils/contracts/access-control/OwnableWithGuardian.sol'; import {Initializable} from 'solidity-utils/contracts/transparent-proxy/Initializable.sol'; import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol'; @@ -140,6 +141,13 @@ contract AaveSwapper is Initializable, OwnableWithGuardian, Rescuable { return owner(); } + /// @inheritdoc IRescuableBase + function maxRescue( + address erc20Token + ) public view override(RescuableBase, IRescuableBase) returns (uint256) { + return type(uint256).max; + } + function _getPriceCheckerAndData( address toToken, address fromOracle, diff --git a/src/v2-config-engine/AaveV2ConfigEngine.sol b/src/v2-config-engine/AaveV2ConfigEngine.sol index c50f8e359..0a052954c 100644 --- a/src/v2-config-engine/AaveV2ConfigEngine.sol +++ b/src/v2-config-engine/AaveV2ConfigEngine.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.12; -import {EngineFlags} from 'aave-v3-origin/periphery/contracts/v3-config-engine/EngineFlags.sol'; +import {EngineFlags} from 'aave-v3-origin/contracts/extensions/v3-config-engine/EngineFlags.sol'; import './IAaveV2ConfigEngine.sol'; /** diff --git a/src/v2-config-engine/AaveV2Payload.sol b/src/v2-config-engine/AaveV2Payload.sol index d9fc79dae..18f7a28c4 100644 --- a/src/v2-config-engine/AaveV2Payload.sol +++ b/src/v2-config-engine/AaveV2Payload.sol @@ -2,10 +2,10 @@ pragma solidity ^0.8.0; import {Address} from 'solidity-utils/contracts/oz-common/Address.sol'; -import {WadRayMath} from 'aave-v3-origin/core/contracts/protocol/libraries/math/WadRayMath.sol'; +import {WadRayMath} from 'aave-v3-origin/contracts/protocol/libraries/math/WadRayMath.sol'; import {IAaveV2ConfigEngine as IEngine} from './IAaveV2ConfigEngine.sol'; import {IV2RateStrategyFactory} from './IV2RateStrategyFactory.sol'; -import {EngineFlags} from 'aave-v3-origin/periphery/contracts/v3-config-engine/EngineFlags.sol'; +import {EngineFlags} from 'aave-v3-origin/contracts/extensions/v3-config-engine/EngineFlags.sol'; /** * @dev Base smart contract for an Aave v3.0.1 configs update. diff --git a/src/v3-config-engine/AaveV3PayloadArbitrum.sol b/src/v3-config-engine/AaveV3PayloadArbitrum.sol index 9018c6b88..e2bce89d5 100644 --- a/src/v3-config-engine/AaveV3PayloadArbitrum.sol +++ b/src/v3-config-engine/AaveV3PayloadArbitrum.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.0; import {AaveV3Arbitrum} from 'aave-address-book/AaveV3Arbitrum.sol'; -import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol'; +import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol'; /** * @dev Base smart contract for an Aave v3.1.0 listing on v3 Arbitrum. diff --git a/src/v3-config-engine/AaveV3PayloadAvalanche.sol b/src/v3-config-engine/AaveV3PayloadAvalanche.sol index 3813cccc6..baab95805 100644 --- a/src/v3-config-engine/AaveV3PayloadAvalanche.sol +++ b/src/v3-config-engine/AaveV3PayloadAvalanche.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.0; import {AaveV3Avalanche} from 'aave-address-book/AaveV3Avalanche.sol'; -import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol'; +import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol'; /** * @dev Base smart contract for an Aave v3.1.0 listing on v3 Avalanche. diff --git a/src/v3-config-engine/AaveV3PayloadBNB.sol b/src/v3-config-engine/AaveV3PayloadBNB.sol index 993c9e762..e863fadd0 100644 --- a/src/v3-config-engine/AaveV3PayloadBNB.sol +++ b/src/v3-config-engine/AaveV3PayloadBNB.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.0; import {AaveV3BNB} from 'aave-address-book/AaveV3BNB.sol'; -import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol'; +import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol'; /** * @dev Base smart contract for an Aave v3.1.0 listing on v3 Bnb. diff --git a/src/v3-config-engine/AaveV3PayloadBase.sol b/src/v3-config-engine/AaveV3PayloadBase.sol index 31ced655b..57242cb3e 100644 --- a/src/v3-config-engine/AaveV3PayloadBase.sol +++ b/src/v3-config-engine/AaveV3PayloadBase.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.0; import {AaveV3Base} from 'aave-address-book/AaveV3Base.sol'; -import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol'; +import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol'; /** * @dev Base smart contract for an Aave v3.1.0 listing on v3 Base. diff --git a/src/v3-config-engine/AaveV3PayloadEthereum.sol b/src/v3-config-engine/AaveV3PayloadEthereum.sol index 7526ffb22..1c2d00e32 100644 --- a/src/v3-config-engine/AaveV3PayloadEthereum.sol +++ b/src/v3-config-engine/AaveV3PayloadEthereum.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.0; import {AaveV3Ethereum} from 'aave-address-book/AaveV3Ethereum.sol'; -import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol'; +import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol'; /** * @dev Base smart contract for an Aave v3.1.0 listing on v3 Ethereum. diff --git a/src/v3-config-engine/AaveV3PayloadEthereumEtherFi.sol b/src/v3-config-engine/AaveV3PayloadEthereumEtherFi.sol index 6721b021d..b0981d4f4 100644 --- a/src/v3-config-engine/AaveV3PayloadEthereumEtherFi.sol +++ b/src/v3-config-engine/AaveV3PayloadEthereumEtherFi.sol @@ -2,14 +2,17 @@ pragma solidity ^0.8.0; import {AaveV3EthereumEtherFi} from 'aave-address-book/AaveV3EthereumEtherFi.sol'; -import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol'; +import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol'; /** * @dev Base smart contract for an Aave v3.1.0 listing on v3 Ethereum EtherFi. * @author BGD Labs */ -abstract contract AaveV3PayloadEthereumEtherFi is AaveV3Payload(IEngine(AaveV3EthereumEtherFi.CONFIG_ENGINE)) { +abstract contract AaveV3PayloadEthereumEtherFi is + AaveV3Payload(IEngine(AaveV3EthereumEtherFi.CONFIG_ENGINE)) +{ function getPoolContext() public pure override returns (IEngine.PoolContext memory) { - return IEngine.PoolContext({networkName: 'Ethereum EtherFi', networkAbbreviation: 'EthEtherFi'}); + return + IEngine.PoolContext({networkName: 'Ethereum EtherFi', networkAbbreviation: 'EthEtherFi'}); } } diff --git a/src/v3-config-engine/AaveV3PayloadEthereumLido.sol b/src/v3-config-engine/AaveV3PayloadEthereumLido.sol index b6065be9e..2f729589f 100644 --- a/src/v3-config-engine/AaveV3PayloadEthereumLido.sol +++ b/src/v3-config-engine/AaveV3PayloadEthereumLido.sol @@ -2,13 +2,15 @@ pragma solidity ^0.8.0; import {AaveV3EthereumLido} from 'aave-address-book/AaveV3EthereumLido.sol'; -import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol'; +import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol'; /** * @dev Base smart contract for an Aave v3.1.0 listing on v3 Ethereum Lido. * @author BGD Labs */ -abstract contract AaveV3PayloadEthereumLido is AaveV3Payload(IEngine(AaveV3EthereumLido.CONFIG_ENGINE)) { +abstract contract AaveV3PayloadEthereumLido is + AaveV3Payload(IEngine(AaveV3EthereumLido.CONFIG_ENGINE)) +{ function getPoolContext() public pure override returns (IEngine.PoolContext memory) { return IEngine.PoolContext({networkName: 'Ethereum Lido', networkAbbreviation: 'EthLido'}); } diff --git a/src/v3-config-engine/AaveV3PayloadGnosis.sol b/src/v3-config-engine/AaveV3PayloadGnosis.sol index 4ce5b9f6a..d094ddcbb 100644 --- a/src/v3-config-engine/AaveV3PayloadGnosis.sol +++ b/src/v3-config-engine/AaveV3PayloadGnosis.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.0; import {AaveV3Gnosis} from 'aave-address-book/AaveV3Gnosis.sol'; -import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol'; +import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol'; /** * @dev Base smart contract for an Aave v3.1.0 listing on v3 Gnosis. diff --git a/src/v3-config-engine/AaveV3PayloadMetis.sol b/src/v3-config-engine/AaveV3PayloadMetis.sol index b50dac291..ce3453370 100644 --- a/src/v3-config-engine/AaveV3PayloadMetis.sol +++ b/src/v3-config-engine/AaveV3PayloadMetis.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.0; import {AaveV3Metis} from 'aave-address-book/AaveV3Metis.sol'; -import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol'; +import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol'; /** * @dev Base smart contract for an Aave v3.1.0 listing on v3 Metis. diff --git a/src/v3-config-engine/AaveV3PayloadOptimism.sol b/src/v3-config-engine/AaveV3PayloadOptimism.sol index 099b212c8..3b68cfb7d 100644 --- a/src/v3-config-engine/AaveV3PayloadOptimism.sol +++ b/src/v3-config-engine/AaveV3PayloadOptimism.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.0; import {AaveV3Optimism} from 'aave-address-book/AaveV3Optimism.sol'; -import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol'; +import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol'; /** * @dev Base smart contract for an Aave v3.1.0 listing on v3 Optimism. diff --git a/src/v3-config-engine/AaveV3PayloadPolygon.sol b/src/v3-config-engine/AaveV3PayloadPolygon.sol index 74163e852..5548fd3fa 100644 --- a/src/v3-config-engine/AaveV3PayloadPolygon.sol +++ b/src/v3-config-engine/AaveV3PayloadPolygon.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.0; import {AaveV3Polygon} from 'aave-address-book/AaveV3Polygon.sol'; -import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol'; +import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol'; /** * @dev Base smart contract for an Aave v3.1.0 listing on v3 Polygon. diff --git a/src/v3-config-engine/AaveV3PayloadPolygonZkEvm.sol b/src/v3-config-engine/AaveV3PayloadPolygonZkEvm.sol index 696608fa8..b0607c0f9 100644 --- a/src/v3-config-engine/AaveV3PayloadPolygonZkEvm.sol +++ b/src/v3-config-engine/AaveV3PayloadPolygonZkEvm.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.0; import {AaveV3PolygonZkEvm} from 'aave-address-book/AaveV3PolygonZkEvm.sol'; -import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol'; +import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol'; /** * @dev Base smart contract for an Aave v3.1.0 listing on v3 Polygon ZkEvm. diff --git a/src/v3-config-engine/AaveV3PayloadScroll.sol b/src/v3-config-engine/AaveV3PayloadScroll.sol index 9c042e0dc..fda50ef65 100644 --- a/src/v3-config-engine/AaveV3PayloadScroll.sol +++ b/src/v3-config-engine/AaveV3PayloadScroll.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.0; import {AaveV3Scroll} from 'aave-address-book/AaveV3Scroll.sol'; -import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol'; +import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol'; /** * @dev Base smart contract for an Aave v3.1.0 listing on v3 Scroll. diff --git a/src/v3-config-engine/AaveV3PayloadZkSync.sol b/src/v3-config-engine/AaveV3PayloadZkSync.sol index 3a1811c65..305c1baf0 100644 --- a/src/v3-config-engine/AaveV3PayloadZkSync.sol +++ b/src/v3-config-engine/AaveV3PayloadZkSync.sol @@ -2,7 +2,7 @@ pragma solidity ^0.8.0; import {AaveV3ZkSync} from 'aave-address-book/AaveV3ZkSync.sol'; -import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol'; +import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol'; /** * @dev Base smart contract for an Aave v3.1.0 listing on v3 ZkSync. diff --git a/tests/mocks/AaveV3EthereumAssetEModeUpdate.sol b/tests/mocks/AaveV3EthereumAssetEModeUpdate.sol index 3b8e87b0d..700bded8c 100644 --- a/tests/mocks/AaveV3EthereumAssetEModeUpdate.sol +++ b/tests/mocks/AaveV3EthereumAssetEModeUpdate.sol @@ -12,7 +12,7 @@ import {AaveV3EthereumAssets} from 'aave-address-book/AaveV3Ethereum.sol'; contract AaveV3EthereumAssetEModeUpdate is AaveV3Payload { constructor(IEngine customEngine) AaveV3Payload(customEngine) {} - function assetsEModeUpdates() public pure override returns (IEngine.AssetEModeUpdate[] memory) { + function assetEModeUpdates() public pure override returns (IEngine.AssetEModeUpdate[] memory) { IEngine.AssetEModeUpdate[] memory eModeUpdate = new IEngine.AssetEModeUpdate[](1); eModeUpdate[0] = IEngine.AssetEModeUpdate({ diff --git a/tests/mocks/AaveV3PolygonBorrowUpdate.sol b/tests/mocks/AaveV3PolygonBorrowUpdate.sol index 73f8d041f..dacba0f2e 100644 --- a/tests/mocks/AaveV3PolygonBorrowUpdate.sol +++ b/tests/mocks/AaveV3PolygonBorrowUpdate.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol'; +import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol'; import {AaveV3PolygonAssets} from 'aave-address-book/AaveV3Polygon.sol'; /** diff --git a/tests/mocks/AaveV3PolygonBorrowUpdateNoChange.sol b/tests/mocks/AaveV3PolygonBorrowUpdateNoChange.sol index cf2f57e53..420e0aecf 100644 --- a/tests/mocks/AaveV3PolygonBorrowUpdateNoChange.sol +++ b/tests/mocks/AaveV3PolygonBorrowUpdateNoChange.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol'; +import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol'; import {AaveV3PolygonAssets} from 'aave-address-book/AaveV3Polygon.sol'; /** diff --git a/tests/mocks/AaveV3PolygonEModeCategoryUpdate.sol b/tests/mocks/AaveV3PolygonEModeCategoryUpdate.sol index dc2e25db8..5e6e86eb7 100644 --- a/tests/mocks/AaveV3PolygonEModeCategoryUpdate.sol +++ b/tests/mocks/AaveV3PolygonEModeCategoryUpdate.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol'; +import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol'; /** * @dev Smart contract for a mock update, to be able to test diff --git a/tests/mocks/AaveV3PolygonPriceFeedUpdate.sol b/tests/mocks/AaveV3PolygonPriceFeedUpdate.sol index 0613e6282..54b4271ae 100644 --- a/tests/mocks/AaveV3PolygonPriceFeedUpdate.sol +++ b/tests/mocks/AaveV3PolygonPriceFeedUpdate.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; -import 'aave-v3-origin/periphery/contracts/v3-config-engine/AaveV3Payload.sol'; +import 'aave-v3-origin/contracts/extensions/v3-config-engine/AaveV3Payload.sol'; import {AaveV3PolygonAssets} from 'aave-address-book/AaveV3Polygon.sol'; /** diff --git a/tests/riskstewards/CapsPlusRiskSteward.t.sol b/tests/riskstewards/CapsPlusRiskSteward.t.sol index bac78c82c..c6b431060 100644 --- a/tests/riskstewards/CapsPlusRiskSteward.t.sol +++ b/tests/riskstewards/CapsPlusRiskSteward.t.sol @@ -5,9 +5,9 @@ import 'forge-std/Test.sol'; import {IACLManager, IPoolConfigurator, IPoolDataProvider} from 'aave-address-book/AaveV3.sol'; import {AaveV3Ethereum, AaveV3EthereumAssets} from 'aave-address-book/AaveV3Ethereum.sol'; import {CapsPlusRiskSteward, CapsPlusRiskStewardErrors} from '../../src/riskstewards/CapsPlusRiskSteward.sol'; -import {IAaveV3ConfigEngine} from 'aave-v3-origin/periphery/contracts/v3-config-engine/IAaveV3ConfigEngine.sol'; -import {EngineFlags} from 'aave-v3-origin/periphery/contracts/v3-config-engine/EngineFlags.sol'; -import {GovernanceV3Ethereum} from "aave-address-book/GovernanceV3Ethereum.sol"; +import {IAaveV3ConfigEngine} from 'aave-v3-origin/contracts/extensions/v3-config-engine/IAaveV3ConfigEngine.sol'; +import {EngineFlags} from 'aave-v3-origin/contracts/extensions/v3-config-engine/EngineFlags.sol'; +import {GovernanceV3Ethereum} from 'aave-address-book/GovernanceV3Ethereum.sol'; contract CapsPlusRiskSteward_Test is Test { address public constant user = address(42); From 323a320173c532b5711ef2ae0e8dd72334a8857e Mon Sep 17 00:00:00 2001 From: Lukas Date: Thu, 19 Sep 2024 16:50:38 +0200 Subject: [PATCH 02/22] feat: upgrade to aave 3.2 --- .assets/17f6b65b666e033f6d757eab80af272608f3179e.svg | 1 + .assets/229e4f50d5cb7a04464c2bd175ef23d256e2d25d.svg | 1 + .assets/23e67c7d46dd80f36d580b243c5716c84080a34f.svg | 1 + .assets/3f4ff4e3916b8e502cabc40483a392da51ad678a.svg | 1 + .assets/4023527fa4852947cff1f02ae9ff00ea9bc77719.svg | 1 + .assets/47b0af3d54a5c5cfec9387787b9ad4e8de5bce63.svg | 1 + .assets/5f6eef0835ac19ee0c898e4b760d8970954291bf.svg | 1 + .assets/64fd6acec636adec0e975e8031f8e3f7fb87bb7d.svg | 1 + .assets/772fdedb24491c4dde9a73af5e1fd183523d5024.svg | 1 + .assets/838ead98a9ae093ded1390e58ff2a328cd8e29a4.svg | 1 + .assets/8a8a0e067285eb92c25c539be301949997ccd175.svg | 1 + .assets/8f48c9478437c54125028a1d71100121cc58dcd0.svg | 1 + .assets/952932c7b15c44b006f762abc15f3c37d87b04d9.svg | 1 + .assets/9b3ea57ff4b19f392d36203fa741c94e83a96393.svg | 1 + .assets/bf52f4b65079681aa65fd69327e3061d269fe51d.svg | 1 + .assets/c6f6294fedb5e5b5fc418d2c7861ece2c2bdef75.svg | 1 + .assets/ea9358e636f19fd911c6b5fcbe0f3b0c33f010bb.svg | 1 + .assets/ee98e9626d6dd42942fdaf5d08078961de8bf38f.svg | 1 + .assets/fefe2c9708de2db1319f2fac935bcc21796a28c0.svg | 1 + remappings.txt | 1 + src/ProtocolV3TestBase.sol | 7 ++----- tests/mocks/AaveV3AvalancheEModeCategoryUpdateNoChange.sol | 1 - tests/mocks/AaveV3EthereumAssetEModeUpdate.sol | 4 +++- tests/mocks/AaveV3PolygonBorrowUpdate.sol | 1 - tests/mocks/AaveV3PolygonBorrowUpdateNoChange.sol | 1 - tests/mocks/AaveV3PolygonEModeCategoryUpdate.sol | 2 -- 26 files changed, 25 insertions(+), 11 deletions(-) create mode 100644 .assets/17f6b65b666e033f6d757eab80af272608f3179e.svg create mode 100644 .assets/229e4f50d5cb7a04464c2bd175ef23d256e2d25d.svg create mode 100644 .assets/23e67c7d46dd80f36d580b243c5716c84080a34f.svg create mode 100644 .assets/3f4ff4e3916b8e502cabc40483a392da51ad678a.svg create mode 100644 .assets/4023527fa4852947cff1f02ae9ff00ea9bc77719.svg create mode 100644 .assets/47b0af3d54a5c5cfec9387787b9ad4e8de5bce63.svg create mode 100644 .assets/5f6eef0835ac19ee0c898e4b760d8970954291bf.svg create mode 100644 .assets/64fd6acec636adec0e975e8031f8e3f7fb87bb7d.svg create mode 100644 .assets/772fdedb24491c4dde9a73af5e1fd183523d5024.svg create mode 100644 .assets/838ead98a9ae093ded1390e58ff2a328cd8e29a4.svg create mode 100644 .assets/8a8a0e067285eb92c25c539be301949997ccd175.svg create mode 100644 .assets/8f48c9478437c54125028a1d71100121cc58dcd0.svg create mode 100644 .assets/952932c7b15c44b006f762abc15f3c37d87b04d9.svg create mode 100644 .assets/9b3ea57ff4b19f392d36203fa741c94e83a96393.svg create mode 100644 .assets/bf52f4b65079681aa65fd69327e3061d269fe51d.svg create mode 100644 .assets/c6f6294fedb5e5b5fc418d2c7861ece2c2bdef75.svg create mode 100644 .assets/ea9358e636f19fd911c6b5fcbe0f3b0c33f010bb.svg create mode 100644 .assets/ee98e9626d6dd42942fdaf5d08078961de8bf38f.svg create mode 100644 .assets/fefe2c9708de2db1319f2fac935bcc21796a28c0.svg diff --git a/.assets/17f6b65b666e033f6d757eab80af272608f3179e.svg b/.assets/17f6b65b666e033f6d757eab80af272608f3179e.svg new file mode 100644 index 000000000..80f119ffe --- /dev/null +++ b/.assets/17f6b65b666e033f6d757eab80af272608f3179e.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%400%Optimal utilization 45%Optimal utilization 45% \ No newline at end of file diff --git a/.assets/229e4f50d5cb7a04464c2bd175ef23d256e2d25d.svg b/.assets/229e4f50d5cb7a04464c2bd175ef23d256e2d25d.svg new file mode 100644 index 000000000..04a90eb8f --- /dev/null +++ b/.assets/229e4f50d5cb7a04464c2bd175ef23d256e2d25d.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%Optimal utilization 20%Optimal utilization 20% \ No newline at end of file diff --git a/.assets/23e67c7d46dd80f36d580b243c5716c84080a34f.svg b/.assets/23e67c7d46dd80f36d580b243c5716c84080a34f.svg new file mode 100644 index 000000000..a09281518 --- /dev/null +++ b/.assets/23e67c7d46dd80f36d580b243c5716c84080a34f.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%20%40%60%80%Optimal utilization 90%Optimal utilization 90% \ No newline at end of file diff --git a/.assets/3f4ff4e3916b8e502cabc40483a392da51ad678a.svg b/.assets/3f4ff4e3916b8e502cabc40483a392da51ad678a.svg new file mode 100644 index 000000000..f005982aa --- /dev/null +++ b/.assets/3f4ff4e3916b8e502cabc40483a392da51ad678a.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%400%Optimal utilization 65%Optimal utilization 65% \ No newline at end of file diff --git a/.assets/4023527fa4852947cff1f02ae9ff00ea9bc77719.svg b/.assets/4023527fa4852947cff1f02ae9ff00ea9bc77719.svg new file mode 100644 index 000000000..80f119ffe --- /dev/null +++ b/.assets/4023527fa4852947cff1f02ae9ff00ea9bc77719.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%400%Optimal utilization 45%Optimal utilization 45% \ No newline at end of file diff --git a/.assets/47b0af3d54a5c5cfec9387787b9ad4e8de5bce63.svg b/.assets/47b0af3d54a5c5cfec9387787b9ad4e8de5bce63.svg new file mode 100644 index 000000000..282527635 --- /dev/null +++ b/.assets/47b0af3d54a5c5cfec9387787b9ad4e8de5bce63.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%5%10%Optimal utilization 1%Optimal utilization 1% \ No newline at end of file diff --git a/.assets/5f6eef0835ac19ee0c898e4b760d8970954291bf.svg b/.assets/5f6eef0835ac19ee0c898e4b760d8970954291bf.svg new file mode 100644 index 000000000..1f6321b7c --- /dev/null +++ b/.assets/5f6eef0835ac19ee0c898e4b760d8970954291bf.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%20%40%60%80%Optimal utilization 80%Optimal utilization 80% \ No newline at end of file diff --git a/.assets/64fd6acec636adec0e975e8031f8e3f7fb87bb7d.svg b/.assets/64fd6acec636adec0e975e8031f8e3f7fb87bb7d.svg new file mode 100644 index 000000000..eef7c5305 --- /dev/null +++ b/.assets/64fd6acec636adec0e975e8031f8e3f7fb87bb7d.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%Optimal utilization 69%Optimal utilization 69% \ No newline at end of file diff --git a/.assets/772fdedb24491c4dde9a73af5e1fd183523d5024.svg b/.assets/772fdedb24491c4dde9a73af5e1fd183523d5024.svg new file mode 100644 index 000000000..80f119ffe --- /dev/null +++ b/.assets/772fdedb24491c4dde9a73af5e1fd183523d5024.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%400%Optimal utilization 45%Optimal utilization 45% \ No newline at end of file diff --git a/.assets/838ead98a9ae093ded1390e58ff2a328cd8e29a4.svg b/.assets/838ead98a9ae093ded1390e58ff2a328cd8e29a4.svg new file mode 100644 index 000000000..35f28524f --- /dev/null +++ b/.assets/838ead98a9ae093ded1390e58ff2a328cd8e29a4.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%400%Optimal utilization 80%Optimal utilization 80% \ No newline at end of file diff --git a/.assets/8a8a0e067285eb92c25c539be301949997ccd175.svg b/.assets/8a8a0e067285eb92c25c539be301949997ccd175.svg new file mode 100644 index 000000000..35f28524f --- /dev/null +++ b/.assets/8a8a0e067285eb92c25c539be301949997ccd175.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%400%Optimal utilization 80%Optimal utilization 80% \ No newline at end of file diff --git a/.assets/8f48c9478437c54125028a1d71100121cc58dcd0.svg b/.assets/8f48c9478437c54125028a1d71100121cc58dcd0.svg new file mode 100644 index 000000000..50adfed87 --- /dev/null +++ b/.assets/8f48c9478437c54125028a1d71100121cc58dcd0.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%Optimal utilization 80%Optimal utilization 80% \ No newline at end of file diff --git a/.assets/952932c7b15c44b006f762abc15f3c37d87b04d9.svg b/.assets/952932c7b15c44b006f762abc15f3c37d87b04d9.svg new file mode 100644 index 000000000..35f28524f --- /dev/null +++ b/.assets/952932c7b15c44b006f762abc15f3c37d87b04d9.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%400%Optimal utilization 80%Optimal utilization 80% \ No newline at end of file diff --git a/.assets/9b3ea57ff4b19f392d36203fa741c94e83a96393.svg b/.assets/9b3ea57ff4b19f392d36203fa741c94e83a96393.svg new file mode 100644 index 000000000..04a90eb8f --- /dev/null +++ b/.assets/9b3ea57ff4b19f392d36203fa741c94e83a96393.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%Optimal utilization 20%Optimal utilization 20% \ No newline at end of file diff --git a/.assets/bf52f4b65079681aa65fd69327e3061d269fe51d.svg b/.assets/bf52f4b65079681aa65fd69327e3061d269fe51d.svg new file mode 100644 index 000000000..80f119ffe --- /dev/null +++ b/.assets/bf52f4b65079681aa65fd69327e3061d269fe51d.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%400%Optimal utilization 45%Optimal utilization 45% \ No newline at end of file diff --git a/.assets/c6f6294fedb5e5b5fc418d2c7861ece2c2bdef75.svg b/.assets/c6f6294fedb5e5b5fc418d2c7861ece2c2bdef75.svg new file mode 100644 index 000000000..04a90eb8f --- /dev/null +++ b/.assets/c6f6294fedb5e5b5fc418d2c7861ece2c2bdef75.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%Optimal utilization 20%Optimal utilization 20% \ No newline at end of file diff --git a/.assets/ea9358e636f19fd911c6b5fcbe0f3b0c33f010bb.svg b/.assets/ea9358e636f19fd911c6b5fcbe0f3b0c33f010bb.svg new file mode 100644 index 000000000..1fa78b66e --- /dev/null +++ b/.assets/ea9358e636f19fd911c6b5fcbe0f3b0c33f010bb.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%50%100%Optimal utilization 1%Optimal utilization 1% \ No newline at end of file diff --git a/.assets/ee98e9626d6dd42942fdaf5d08078961de8bf38f.svg b/.assets/ee98e9626d6dd42942fdaf5d08078961de8bf38f.svg new file mode 100644 index 000000000..edf1d67db --- /dev/null +++ b/.assets/ee98e9626d6dd42942fdaf5d08078961de8bf38f.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%400%Optimal utilization 50%Optimal utilization 50% \ No newline at end of file diff --git a/.assets/fefe2c9708de2db1319f2fac935bcc21796a28c0.svg b/.assets/fefe2c9708de2db1319f2fac935bcc21796a28c0.svg new file mode 100644 index 000000000..96b870ea2 --- /dev/null +++ b/.assets/fefe2c9708de2db1319f2fac935bcc21796a28c0.svg @@ -0,0 +1 @@ + Borrow APR, variableBorrow APR, stable0%25%50%75%100%0%100%200%300%Optimal utilization 65%Optimal utilization 65% \ No newline at end of file diff --git a/remappings.txt b/remappings.txt index 93fccce41..0604eb3f3 100644 --- a/remappings.txt +++ b/remappings.txt @@ -1,4 +1,5 @@ aave-address-book/=lib/aave-address-book/src/ aave-v3-origin/=lib/aave-address-book/lib/aave-v3-origin/src/ +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/ diff --git a/src/ProtocolV3TestBase.sol b/src/ProtocolV3TestBase.sol index 980cdd0b0..73efff404 100644 --- a/src/ProtocolV3TestBase.sol +++ b/src/ProtocolV3TestBase.sol @@ -9,8 +9,8 @@ import {SafeERC20} from 'solidity-utils/contracts/oz-common/SafeERC20.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'; @@ -321,7 +321,6 @@ contract ProtocolV3TestBase is RawProtocolV3TestBase, CommonTestBase { 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); @@ -331,11 +330,9 @@ contract ProtocolV3TestBase is RawProtocolV3TestBase, CommonTestBase { 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'); diff --git a/tests/mocks/AaveV3AvalancheEModeCategoryUpdateNoChange.sol b/tests/mocks/AaveV3AvalancheEModeCategoryUpdateNoChange.sol index 30a2d75a7..d94467d1a 100644 --- a/tests/mocks/AaveV3AvalancheEModeCategoryUpdateNoChange.sol +++ b/tests/mocks/AaveV3AvalancheEModeCategoryUpdateNoChange.sol @@ -24,7 +24,6 @@ contract AaveV3AvalancheEModeCategoryUpdateNoChange is AaveV3Payload { ltv: EngineFlags.KEEP_CURRENT, liqThreshold: EngineFlags.KEEP_CURRENT, liqBonus: EngineFlags.KEEP_CURRENT, - priceSource: EngineFlags.KEEP_CURRENT_ADDRESS, label: EngineFlags.KEEP_CURRENT_STRING }); diff --git a/tests/mocks/AaveV3EthereumAssetEModeUpdate.sol b/tests/mocks/AaveV3EthereumAssetEModeUpdate.sol index 700bded8c..72cff72d9 100644 --- a/tests/mocks/AaveV3EthereumAssetEModeUpdate.sol +++ b/tests/mocks/AaveV3EthereumAssetEModeUpdate.sol @@ -17,7 +17,9 @@ contract AaveV3EthereumAssetEModeUpdate is AaveV3Payload { eModeUpdate[0] = IEngine.AssetEModeUpdate({ asset: AaveV3EthereumAssets.rETH_UNDERLYING, - eModeCategory: 1 + eModeCategory: 1, + borrowable: EngineFlags.ENABLED, + collateral: EngineFlags.ENABLED }); return eModeUpdate; diff --git a/tests/mocks/AaveV3PolygonBorrowUpdate.sol b/tests/mocks/AaveV3PolygonBorrowUpdate.sol index dacba0f2e..de9e49647 100644 --- a/tests/mocks/AaveV3PolygonBorrowUpdate.sol +++ b/tests/mocks/AaveV3PolygonBorrowUpdate.sol @@ -20,7 +20,6 @@ contract AaveV3PolygonBorrowUpdate is AaveV3Payload { asset: AaveV3PolygonAssets.AAVE_UNDERLYING, enabledToBorrow: EngineFlags.ENABLED, flashloanable: EngineFlags.DISABLED, - stableRateModeEnabled: EngineFlags.KEEP_CURRENT, borrowableInIsolation: EngineFlags.KEEP_CURRENT, withSiloedBorrowing: EngineFlags.KEEP_CURRENT, reserveFactor: 15_00 diff --git a/tests/mocks/AaveV3PolygonBorrowUpdateNoChange.sol b/tests/mocks/AaveV3PolygonBorrowUpdateNoChange.sol index 420e0aecf..f04a47165 100644 --- a/tests/mocks/AaveV3PolygonBorrowUpdateNoChange.sol +++ b/tests/mocks/AaveV3PolygonBorrowUpdateNoChange.sol @@ -18,7 +18,6 @@ contract AaveV3PolygonBorrowUpdateNoChange is AaveV3Payload { asset: AaveV3PolygonAssets.AAVE_UNDERLYING, enabledToBorrow: EngineFlags.KEEP_CURRENT, flashloanable: EngineFlags.KEEP_CURRENT, - stableRateModeEnabled: EngineFlags.KEEP_CURRENT, borrowableInIsolation: EngineFlags.KEEP_CURRENT, withSiloedBorrowing: EngineFlags.KEEP_CURRENT, reserveFactor: EngineFlags.KEEP_CURRENT diff --git a/tests/mocks/AaveV3PolygonEModeCategoryUpdate.sol b/tests/mocks/AaveV3PolygonEModeCategoryUpdate.sol index 5e6e86eb7..fbd3ed8d4 100644 --- a/tests/mocks/AaveV3PolygonEModeCategoryUpdate.sol +++ b/tests/mocks/AaveV3PolygonEModeCategoryUpdate.sol @@ -25,7 +25,6 @@ contract AaveV3PolygonEModeCategoryUpdate is AaveV3Payload { ltv: 97_40, liqThreshold: 97_60, liqBonus: 1_50, - priceSource: EngineFlags.KEEP_CURRENT_ADDRESS, label: EngineFlags.KEEP_CURRENT_STRING }); @@ -59,7 +58,6 @@ contract AaveV3AvalancheEModeCategoryUpdateEdgeBonus is AaveV3Payload { ltv: 97_40, liqThreshold: 97_60, liqBonus: 2_50, - priceSource: EngineFlags.KEEP_CURRENT_ADDRESS, label: EngineFlags.KEEP_CURRENT_STRING }); From 959013c3cf09f6a35e3bf97810135ad77e6ed090 Mon Sep 17 00:00:00 2001 From: Lukas Date: Thu, 19 Sep 2024 19:56:35 +0200 Subject: [PATCH 03/22] fix: upgrade v3.2.0 --- lib/aave-address-book | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/aave-address-book b/lib/aave-address-book index 80b427563..e0e9bb093 160000 --- a/lib/aave-address-book +++ b/lib/aave-address-book @@ -1 +1 @@ -Subproject commit 80b42756306124b64e21fbc29f6f2f6917fe1184 +Subproject commit e0e9bb093b0a70786e17b4dd0a903571539c7860 From 7446a91153b86c61dc6fc5f693a9f58caefcc936 Mon Sep 17 00:00:00 2001 From: Lukas Date: Thu, 19 Sep 2024 19:57:36 +0200 Subject: [PATCH 04/22] fix: update breaking change --- tests/mocks/AaveV3EthereumAssetEModeUpdate.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/mocks/AaveV3EthereumAssetEModeUpdate.sol b/tests/mocks/AaveV3EthereumAssetEModeUpdate.sol index 72cff72d9..43efcf987 100644 --- a/tests/mocks/AaveV3EthereumAssetEModeUpdate.sol +++ b/tests/mocks/AaveV3EthereumAssetEModeUpdate.sol @@ -12,7 +12,7 @@ import {AaveV3EthereumAssets} from 'aave-address-book/AaveV3Ethereum.sol'; contract AaveV3EthereumAssetEModeUpdate is AaveV3Payload { constructor(IEngine customEngine) AaveV3Payload(customEngine) {} - function assetEModeUpdates() public pure override returns (IEngine.AssetEModeUpdate[] memory) { + function assetsEModeUpdates() public pure override returns (IEngine.AssetEModeUpdate[] memory) { IEngine.AssetEModeUpdate[] memory eModeUpdate = new IEngine.AssetEModeUpdate[](1); eModeUpdate[0] = IEngine.AssetEModeUpdate({ From 558b49493ce8dfb7f14ae4352e425cf07d7afa67 Mon Sep 17 00:00:00 2001 From: Lukas Date: Thu, 19 Sep 2024 20:09:03 +0200 Subject: [PATCH 05/22] fix: remove solidity utils --- .gitmodules | 3 --- lib/solidity-utils | 1 - remappings.txt | 2 +- 3 files changed, 1 insertion(+), 5 deletions(-) delete mode 160000 lib/solidity-utils diff --git a/.gitmodules b/.gitmodules index dc2362419..ad6126c51 100644 --- a/.gitmodules +++ b/.gitmodules @@ -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 diff --git a/lib/solidity-utils b/lib/solidity-utils deleted file mode 160000 index a842c3630..000000000 --- a/lib/solidity-utils +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a842c36308e76b8202a46962a6c2d59daceb640a diff --git a/remappings.txt b/remappings.txt index 0604eb3f3..bbfd30ced 100644 --- a/remappings.txt +++ b/remappings.txt @@ -2,4 +2,4 @@ aave-address-book/=lib/aave-address-book/src/ aave-v3-origin/=lib/aave-address-book/lib/aave-v3-origin/src/ 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/ From f3df66b9a4c7e4bab263ebf2bffcd2b80eece289 Mon Sep 17 00:00:00 2001 From: Lukas Date: Thu, 19 Sep 2024 21:16:54 +0200 Subject: [PATCH 06/22] fix: patch helpers --- src/ProtocolV3TestBase.sol | 42 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/src/ProtocolV3TestBase.sol b/src/ProtocolV3TestBase.sol index 73efff404..2a341feb9 100644 --- a/src/ProtocolV3TestBase.sol +++ b/src/ProtocolV3TestBase.sol @@ -345,6 +345,48 @@ contract ProtocolV3TestBase is RawProtocolV3TestBase, CommonTestBase { console.log('-----'); } + function _writeEModeConfigs(string memory path, IPool pool) internal virtual override { + // keys for json stringification + string memory eModesKey = 'emodes'; + string memory content = '{}'; + 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.serializeUint(key, 'eModeCategory', i); + vm.serializeString(key, 'label', pool.getEModeCategoryLabel(i)); + vm.serializeUint(key, 'ltv', cfg.ltv); + vm.serializeUint(key, 'collateralBitmap', pool.getEModeCategoryCollateralBitmap(i)); + vm.serializeUint(key, 'borrowableBitmap', 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.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( string memory path, ReserveConfig[] memory configs From ec14b5aa5c251bff0e0dd65d38340c9bc9be7f05 Mon Sep 17 00:00:00 2001 From: Lukas Date: Mon, 23 Sep 2024 08:11:49 +0200 Subject: [PATCH 07/22] fix: bump 3.2.0 --- lib/aave-address-book | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/aave-address-book b/lib/aave-address-book index e0e9bb093..cd7adb520 160000 --- a/lib/aave-address-book +++ b/lib/aave-address-book @@ -1 +1 @@ -Subproject commit e0e9bb093b0a70786e17b4dd0a903571539c7860 +Subproject commit cd7adb520644f19410b657f47a4b410e2cdace9b From 7e033b89e0c14aa61c18209378c176fe5ccd4b43 Mon Sep 17 00:00:00 2001 From: Lukas Date: Mon, 23 Sep 2024 10:41:28 +0200 Subject: [PATCH 08/22] fix: update 3.2.0 --- lib/aave-address-book | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/aave-address-book b/lib/aave-address-book index cd7adb520..129d081b9 160000 --- a/lib/aave-address-book +++ b/lib/aave-address-book @@ -1 +1 @@ -Subproject commit cd7adb520644f19410b657f47a4b410e2cdace9b +Subproject commit 129d081b9e7298119c9ab94d7fabb939b5427bf1 From 7b3090f69838339cdd08ed787ebdb922ddf26916 Mon Sep 17 00:00:00 2001 From: Lukas Date: Mon, 23 Sep 2024 10:45:52 +0200 Subject: [PATCH 09/22] fix: lint code --- package.json | 2 +- src/GovV3Helpers.sol | 15 +++++-- src/ProtocolV3TestBase.sol | 40 +++++-------------- .../interfaces/IAaveWstethWithdrawer.sol | 3 +- .../DefaultReserveInterestRateStrategy.sol | 16 ++++---- .../IReserveInterestRateStrategy.sol | 8 ++-- 6 files changed, 36 insertions(+), 48 deletions(-) diff --git a/package.json b/package.json index 0fe10a6b5..2fa5d8881 100644 --- a/package.json +++ b/package.json @@ -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": { diff --git a/src/GovV3Helpers.sol b/src/GovV3Helpers.sol index 393b11917..6c6d8c462 100644 --- a/src/GovV3Helpers.sol +++ b/src/GovV3Helpers.sol @@ -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; diff --git a/src/ProtocolV3TestBase.sol b/src/ProtocolV3TestBase.sol index 2a341feb9..302f9f6fe 100644 --- a/src/ProtocolV3TestBase.sol +++ b/src/ProtocolV3TestBase.sol @@ -317,34 +317,6 @@ 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('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('Supply cap ', config.supplyCap); - console.log('Borrow cap ', config.borrowCap); - console.log('Debt ceiling ', config.debtCeiling); - 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'; @@ -359,8 +331,16 @@ contract ProtocolV3TestBase is RawProtocolV3TestBase, CommonTestBase { vm.serializeUint(key, 'eModeCategory', i); vm.serializeString(key, 'label', pool.getEModeCategoryLabel(i)); vm.serializeUint(key, 'ltv', cfg.ltv); - vm.serializeUint(key, 'collateralBitmap', pool.getEModeCategoryCollateralBitmap(i)); - vm.serializeUint(key, 'borrowableBitmap', pool.getEModeCategoryBorrowableBitmap(i)); + 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); diff --git a/src/asset-manager/interfaces/IAaveWstethWithdrawer.sol b/src/asset-manager/interfaces/IAaveWstethWithdrawer.sol index cfb5dfbc1..11dfbd675 100644 --- a/src/asset-manager/interfaces/IAaveWstethWithdrawer.sol +++ b/src/asset-manager/interfaces/IAaveWstethWithdrawer.sol @@ -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. @@ -72,4 +71,4 @@ interface IWithdrawalQueueERC721 { interface IWETH { function deposit() external payable; -} \ No newline at end of file +} diff --git a/src/dependencies/DefaultReserveInterestRateStrategy.sol b/src/dependencies/DefaultReserveInterestRateStrategy.sol index 38da9ade9..52f39add7 100644 --- a/src/dependencies/DefaultReserveInterestRateStrategy.sol +++ b/src/dependencies/DefaultReserveInterestRateStrategy.sol @@ -124,13 +124,13 @@ contract DefaultReserveInterestRateStrategy is IReserveInterestRateStrategy { return calculateInterestRates( - reserve, - availableLiquidity, - totalStableDebt, - totalVariableDebt, - averageStableBorrowRate, - reserveFactor - ); + reserve, + availableLiquidity, + totalStableDebt, + totalVariableDebt, + averageStableBorrowRate, + reserveFactor + ); } struct CalcInterestRatesLocalVars { @@ -239,4 +239,4 @@ contract DefaultReserveInterestRateStrategy is IReserveInterestRateStrategy { return overallBorrowRate; } -} \ No newline at end of file +} diff --git a/src/dependencies/IReserveInterestRateStrategy.sol b/src/dependencies/IReserveInterestRateStrategy.sol index d8b1cc7e2..f1e733469 100644 --- a/src/dependencies/IReserveInterestRateStrategy.sol +++ b/src/dependencies/IReserveInterestRateStrategy.sol @@ -31,7 +31,7 @@ interface IReserveInterestRateStrategy { uint256 averageStableBorrowRate, uint256 reserveFactor ) - external - view - returns (uint256 liquidityRate, uint256 stableBorrowRate, uint256 variableBorrowRate); -} \ No newline at end of file + external + view + returns (uint256 liquidityRate, uint256 stableBorrowRate, uint256 variableBorrowRate); +} From 449f5144d7e926ad75a7ad81765615763d1125f8 Mon Sep 17 00:00:00 2001 From: Lukas Date: Mon, 23 Sep 2024 13:04:18 +0200 Subject: [PATCH 10/22] fix: update deps --- lib/aave-address-book | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/aave-address-book b/lib/aave-address-book index 129d081b9..f2776d222 160000 --- a/lib/aave-address-book +++ b/lib/aave-address-book @@ -1 +1 @@ -Subproject commit 129d081b9e7298119c9ab94d7fabb939b5427bf1 +Subproject commit f2776d2220625c1d82bbcc4bf7252467878d2ce9 From 1972b593c14a6663ba20b95782f8fd51f7a0c257 Mon Sep 17 00:00:00 2001 From: Lukas Date: Mon, 23 Sep 2024 19:11:43 +0200 Subject: [PATCH 11/22] fix: make it build --- package.json | 2 +- src/GovV3Helpers.sol | 2 +- src/ProtocolV3TestBase.sol | 1 - src/ProxyHelpers.sol | 30 -- yarn.lock | 809 +++++------------------------- zksync/src/ProtocolV3TestBase.sol | 16 +- zksync/src/SnapshotHelpersV3.sol | 112 ++--- 7 files changed, 183 insertions(+), 789 deletions(-) delete mode 100644 src/ProxyHelpers.sol diff --git a/package.json b/package.json index 2fa5d8881..15e326e6b 100644 --- a/package.json +++ b/package.json @@ -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" } } diff --git a/src/GovV3Helpers.sol b/src/GovV3Helpers.sol index 6c6d8c462..75d4f1814 100644 --- a/src/GovV3Helpers.sol +++ b/src/GovV3Helpers.sol @@ -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'; @@ -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 { diff --git a/src/ProtocolV3TestBase.sol b/src/ProtocolV3TestBase.sol index 302f9f6fe..7c969a475 100644 --- a/src/ProtocolV3TestBase.sol +++ b/src/ProtocolV3TestBase.sol @@ -13,7 +13,6 @@ 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'; diff --git a/src/ProxyHelpers.sol b/src/ProxyHelpers.sol deleted file mode 100644 index bc4beb7a6..000000000 --- a/src/ProxyHelpers.sol +++ /dev/null @@ -1,30 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0 -pragma solidity >=0.7.5 <0.9.0; - -import 'forge-std/Vm.sol'; - -library ProxyHelpers { - function getInitializableAdminUpgradeabilityProxyAdmin( - Vm vm, - address proxy - ) internal view returns (address) { - address slot = address( - uint160( - uint256(vm.load(proxy, 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103)) - ) - ); - return slot; - } - - function getInitializableAdminUpgradeabilityProxyImplementation( - Vm vm, - address proxy - ) internal view returns (address) { - address slot = address( - uint160( - uint256(vm.load(proxy, 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc)) - ) - ); - return slot; - } -} diff --git a/yarn.lock b/yarn.lock index 92d1c9e4d..44a88945b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,37 +12,15 @@ resolved "https://registry.yarnpkg.com/@assemblyscript/loader/-/loader-0.9.4.tgz#a483c54c1253656bb33babd464e3154a173e1577" integrity sha512-HazVq9zwTVwGmqdwYzu7WyQ6FQVZ7SwET0KKQuKm55jD0IfUpZgN0OPIiZG3zV1iSrVYcN0bdwLRXI/VNCYsUA== -"@babel/code-frame@^7.0.0": - version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" - integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== - dependencies: - "@babel/highlight" "^7.22.13" - chalk "^2.4.2" - -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== - -"@babel/highlight@^7.22.13": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" - integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" - "@bgd-labs/aave-address-book@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@bgd-labs/aave-address-book/-/aave-address-book-3.0.0.tgz#a75cf2e217688e63728bec1b9c956b0134bc647c" integrity sha512-ALT9T/aIZ7BztozWvGhjVKGAEfe6wLhop0z+0ZSwAdyHXrBfpXXDZa9siHNtOZfNojPVMPvkpgsiPnFmDD8OJQ== -"@bgd-labs/aave-cli@0.16.2": - version "0.16.2" - resolved "https://registry.yarnpkg.com/@bgd-labs/aave-cli/-/aave-cli-0.16.2.tgz#b995358aa5f3a86bdd61e7b539c56ba071e53e18" - integrity sha512-+X7crEcX1HPdbi+9ZUF0c2TJ0oA9hLseYBWM/ogN04P6hjoRzOCGb5Wv2lK0bhesI2+OWTAHI23am986veZiPQ== +"@bgd-labs/aave-cli@1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@bgd-labs/aave-cli/-/aave-cli-1.0.0.tgz#023cd576a73c229476afb984ba69a3179f80a5d7" + integrity sha512-Xs30iS10iagkLjRgQ1zPlZmJD9SkQMZsrimgzLUTlHan0uAiK45wYwvsX4XTFtvlQ+BCqzbzw/vZb8jMWE2kbw== dependencies: "@bgd-labs/aave-address-book" "^3.0.0" "@bgd-labs/aave-v3-governance-cache" "^1.0.6" @@ -55,7 +33,7 @@ dotenv "^16.4.1" find-object-paths "^1.1.0" gray-matter "^4.0.3" - ipfs-only-hash "^4.0.0" + ipfs-unixfs-importer "^15.3.1" json-bigint "^1.0.0" object-hash "^3.0.0" viem "^2.17.11" @@ -315,10 +293,20 @@ resolved "https://registry.yarnpkg.com/@inquirer/type/-/type-1.1.6.tgz#f2656456e58fb93c7b73d5aad583b928c77b9206" integrity sha512-OCKOpn0CrFDslR8s3who7hlr823zXTb1iShGCaaWgEJFfkIV0T9aLZV2QGnOuU78IrsPYLkr3oKx9dZwwCH3Rw== -"@multiformats/base-x@^4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@multiformats/base-x/-/base-x-4.0.1.tgz#95ff0fa58711789d53aefb2590a8b7a4e715d121" - integrity sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw== +"@ipld/dag-pb@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@ipld/dag-pb/-/dag-pb-4.1.2.tgz#39db25311aeb2745ec20bfc745d91a577832b6ac" + integrity sha512-BSztO4l3C+ya9HjCaQot26Y4AVsqIKtnn6+23ubc1usucnf6yoTBme18oCCdM6gKBMxuPqju5ye3lh9WEJsdeQ== + dependencies: + multiformats "^13.1.0" + +"@multiformats/murmur3@^2.1.8": + version "2.1.8" + resolved "https://registry.yarnpkg.com/@multiformats/murmur3/-/murmur3-2.1.8.tgz#81c1c15b6391109f3febfca4b3205196615a04e9" + integrity sha512-6vId1C46ra3R1sbJUOFCZnsUIveR9oF20yhPmAFxPm0JfrX3/ZRCgP3YDrBzlGoEppOXnA9czHeYc0T9mB6hbA== + dependencies: + multiformats "^13.0.0" + murmurhash3js-revisited "^3.0.0" "@noble/curves@1.4.0": version "1.4.0" @@ -339,59 +327,6 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== -"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" - integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== - -"@protobufjs/base64@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" - integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== - -"@protobufjs/codegen@^2.0.4": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" - integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== - -"@protobufjs/eventemitter@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" - integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== - -"@protobufjs/fetch@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" - integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== - dependencies: - "@protobufjs/aspromise" "^1.1.1" - "@protobufjs/inquire" "^1.1.0" - -"@protobufjs/float@^1.0.2": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" - integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== - -"@protobufjs/inquire@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" - integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== - -"@protobufjs/path@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" - integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== - -"@protobufjs/pool@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" - integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== - -"@protobufjs/utf8@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" - integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== - "@scure/base@~1.1.6": version "1.1.7" resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.7.tgz#fe973311a5c6267846aa131bc72e96c5d40d2b30" @@ -426,16 +361,6 @@ resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-3.1.1.tgz#237d4e151b8591e2ff4f0ae388f7d6b4741bacc0" integrity sha512-TgCm6jVqMPv+OgD5uBNND/CkCwNDdXPQlcprtnXsWSBpTCy0q5CI6vRj+jsUiXE1xeRaKIX4UeaYJqzZBL92sg== -"@types/long@^4.0.1": - version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" - integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== - -"@types/minimist@^1.2.0": - version "1.2.5" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" - integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== - "@types/mute-stream@^0.0.4": version "0.0.4" resolved "https://registry.yarnpkg.com/@types/mute-stream/-/mute-stream-0.0.4.tgz#77208e56a08767af6c5e1237be8888e2f255c478" @@ -443,7 +368,7 @@ dependencies: "@types/node" "*" -"@types/node@*", "@types/node@>=13.7.0": +"@types/node@*": version "20.9.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.0.tgz#bfcdc230583aeb891cf51e73cfdaacdd8deae298" integrity sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw== @@ -457,11 +382,6 @@ dependencies: undici-types "~5.26.4" -"@types/normalize-package-data@^2.4.0": - version "2.4.4" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" - integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== - "@types/wrap-ansi@^3.0.0": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz#18b97a972f94f60a679fd5c796d96421b9abb9fd" @@ -484,13 +404,6 @@ ansi-regex@^5.0.1: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" @@ -510,11 +423,6 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -arrify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== - base-x@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/base-x/-/base-x-4.0.0.tgz#d0e3b7753450c73f8ad2389b5c018a4af7b2224a" @@ -539,11 +447,6 @@ bl@^5.0.0: inherits "^2.0.4" readable-stream "^3.4.0" -blakejs@^1.1.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" - integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== - bs58@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/bs58/-/bs58-5.0.0.tgz#865575b4d13c09ea2a84622df6c8cbeb54ffc279" @@ -559,29 +462,6 @@ buffer@^6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -camelcase-keys@^6.2.2: - version "6.2.2" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" - integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== - dependencies: - camelcase "^5.3.1" - map-obj "^4.0.0" - quick-lru "^4.0.1" - -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" @@ -595,16 +475,6 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== -cids@^1.0.0, cids@^1.1.5, cids@^1.1.6: - version "1.1.9" - resolved "https://registry.yarnpkg.com/cids/-/cids-1.1.9.tgz#402c26db5c07059377bcd6fb82f2a24e7f2f4a4f" - integrity sha512-l11hWRfugIcbGuTZwAM5PwpjPPjyb6UZOGwlHSnOBV5o07XhQ4gNpBN67FbODvpjyHtd+0Xs6KNvUcGBiDRsdg== - dependencies: - multibase "^4.0.1" - multicodec "^3.0.1" - multihashes "^4.0.1" - uint8arrays "^3.0.0" - cli-spinners@^2.9.2: version "2.9.2" resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.2.tgz#1773a8f4b9c4d6ac31563df53b3fc1d79462fe41" @@ -615,13 +485,6 @@ cli-width@^4.1.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5" integrity sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ== -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - color-convert@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" @@ -629,11 +492,6 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" @@ -651,19 +509,6 @@ debug@^4.3.1: dependencies: ms "2.1.2" -decamelize-keys@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" - integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== - dependencies: - decamelize "^1.1.0" - map-obj "^1.0.0" - -decamelize@^1.1.0, decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - deepmerge@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" @@ -679,18 +524,6 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== -err-code@^3.0.0, err-code@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-3.0.1.tgz#a444c7b992705f2b120ee320b09972eef331c920" - integrity sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - esbuild@~0.19.10: version "0.19.12" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" @@ -758,24 +591,11 @@ find-object-paths@^1.1.0: resolved "https://registry.yarnpkg.com/find-object-paths/-/find-object-paths-1.1.0.tgz#2d2fe99f24c95e63af4b51377a1ba0510490376c" integrity sha512-UJvfPQibLUOrXl76PJ49cYbXJPsU1lYX6Pw7mHVW+ahaGx6kVHiozNIQriDc/EOlSvkDa6L9GyTFXPYQsa6sGA== -find-up@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" - integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== - get-tsconfig@^4.7.2: version "4.7.2" resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz#0dcd6fb330391d46332f4c6c1bf89a6514c2ddce" @@ -793,48 +613,19 @@ gray-matter@^4.0.3: section-matter "^1.0.0" strip-bom-string "^1.0.0" -hamt-sharding@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/hamt-sharding/-/hamt-sharding-2.0.1.tgz#f45686d0339e74b03b233bee1bde9587727129b6" - integrity sha512-vnjrmdXG9dDs1m/H4iJ6z0JFI2NtgsW5keRkTcM85NGak69Mkf5PHUqBz+Xs0T4sg0ppvj9O5EGAJo40FTxmmA== +hamt-sharding@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/hamt-sharding/-/hamt-sharding-3.0.6.tgz#3643107a3021af66ac95684aec87b196add5ba57" + integrity sha512-nZeamxfymIWLpVcAN0CRrb7uVq3hCOGj9IcL6NMA6VVCVWqj+h9Jo/SmaWuS92AEDf1thmHsM5D5c70hM3j2Tg== dependencies: sparse-array "^1.3.1" - uint8arrays "^3.0.0" - -hard-rejection@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" - integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + uint8arrays "^5.0.1" has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== - dependencies: - function-bind "^1.1.2" - -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -hosted-git-info@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" - integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== - dependencies: - lru-cache "^6.0.0" - iconv-lite@^0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" @@ -847,85 +638,52 @@ ieee754@^1.2.1: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -indent-string@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== - inherits@^2.0.3, inherits@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -interface-ipld-format@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/interface-ipld-format/-/interface-ipld-format-1.0.1.tgz#bee39c70c584a033e186ff057a2be89f215963e3" - integrity sha512-WV/ar+KQJVoQpqRDYdo7YPGYIUHJxCuOEhdvsRpzLqoOIVCqPKdMMYmsLL1nCRsF3yYNio+PAJbCKiv6drrEAg== - dependencies: - cids "^1.1.6" - multicodec "^3.0.1" - multihashes "^4.0.2" - -ipfs-only-hash@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/ipfs-only-hash/-/ipfs-only-hash-4.0.0.tgz#b3bd60a244d9eb7394961aa9d812a2e5ac7c04d6" - integrity sha512-TE1DZCvfw8i3gcsTq3P4TFx3cKFJ3sluu/J3XINkJhIN9OwJgNMqKA+WnKx6ByCb1IoPXsTp1KM7tupElb6SyA== - dependencies: - ipfs-unixfs-importer "^7.0.1" - meow "^9.0.0" - -ipfs-unixfs-importer@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/ipfs-unixfs-importer/-/ipfs-unixfs-importer-7.0.3.tgz#b850e831ca9647d589ef50bc33421f65bab7bba6" - integrity sha512-qeFOlD3AQtGzr90sr5Tq1Bi8pT5Nr2tSI8z310m7R4JDYgZc6J1PEZO3XZQ8l1kuGoqlAppBZuOYmPEqaHcVQQ== - dependencies: - bl "^5.0.0" - cids "^1.1.5" - err-code "^3.0.1" - hamt-sharding "^2.0.0" - ipfs-unixfs "^4.0.3" - ipld-dag-pb "^0.22.2" - it-all "^1.0.5" - it-batch "^1.0.8" - it-first "^1.0.6" - it-parallel-batch "^1.0.9" - merge-options "^3.0.4" - multihashing-async "^2.1.0" - rabin-wasm "^0.1.4" - uint8arrays "^2.1.2" - -ipfs-unixfs@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/ipfs-unixfs/-/ipfs-unixfs-4.0.3.tgz#7c43e5726052ade4317245358ac541ef3d63d94e" - integrity sha512-hzJ3X4vlKT8FQ3Xc4M1szaFVjsc1ZydN+E4VQ91aXxfpjFn9G2wsMo1EFdAXNq/BUnN5dgqIOMP5zRYr3DTsAw== - dependencies: - err-code "^3.0.1" - protobufjs "^6.10.2" - -ipld-dag-pb@^0.22.2: - version "0.22.3" - resolved "https://registry.yarnpkg.com/ipld-dag-pb/-/ipld-dag-pb-0.22.3.tgz#6d5af28b5752236a5cb0e0a1888c87dd733b55cd" - integrity sha512-dfG5C5OVAR4FEP7Al2CrHWvAyIM7UhAQrjnOYOIxXGQz5NlEj6wGX0XQf6Ru6or1na6upvV3NQfstapQG8X2rg== - dependencies: - cids "^1.0.0" - interface-ipld-format "^1.0.0" - multicodec "^3.0.1" - multihashing-async "^2.0.0" - protobufjs "^6.10.2" - stable "^0.1.8" - uint8arrays "^2.0.5" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-core-module@^2.13.0, is-core-module@^2.5.0: - version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== - dependencies: - hasown "^2.0.0" +interface-blockstore@^5.3.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/interface-blockstore/-/interface-blockstore-5.3.1.tgz#03f511431be2b8b04a536eaae8effe4565ea6536" + integrity sha512-nhgrQnz6yUQEqxTFLhlOBurQOy5lWlwCpgFmZ3GTObTVTQS9RZjK/JTozY6ty9uz2lZs7VFJSqwjWAltorJ4Vw== + dependencies: + interface-store "^6.0.0" + multiformats "^13.2.3" + +interface-store@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/interface-store/-/interface-store-6.0.2.tgz#1746a1ee07634f7678b3aa778738b79e3f75c909" + integrity sha512-KSFCXtBlNoG0hzwNa0RmhHtrdhzexp+S+UY2s0rWTBJyfdEIgn6i6Zl9otVqrcFYbYrneBT7hbmHQ8gE0C3umA== + +ipfs-unixfs-importer@^15.3.1: + version "15.3.1" + resolved "https://registry.yarnpkg.com/ipfs-unixfs-importer/-/ipfs-unixfs-importer-15.3.1.tgz#93cf3bad77e3fff7ee25b4ba822c1a0d2fd56b6e" + integrity sha512-wHCTBqNsZXLJZ9/GSr7Msb3FDXD5yXF20Y9sKyUbbqNjbvaXs3n3h1+NM/5+WrgESHfwRcJIlJtaOKafL8Ymdg== + dependencies: + "@ipld/dag-pb" "^4.1.2" + "@multiformats/murmur3" "^2.1.8" + hamt-sharding "^3.0.6" + interface-blockstore "^5.3.0" + interface-store "^6.0.0" + ipfs-unixfs "^11.0.0" + it-all "^3.0.6" + it-batch "^3.0.6" + it-first "^3.0.6" + it-parallel-batch "^3.0.6" + multiformats "^13.2.3" + progress-events "^1.0.1" + rabin-wasm "^0.1.5" + uint8arraylist "^2.4.8" + uint8arrays "^5.1.0" + +ipfs-unixfs@^11.0.0: + version "11.2.0" + resolved "https://registry.yarnpkg.com/ipfs-unixfs/-/ipfs-unixfs-11.2.0.tgz#a7f3d1f9bce29033f273bda124a0eb8bc0c752f6" + integrity sha512-J8FN1qM5nfrDo8sQKQwfj0+brTg1uBfZK2vY9hxci33lcl3BFrsELS9+1+4q/8tO1ASKfxZO8W3Pi2O4sVX2Lg== + dependencies: + protons-runtime "^5.5.0" + uint8arraylist "^2.4.8" is-extendable@^0.1.0: version "0.1.1" @@ -937,52 +695,32 @@ is-fullwidth-code-point@^3.0.0: resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-plain-obj@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" - integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== - -is-plain-obj@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" - integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== - isows@1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/isows/-/isows-1.0.4.tgz#810cd0d90cc4995c26395d2aa4cfa4037ebdf061" integrity sha512-hEzjY+x9u9hPmBom9IIAqdJCwNLax+xrPb51vEPpERoFlIxgmZcHzsT5jKG06nvInKOBGvReAVz80Umed5CczQ== -it-all@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/it-all/-/it-all-1.0.6.tgz#852557355367606295c4c3b7eff0136f07749335" - integrity sha512-3cmCc6Heqe3uWi3CVM/k51fa/XbMFpQVzFoDsV0IZNHSQDyAXl3c4MjHkFX5kF3922OGj7Myv1nSEUgRtcuM1A== +it-all@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/it-all/-/it-all-3.0.6.tgz#30a4f922ae9ca0945b0f720d3478ae6f5b6707ab" + integrity sha512-HXZWbxCgQZJfrv5rXvaVeaayXED8nTKx9tj9fpBhmcUJcedVZshMMMqTj0RG2+scGypb9Ut1zd1ifbf3lA8L+Q== -it-batch@^1.0.8, it-batch@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/it-batch/-/it-batch-1.0.9.tgz#7e95aaacb3f9b1b8ca6c8b8367892171d6a5b37f" - integrity sha512-7Q7HXewMhNFltTsAMdSz6luNhyhkhEtGGbYek/8Xb/GiqYMtwUmopE1ocPSiJKKp3rM4Dt045sNFoUu+KZGNyA== +it-batch@^3.0.0, it-batch@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/it-batch/-/it-batch-3.0.6.tgz#0bcda35bf1c600e821c6d5f4d2446fe85a26ab1d" + integrity sha512-pQAAlSvJ4aV6xM/6LRvkPdKSKXxS4my2fGzNUxJyAQ8ccFdxPmK1bUuF5OoeUDkcdrbs8jtsmc4DypCMrGY6sg== -it-first@^1.0.6: - version "1.0.7" - resolved "https://registry.yarnpkg.com/it-first/-/it-first-1.0.7.tgz#a4bef40da8be21667f7d23e44dae652f5ccd7ab1" - integrity sha512-nvJKZoBpZD/6Rtde6FXqwDqDZGF1sCADmr2Zoc0hZsIvnE449gRFnGctxDf09Bzc/FWnHXAdaHVIetY6lrE0/g== +it-first@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/it-first/-/it-first-3.0.6.tgz#f532f0f36fe9bf0c291e0162b9d3375d59fe8f05" + integrity sha512-ExIewyK9kXKNAplg2GMeWfgjUcfC1FnUXz/RPfAvIXby+w7U4b3//5Lic0NV03gXT8O/isj5Nmp6KiY0d45pIQ== -it-parallel-batch@^1.0.9: - version "1.0.11" - resolved "https://registry.yarnpkg.com/it-parallel-batch/-/it-parallel-batch-1.0.11.tgz#f889b4e1c7a62ef24111dbafbaaa010b33d00f69" - integrity sha512-UWsWHv/kqBpMRmyZJzlmZeoAMA0F3SZr08FBdbhtbe+MtoEBgr/ZUAKrnenhXCBrsopy76QjRH2K/V8kNdupbQ== +it-parallel-batch@^3.0.6: + version "3.0.6" + resolved "https://registry.yarnpkg.com/it-parallel-batch/-/it-parallel-batch-3.0.6.tgz#61487fdaca03cc34c648b3432f59e82e0c805172" + integrity sha512-3wgiQGvMMHy65OXScrtrtmY+bJSF7P6St1AP+BU+SK83fEr8NNk/MrmJKrtB1+MahYX2a8I+pOGKDj8qVtuV0Q== dependencies: - it-batch "^1.0.9" - -js-sha3@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + it-batch "^3.0.0" js-yaml@^3.13.1: version "3.14.1" @@ -999,33 +737,11 @@ json-bigint@^1.0.0: dependencies: bignumber.js "^9.0.0" -json-parse-even-better-errors@^2.3.0: - version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" - integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== - -kind-of@^6.0.0, kind-of@^6.0.2, kind-of@^6.0.3: +kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -lines-and-columns@^1.1.6: - version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" - integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== - -locate-path@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== - dependencies: - p-locate "^4.1.0" - -long@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" - integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== - lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" @@ -1033,55 +749,6 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" -map-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== - -map-obj@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" - integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== - -meow@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz#cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364" - integrity sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ== - dependencies: - "@types/minimist" "^1.2.0" - camelcase-keys "^6.2.2" - decamelize "^1.2.0" - decamelize-keys "^1.1.0" - hard-rejection "^2.1.0" - minimist-options "4.1.0" - normalize-package-data "^3.0.0" - read-pkg-up "^7.0.1" - redent "^3.0.0" - trim-newlines "^3.0.0" - type-fest "^0.18.0" - yargs-parser "^20.2.3" - -merge-options@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-3.0.4.tgz#84709c2aa2a4b24c1981f66c179fe5565cc6dbb7" - integrity sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ== - dependencies: - is-plain-obj "^2.1.0" - -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -minimist-options@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" - integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== - dependencies: - arrify "^1.0.1" - is-plain-obj "^1.1.0" - kind-of "^6.0.3" - minimist@^1.2.5: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" @@ -1092,46 +759,10 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -multibase@^4.0.1: - version "4.0.6" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-4.0.6.tgz#6e624341483d6123ca1ede956208cb821b440559" - integrity sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ== - dependencies: - "@multiformats/base-x" "^4.0.1" - -multicodec@^3.0.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-3.2.1.tgz#82de3254a0fb163a107c1aab324f2a91ef51efb2" - integrity sha512-+expTPftro8VAW8kfvcuNNNBgb9gPeNYV9dn+z1kJRWF2vih+/S79f2RVeIwmrJBUJ6NT9IUPWnZDQvegEh5pw== - dependencies: - uint8arrays "^3.0.0" - varint "^6.0.0" - -multiformats@^9.4.2: - version "9.9.0" - resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-9.9.0.tgz#c68354e7d21037a8f1f8833c8ccd68618e8f1d37" - integrity sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg== - -multihashes@^4.0.1, multihashes@^4.0.2: - version "4.0.3" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-4.0.3.tgz#426610539cd2551edbf533adeac4c06b3b90fb05" - integrity sha512-0AhMH7Iu95XjDLxIeuCOOE4t9+vQZsACyKZ9Fxw2pcsRmlX4iCn1mby0hS0bb+nQOVpdQYWPpnyusw4da5RPhA== - dependencies: - multibase "^4.0.1" - uint8arrays "^3.0.0" - varint "^5.0.2" - -multihashing-async@^2.0.0, multihashing-async@^2.1.0: - version "2.1.4" - resolved "https://registry.yarnpkg.com/multihashing-async/-/multihashing-async-2.1.4.tgz#26dce2ec7a40f0e7f9e732fc23ca5f564d693843" - integrity sha512-sB1MiQXPSBTNRVSJc2zM157PXgDtud2nMFUEIvBrsq5Wv96sUclMRK/ecjoP1T/W61UJBqt4tCTwMkUpt2Gbzg== - dependencies: - blakejs "^1.1.0" - err-code "^3.0.0" - js-sha3 "^0.8.0" - multihashes "^4.0.1" - murmurhash3js-revisited "^3.0.0" - uint8arrays "^3.0.0" +multiformats@^13.0.0, multiformats@^13.1.0, multiformats@^13.2.3: + version "13.3.0" + resolved "https://registry.yarnpkg.com/multiformats/-/multiformats-13.3.0.tgz#1f5188bc7c4fe08ff829ae1c18dc33409042fb71" + integrity sha512-CBiqvsufgmpo01VT5ze94O+uc+Pbf6f/sThlvWss0sBZmAOu6GQn5usrYV2sf2mr17FWYc0rO8c/CNe2T90QAA== murmurhash3js-revisited@^3.0.0: version "3.0.0" @@ -1150,26 +781,6 @@ node-fetch@^2.6.1: dependencies: whatwg-url "^5.0.0" -normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-package-data@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" - integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== - dependencies: - hosted-git-info "^4.0.1" - is-core-module "^2.5.0" - semver "^7.3.4" - validate-npm-package-license "^3.0.1" - object-hash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" @@ -1180,45 +791,6 @@ os-tmpdir@~1.0.2: resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== -p-limit@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== - dependencies: - p-try "^2.0.0" - -p-locate@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== - dependencies: - p-limit "^2.2.0" - -p-try@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== - -parse-json@^5.0.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" - integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-even-better-errors "^2.3.0" - lines-and-columns "^1.1.6" - -path-exists@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - prettier-plugin-solidity@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/prettier-plugin-solidity/-/prettier-plugin-solidity-1.1.3.tgz#9a35124f578404caf617634a8cab80862d726cba" @@ -1233,31 +805,21 @@ prettier@^2.8.3: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.7.tgz#bb79fc8729308549d28fe3a98fce73d2c0656450" integrity sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw== -protobufjs@^6.10.2: - version "6.11.4" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.4.tgz#29a412c38bf70d89e537b6d02d904a6f448173aa" - integrity sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/long" "^4.0.1" - "@types/node" ">=13.7.0" - long "^4.0.0" - -quick-lru@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" - integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== +progress-events@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/progress-events/-/progress-events-1.0.1.tgz#693b6d4153f08c1418ae3cd5fcad8596c91db7e8" + integrity sha512-MOzLIwhpt64KIVN64h1MwdKWiyKFNc/S6BoYKPIVUHFg0/eIEyBulhWCgn678v/4c0ri3FdGuzXymNCv02MUIw== -rabin-wasm@^0.1.4: +protons-runtime@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/protons-runtime/-/protons-runtime-5.5.0.tgz#ea06d9ef843aad77ea5de3e1ebafa81b58c24570" + integrity sha512-EsALjF9QsrEk6gbCx3lmfHxVN0ah7nG3cY7GySD4xf4g8cr7g543zB88Foh897Sr1RQJ9yDCUsoT1i1H/cVUFA== + dependencies: + uint8-varint "^2.0.2" + uint8arraylist "^2.4.3" + uint8arrays "^5.0.1" + +rabin-wasm@^0.1.5: version "0.1.5" resolved "https://registry.yarnpkg.com/rabin-wasm/-/rabin-wasm-0.1.5.tgz#5b625ca007d6a2cbc1456c78ae71d550addbc9c9" integrity sha512-uWgQTo7pim1Rnj5TuWcCewRDTf0PEFTSlaUjWP4eY9EbLV9em08v89oCz/WO+wRxpYuO36XEHp4wgYQnAgOHzA== @@ -1269,25 +831,6 @@ rabin-wasm@^0.1.4: node-fetch "^2.6.1" readable-stream "^3.6.0" -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" @@ -1297,28 +840,11 @@ readable-stream@^3.4.0, readable-stream@^3.6.0: string_decoder "^1.1.1" util-deprecate "^1.0.1" -redent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" - integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== - dependencies: - indent-string "^4.0.0" - strip-indent "^3.0.0" - resolve-pkg-maps@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== -resolve@^1.10.0: - version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== - dependencies: - is-core-module "^2.13.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - run-async@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-3.0.0.tgz#42a432f6d76c689522058984384df28be379daad" @@ -1342,18 +868,6 @@ section-matter@^1.0.0: extend-shallow "^2.0.1" kind-of "^6.0.0" -"semver@2 || 3 || 4 || 5": - version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" - integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== - -semver@^7.3.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - semver@^7.3.8: version "7.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.0.tgz#ed8c5dc8efb6c629c88b23d41dc9bf40c1d96cd0" @@ -1376,42 +890,11 @@ sparse-array@^1.3.1: resolved "https://registry.yarnpkg.com/sparse-array/-/sparse-array-1.3.2.tgz#0e1a8b71706d356bc916fe754ff496d450ec20b0" integrity sha512-ZT711fePGn3+kQyLuv1fpd3rNSkNF8vd5Kv2D+qnOANeyKs3fx6bUMGWRPvgTTcYV64QMqZKZwcuaQSP3AZ0tg== -spdx-correct@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" - integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.16" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" - integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== - sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - string-width@^4.1.0: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -1440,20 +923,6 @@ strip-bom-string@^1.0.0: resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - dependencies: - min-indent "^1.0.0" - -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" @@ -1461,11 +930,6 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - tmp@^0.0.33: version "0.0.33" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" @@ -1478,11 +942,6 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -trim-newlines@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" - integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== - tsx@^4.7.1: version "4.7.1" resolved "https://registry.yarnpkg.com/tsx/-/tsx-4.7.1.tgz#27af6cbf4e1cdfcb9b5425b1c61bb7e668eb5e84" @@ -1493,39 +952,32 @@ tsx@^4.7.1: optionalDependencies: fsevents "~2.3.3" -type-fest@^0.18.0: - version "0.18.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" - integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== - type-fest@^0.21.3: version "0.21.3" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +uint8-varint@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/uint8-varint/-/uint8-varint-2.0.4.tgz#85be52b3849eb30f2c3640a2df8a14364180affb" + integrity sha512-FwpTa7ZGA/f/EssWAb5/YV6pHgVF1fViKdW8cWaEarjB8t7NyofSWBdOTyFPaGuUG4gx3v1O3PQ8etsiOs3lcw== + dependencies: + uint8arraylist "^2.0.0" + uint8arrays "^5.0.0" -uint8arrays@^2.0.5, uint8arrays@^2.1.2: - version "2.1.10" - resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-2.1.10.tgz#34d023c843a327c676e48576295ca373c56e286a" - integrity sha512-Q9/hhJa2836nQfEJSZTmr+pg9+cDJS9XEAp7N2Vg5MzL3bK/mkMVfjscRGYruP9jNda6MAdf4QD/y78gSzkp6A== +uint8arraylist@^2.0.0, uint8arraylist@^2.4.3, uint8arraylist@^2.4.8: + version "2.4.8" + resolved "https://registry.yarnpkg.com/uint8arraylist/-/uint8arraylist-2.4.8.tgz#5a4d17f4defd77799cb38e93fd5db0f0dceddc12" + integrity sha512-vc1PlGOzglLF0eae1M8mLRTBivsvrGsdmJ5RbK3e+QRvRLOZfZhQROTwH/OfyF3+ZVUg9/8hE8bmKP2CvP9quQ== dependencies: - multiformats "^9.4.2" + uint8arrays "^5.0.1" -uint8arrays@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" - integrity sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg== +uint8arrays@^5.0.0, uint8arrays@^5.0.1, uint8arrays@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-5.1.0.tgz#14047c9bdf825d025b7391299436e5e50e7270f1" + integrity sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww== dependencies: - multiformats "^9.4.2" + multiformats "^13.0.0" undici-types@~5.26.4: version "5.26.5" @@ -1537,24 +989,6 @@ util-deprecate@^1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -varint@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.2.tgz#5b47f8a947eb668b848e034dcfa87d0ff8a7f7a4" - integrity sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow== - -varint@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/varint/-/varint-6.0.0.tgz#9881eb0ce8feaea6512439d19ddf84bf551661d0" - integrity sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg== - viem@^2.17.11: version "2.17.11" resolved "https://registry.yarnpkg.com/viem/-/viem-2.17.11.tgz#43554c1db8e04ed255dffdeecee626190b97a0e4" @@ -1601,11 +1035,6 @@ yallist@^4.0.0: resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yargs-parser@^20.2.3: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - zod@^3.23.8: version "3.23.8" resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" diff --git a/zksync/src/ProtocolV3TestBase.sol b/zksync/src/ProtocolV3TestBase.sol index 08c1f724f..7b480cf2e 100644 --- a/zksync/src/ProtocolV3TestBase.sol +++ b/zksync/src/ProtocolV3TestBase.sol @@ -6,13 +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 {ReserveConfiguration} from 'aave-v3-origin/contracts/protocol/libraries/configuration/ReserveConfiguration.sol'; import {AaveV3EthereumAssets} from 'aave-address-book/AaveV3Ethereum.sol'; -import {DiffUtils} from 'aave-v3-origin/../tests/utils/DiffUtils.sol'; -import {ProtocolV3TestBase as RawProtocolV3TestBase, ReserveConfig, ReserveTokens} from 'aave-v3-origin/../tests/utils/ProtocolV3TestBase.sol'; +import {DiffUtils} from 'aave-v3-origin-tests/utils/DiffUtils.sol'; +import {ProtocolV3TestBase as RawProtocolV3TestBase, ReserveConfig, ReserveTokens} from 'aave-v3-origin-tests/utils/ProtocolV3TestBase.sol'; +import {ProxyHelpers} from 'aave-v3-origin-tests/utils/ProxyHelpers.sol'; import {IInitializableAdminUpgradeabilityProxy} from '../../src/interfaces/IInitializableAdminUpgradeabilityProxy.sol'; import {ExtendedAggregatorV2V3Interface} from '../../src/interfaces/ExtendedAggregatorV2V3Interface.sol'; -import {ProxyHelpers} from 'aave-v3-origin/../tests/utils/ProxyHelpers.sol'; import {CommonTestBase} from '../../src/CommonTestBase.sol'; import {SnapshotHelpersV3} from './SnapshotHelpersV3.sol'; import {ILegacyDefaultInterestRateStrategy} from '../../src/dependencies/ILegacyDefaultInterestRateStrategy.sol'; @@ -355,13 +355,9 @@ contract ProtocolV3TestBase is RawProtocolV3TestBase, CommonTestBase { vm.stopPrank(); } - function _writeEModeConfigs( - string memory path, - ReserveConfig[] memory configs, - IPool pool - ) internal override { + function _writeEModeConfigs(string memory path, IPool pool) internal override { _switchOffZkVm(); - return snapshotHelper.writeEModeConfigs(path, configs, pool); + return snapshotHelper.writeEModeConfigs(path, pool); } function _writeStrategyConfigs( diff --git a/zksync/src/SnapshotHelpersV3.sol b/zksync/src/SnapshotHelpersV3.sol index 7d1490d0b..f105d52d5 100644 --- a/zksync/src/SnapshotHelpersV3.sol +++ b/zksync/src/SnapshotHelpersV3.sol @@ -1,22 +1,21 @@ // SPDX-License-Identifier: MIT pragma solidity >=0.8.0 <0.9.0; -import {IERC20Detailed} from 'aave-v3-core/contracts/dependencies/openzeppelin/contracts/IERC20Detailed.sol'; -import {IPoolAddressesProvider} from 'aave-v3-core/contracts/interfaces/IPoolAddressesProvider.sol'; -import {IPoolDataProvider} from 'aave-v3-core/contracts/interfaces/IPoolDataProvider.sol'; -import {IPool} from 'aave-v3-core/contracts/interfaces/IPool.sol'; -import {IAaveOracle} from 'aave-v3-core/contracts/interfaces/IAaveOracle.sol'; -import {IPoolConfigurator} from 'aave-v3-core/contracts/interfaces/IPoolConfigurator.sol'; import {IERC20Metadata} from 'solidity-utils/contracts/oz-common/interfaces/IERC20Metadata.sol'; -import {ReserveConfiguration} from 'aave-v3-core/contracts/protocol/libraries/configuration/ReserveConfiguration.sol'; +import {IPoolAddressesProvider} from 'aave-v3-origin/contracts/interfaces/IPoolAddressesProvider.sol'; +import {IPoolDataProvider} from 'aave-v3-origin/contracts/interfaces/IPoolDataProvider.sol'; +import {IPool} from 'aave-v3-origin/contracts/interfaces/IPool.sol'; +import {IAaveOracle} from 'aave-v3-origin/contracts/interfaces/IAaveOracle.sol'; +import {IPoolConfigurator} from 'aave-v3-origin/contracts/interfaces/IPoolConfigurator.sol'; +import {ReserveConfiguration} from 'aave-v3-origin/contracts/protocol/libraries/configuration/ReserveConfiguration.sol'; import {ExtendedAggregatorV2V3Interface} from '../../src/interfaces/ExtendedAggregatorV2V3Interface.sol'; -import {ProxyHelpers} from 'aave-v3-origin/../tests/utils/ProxyHelpers.sol'; +import {ProxyHelpers} from 'aave-v3-origin-tests/utils/ProxyHelpers.sol'; import {CommonTestBase} from '../../src/CommonTestBase.sol'; -import {IDefaultInterestRateStrategyV2} from 'aave-v3-core/contracts/interfaces/IDefaultInterestRateStrategyV2.sol'; -import {ReserveConfig, ReserveTokens, DataTypes} from 'aave-v3-origin/../tests/utils/ProtocolV3TestBase.sol'; +import {IDefaultInterestRateStrategyV2} from 'aave-v3-origin/contracts/interfaces/IDefaultInterestRateStrategyV2.sol'; +import {ReserveConfig, ReserveTokens, DataTypes} from 'aave-v3-origin-tests/utils/ProtocolV3TestBase.sol'; import {ProtocolV3TestBase as TestBase, LocalVars} from './ProtocolV3TestBase.sol'; import {ILegacyDefaultInterestRateStrategy} from '../../src/dependencies/ILegacyDefaultInterestRateStrategy.sol'; -import {DiffUtils} from 'aave-v3-origin/../tests/utils/DiffUtils.sol'; +import {DiffUtils} from 'aave-v3-origin-tests/utils/DiffUtils.sol'; contract SnapshotHelpersV3 is CommonTestBase, DiffUtils { using ReserveConfiguration for DataTypes.ReserveConfigurationMap; @@ -40,39 +39,57 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils { vm.serializeUint('root', 'chainId', block.chainid); if (reserveConfigs) writeReserveConfigs(path, configs, pool); if (strategyConfigs) writeStrategyConfigs(path, configs); - if (eModeConigs) writeEModeConfigs(path, configs, pool); + if (eModeConigs) writeEModeConfigs(path, pool); if (poolConfigs) writePoolConfiguration(path, pool); return configs; } - function writeEModeConfigs( - string memory path, - ReserveConfig[] memory configs, - IPool pool - ) public { + function writeEModeConfigs(string memory path, IPool pool) public { _switchOnZkVm(); // keys for json stringification string memory eModesKey = 'emodes'; string memory content = '{}'; - vm.serializeJson(eModesKey, '{}'); - - uint256[] memory usedCategories = new uint256[](configs.length); - for (uint256 i = 0; i < configs.length; i++) { - if (!_isInUint256Array(usedCategories, configs[i].eModeCategory)) { - usedCategories[i] = configs[i].eModeCategory; - DataTypes.EModeCategory memory category = pool.getEModeCategoryData( - uint8(configs[i].eModeCategory) - ); - string memory key = vm.toString(configs[i].eModeCategory); - vm.serializeJson(key, '{}'); - vm.serializeUint(key, 'eModeCategory', configs[i].eModeCategory); - 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); + 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.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.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); @@ -199,10 +216,8 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils { vm.serializeUint(key, 'borrowCap', config.borrowCap); vm.serializeUint(key, 'supplyCap', config.supplyCap); vm.serializeUint(key, 'debtCeiling', config.debtCeiling); - vm.serializeUint(key, 'eModeCategory', config.eModeCategory); vm.serializeBool(key, 'usageAsCollateralEnabled', config.usageAsCollateralEnabled); vm.serializeBool(key, 'borrowingEnabled', config.borrowingEnabled); - vm.serializeBool(key, 'stableBorrowRateEnabled', config.stableBorrowRateEnabled); vm.serializeBool(key, 'isPaused', config.isPaused); vm.serializeBool(key, 'isActive', config.isActive); vm.serializeBool(key, 'isFrozen', config.isFrozen); @@ -212,29 +227,14 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils { vm.serializeAddress(key, 'interestRateStrategy', config.interestRateStrategy); vm.serializeAddress(key, 'underlying', config.underlying); vm.serializeAddress(key, 'aToken', config.aToken); - vm.serializeAddress(key, 'stableDebtToken', config.stableDebtToken); vm.serializeAddress(key, 'variableDebtToken', config.variableDebtToken); vm.serializeAddress( key, 'aTokenImpl', ProxyHelpers.getInitializableAdminUpgradeabilityProxyImplementation(vm, config.aToken) ); - vm.serializeString(key, 'aTokenSymbol', IERC20Detailed(config.aToken).symbol()); - vm.serializeString(key, 'aTokenName', IERC20Detailed(config.aToken).name()); - vm.serializeAddress( - key, - 'stableDebtTokenImpl', - ProxyHelpers.getInitializableAdminUpgradeabilityProxyImplementation( - vm, - config.stableDebtToken - ) - ); - vm.serializeString( - key, - 'stableDebtTokenSymbol', - IERC20Detailed(config.stableDebtToken).symbol() - ); - vm.serializeString(key, 'stableDebtTokenName', IERC20Detailed(config.stableDebtToken).name()); + vm.serializeString(key, 'aTokenSymbol', IERC20Metadata(config.aToken).symbol()); + vm.serializeString(key, 'aTokenName', IERC20Metadata(config.aToken).name()); vm.serializeAddress( key, 'variableDebtTokenImpl', @@ -246,12 +246,12 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils { vm.serializeString( key, 'variableDebtTokenSymbol', - IERC20Detailed(config.variableDebtToken).symbol() + IERC20Metadata(config.variableDebtToken).symbol() ); vm.serializeString( key, 'variableDebtTokenName', - IERC20Detailed(config.variableDebtToken).name() + IERC20Metadata(config.variableDebtToken).name() ); vm.serializeAddress(key, 'oracle', address(assetOracle)); if (address(assetOracle) != address(0)) { From 9a006a06d17a1392f8ee1dd753dd2682a1d4fff0 Mon Sep 17 00:00:00 2001 From: Lukas Date: Tue, 24 Sep 2024 15:02:02 +0200 Subject: [PATCH 12/22] fix: bump deps --- lib/aave-address-book | 2 +- src/ProtocolV3TestBase.sol | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/aave-address-book b/lib/aave-address-book index f2776d222..01f8bf700 160000 --- a/lib/aave-address-book +++ b/lib/aave-address-book @@ -1 +1 @@ -Subproject commit f2776d2220625c1d82bbcc4bf7252467878d2ce9 +Subproject commit 01f8bf70041f129e01e88709b523c5284e125824 diff --git a/src/ProtocolV3TestBase.sol b/src/ProtocolV3TestBase.sol index 7c969a475..5b8af596b 100644 --- a/src/ProtocolV3TestBase.sol +++ b/src/ProtocolV3TestBase.sol @@ -320,6 +320,7 @@ contract ProtocolV3TestBase is RawProtocolV3TestBase, CommonTestBase { // 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) { @@ -327,6 +328,7 @@ contract ProtocolV3TestBase is RawProtocolV3TestBase, CommonTestBase { if (++emptyCounter > 2) break; } else { string memory key = vm.toString(i); + vm.serializeJson(eModesKey, '{}'); vm.serializeUint(key, 'eModeCategory', i); vm.serializeString(key, 'label', pool.getEModeCategoryLabel(i)); vm.serializeUint(key, 'ltv', cfg.ltv); From a6490d83aa60f80ea458cd4fa5c529b6953bf74a Mon Sep 17 00:00:00 2001 From: Lukas Date: Tue, 24 Sep 2024 15:11:23 +0200 Subject: [PATCH 13/22] fix: update resetting of key --- src/ProtocolV3TestBase.sol | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ProtocolV3TestBase.sol b/src/ProtocolV3TestBase.sol index 5b8af596b..061a1c4ff 100644 --- a/src/ProtocolV3TestBase.sol +++ b/src/ProtocolV3TestBase.sol @@ -328,7 +328,7 @@ contract ProtocolV3TestBase is RawProtocolV3TestBase, CommonTestBase { if (++emptyCounter > 2) break; } else { string memory key = vm.toString(i); - vm.serializeJson(eModesKey, '{}'); + vm.serializeJson(key, '{}'); vm.serializeUint(key, 'eModeCategory', i); vm.serializeString(key, 'label', pool.getEModeCategoryLabel(i)); vm.serializeUint(key, 'ltv', cfg.ltv); @@ -353,6 +353,7 @@ contract ProtocolV3TestBase is RawProtocolV3TestBase, CommonTestBase { 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); From 6bef1464d34209621745c2816d7dcce66c4be4e5 Mon Sep 17 00:00:00 2001 From: Lukas Date: Tue, 24 Sep 2024 20:20:04 +0200 Subject: [PATCH 14/22] fix: update snapshot helper --- zksync/src/SnapshotHelpersV3.sol | 3 +++ 1 file changed, 3 insertions(+) diff --git a/zksync/src/SnapshotHelpersV3.sol b/zksync/src/SnapshotHelpersV3.sol index f105d52d5..8852c1128 100644 --- a/zksync/src/SnapshotHelpersV3.sol +++ b/zksync/src/SnapshotHelpersV3.sol @@ -50,6 +50,7 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils { // 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) { @@ -57,6 +58,7 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils { 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); @@ -81,6 +83,7 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils { 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); From 288840fe7dba98a32d85d541cb7bfba9b33a81bd Mon Sep 17 00:00:00 2001 From: Lukas Date: Tue, 24 Sep 2024 20:25:15 +0200 Subject: [PATCH 15/22] fix: inline id --- zksync/src/SnapshotHelpersV3.sol | 1 + 1 file changed, 1 insertion(+) diff --git a/zksync/src/SnapshotHelpersV3.sol b/zksync/src/SnapshotHelpersV3.sol index 8852c1128..86f4cc608 100644 --- a/zksync/src/SnapshotHelpersV3.sol +++ b/zksync/src/SnapshotHelpersV3.sol @@ -210,6 +210,7 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils { string memory key = vm.toString(config.underlying); vm.serializeString(key, 'symbol', config.symbol); + vm.serializeUint(key, 'id', i); vm.serializeUint(key, 'ltv', config.ltv); vm.serializeUint(key, 'liquidationThreshold', config.liquidationThreshold); vm.serializeUint(key, 'liquidationBonus', config.liquidationBonus); From d839c35f0dcf244e46730fba9afbb9c2f4582153 Mon Sep 17 00:00:00 2001 From: Lukas Date: Tue, 24 Sep 2024 20:33:28 +0200 Subject: [PATCH 16/22] fix: update zksync --- lib/aave-address-book | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/aave-address-book b/lib/aave-address-book index 01f8bf700..734d8829b 160000 --- a/lib/aave-address-book +++ b/lib/aave-address-book @@ -1 +1 @@ -Subproject commit 01f8bf70041f129e01e88709b523c5284e125824 +Subproject commit 734d8829bb52de3f5e11979cae41e09e21393677 From 3b0bac37d4f6ba8f202491b6acf037dcbe466373 Mon Sep 17 00:00:00 2001 From: Lukas Date: Wed, 25 Sep 2024 08:43:44 +0200 Subject: [PATCH 17/22] fix: inline address --- zksync/src/SnapshotHelpersV3.sol | 1 + 1 file changed, 1 insertion(+) diff --git a/zksync/src/SnapshotHelpersV3.sol b/zksync/src/SnapshotHelpersV3.sol index 86f4cc608..18af3ce41 100644 --- a/zksync/src/SnapshotHelpersV3.sol +++ b/zksync/src/SnapshotHelpersV3.sol @@ -210,6 +210,7 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils { string memory key = vm.toString(config.underlying); vm.serializeString(key, 'symbol', config.symbol); + vm.serializeAddress(key, 'address', config.underlying); vm.serializeUint(key, 'id', i); vm.serializeUint(key, 'ltv', config.ltv); vm.serializeUint(key, 'liquidationThreshold', config.liquidationThreshold); From 5f43d4a8602f5d5ac7c630fa1faa36950678d774 Mon Sep 17 00:00:00 2001 From: Lukas Date: Wed, 25 Sep 2024 08:56:54 +0200 Subject: [PATCH 18/22] fix: align zksync with upstream --- zksync/src/SnapshotHelpersV3.sol | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/zksync/src/SnapshotHelpersV3.sol b/zksync/src/SnapshotHelpersV3.sol index 18af3ce41..a4cea6d7d 100644 --- a/zksync/src/SnapshotHelpersV3.sol +++ b/zksync/src/SnapshotHelpersV3.sol @@ -199,6 +199,7 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils { // keys for json stringification string memory reservesKey = 'reserves'; string memory content = '{}'; + vm.serializeJson(reservesKey, '{}'); IPoolAddressesProvider addressesProvider = IPoolAddressesProvider(pool.ADDRESSES_PROVIDER()); IAaveOracle oracle = IAaveOracle(addressesProvider.getPriceOracle()); @@ -209,8 +210,8 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils { ); string memory key = vm.toString(config.underlying); + vm.serializeJson(key, '{}'); vm.serializeString(key, 'symbol', config.symbol); - vm.serializeAddress(key, 'address', config.underlying); vm.serializeUint(key, 'id', i); vm.serializeUint(key, 'ltv', config.ltv); vm.serializeUint(key, 'liquidationThreshold', config.liquidationThreshold); @@ -238,8 +239,8 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils { 'aTokenImpl', ProxyHelpers.getInitializableAdminUpgradeabilityProxyImplementation(vm, config.aToken) ); - vm.serializeString(key, 'aTokenSymbol', IERC20Metadata(config.aToken).symbol()); - vm.serializeString(key, 'aTokenName', IERC20Metadata(config.aToken).name()); + vm.serializeString(key, 'aTokenSymbol', IERC20Detailed(config.aToken).symbol()); + vm.serializeString(key, 'aTokenName', IERC20Detailed(config.aToken).name()); vm.serializeAddress( key, 'variableDebtTokenImpl', @@ -251,12 +252,12 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils { vm.serializeString( key, 'variableDebtTokenSymbol', - IERC20Metadata(config.variableDebtToken).symbol() + IERC20Detailed(config.variableDebtToken).symbol() ); vm.serializeString( key, 'variableDebtTokenName', - IERC20Metadata(config.variableDebtToken).name() + IERC20Detailed(config.variableDebtToken).name() ); vm.serializeAddress(key, 'oracle', address(assetOracle)); if (address(assetOracle) != address(0)) { @@ -277,13 +278,17 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils { } vm.serializeBool(key, 'virtualAccountingActive', config.virtualAccActive); - vm.serializeUint(key, 'virtualBalance', config.virtualBalance); - vm.serializeUint(key, 'aTokenUnderlyingBalance', config.aTokenUnderlyingBalance); + vm.serializeString(key, 'virtualBalance', vm.toString(config.virtualBalance)); + vm.serializeString( + key, + 'aTokenUnderlyingBalance', + vm.toString(config.aTokenUnderlyingBalance) + ); - string memory out = vm.serializeUint( + string memory out = vm.serializeString( key, 'oracleLatestAnswer', - uint256(oracle.getAssetPrice(config.underlying)) + vm.toString(uint256(oracle.getAssetPrice(config.underlying))) ); content = vm.serializeString(reservesKey, key, out); } From feaa4adcee13a9f6437dd896c26e11866d5ff628 Mon Sep 17 00:00:00 2001 From: Lukas Date: Wed, 25 Sep 2024 08:58:42 +0200 Subject: [PATCH 19/22] fix: use correct interface --- zksync/src/SnapshotHelpersV3.sol | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/zksync/src/SnapshotHelpersV3.sol b/zksync/src/SnapshotHelpersV3.sol index a4cea6d7d..da1165bf9 100644 --- a/zksync/src/SnapshotHelpersV3.sol +++ b/zksync/src/SnapshotHelpersV3.sol @@ -239,8 +239,8 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils { 'aTokenImpl', ProxyHelpers.getInitializableAdminUpgradeabilityProxyImplementation(vm, config.aToken) ); - vm.serializeString(key, 'aTokenSymbol', IERC20Detailed(config.aToken).symbol()); - vm.serializeString(key, 'aTokenName', IERC20Detailed(config.aToken).name()); + vm.serializeString(key, 'aTokenSymbol', IERC20Metadata(config.aToken).symbol()); + vm.serializeString(key, 'aTokenName', IERC20Metadata(config.aToken).name()); vm.serializeAddress( key, 'variableDebtTokenImpl', @@ -252,12 +252,12 @@ contract SnapshotHelpersV3 is CommonTestBase, DiffUtils { vm.serializeString( key, 'variableDebtTokenSymbol', - IERC20Detailed(config.variableDebtToken).symbol() + IERC20Metadata(config.variableDebtToken).symbol() ); vm.serializeString( key, 'variableDebtTokenName', - IERC20Detailed(config.variableDebtToken).name() + IERC20Metadata(config.variableDebtToken).name() ); vm.serializeAddress(key, 'oracle', address(assetOracle)); if (address(assetOracle) != address(0)) { From 54759e554e4681f5e7f198a38a7db91319d8810a Mon Sep 17 00:00:00 2001 From: Lukas Date: Wed, 2 Oct 2024 16:36:41 +0200 Subject: [PATCH 20/22] fix: bump address book --- lib/aave-address-book | 2 +- lib/forge-std | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/aave-address-book b/lib/aave-address-book index 734d8829b..8da558c43 160000 --- a/lib/aave-address-book +++ b/lib/aave-address-book @@ -1 +1 @@ -Subproject commit 734d8829bb52de3f5e11979cae41e09e21393677 +Subproject commit 8da558c43b470076bfacf06577402c7c58c6606c diff --git a/lib/forge-std b/lib/forge-std index 5a802d7c1..ab6de56ed 160000 --- a/lib/forge-std +++ b/lib/forge-std @@ -1 +1 @@ -Subproject commit 5a802d7c10abb4bbfb3e7214c75052ef9e6a06f8 +Subproject commit ab6de56ed94bed75866c78c62cad882e8a046348 From ae2a706b9ea2c26f6b110476e6cf430f427ac268 Mon Sep 17 00:00:00 2001 From: Harsh Pandey Date: Wed, 9 Oct 2024 20:37:27 +0530 Subject: [PATCH 21/22] fix: compile --- src/ProtocolV2TestBase.sol | 2 +- tests/ProtocolV3TestBase.t.sol | 2 +- tests/ProxyHelpersTest.t.sol | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ProtocolV2TestBase.sol b/src/ProtocolV2TestBase.sol index 8e1eb187c..fb333ddd4 100644 --- a/src/ProtocolV2TestBase.sol +++ b/src/ProtocolV2TestBase.sol @@ -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; diff --git a/tests/ProtocolV3TestBase.t.sol b/tests/ProtocolV3TestBase.t.sol index b7c15b611..416ddfa04 100644 --- a/tests/ProtocolV3TestBase.t.sol +++ b/tests/ProtocolV3TestBase.t.sol @@ -21,7 +21,7 @@ contract ProtocolV3TestBaseTest is ProtocolV3TestBase { ReserveConfig[] memory configs = _getReservesConfigs(AaveV3Optimism.POOL); e2eTestAsset( AaveV3Optimism.POOL, - _findReserveConfig(configs, AaveV3PolygonAssets.WMATIC_UNDERLYING), + _findReserveConfig(configs, AaveV3PolygonAssets.WPOL_UNDERLYING), _findReserveConfig(configs, AaveV3PolygonAssets.DPI_UNDERLYING) ); } diff --git a/tests/ProxyHelpersTest.t.sol b/tests/ProxyHelpersTest.t.sol index 4a74d0f57..dadcf3b91 100644 --- a/tests/ProxyHelpersTest.t.sol +++ b/tests/ProxyHelpersTest.t.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.0; import 'forge-std/Test.sol'; import {AaveGovernanceV2} from 'aave-address-book/AaveGovernanceV2.sol'; -import {ProxyHelpers} from '../src/ProxyHelpers.sol'; +import {ProxyHelpers} from 'aave-v3-origin/../tests/utils/ProxyHelpers.sol'; contract ProxyHelpersTest is Test { function setUp() public { From c5e013ab6873a8ef9c74b4f1d436be78e3252ae2 Mon Sep 17 00:00:00 2001 From: Lukas Date: Thu, 10 Oct 2024 09:57:55 +0200 Subject: [PATCH 22/22] fix: update main --- .gitmodules | 1 - diffs/default_before_default_after.md | 2088 +----------------- lib/aave-address-book | 2 +- lib/forge-std | 2 +- tests/riskstewards/CapsPlusRiskSteward.t.sol | 2 +- 5 files changed, 5 insertions(+), 2090 deletions(-) diff --git a/.gitmodules b/.gitmodules index ad6126c51..ae9d5ae52 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,4 +4,3 @@ [submodule "lib/aave-address-book"] path = lib/aave-address-book url = https://github.com/bgd-labs/aave-address-book - branch = feat/3.2.0 diff --git a/diffs/default_before_default_after.md b/diffs/default_before_default_after.md index 1fd36517c..dbd03dce4 100644 --- a/diffs/default_before_default_after.md +++ b/diffs/default_before_default_after.md @@ -1,2091 +1,7 @@ -## Reserve changes - -### Reserve altered - -#### 1INCH ([0x111111111117dC0aa78b770fA6A738034120C302](https://etherscan.io/address/0x111111111117dC0aa78b770fA6A738034120C302)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0xf6733B9842883BFE0e0a940eA2F572676af31bde](https://etherscan.io/address/0xf6733B9842883BFE0e0a940eA2F572676af31bde) | -| baseStableBorrowRate | null | 120000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 550000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 450000000000000000000000000 | -| stableRateSlope1 | null | 130000000000000000000000000 | -| stableRateSlope2 | null | 3000000000000000000000000000 | -| variableRateSlope1 | null | 90000000000000000000000000 | -| variableRateSlope2 | null | 3000000000000000000000000000 | - - -#### UNI ([0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984](https://etherscan.io/address/0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F](https://etherscan.io/address/0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F) | -| baseStableBorrowRate | null | 100000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 550000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 450000000000000000000000000 | -| stableRateSlope1 | null | 130000000000000000000000000 | -| stableRateSlope2 | null | 3000000000000000000000000000 | -| variableRateSlope1 | null | 70000000000000000000000000 | -| variableRateSlope2 | null | 3000000000000000000000000000 | - - -#### WBTC ([0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599](https://etherscan.io/address/0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0x07Fa3744FeC271F80c2EA97679823F65c13CCDf4](https://etherscan.io/address/0x07Fa3744FeC271F80c2EA97679823F65c13CCDf4) | -| baseStableBorrowRate | null | 60000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 550000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 450000000000000000000000000 | -| stableRateSlope1 | null | 70000000000000000000000000 | -| stableRateSlope2 | null | 3000000000000000000000000000 | -| variableRateSlope1 | null | 40000000000000000000000000 | -| variableRateSlope2 | null | 3000000000000000000000000000 | - - -#### FXS ([0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0](https://etherscan.io/address/0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0xf6733B9842883BFE0e0a940eA2F572676af31bde](https://etherscan.io/address/0xf6733B9842883BFE0e0a940eA2F572676af31bde) | -| baseStableBorrowRate | null | 120000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 550000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 450000000000000000000000000 | -| stableRateSlope1 | null | 130000000000000000000000000 | -| stableRateSlope2 | null | 3000000000000000000000000000 | -| variableRateSlope1 | null | 90000000000000000000000000 | -| variableRateSlope2 | null | 3000000000000000000000000000 | - - -#### GHO ([0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f](https://etherscan.io/address/0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0x741aE8b9f54b7DdE46C532f2c0F55B8776c93484](https://etherscan.io/address/0x741aE8b9f54b7DdE46C532f2c0F55B8776c93484) | -| baseStableBorrowRate | null | 0 | -| baseVariableBorrowRate | null | 70000000000000000000000000 | -| maxExcessStableToTotalDebtRatio | null | 0 | -| maxExcessUsageRatio | null | 0 | -| optimalStableToTotalDebtRatio | null | 0 | -| optimalUsageRatio | null | 0 | -| stableRateSlope1 | null | 0 | -| stableRateSlope2 | null | 0 | -| variableRateSlope1 | null | 0 | -| variableRateSlope2 | null | 0 | - - -#### USDe ([0x4c9EDD5852cd905f086C759E8383e09bff1E68B3](https://etherscan.io/address/0x4c9EDD5852cd905f086C759E8383e09bff1E68B3)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0x4011fcd421b9E90f131B164EC1d162DBE269621C](https://etherscan.io/address/0x4011fcd421b9E90f131B164EC1d162DBE269621C) | -| baseStableBorrowRate | null | 90000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 1000000000000000000000000000 | -| maxExcessUsageRatio | null | 200000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 0 | -| optimalUsageRatio | null | 800000000000000000000000000 | -| stableRateSlope1 | null | 90000000000000000000000000 | -| stableRateSlope2 | null | 750000000000000000000000000 | -| variableRateSlope1 | null | 90000000000000000000000000 | -| variableRateSlope2 | null | 750000000000000000000000000 | - - -#### LINK ([0x514910771AF9Ca656af840dff83E8264EcF986CA](https://etherscan.io/address/0x514910771AF9Ca656af840dff83E8264EcF986CA)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0x24701A6368Ff6D2874d6b8cDadd461552B8A5283](https://etherscan.io/address/0x24701A6368Ff6D2874d6b8cDadd461552B8A5283) | -| baseStableBorrowRate | null | 90000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 550000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 450000000000000000000000000 | -| stableRateSlope1 | null | 70000000000000000000000000 | -| stableRateSlope2 | null | 3000000000000000000000000000 | -| variableRateSlope1 | null | 70000000000000000000000000 | -| variableRateSlope2 | null | 3000000000000000000000000000 | - - -#### LDO ([0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32](https://etherscan.io/address/0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F](https://etherscan.io/address/0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F) | -| baseStableBorrowRate | null | 100000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 550000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 450000000000000000000000000 | -| stableRateSlope1 | null | 130000000000000000000000000 | -| stableRateSlope2 | null | 3000000000000000000000000000 | -| variableRateSlope1 | null | 70000000000000000000000000 | -| variableRateSlope2 | null | 3000000000000000000000000000 | - - -#### LUSD ([0x5f98805A4E8be255a32880FDeC7F6728C6568bA0](https://etherscan.io/address/0x5f98805A4E8be255a32880FDeC7F6728C6568bA0)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0x2B3Ed91C6667d808b0401f439c4859ea635c6862](https://etherscan.io/address/0x2B3Ed91C6667d808b0401f439c4859ea635c6862) | -| baseStableBorrowRate | null | 100000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 200000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 800000000000000000000000000 | -| stableRateSlope1 | null | 40000000000000000000000000 | -| stableRateSlope2 | null | 870000000000000000000000000 | -| variableRateSlope1 | null | 90000000000000000000000000 | -| variableRateSlope2 | null | 870000000000000000000000000 | - - -#### DAI ([0x6B175474E89094C44Da98b954EedeAC495271d0F](https://etherscan.io/address/0x6B175474E89094C44Da98b954EedeAC495271d0F)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0x05F410A9EB94e0BEe0E47F12254E7Cb5F4E2A1f7](https://etherscan.io/address/0x05F410A9EB94e0BEe0E47F12254E7Cb5F4E2A1f7) | -| baseStableBorrowRate | null | 100000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 80000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 920000000000000000000000000 | -| stableRateSlope1 | null | 5000000000000000000000000 | -| stableRateSlope2 | null | 750000000000000000000000000 | -| variableRateSlope1 | null | 90000000000000000000000000 | -| variableRateSlope2 | null | 750000000000000000000000000 | - - -#### PYUSD ([0x6c3ea9036406852006290770BEdFcAbA0e23A0e8](https://etherscan.io/address/0x6c3ea9036406852006290770BEdFcAbA0e23A0e8)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0x22B409E1ab288DA6a895FE8251bEbfcA267f8805](https://etherscan.io/address/0x22B409E1ab288DA6a895FE8251bEbfcA267f8805) | -| baseStableBorrowRate | null | 120000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 200000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 800000000000000000000000000 | -| stableRateSlope1 | null | 130000000000000000000000000 | -| stableRateSlope2 | null | 3000000000000000000000000000 | -| variableRateSlope1 | null | 90000000000000000000000000 | -| variableRateSlope2 | null | 800000000000000000000000000 | - - -#### AAVE ([0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9](https://etherscan.io/address/0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0x24701A6368Ff6D2874d6b8cDadd461552B8A5283](https://etherscan.io/address/0x24701A6368Ff6D2874d6b8cDadd461552B8A5283) | -| baseStableBorrowRate | null | 90000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 550000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 450000000000000000000000000 | -| stableRateSlope1 | null | 70000000000000000000000000 | -| stableRateSlope2 | null | 3000000000000000000000000000 | -| variableRateSlope1 | null | 70000000000000000000000000 | -| variableRateSlope2 | null | 3000000000000000000000000000 | - - -#### wstETH ([0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0](https://etherscan.io/address/0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0x7b8Fa4540246554e77FCFf140f9114de00F8bB8D](https://etherscan.io/address/0x7b8Fa4540246554e77FCFf140f9114de00F8bB8D) | -| baseStableBorrowRate | null | 75000000000000000000000000 | -| baseVariableBorrowRate | null | 2500000000000000000000000 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 550000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 450000000000000000000000000 | -| stableRateSlope1 | null | 40000000000000000000000000 | -| stableRateSlope2 | null | 800000000000000000000000000 | -| variableRateSlope1 | null | 45000000000000000000000000 | -| variableRateSlope2 | null | 800000000000000000000000000 | - - -#### sDAI ([0x83F20F44975D03b1b09e64809B757c47f942BEeA](https://etherscan.io/address/0x83F20F44975D03b1b09e64809B757c47f942BEeA)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0xdef8F50155A6cf21181E29E400E8CffAE2d50968](https://etherscan.io/address/0xdef8F50155A6cf21181E29E400E8CffAE2d50968) | -| baseStableBorrowRate | null | 80000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 100000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 900000000000000000000000000 | -| stableRateSlope1 | null | 50000000000000000000000000 | -| stableRateSlope2 | null | 750000000000000000000000000 | -| variableRateSlope1 | null | 50000000000000000000000000 | -| variableRateSlope2 | null | 750000000000000000000000000 | - - -#### FRAX ([0x853d955aCEf822Db058eb8505911ED77F175b99e](https://etherscan.io/address/0x853d955aCEf822Db058eb8505911ED77F175b99e)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0xA7D9302346d4C35724821cf98966B2257c9683c6](https://etherscan.io/address/0xA7D9302346d4C35724821cf98966B2257c9683c6) | -| baseStableBorrowRate | null | 100000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 100000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 900000000000000000000000000 | -| stableRateSlope1 | null | 5000000000000000000000000 | -| stableRateSlope2 | null | 750000000000000000000000000 | -| variableRateSlope1 | null | 90000000000000000000000000 | -| variableRateSlope2 | null | 750000000000000000000000000 | - - -#### sUSDe ([0x9D39A5DE30e57443BfF2A8307A4256c8797A3497](https://etherscan.io/address/0x9D39A5DE30e57443BfF2A8307A4256c8797A3497)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0x36d32fD7a72AD600be60Ccb71D3718E455025CaA](https://etherscan.io/address/0x36d32fD7a72AD600be60Ccb71D3718E455025CaA) | -| baseStableBorrowRate | null | 0 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 1000000000000000000000000000 | -| maxExcessUsageRatio | null | 100000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 0 | -| optimalUsageRatio | null | 900000000000000000000000000 | -| stableRateSlope1 | null | 0 | -| stableRateSlope2 | null | 0 | -| variableRateSlope1 | null | 0 | -| variableRateSlope2 | null | 0 | - - -#### MKR ([0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2](https://etherscan.io/address/0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F](https://etherscan.io/address/0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F) | -| baseStableBorrowRate | null | 100000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 550000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 450000000000000000000000000 | -| stableRateSlope1 | null | 130000000000000000000000000 | -| stableRateSlope2 | null | 3000000000000000000000000000 | -| variableRateSlope1 | null | 70000000000000000000000000 | -| variableRateSlope2 | null | 3000000000000000000000000000 | - - -#### USDC ([0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48](https://etherscan.io/address/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0x0fc12Ad84210695dE8C0D5D8B6f720C37cEaB02f](https://etherscan.io/address/0x0fc12Ad84210695dE8C0D5D8B6f720C37cEaB02f) | -| baseStableBorrowRate | null | 100000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 80000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 920000000000000000000000000 | -| stableRateSlope1 | null | 5000000000000000000000000 | -| stableRateSlope2 | null | 600000000000000000000000000 | -| variableRateSlope1 | null | 90000000000000000000000000 | -| variableRateSlope2 | null | 600000000000000000000000000 | - - -#### ETHx ([0xA35b1B31Ce002FBF2058D22F30f95D405200A15b](https://etherscan.io/address/0xA35b1B31Ce002FBF2058D22F30f95D405200A15b)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0x48AF11111764E710fcDcE2750db848C63edab57B](https://etherscan.io/address/0x48AF11111764E710fcDcE2750db848C63edab57B) | -| baseStableBorrowRate | null | 70000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 1000000000000000000000000000 | -| maxExcessUsageRatio | null | 550000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 0 | -| optimalUsageRatio | null | 450000000000000000000000000 | -| stableRateSlope1 | null | 0 | -| stableRateSlope2 | null | 0 | -| variableRateSlope1 | null | 70000000000000000000000000 | -| variableRateSlope2 | null | 3000000000000000000000000000 | - - -#### STG ([0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6](https://etherscan.io/address/0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F](https://etherscan.io/address/0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F) | -| baseStableBorrowRate | null | 100000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 550000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 450000000000000000000000000 | -| stableRateSlope1 | null | 130000000000000000000000000 | -| stableRateSlope2 | null | 3000000000000000000000000000 | -| variableRateSlope1 | null | 70000000000000000000000000 | -| variableRateSlope2 | null | 3000000000000000000000000000 | - - -#### cbETH ([0xBe9895146f7AF43049ca1c1AE358B0541Ea49704](https://etherscan.io/address/0xBe9895146f7AF43049ca1c1AE358B0541Ea49704)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0x24701A6368Ff6D2874d6b8cDadd461552B8A5283](https://etherscan.io/address/0x24701A6368Ff6D2874d6b8cDadd461552B8A5283) | -| baseStableBorrowRate | null | 90000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 550000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 450000000000000000000000000 | -| stableRateSlope1 | null | 70000000000000000000000000 | -| stableRateSlope2 | null | 3000000000000000000000000000 | -| variableRateSlope1 | null | 70000000000000000000000000 | -| variableRateSlope2 | null | 3000000000000000000000000000 | - - -#### SNX ([0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F](https://etherscan.io/address/0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0xA6459195d60A797D278f58Ffbd2BA62Fb3F7FA1E](https://etherscan.io/address/0xA6459195d60A797D278f58Ffbd2BA62Fb3F7FA1E) | -| baseStableBorrowRate | null | 180000000000000000000000000 | -| baseVariableBorrowRate | null | 30000000000000000000000000 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 200000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 800000000000000000000000000 | -| stableRateSlope1 | null | 150000000000000000000000000 | -| stableRateSlope2 | null | 1000000000000000000000000000 | -| variableRateSlope1 | null | 150000000000000000000000000 | -| variableRateSlope2 | null | 1000000000000000000000000000 | - - -#### WETH ([0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2](https://etherscan.io/address/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0x42ec99A020B78C449d17d93bC4c89e0189B5811d](https://etherscan.io/address/0x42ec99A020B78C449d17d93bC4c89e0189B5811d) | -| baseStableBorrowRate | null | 57000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 100000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 900000000000000000000000000 | -| stableRateSlope1 | null | 40000000000000000000000000 | -| stableRateSlope2 | null | 800000000000000000000000000 | -| variableRateSlope1 | null | 27000000000000000000000000 | -| variableRateSlope2 | null | 800000000000000000000000000 | - - -#### ENS ([0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72](https://etherscan.io/address/0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0xf6733B9842883BFE0e0a940eA2F572676af31bde](https://etherscan.io/address/0xf6733B9842883BFE0e0a940eA2F572676af31bde) | -| baseStableBorrowRate | null | 120000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 550000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 450000000000000000000000000 | -| stableRateSlope1 | null | 130000000000000000000000000 | -| stableRateSlope2 | null | 3000000000000000000000000000 | -| variableRateSlope1 | null | 90000000000000000000000000 | -| variableRateSlope2 | null | 3000000000000000000000000000 | - - -#### weETH ([0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee](https://etherscan.io/address/0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0xf1e5355cEcaA71036CE21cdF8F9d04061B1BC6E1](https://etherscan.io/address/0xf1e5355cEcaA71036CE21cdF8F9d04061B1BC6E1) | -| baseStableBorrowRate | null | 70000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 1000000000000000000000000000 | -| maxExcessUsageRatio | null | 650000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 0 | -| optimalUsageRatio | null | 350000000000000000000000000 | -| stableRateSlope1 | null | 0 | -| stableRateSlope2 | null | 0 | -| variableRateSlope1 | null | 70000000000000000000000000 | -| variableRateSlope2 | null | 3000000000000000000000000000 | - - -#### RPL ([0xD33526068D116cE69F19A9ee46F0bd304F21A51f](https://etherscan.io/address/0xD33526068D116cE69F19A9ee46F0bd304F21A51f)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0xD87974E8ED49AB16d5053ba793F4e17078Be0426](https://etherscan.io/address/0xD87974E8ED49AB16d5053ba793F4e17078Be0426) | -| baseStableBorrowRate | null | 95000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 200000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 800000000000000000000000000 | -| stableRateSlope1 | null | 85000000000000000000000000 | -| stableRateSlope2 | null | 870000000000000000000000000 | -| variableRateSlope1 | null | 85000000000000000000000000 | -| variableRateSlope2 | null | 870000000000000000000000000 | - - -#### CRV ([0xD533a949740bb3306d119CC777fa900bA034cd52](https://etherscan.io/address/0xD533a949740bb3306d119CC777fa900bA034cd52)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0x76884cAFeCf1f7d4146DA6C4053B18B76bf6ED14](https://etherscan.io/address/0x76884cAFeCf1f7d4146DA6C4053B18B76bf6ED14) | -| baseStableBorrowRate | null | 170000000000000000000000000 | -| baseVariableBorrowRate | null | 30000000000000000000000000 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 300000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 700000000000000000000000000 | -| stableRateSlope1 | null | 80000000000000000000000000 | -| stableRateSlope2 | null | 3000000000000000000000000000 | -| variableRateSlope1 | null | 140000000000000000000000000 | -| variableRateSlope2 | null | 3000000000000000000000000000 | - - -#### rETH ([0xae78736Cd615f374D3085123A210448E74Fc6393](https://etherscan.io/address/0xae78736Cd615f374D3085123A210448E74Fc6393)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0x24701A6368Ff6D2874d6b8cDadd461552B8A5283](https://etherscan.io/address/0x24701A6368Ff6D2874d6b8cDadd461552B8A5283) | -| baseStableBorrowRate | null | 90000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 550000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 450000000000000000000000000 | -| stableRateSlope1 | null | 70000000000000000000000000 | -| stableRateSlope2 | null | 3000000000000000000000000000 | -| variableRateSlope1 | null | 70000000000000000000000000 | -| variableRateSlope2 | null | 3000000000000000000000000000 | - - -#### BAL ([0xba100000625a3754423978a60c9317c58a424e3D](https://etherscan.io/address/0xba100000625a3754423978a60c9317c58a424e3D)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0xd9d85499449f26d2A2c240defd75314f23920089](https://etherscan.io/address/0xd9d85499449f26d2A2c240defd75314f23920089) | -| baseStableBorrowRate | null | 270000000000000000000000000 | -| baseVariableBorrowRate | null | 50000000000000000000000000 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 200000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 800000000000000000000000000 | -| stableRateSlope1 | null | 220000000000000000000000000 | -| stableRateSlope2 | null | 1500000000000000000000000000 | -| variableRateSlope1 | null | 220000000000000000000000000 | -| variableRateSlope2 | null | 1500000000000000000000000000 | - - -#### USDT ([0xdAC17F958D2ee523a2206206994597C13D831ec7](https://etherscan.io/address/0xdAC17F958D2ee523a2206206994597C13D831ec7)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0xca719585f2E07BDe82c4a05D6E7C0E446c2D6601](https://etherscan.io/address/0xca719585f2E07BDe82c4a05D6E7C0E446c2D6601) | -| baseStableBorrowRate | null | 100000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 80000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 920000000000000000000000000 | -| stableRateSlope1 | null | 40000000000000000000000000 | -| stableRateSlope2 | null | 720000000000000000000000000 | -| variableRateSlope1 | null | 90000000000000000000000000 | -| variableRateSlope2 | null | 750000000000000000000000000 | - - -#### KNC ([0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202](https://etherscan.io/address/0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0xf6733B9842883BFE0e0a940eA2F572676af31bde](https://etherscan.io/address/0xf6733B9842883BFE0e0a940eA2F572676af31bde) | -| baseStableBorrowRate | null | 120000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 550000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 450000000000000000000000000 | -| stableRateSlope1 | null | 130000000000000000000000000 | -| stableRateSlope2 | null | 3000000000000000000000000000 | -| variableRateSlope1 | null | 90000000000000000000000000 | -| variableRateSlope2 | null | 3000000000000000000000000000 | - - -#### osETH ([0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38](https://etherscan.io/address/0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0x48AF11111764E710fcDcE2750db848C63edab57B](https://etherscan.io/address/0x48AF11111764E710fcDcE2750db848C63edab57B) | -| baseStableBorrowRate | null | 70000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 1000000000000000000000000000 | -| maxExcessUsageRatio | null | 550000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 0 | -| optimalUsageRatio | null | 450000000000000000000000000 | -| stableRateSlope1 | null | 0 | -| stableRateSlope2 | null | 0 | -| variableRateSlope1 | null | 70000000000000000000000000 | -| variableRateSlope2 | null | 3000000000000000000000000000 | - - -#### crvUSD ([0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E](https://etherscan.io/address/0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E)) - -| description | value before | value after | -| --- | --- | --- | -| address | null | [0x22B409E1ab288DA6a895FE8251bEbfcA267f8805](https://etherscan.io/address/0x22B409E1ab288DA6a895FE8251bEbfcA267f8805) | -| baseStableBorrowRate | null | 120000000000000000000000000 | -| baseVariableBorrowRate | null | 0 | -| maxExcessStableToTotalDebtRatio | null | 800000000000000000000000000 | -| maxExcessUsageRatio | null | 200000000000000000000000000 | -| optimalStableToTotalDebtRatio | null | 200000000000000000000000000 | -| optimalUsageRatio | null | 800000000000000000000000000 | -| stableRateSlope1 | null | 130000000000000000000000000 | -| stableRateSlope2 | null | 3000000000000000000000000000 | -| variableRateSlope1 | null | 90000000000000000000000000 | -| variableRateSlope2 | null | 800000000000000000000000000 | - +## Emodes changes ## Raw diff ```json -{ - "reserves": { - "0x111111111117dC0aa78b770fA6A738034120C302": { - "address": { - "from": null, - "to": "0xf6733B9842883BFE0e0a940eA2F572676af31bde" - }, - "baseStableBorrowRate": { - "from": null, - "to": "120000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "550000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "450000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "130000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "90000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - } - }, - "0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984": { - "address": { - "from": null, - "to": "0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F" - }, - "baseStableBorrowRate": { - "from": null, - "to": "100000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "550000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "450000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "130000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "70000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - } - }, - "0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599": { - "address": { - "from": null, - "to": "0x07Fa3744FeC271F80c2EA97679823F65c13CCDf4" - }, - "baseStableBorrowRate": { - "from": null, - "to": "60000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "550000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "450000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "70000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "40000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - } - }, - "0x3432B6A60D23Ca0dFCa7761B7ab56459D9C964D0": { - "address": { - "from": null, - "to": "0xf6733B9842883BFE0e0a940eA2F572676af31bde" - }, - "baseStableBorrowRate": { - "from": null, - "to": "120000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "550000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "450000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "130000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "90000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - } - }, - "0x40D16FC0246aD3160Ccc09B8D0D3A2cD28aE6C2f": { - "address": { - "from": null, - "to": "0x741aE8b9f54b7DdE46C532f2c0F55B8776c93484" - }, - "baseStableBorrowRate": { - "from": null, - "to": "0" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "70000000000000000000000000" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "0" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "0" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "0" - }, - "optimalUsageRatio": { - "from": null, - "to": "0" - }, - "stableRateSlope1": { - "from": null, - "to": "0" - }, - "stableRateSlope2": { - "from": null, - "to": "0" - }, - "variableRateSlope1": { - "from": null, - "to": "0" - }, - "variableRateSlope2": { - "from": null, - "to": "0" - } - }, - "0x4c9EDD5852cd905f086C759E8383e09bff1E68B3": { - "address": { - "from": null, - "to": "0x4011fcd421b9E90f131B164EC1d162DBE269621C" - }, - "baseStableBorrowRate": { - "from": null, - "to": "90000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "1000000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "0" - }, - "optimalUsageRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "90000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "750000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "90000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "750000000000000000000000000" - } - }, - "0x514910771AF9Ca656af840dff83E8264EcF986CA": { - "address": { - "from": null, - "to": "0x24701A6368Ff6D2874d6b8cDadd461552B8A5283" - }, - "baseStableBorrowRate": { - "from": null, - "to": "90000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "550000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "450000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "70000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "70000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - } - }, - "0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32": { - "address": { - "from": null, - "to": "0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F" - }, - "baseStableBorrowRate": { - "from": null, - "to": "100000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "550000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "450000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "130000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "70000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - } - }, - "0x5f98805A4E8be255a32880FDeC7F6728C6568bA0": { - "address": { - "from": null, - "to": "0x2B3Ed91C6667d808b0401f439c4859ea635c6862" - }, - "baseStableBorrowRate": { - "from": null, - "to": "100000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "40000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "870000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "90000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "870000000000000000000000000" - } - }, - "0x6B175474E89094C44Da98b954EedeAC495271d0F": { - "address": { - "from": null, - "to": "0x05F410A9EB94e0BEe0E47F12254E7Cb5F4E2A1f7" - }, - "baseStableBorrowRate": { - "from": null, - "to": "100000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "80000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "920000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "5000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "750000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "90000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "750000000000000000000000000" - } - }, - "0x6c3ea9036406852006290770BEdFcAbA0e23A0e8": { - "address": { - "from": null, - "to": "0x22B409E1ab288DA6a895FE8251bEbfcA267f8805" - }, - "baseStableBorrowRate": { - "from": null, - "to": "120000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "130000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "90000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "800000000000000000000000000" - } - }, - "0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9": { - "address": { - "from": null, - "to": "0x24701A6368Ff6D2874d6b8cDadd461552B8A5283" - }, - "baseStableBorrowRate": { - "from": null, - "to": "90000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "550000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "450000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "70000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "70000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - } - }, - "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0": { - "address": { - "from": null, - "to": "0x7b8Fa4540246554e77FCFf140f9114de00F8bB8D" - }, - "baseStableBorrowRate": { - "from": null, - "to": "75000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "2500000000000000000000000" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "550000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "450000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "40000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "800000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "45000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "800000000000000000000000000" - } - }, - "0x83F20F44975D03b1b09e64809B757c47f942BEeA": { - "address": { - "from": null, - "to": "0xdef8F50155A6cf21181E29E400E8CffAE2d50968" - }, - "baseStableBorrowRate": { - "from": null, - "to": "80000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "100000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "900000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "50000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "750000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "50000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "750000000000000000000000000" - } - }, - "0x853d955aCEf822Db058eb8505911ED77F175b99e": { - "address": { - "from": null, - "to": "0xA7D9302346d4C35724821cf98966B2257c9683c6" - }, - "baseStableBorrowRate": { - "from": null, - "to": "100000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "100000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "900000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "5000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "750000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "90000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "750000000000000000000000000" - } - }, - "0x9D39A5DE30e57443BfF2A8307A4256c8797A3497": { - "address": { - "from": null, - "to": "0x36d32fD7a72AD600be60Ccb71D3718E455025CaA" - }, - "baseStableBorrowRate": { - "from": null, - "to": "0" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "1000000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "100000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "0" - }, - "optimalUsageRatio": { - "from": null, - "to": "900000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "0" - }, - "stableRateSlope2": { - "from": null, - "to": "0" - }, - "variableRateSlope1": { - "from": null, - "to": "0" - }, - "variableRateSlope2": { - "from": null, - "to": "0" - } - }, - "0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2": { - "address": { - "from": null, - "to": "0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F" - }, - "baseStableBorrowRate": { - "from": null, - "to": "100000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "550000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "450000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "130000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "70000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - } - }, - "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48": { - "address": { - "from": null, - "to": "0x0fc12Ad84210695dE8C0D5D8B6f720C37cEaB02f" - }, - "baseStableBorrowRate": { - "from": null, - "to": "100000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "80000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "920000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "5000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "600000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "90000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "600000000000000000000000000" - } - }, - "0xA35b1B31Ce002FBF2058D22F30f95D405200A15b": { - "address": { - "from": null, - "to": "0x48AF11111764E710fcDcE2750db848C63edab57B" - }, - "baseStableBorrowRate": { - "from": null, - "to": "70000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "1000000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "550000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "0" - }, - "optimalUsageRatio": { - "from": null, - "to": "450000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "0" - }, - "stableRateSlope2": { - "from": null, - "to": "0" - }, - "variableRateSlope1": { - "from": null, - "to": "70000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - } - }, - "0xAf5191B0De278C7286d6C7CC6ab6BB8A73bA2Cd6": { - "address": { - "from": null, - "to": "0x27eFE5db315b71753b2a38ED3d5dd7E9362ba93F" - }, - "baseStableBorrowRate": { - "from": null, - "to": "100000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "550000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "450000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "130000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "70000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - } - }, - "0xBe9895146f7AF43049ca1c1AE358B0541Ea49704": { - "address": { - "from": null, - "to": "0x24701A6368Ff6D2874d6b8cDadd461552B8A5283" - }, - "baseStableBorrowRate": { - "from": null, - "to": "90000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "550000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "450000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "70000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "70000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - } - }, - "0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F": { - "address": { - "from": null, - "to": "0xA6459195d60A797D278f58Ffbd2BA62Fb3F7FA1E" - }, - "baseStableBorrowRate": { - "from": null, - "to": "180000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "30000000000000000000000000" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "150000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "1000000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "150000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "1000000000000000000000000000" - } - }, - "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2": { - "address": { - "from": null, - "to": "0x42ec99A020B78C449d17d93bC4c89e0189B5811d" - }, - "baseStableBorrowRate": { - "from": null, - "to": "57000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "100000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "900000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "40000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "800000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "27000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "800000000000000000000000000" - } - }, - "0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D72": { - "address": { - "from": null, - "to": "0xf6733B9842883BFE0e0a940eA2F572676af31bde" - }, - "baseStableBorrowRate": { - "from": null, - "to": "120000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "550000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "450000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "130000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "90000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - } - }, - "0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee": { - "address": { - "from": null, - "to": "0xf1e5355cEcaA71036CE21cdF8F9d04061B1BC6E1" - }, - "baseStableBorrowRate": { - "from": null, - "to": "70000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "1000000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "650000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "0" - }, - "optimalUsageRatio": { - "from": null, - "to": "350000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "0" - }, - "stableRateSlope2": { - "from": null, - "to": "0" - }, - "variableRateSlope1": { - "from": null, - "to": "70000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - } - }, - "0xD33526068D116cE69F19A9ee46F0bd304F21A51f": { - "address": { - "from": null, - "to": "0xD87974E8ED49AB16d5053ba793F4e17078Be0426" - }, - "baseStableBorrowRate": { - "from": null, - "to": "95000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "85000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "870000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "85000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "870000000000000000000000000" - } - }, - "0xD533a949740bb3306d119CC777fa900bA034cd52": { - "address": { - "from": null, - "to": "0x76884cAFeCf1f7d4146DA6C4053B18B76bf6ED14" - }, - "baseStableBorrowRate": { - "from": null, - "to": "170000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "30000000000000000000000000" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "300000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "700000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "80000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "140000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - } - }, - "0xae78736Cd615f374D3085123A210448E74Fc6393": { - "address": { - "from": null, - "to": "0x24701A6368Ff6D2874d6b8cDadd461552B8A5283" - }, - "baseStableBorrowRate": { - "from": null, - "to": "90000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "550000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "450000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "70000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "70000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - } - }, - "0xba100000625a3754423978a60c9317c58a424e3D": { - "address": { - "from": null, - "to": "0xd9d85499449f26d2A2c240defd75314f23920089" - }, - "baseStableBorrowRate": { - "from": null, - "to": "270000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "50000000000000000000000000" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "220000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "1500000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "220000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "1500000000000000000000000000" - } - }, - "0xdAC17F958D2ee523a2206206994597C13D831ec7": { - "address": { - "from": null, - "to": "0xca719585f2E07BDe82c4a05D6E7C0E446c2D6601" - }, - "baseStableBorrowRate": { - "from": null, - "to": "100000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "80000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "920000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "40000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "720000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "90000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "750000000000000000000000000" - } - }, - "0xdeFA4e8a7bcBA345F687a2f1456F5Edd9CE97202": { - "address": { - "from": null, - "to": "0xf6733B9842883BFE0e0a940eA2F572676af31bde" - }, - "baseStableBorrowRate": { - "from": null, - "to": "120000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "550000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "450000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "130000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "90000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - } - }, - "0xf1C9acDc66974dFB6dEcB12aA385b9cD01190E38": { - "address": { - "from": null, - "to": "0x48AF11111764E710fcDcE2750db848C63edab57B" - }, - "baseStableBorrowRate": { - "from": null, - "to": "70000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "1000000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "550000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "0" - }, - "optimalUsageRatio": { - "from": null, - "to": "450000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "0" - }, - "stableRateSlope2": { - "from": null, - "to": "0" - }, - "variableRateSlope1": { - "from": null, - "to": "70000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - } - }, - "0xf939E0A03FB07F59A73314E73794Be0E57ac1b4E": { - "address": { - "from": null, - "to": "0x22B409E1ab288DA6a895FE8251bEbfcA267f8805" - }, - "baseStableBorrowRate": { - "from": null, - "to": "120000000000000000000000000" - }, - "baseVariableBorrowRate": { - "from": null, - "to": "0" - }, - "maxExcessStableToTotalDebtRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "maxExcessUsageRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalStableToTotalDebtRatio": { - "from": null, - "to": "200000000000000000000000000" - }, - "optimalUsageRatio": { - "from": null, - "to": "800000000000000000000000000" - }, - "stableRateSlope1": { - "from": null, - "to": "130000000000000000000000000" - }, - "stableRateSlope2": { - "from": null, - "to": "3000000000000000000000000000" - }, - "variableRateSlope1": { - "from": null, - "to": "90000000000000000000000000" - }, - "variableRateSlope2": { - "from": null, - "to": "800000000000000000000000000" - } - } - } -} +{} ``` \ No newline at end of file diff --git a/lib/aave-address-book b/lib/aave-address-book index 8da558c43..98ba2938f 160000 --- a/lib/aave-address-book +++ b/lib/aave-address-book @@ -1 +1 @@ -Subproject commit 8da558c43b470076bfacf06577402c7c58c6606c +Subproject commit 98ba2938fe48206390a533863c2882faf96773e6 diff --git a/lib/forge-std b/lib/forge-std index ab6de56ed..035de35f5 160000 --- a/lib/forge-std +++ b/lib/forge-std @@ -1 +1 @@ -Subproject commit ab6de56ed94bed75866c78c62cad882e8a046348 +Subproject commit 035de35f5e366c8d6ed142aec4ccb57fe2dd87d4 diff --git a/tests/riskstewards/CapsPlusRiskSteward.t.sol b/tests/riskstewards/CapsPlusRiskSteward.t.sol index c6b431060..42c76c21c 100644 --- a/tests/riskstewards/CapsPlusRiskSteward.t.sol +++ b/tests/riskstewards/CapsPlusRiskSteward.t.sol @@ -14,7 +14,7 @@ contract CapsPlusRiskSteward_Test is Test { CapsPlusRiskSteward public steward; function setUp() public { - vm.createSelectFork(vm.rpcUrl('mainnet'), 20368412); + vm.createSelectFork(vm.rpcUrl('mainnet'), 20933854); steward = new CapsPlusRiskSteward( AaveV3Ethereum.AAVE_PROTOCOL_DATA_PROVIDER, IAaveV3ConfigEngine(AaveV3Ethereum.CONFIG_ENGINE),