mirror of
https://github.com/Instadapp/aave-protocol-v2.git
synced 2024-07-29 21:47:30 +00:00
73 lines
2.9 KiB
TypeScript
73 lines
2.9 KiB
TypeScript
|
import { task } from 'hardhat/config';
|
||
|
import { ConfigNames, loadPoolConfig } from '../../helpers/configuration';
|
||
|
import {
|
||
|
getAaveProtocolDataProvider,
|
||
|
getLendingPoolAddressesProvider,
|
||
|
getLendingPoolAddressesProviderRegistry,
|
||
|
} from '../../helpers/contracts-getters';
|
||
|
import { getParamPerNetwork } from '../../helpers/contracts-helpers';
|
||
|
import { DRE } from '../../helpers/misc-utils';
|
||
|
import { eEthereumNetwork } from '../../helpers/types';
|
||
|
|
||
|
task('print-config', 'Inits the DRE, to have access to all the plugins')
|
||
|
.addOptionalParam('dataProvider', 'Address of AaveProtocolDataProvider')
|
||
|
.addParam('pool', `Pool name to retrieve configuration, supported: ${Object.values(ConfigNames)}`)
|
||
|
.setAction(async ({ pool, dataProvider }, localBRE) => {
|
||
|
await localBRE.run('set-DRE');
|
||
|
const network =
|
||
|
process.env.MAINNET_FORK === 'true'
|
||
|
? eEthereumNetwork.main
|
||
|
: (localBRE.network.name as eEthereumNetwork);
|
||
|
const poolConfig = loadPoolConfig(pool);
|
||
|
|
||
|
const providerRegistryAddress = getParamPerNetwork(poolConfig.ProviderRegistry, network);
|
||
|
|
||
|
const providerRegistry = await getLendingPoolAddressesProviderRegistry(providerRegistryAddress);
|
||
|
|
||
|
const providers = await providerRegistry.getAddressesProvidersList();
|
||
|
|
||
|
const addressesProvider = await getLendingPoolAddressesProvider(providers[0]); // Checks first provider
|
||
|
|
||
|
console.log('Addresses Providers', providers.join(', '));
|
||
|
console.log('Market Id: ', await addressesProvider.getMarketId());
|
||
|
console.log('LendingPool Proxy:', await addressesProvider.getLendingPool());
|
||
|
console.log(
|
||
|
'Lending Pool Collateral Manager',
|
||
|
await addressesProvider.getLendingPoolCollateralManager()
|
||
|
);
|
||
|
console.log(
|
||
|
'Lending Pool Configurator proxy',
|
||
|
await addressesProvider.getLendingPoolConfigurator()
|
||
|
);
|
||
|
console.log('Pool admin', await addressesProvider.getPoolAdmin());
|
||
|
console.log('Emergency admin', await addressesProvider.getEmergencyAdmin());
|
||
|
console.log('Price Oracle', await addressesProvider.getPriceOracle());
|
||
|
console.log('Lending Rate Oracle', await addressesProvider.getLendingRateOracle());
|
||
|
console.log('Lending Pool Data Provider', dataProvider);
|
||
|
const protocolDataProvider = await getAaveProtocolDataProvider(dataProvider);
|
||
|
|
||
|
const fields = [
|
||
|
'decimals',
|
||
|
'ltv',
|
||
|
'liquidationThreshold',
|
||
|
'liquidationBonus',
|
||
|
'reserveFactor',
|
||
|
'usageAsCollateralEnabled',
|
||
|
'borrowingEnabled',
|
||
|
'stableBorrowRateEnabled',
|
||
|
'isActive',
|
||
|
'isFrozen',
|
||
|
];
|
||
|
for (const [symbol, address] of Object.entries(
|
||
|
getParamPerNetwork(poolConfig.ReserveAssets, network)
|
||
|
)) {
|
||
|
console.log(`- ${symbol} asset config`);
|
||
|
console.log(` - reserve address: ${address}`);
|
||
|
|
||
|
const reserveData = await protocolDataProvider.getReserveData(address);
|
||
|
fields.forEach((field, index) => {
|
||
|
console.log(` - ${field}:`, reserveData[index].toString());
|
||
|
});
|
||
|
}
|
||
|
});
|