Renamed ChainlinkProxyPriceProvider to AaveOracle

This commit is contained in:
David Racero 2020-11-17 10:24:24 +01:00
parent f33324a09c
commit 12d17179d6
11 changed files with 23 additions and 35 deletions

View File

@ -8,14 +8,14 @@ import {IPriceOracleGetter} from '../interfaces/IPriceOracleGetter.sol';
import {IChainlinkAggregator} from '../interfaces/IChainlinkAggregator.sol'; import {IChainlinkAggregator} from '../interfaces/IChainlinkAggregator.sol';
import {SafeERC20} from '../dependencies/openzeppelin/contracts/SafeERC20.sol'; import {SafeERC20} from '../dependencies/openzeppelin/contracts/SafeERC20.sol';
/// @title ChainlinkProxyPriceProvider /// @title AaveOracle
/// @author Aave /// @author Aave
/// @notice Proxy smart contract to get the price of an asset from a price source, with Chainlink Aggregator /// @notice Proxy smart contract to get the price of an asset from a price source, with Chainlink Aggregator
/// smart contracts as primary option /// smart contracts as primary option
/// - If the returned price by a Chainlink aggregator is <= 0, the call is forwarded to a fallbackOracle /// - If the returned price by a Chainlink aggregator is <= 0, the call is forwarded to a fallbackOracle
/// - Owned by the Aave governance system, allowed to add sources for assets, replace them /// - Owned by the Aave governance system, allowed to add sources for assets, replace them
/// and change the fallbackOracle /// and change the fallbackOracle
contract ChainlinkProxyPriceProvider is IPriceOracleGetter, Ownable { contract AaveOracle is IPriceOracleGetter, Ownable {
using SafeERC20 for IERC20; using SafeERC20 for IERC20;
event WethSet(address indexed weth); event WethSet(address indexed weth);

View File

@ -5565,7 +5565,7 @@
} }
} }
}, },
"contracts/misc/ChainlinkProxyPriceProvider.sol": { "contracts/misc/AaveOracle.sol": {
"l": { "l": {
"37": 3, "37": 3,
"38": 3, "38": 3,
@ -5591,7 +5591,7 @@
"107": 0, "107": 0,
"113": 0 "113": 0
}, },
"path": "/src/contracts/misc/ChainlinkProxyPriceProvider.sol", "path": "/src/contracts/misc/AaveOracle.sol",
"s": { "s": {
"1": 3, "1": 3,
"2": 3, "2": 3,

View File

@ -21,7 +21,7 @@ import {
AaveProtocolDataProviderFactory, AaveProtocolDataProviderFactory,
ATokenFactory, ATokenFactory,
ATokensAndRatesHelperFactory, ATokensAndRatesHelperFactory,
ChainlinkProxyPriceProviderFactory, AaveOracleFactory,
DefaultReserveInterestRateStrategyFactory, DefaultReserveInterestRateStrategyFactory,
DelegationAwareATokenFactory, DelegationAwareATokenFactory,
InitializableAdminUpgradeabilityProxyFactory, InitializableAdminUpgradeabilityProxyFactory,
@ -199,13 +199,13 @@ export const deployMockAggregator = async (price: tStringTokenSmallUnits, verify
verify verify
); );
export const deployChainlinkProxyPriceProvider = async ( export const deployAaveOracle = async (
args: [tEthereumAddress[], tEthereumAddress[], tEthereumAddress, tEthereumAddress], args: [tEthereumAddress[], tEthereumAddress[], tEthereumAddress, tEthereumAddress],
verify?: boolean verify?: boolean
) => ) =>
withSaveAndVerify( withSaveAndVerify(
await new ChainlinkProxyPriceProviderFactory(await getFirstSigner()).deploy(...args), await new AaveOracleFactory(await getFirstSigner()).deploy(...args),
eContractid.ChainlinkProxyPriceProvider, eContractid.AaveOracle,
args, args,
verify verify
); );

View File

@ -2,7 +2,7 @@ import {
AaveProtocolDataProviderFactory, AaveProtocolDataProviderFactory,
ATokenFactory, ATokenFactory,
ATokensAndRatesHelperFactory, ATokensAndRatesHelperFactory,
ChainlinkProxyPriceProviderFactory, AaveOracleFactory,
DefaultReserveInterestRateStrategyFactory, DefaultReserveInterestRateStrategyFactory,
GenericLogicFactory, GenericLogicFactory,
InitializableAdminUpgradeabilityProxyFactory, InitializableAdminUpgradeabilityProxyFactory,
@ -324,9 +324,7 @@ export const getAddressById = async (id: string) =>
(await getDb().get(`${id}.${DRE.network.name}`).value()).address; (await getDb().get(`${id}.${DRE.network.name}`).value()).address;
export const getChainlinkPriceProvider = async (address?: tEthereumAddress) => export const getChainlinkPriceProvider = async (address?: tEthereumAddress) =>
await ChainlinkProxyPriceProviderFactory.connect( await AaveOracleFactory.connect(
address || address || (await getDb().get(`${eContractid.AaveOracle}.${DRE.network.name}`).value()).address,
(await getDb().get(`${eContractid.ChainlinkProxyPriceProvider}.${DRE.network.name}`).value())
.address,
await getFirstSigner() await getFirstSigner()
); );

View File

@ -41,7 +41,7 @@ export enum eContractid {
Proxy = 'Proxy', Proxy = 'Proxy',
MockAggregator = 'MockAggregator', MockAggregator = 'MockAggregator',
LendingRateOracle = 'LendingRateOracle', LendingRateOracle = 'LendingRateOracle',
ChainlinkProxyPriceProvider = 'ChainlinkProxyPriceProvider', AaveOracle = 'AaveOracle',
DefaultReserveInterestRateStrategy = 'DefaultReserveInterestRateStrategy', DefaultReserveInterestRateStrategy = 'DefaultReserveInterestRateStrategy',
LendingPoolCollateralManager = 'LendingPoolCollateralManager', LendingPoolCollateralManager = 'LendingPoolCollateralManager',
InitializableAdminUpgradeabilityProxy = 'InitializableAdminUpgradeabilityProxy', InitializableAdminUpgradeabilityProxy = 'InitializableAdminUpgradeabilityProxy',
@ -391,7 +391,7 @@ export interface ICommonConfiguration {
LendingRateOracleRatesCommon: iMultiPoolsAssets<IMarketRates>; LendingRateOracleRatesCommon: iMultiPoolsAssets<IMarketRates>;
LendingRateOracle: iParamsPerNetwork<tEthereumAddress>; LendingRateOracle: iParamsPerNetwork<tEthereumAddress>;
TokenDistributor: iParamsPerNetwork<tEthereumAddress>; TokenDistributor: iParamsPerNetwork<tEthereumAddress>;
ChainlinkProxyPriceProvider: iParamsPerNetwork<tEthereumAddress>; AaveOracle: iParamsPerNetwork<tEthereumAddress>;
FallbackOracle: iParamsPerNetwork<tEthereumAddress>; FallbackOracle: iParamsPerNetwork<tEthereumAddress>;
ChainlinkAggregator: iParamsPerNetwork<ITokenAddress>; ChainlinkAggregator: iParamsPerNetwork<ITokenAddress>;
PoolAdmin: iParamsPerNetwork<tEthereumAddress | undefined>; PoolAdmin: iParamsPerNetwork<tEthereumAddress | undefined>;

View File

@ -180,7 +180,7 @@ export const CommonsConfig: ICommonConfiguration = {
[EthereumNetwork.main]: '0xe3d9988f676457123c5fd01297605efdd0cba1ae', [EthereumNetwork.main]: '0xe3d9988f676457123c5fd01297605efdd0cba1ae',
[EthereumNetwork.tenderlyMain]: '0xe3d9988f676457123c5fd01297605efdd0cba1ae', [EthereumNetwork.tenderlyMain]: '0xe3d9988f676457123c5fd01297605efdd0cba1ae',
}, },
ChainlinkProxyPriceProvider: { AaveOracle: {
[eEthereumNetwork.coverage]: '', [eEthereumNetwork.coverage]: '',
[eEthereumNetwork.hardhat]: '', [eEthereumNetwork.hardhat]: '',
[eEthereumNetwork.buidlerevm]: '', [eEthereumNetwork.buidlerevm]: '',

View File

@ -29,10 +29,10 @@
"test:main:check-list": "MAINNET_FORK=true TS_NODE_TRANSPILE_ONLY=1 hardhat test test/__setup.spec.ts test/mainnet/check-list.spec.ts", "test:main:check-list": "MAINNET_FORK=true TS_NODE_TRANSPILE_ONLY=1 hardhat test test/__setup.spec.ts test/mainnet/check-list.spec.ts",
"dev:coverage": "buidler compile --force && buidler coverage --network coverage", "dev:coverage": "buidler compile --force && buidler coverage --network coverage",
"aave:evm:dev:migration": "npm run compile && hardhat aave:dev", "aave:evm:dev:migration": "npm run compile && hardhat aave:dev",
"aave:docker:full:migration": "npm run compile && npm run hardhat:docker -- aave:full", "aave:docker:full:migration": "npm run compile && npm run hardhat:docker -- aave:mainnet",
"aave:kovan:full:migration": "npm run compile && npm run hardhat:kovan -- aave:full --verify", "aave:kovan:full:migration": "npm run compile && npm run hardhat:kovan -- aave:mainnet --verify",
"aave:kovan:full:initialize": "npm run hardhat:kovan -- full:initialize-lending-pool --verify --pool Aave", "aave:kovan:full:initialize": "npm run hardhat:kovan -- full:initialize-lending-pool --verify --pool Aave",
"aave:ropsten:full:migration": "npm run compile && npm run hardhat:ropsten -- aave:full --verify", "aave:ropsten:full:migration": "npm run compile && npm run hardhat:ropsten -- aave:mainnet --verify",
"aave:fork:main:tenderly": "npm run compile && npm run hardhat:tenderly-main -- aave:mainnet", "aave:fork:main:tenderly": "npm run compile && npm run hardhat:tenderly-main -- aave:mainnet",
"aave:fork:main": "MAINNET_FORK=true npm run compile && hardhat aave:mainnet", "aave:fork:main": "MAINNET_FORK=true npm run compile && hardhat aave:mainnet",
"aave:main:full:migration": "npm run hardhat:main -- aave:mainnet --verify", "aave:main:full:migration": "npm run hardhat:main -- aave:mainnet --verify",

View File

@ -1,7 +1,7 @@
import {task} from 'hardhat/config'; import {task} from 'hardhat/config';
import { import {
deployPriceOracle, deployPriceOracle,
deployChainlinkProxyPriceProvider, deployAaveOracle,
deployLendingRateOracle, deployLendingRateOracle,
} from '../../helpers/contracts-deployments'; } from '../../helpers/contracts-deployments';
@ -58,7 +58,7 @@ task('dev:deploy-oracles', 'Deploy oracles for dev enviroment')
allAggregatorsAddresses allAggregatorsAddresses
); );
await deployChainlinkProxyPriceProvider( await deployAaveOracle(
[tokens, aggregators, fallbackOracle.address, await getWethAddress(poolConfig)], [tokens, aggregators, fallbackOracle.address, await getWethAddress(poolConfig)],
verify verify
); );

View File

@ -1,9 +1,6 @@
import {task} from 'hardhat/config'; import {task} from 'hardhat/config';
import {getEthersSignersAddresses, getParamPerNetwork} from '../../helpers/contracts-helpers'; import {getEthersSignersAddresses, getParamPerNetwork} from '../../helpers/contracts-helpers';
import { import {deployAaveOracle, deployLendingRateOracle} from '../../helpers/contracts-deployments';
deployChainlinkProxyPriceProvider,
deployLendingRateOracle,
} from '../../helpers/contracts-deployments';
import {setInitialMarketRatesInRatesOracleByHelper} from '../../helpers/oracles-helpers'; import {setInitialMarketRatesInRatesOracleByHelper} from '../../helpers/oracles-helpers';
import {ICommonConfiguration, eEthereumNetwork, SymbolMap} from '../../helpers/types'; import {ICommonConfiguration, eEthereumNetwork, SymbolMap} from '../../helpers/types';
import {waitForTx, filterMapBy, notFalsyOrZeroAddress} from '../../helpers/misc-utils'; import {waitForTx, filterMapBy, notFalsyOrZeroAddress} from '../../helpers/misc-utils';
@ -53,7 +50,7 @@ task('full:deploy-oracles', 'Deploy oracles for dev enviroment')
const chainlinkProviderPriceProvider = notFalsyOrZeroAddress(proxyPriceProviderAddress) const chainlinkProviderPriceProvider = notFalsyOrZeroAddress(proxyPriceProviderAddress)
? await getChainlinkPriceProvider(proxyPriceProviderAddress) ? await getChainlinkPriceProvider(proxyPriceProviderAddress)
: await deployChainlinkProxyPriceProvider( : await deployAaveOracle(
[tokens, aggregators, fallbackOracleAddress, await getWethAddress(poolConfig)], [tokens, aggregators, fallbackOracleAddress, await getWethAddress(poolConfig)],
verify verify
); );

View File

@ -12,7 +12,7 @@ import {
deployLendingPoolConfigurator, deployLendingPoolConfigurator,
deployLendingPool, deployLendingPool,
deployPriceOracle, deployPriceOracle,
deployChainlinkProxyPriceProvider, deployAaveOracle,
deployLendingPoolCollateralManager, deployLendingPoolCollateralManager,
deployMockFlashLoanReceiver, deployMockFlashLoanReceiver,
deployWalletBalancerProvider, deployWalletBalancerProvider,
@ -201,7 +201,7 @@ const buildTestEnv = async (deployer: Signer, secondaryWallet: Signer) => {
const [tokens, aggregators] = getPairsTokenAggregator(allTokenAddresses, allAggregatorsAddresses); const [tokens, aggregators] = getPairsTokenAggregator(allTokenAddresses, allAggregatorsAddresses);
const chainlinkProxyPriceProvider = await deployChainlinkProxyPriceProvider([ const aaveOracle = await deployAaveOracle([
tokens, tokens,
aggregators, aggregators,
fallbackOracle.address, fallbackOracle.address,

View File

@ -106,28 +106,22 @@ export async function initializeMakeSuite() {
testEnv.helpersContract = await getAaveProtocolDataProvider(); testEnv.helpersContract = await getAaveProtocolDataProvider();
console.log('het cpmtra');
const allTokens = await testEnv.helpersContract.getAllATokens(); const allTokens = await testEnv.helpersContract.getAllATokens();
console.log('tokann');
const aDaiAddress = allTokens.find((aToken) => aToken.symbol === 'aDAI')?.tokenAddress; const aDaiAddress = allTokens.find((aToken) => aToken.symbol === 'aDAI')?.tokenAddress;
const aWEthAddress = allTokens.find((aToken) => aToken.symbol === 'aWETH')?.tokenAddress; const aWEthAddress = allTokens.find((aToken) => aToken.symbol === 'aWETH')?.tokenAddress;
console.log('priah');
const reservesTokens = await testEnv.helpersContract.getAllReservesTokens(); const reservesTokens = await testEnv.helpersContract.getAllReservesTokens();
console.log('all tokan');
const daiAddress = reservesTokens.find((token) => token.symbol === 'DAI')?.tokenAddress; const daiAddress = reservesTokens.find((token) => token.symbol === 'DAI')?.tokenAddress;
const usdcAddress = reservesTokens.find((token) => token.symbol === 'USDC')?.tokenAddress; const usdcAddress = reservesTokens.find((token) => token.symbol === 'USDC')?.tokenAddress;
const aaveAddress = reservesTokens.find((token) => token.symbol === 'AAVE')?.tokenAddress; const aaveAddress = reservesTokens.find((token) => token.symbol === 'AAVE')?.tokenAddress;
const wethAddress = reservesTokens.find((token) => token.symbol === 'WETH')?.tokenAddress; const wethAddress = reservesTokens.find((token) => token.symbol === 'WETH')?.tokenAddress;
if (!aDaiAddress || !aWEthAddress) { if (!aDaiAddress || !aWEthAddress) {
console.log(`atoken-modifiers.spec: aTokens not correctly initialized`);
process.exit(1); process.exit(1);
} }
if (!daiAddress || !usdcAddress || !aaveAddress || !wethAddress) { if (!daiAddress || !usdcAddress || !aaveAddress || !wethAddress) {
console.log(`atoken-modifiers.spec: USDC or DAI not correctly initialized`);
process.exit(1); process.exit(1);
} }
@ -139,7 +133,6 @@ export async function initializeMakeSuite() {
testEnv.aave = await getMintableErc20(aaveAddress); testEnv.aave = await getMintableErc20(aaveAddress);
testEnv.weth = await getWETHMocked(wethAddress); testEnv.weth = await getWETHMocked(wethAddress);
testEnv.wethGateway = await getWETHGateway(); testEnv.wethGateway = await getWETHGateway();
console.log('laa');
} }
export function makeSuite(name: string, tests: (testEnv: TestEnv) => void) { export function makeSuite(name: string, tests: (testEnv: TestEnv) => void) {