mirror of
https://github.com/Instadapp/aave-protocol-v2.git
synced 2024-07-29 21:47:30 +00:00
Renamed ChainlinkProxyPriceProvider to AaveOracle
This commit is contained in:
parent
f33324a09c
commit
12d17179d6
|
@ -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);
|
|
@ -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,
|
||||||
|
|
|
@ -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
|
||||||
);
|
);
|
||||||
|
|
|
@ -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()
|
||||||
);
|
);
|
||||||
|
|
|
@ -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>;
|
||||||
|
|
|
@ -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]: '',
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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
|
||||||
);
|
);
|
||||||
|
|
|
@ -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
|
||||||
);
|
);
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user