Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change pool params #26

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
url = https://github.com/foundry-rs/forge-std
[submodule "lib/aave-address-book"]
path = lib/aave-address-book
url = https://github.com/lib/aave-address-book
branch = v1.10.0
url = https://github.com/bgd-labs/aave-address-book
branch = v1.17.0
[submodule "lib/aave-helpers"]
path = lib/aave-helpers
url = https://github.com/lib/aave-helpers
branch = v1.4.0
url = https://github.com/bgd-labs/aave-helpers
branch = v2.2.0
2 changes: 2 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ test-harmony-freezing :; forge test -vvv --match-contract FreezeAllReservesAaveV
test-fantom-freezing :; forge test -vvv --match-contract FreezeAllReservesAaveV3FantomByGuardian --rpc-url=${RPC_FANTOM} --fork-block-number 46881340
test-btcb-ava:; forge test -vvv --match-contract BTCBAaveV3AvaListingByGuardian
test-v3-ava-caps:; forge test -vvv --match-contract AaveV3AvaCapsByGuardian
test-v3-ava-params:; forge test -vvv --match-contract AaveV3AvaParamsByGuardian

test-permissions-migration :
forge test --match-contract PermissionsMigrationToCrosschain -vvv
make git-diff before=./reports/Optimism_permissions-pre-migration.md after=./reports/Optimism_permissions-post-migration.md out=diff-Optimism-permissions-migration
Expand Down
28 changes: 15 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,22 @@

Helper smart contracts to list assets on Aave v3 or change configs. Designed to be used mainly by Guardians

| Asset | Type | Pool | Steward | Tests | Address |
| ------------- | ------------- | ----------------- | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------- |
| sAVAX | asset-listing | Aave v3 Avalanche | [sAVAX Steward](./src/contracts/savax/AaveV3SAVAXListingSteward.sol) | [Tests](./src/test/sAVAXAaveV3AvaListingByGuardian.t.sol) | [0x1E12071BD95341aA92FcBA1513C714F9F49282A4](https://snowtrace.io/address/0x1E12071BD95341aA92FcBA1513C714F9F49282A4#code) |
| FRAX | asset-listing | Aave v3 Avalanche | [FRAX Steward](./src/contracts/frax/AaveV3AvaFRAXListingSteward.sol) | [Tests](./src/test/FRAXAaveV3AvaListingByGuardian.t.sol) | [0x1BFC7cc57b851c8Ea3526c0c7573A697de220b77](https://snowtrace.io/address/0x1BFC7cc57b851c8Ea3526c0c7573A697de220b77#code) |
| FRAX | asset-listing | Aave v3 Fantom | [FRAX Steward](./src/contracts/frax/AaveV3FantomFRAXListingSteward.sol) | [Tests](./src/test/FRAXAaveV3FantomListingByGuardian.t.sol) | N/A |
| sUSD | config-change | Aave v3 Optimism | [sUSD enable collateral Steward](./src/contracts/susd/AaveV3OptimismEnableCollateralSteward.sol) | [Tests](./src/test/sUSDAaveV3OptimismEnableAsCollateralByGuardian.t.sol) | [0x038b1DEd4911BB6824934cF11FC9F15F45b5916b](https://optimistic.etherscan.io/address/0x038b1DEd4911BB6824934cF11FC9F15F45b5916b#code) |
| MAI | asset-listing | Aave v3 Avalanche | [MAI Steward](./src/contracts/mimatic/AaveV3AvaMAIListingSteward.sol) | [Tests](./src/test/MAIAaveV3AvaListingByGuardian.t.sol) | [0xd7A4F572C36d72549817D833E4654D0adbBfFD2F](https://snowtrace.io/address/0xd7A4F572C36d72549817D833E4654D0adbBfFD2F#code) |
| MIMATIC (MAI) | asset-listing | Aave v3 Fantom | [MIMATIC Steward](./src/contracts/mimatic/AaveV3FantomMIMATICListingSteward.sol) | [Tests](./src/test/MIMATICAaveV3FantomListingByGuardian.t.sol) | N/A |
| Multiple | config-change | Aave v3 Harmony | [Harmony freezing](./src/contracts/harmony-protection/FreezeHarmonyPoolReservesSteward.sol) | [Tests](./src/test/FreezeAllReservesAaveV3FantomByGuardian.t.sol) | [0xf202866d9fb6f089587d86d4128e7c8e0fdf94fe](https://explorer.harmony.one/address/0xf202866d9fb6f089587d86d4128e7c8e0fdf94fe) |
| Multiple | config-change | Aave v3 Fantom | [Fantom freezing](./src/contracts/fantom-freeze/FreezeFantomPoolReservesSteward.sol) | [Tests](./src/test/FreezeAllReservesAaveV3HarmonyByGuardian.t.sol) | [0x1aa435ed226014407fa6b889e9d06c02b1a12af3](https://ftmscan.com/address/0x1aa435ed226014407fa6b889e9d06c02b1a12af3#code) |
| BTC.b | asset-listing | Aave v3 Avalanche | [BTC.b Steward](./src/contracts/btc.b/AaveV3AvaBTCBListingSteward.sol) | [Tests](./src/test/BTCBAaveV3AvaListingByGuardian.t.sol) | [0xeee4877a56392c82578df71e8b9270ad8cbabfdc](https://snowtrace.io/address/0xeee4877a56392c82578df71e8b9270ad8cbabfdc#code) |
| Multiple | config-change | Aave v3 Avalanche | [Supply Caps Steward](./src/contracts/v3-ava-supply-caps-30-11-2022/AaveV3AvaCapsSteward.sol) | [Tests](./src/test/AaveV3AvaCaps30-11-2022-ByGuardian.t.sol) | N/A |

| Asset | Type | Pool | Steward | Tests | Address |
| ------------- | ------------- | ----------------- | ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- |
| sAVAX | asset-listing | Aave v3 Avalanche | [sAVAX Steward](./src/contracts/savax/AaveV3SAVAXListingSteward.sol) | [Tests](./src/test/sAVAXAaveV3AvaListingByGuardian.t.sol) | [0x1E12071BD95341aA92FcBA1513C714F9F49282A4](https://snowtrace.io/address/0x1E12071BD95341aA92FcBA1513C714F9F49282A4#code) |
| FRAX | asset-listing | Aave v3 Avalanche | [FRAX Steward](./src/contracts/frax/AaveV3AvaFRAXListingSteward.sol) | [Tests](./src/test/FRAXAaveV3AvaListingByGuardian.t.sol) | [0x1BFC7cc57b851c8Ea3526c0c7573A697de220b77](https://snowtrace.io/address/0x1BFC7cc57b851c8Ea3526c0c7573A697de220b77#code) |
| FRAX | asset-listing | Aave v3 Fantom | [FRAX Steward](./src/contracts/frax/AaveV3FantomFRAXListingSteward.sol) | [Tests](./src/test/FRAXAaveV3FantomListingByGuardian.t.sol) | N/A |
| sUSD | config-change | Aave v3 Optimism | [sUSD enable collateral Steward](./src/contracts/susd/AaveV3OptimismEnableCollateralSteward.sol) | [Tests](./src/test/sUSDAaveV3OptimismEnableAsCollateralByGuardian.t.sol) | [0x038b1DEd4911BB6824934cF11FC9F15F45b5916b](https://optimistic.etherscan.io/address/0x038b1DEd4911BB6824934cF11FC9F15F45b5916b#code) |
| MAI | asset-listing | Aave v3 Avalanche | [MAI Steward](./src/contracts/mimatic/AaveV3AvaMAIListingSteward.sol) | [Tests](./src/test/MAIAaveV3AvaListingByGuardian.t.sol) | [0xd7A4F572C36d72549817D833E4654D0adbBfFD2F](https://snowtrace.io/address/0xd7A4F572C36d72549817D833E4654D0adbBfFD2F#code) |
| MIMATIC (MAI) | asset-listing | Aave v3 Fantom | [MIMATIC Steward](./src/contracts/mimatic/AaveV3FantomMIMATICListingSteward.sol) | [Tests](./src/test/MIMATICAaveV3FantomListingByGuardian.t.sol) | N/A |
| Multiple | config-change | Aave v3 Harmony | [Harmony freezing](./src/contracts/harmony-protection/FreezeHarmonyPoolReservesSteward.sol) | [Tests](./src/test/FreezeAllReservesAaveV3FantomByGuardian.t.sol) | [0xf202866d9fb6f089587d86d4128e7c8e0fdf94fe](https://explorer.harmony.one/address/0xf202866d9fb6f089587d86d4128e7c8e0fdf94fe) |
| Multiple | config-change | Aave v3 Fantom | [Fantom freezing](./src/contracts/fantom-freeze/FreezeFantomPoolReservesSteward.sol) | [Tests](./src/test/FreezeAllReservesAaveV3HarmonyByGuardian.t.sol) | [0x1aa435ed226014407fa6b889e9d06c02b1a12af3](https://ftmscan.com/address/0x1aa435ed226014407fa6b889e9d06c02b1a12af3#code) |
| BTC.b | asset-listing | Aave v3 Avalanche | [BTC.b Steward](./src/contracts/btc.b/AaveV3AvaBTCBListingSteward.sol) | [Tests](./src/test/BTCBAaveV3AvaListingByGuardian.t.sol) | [0xeee4877a56392c82578df71e8b9270ad8cbabfdc](https://snowtrace.io/address/0xeee4877a56392c82578df71e8b9270ad8cbabfdc#code) |
| Multiple | config-change | Aave v3 Avalanche | [Supply Caps Steward](./src/contracts/v3-ava-supply-caps-30-11-2022/AaveV3AvaCapsSteward.sol) | [Tests](./src/test/AaveV3AvaCaps30-11-2022-ByGuardian.t.sol) | N/A |
| Multiple | config-change | Aave v3 Avalanche | [Params Steward](./src/contracts/Avalanche-Parameter-Rec-21-02-2023/Avalance-Parameter-Rec-21-02-2023.sol) | [Tests](./src/test/Avalanche-Parameter-Rec-21-02-2023-ByGuardian.t.sol) | N/A |

### Copyright

2022 BGD Labs

/Users/altmark/repos/aave-v3-listing-stewards/src/test/AaveV3AvaSAVAXCaps23-02-2023-ByGuardian.t.sol
2 changes: 1 addition & 1 deletion lib/aave-address-book
Submodule aave-address-book updated 62 files
+60 −0 CHANGELOG.md
+2 −2 README.md
+1 −1 lib/forge-std
+1 −1 package.json
+444 −0 scripts/abi/incentivesController_abi.json
+414 −0 scripts/abi/uipooldata_provider.json
+221 −174 scripts/config.ts
+81 −0 scripts/generateAssetsLibrary.ts
+22 −22 scripts/generator.ts
+122 −58 scripts/generator_v2.ts
+154 −171 scripts/generator_v3.ts
+19 −15 scripts/helpers.ts
+2 −1 src/AaveAddressBook.sol
+3 −0 src/AaveGovernanceV2.sol
+18 −0 src/AaveMisc.sol
+41 −0 src/AaveV2.sol
+115 −1 src/AaveV2Avalanche.sol
+482 −1 src/AaveV2Ethereum.sol
+312 −2 src/AaveV2EthereumAMM.sol
+9 −1 src/AaveV2EthereumArc.sol
+69 −1 src/AaveV2Fuji.sol
+280 −1 src/AaveV2Goerli.sol
+107 −1 src/AaveV2Mumbai.sol
+184 −1 src/AaveV2Polygon.sol
+118 −3 src/AaveV3Arbitrum.sol
+128 −18 src/AaveV3ArbitrumGoerli.sol
+172 −2 src/AaveV3Avalanche.sol
+148 −10 src/AaveV3Ethereum.sol
+134 −0 src/AaveV3Fantom.sol
+151 −18 src/AaveV3FantomTestnet.sol
+126 −18 src/AaveV3Fuji.sol
+126 −18 src/AaveV3Goerli.sol
+131 −0 src/AaveV3GoerliGho.sol
+112 −0 src/AaveV3Harmony.sol
+227 −18 src/AaveV3Mumbai.sol
+130 −3 src/AaveV3Optimism.sol
+128 −18 src/AaveV3OptimismGoerli.sol
+255 −2 src/AaveV3Polygon.sol
+2 −1 src/ts/AaveAddressBook.ts
+1 −0 src/ts/AaveGovernanceV2.ts
+9 −0 src/ts/AaveV2Avalanche.ts
+7 −0 src/ts/AaveV2Ethereum.ts
+5 −1 src/ts/AaveV2EthereumAMM.ts
+3 −0 src/ts/AaveV2EthereumArc.ts
+6 −0 src/ts/AaveV2Fuji.ts
+6 −0 src/ts/AaveV2Goerli.ts
+6 −0 src/ts/AaveV2Mumbai.ts
+7 −0 src/ts/AaveV2Polygon.ts
+8 −3 src/ts/AaveV3Arbitrum.ts
+19 −16 src/ts/AaveV3ArbitrumGoerli.ts
+8 −2 src/ts/AaveV3Avalanche.ts
+10 −7 src/ts/AaveV3Ethereum.ts
+3 −0 src/ts/AaveV3Fantom.ts
+18 −16 src/ts/AaveV3FantomTestnet.ts
+18 −16 src/ts/AaveV3Fuji.ts
+19 −17 src/ts/AaveV3Goerli.ts
+21 −0 src/ts/AaveV3GoerliGho.ts
+3 −0 src/ts/AaveV3Harmony.ts
+18 −16 src/ts/AaveV3Mumbai.ts
+8 −3 src/ts/AaveV3Optimism.ts
+19 −16 src/ts/AaveV3OptimismGoerli.ts
+6 −2 src/ts/AaveV3Polygon.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.16;

import '../common/StewardBase.sol';
import {AaveV3Avalanche, AaveV3AvalancheAssets} from 'aave-address-book/AaveV3Avalanche.sol';

/**
* @dev This steward sets configure reserve as collateral for Link.e and wAVAX on AAVE V3 Avalanche
* - Snapshot: https://snapshot.org/#/aave.eth/proposal/0xbe3ff894ff9a979846b45e0fece4368245f61fa1d449d3761a3990b8da4aa6d7
* - Dicussion: https://governance.aave.com/t/arc-chaos-labs-risk-parameter-updates-aave-v3-avalanche-2023-02-07/11603
*/
contract AaveV3AvaParamsSteward is StewardBase {

address public constant LINKe = AaveV3AvalancheAssets.LINKe_UNDERLYING;
address public constant WAVAX = AaveV3AvalancheAssets.WAVAX_UNDERLYING;


uint256 public constant LINKe_LIQ_THRESHOLD = 6800; // 68%
uint256 public constant LINKe_LTV = 5300; // 53%
uint256 public constant LINKe_LIQ_BONUS = 10750; // 7.5%

uint256 public constant WAVAX_LIQ_THRESHOLD = 7300; // 73%
uint256 public constant WAVAX_LTV = 6800; // 68%
uint256 public constant WAVAX_LIQ_BONUS = 11000; // 10%


address public constant SAVAX = AaveV3AvalancheAssets.sAVAX_UNDERLYING;

uint256 public constant SAVAX_CAP = 2_000_000;

function execute()
external
withRennounceOfAllAavePermissions(AaveV3Avalanche.ACL_MANAGER)
withOwnershipBurning
onlyOwner
{
AaveV3Avalanche.POOL_CONFIGURATOR.configureReserveAsCollateral(
LINKe,
LINKe_LTV,
LINKe_LIQ_THRESHOLD,
LINKe_LIQ_BONUS
);


AaveV3Avalanche.POOL_CONFIGURATOR.configureReserveAsCollateral(
WAVAX,
WAVAX_LTV,
WAVAX_LIQ_THRESHOLD,
WAVAX_LIQ_BONUS
);


AaveV3Avalanche.POOL_CONFIGURATOR.setSupplyCap(SAVAX, SAVAX_CAP);


}
}
92 changes: 92 additions & 0 deletions src/test/Avalanche-Parameter-Rec-21-02-2023-ByGuardian.t.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.16;

import 'forge-std/Test.sol';

import {IPoolConfigurator, ConfiguratorInputTypes, IACLManager} from 'aave-address-book/AaveV3.sol';
import {AaveV3Avalanche} from 'aave-address-book/AaveAddressBook.sol';
import {AaveV3AvaParamsSteward} from '../contracts/Avalanche-Parameter-Rec-21-02-2023/Avalance-Parameter-Rec-21-02-2023.sol';
import {AaveV3Helpers, ReserveConfig, ReserveTokens, IERC20} from './helpers/AaveV3Helpers.sol';

contract AaveV3AvaParamsByGuardian is Test {
using stdStorage for StdStorage;

address public constant GUARDIAN_AVALANCHE =
AaveV3Avalanche.ACL_ADMIN;

string public constant LinkSymbol = 'LINK.e';
string public constant WAVAXSymbol = 'WAVAX';

uint256 public constant LINKe_LIQ_THRESHOLD = 6800;
uint256 public constant LINKe_LTV = 5300;
uint256 public constant LINKe_LIQ_BONUS = 10750;

uint256 public constant WAVAX_LIQ_THRESHOLD = 7300;
uint256 public constant WAVAX_LTV = 6800;
uint256 public constant WAVAX_LIQ_BONUS = 11000;

string public constant SAVAXSymbol = 'sAVAX';
uint256 public constant SAVAX_CAP = 2_000_000;

function setUp() public {
vm.createSelectFork(vm.rpcUrl('avalanche'), 26507116);
}

function testNewParams() public {
ReserveConfig[] memory allConfigsBefore = AaveV3Helpers
._getReservesConfigs(false);

vm.startPrank(GUARDIAN_AVALANCHE);

AaveV3AvaParamsSteward paramsSteward = new AaveV3AvaParamsSteward();

IACLManager aclManager = AaveV3Avalanche.ACL_MANAGER;

aclManager.addAssetListingAdmin(address(paramsSteward));
aclManager.addRiskAdmin(address(paramsSteward));

paramsSteward.execute();

vm.stopPrank();

ReserveConfig[] memory allConfigsAfter = AaveV3Helpers
._getReservesConfigs(false);

//LINK
ReserveConfig memory LinkConfig = AaveV3Helpers._findReserveConfig(
allConfigsBefore,
LinkSymbol,
false
);

LinkConfig.ltv = LINKe_LTV;
LinkConfig.liquidationThreshold = LINKe_LIQ_THRESHOLD;

AaveV3Helpers._validateReserveConfig(LinkConfig, allConfigsAfter);

//WAVAX
ReserveConfig memory WAVAXConfig = AaveV3Helpers._findReserveConfig(
allConfigsBefore,
WAVAXSymbol,
false
);
WAVAXConfig.ltv = WAVAX_LTV;
WAVAXConfig.liquidationThreshold = WAVAX_LIQ_THRESHOLD;

AaveV3Helpers._validateReserveConfig(WAVAXConfig, allConfigsAfter);


//sAVAX
ReserveConfig memory SAVAXConfig = AaveV3Helpers._findReserveConfig(
allConfigsBefore,
SAVAXSymbol,
false
);
SAVAXConfig.supplyCap = SAVAX_CAP;
AaveV3Helpers._validateReserveConfig(SAVAXConfig, allConfigsAfter);



require(paramsSteward.owner() == address(0), 'INVALID_OWNER');
}
}