The source code of the proxy price provider contract is **available on Github.**
The source code of the Uniswap price aggregator contract is **available on Github.**
getAssetPrice(address _asset) public view returns(uint256)
Return the price of the supported _asset in ETH wei units.
pragma solidity ^0.5.0;
import "./IPriceOracleGetter.sol";
// ... rest of your contract ...
// Retrieve PriceOracle address
LendingPoolAddressesProvider provider = LendingPoolAddressesProvider(address(0x24a42fD28C976A61Df5D00D0599C34c4f90748c8)); // mainnet address, for other addresses: <https://docs.aave.com/developers/developing-on-aave/deployed-contract-instances>
address priceOracleAddress = provider.getPriceOracle();
IPriceOracleGetter priceOracle = IPriceOracleGetter(priceOracleAddress);
address daiAddress = address(0x6B175474E89094C44Da98b954EedeAC495271d0F); // mainnet DAI
uint256 price = priceOracle.getAssetPrice(daiAddress);
import IPriceOracleABI from "./IPriceOracleGetter.json"
// From <https://docs.aave.com/developers/developing-on-aave/deployed-contract-instances>
import LendingPoolAddressesProviderABI from "./LendingPoolAddressesProvider.json"
// ... The rest of your code ...
const lpAddressProviderAddress = '0x24a42fD28C976A61Df5D00D0599C34c4f90748c8' // mainnet address, for other addresses: <https://docs.aave.com/developers/developing-on-aave/deployed-contract-instances>
const lpAddressProviderContract = new web3.eth.Contract(LendingPoolAddressesProviderABI, lpAddressProviderAddress)
// Get the latest PriceOracle address
const priceOracleAddress = await lpAddressProviderContract.methods
.getPriceOracle()
.call()
.catch((e) => {
throw Error(`Error getting priceOracle address: ${e.message}`)
})
const daiAddress = '0x6B175474E89094C44Da98b954EedeAC495271d0F' // mainnet DAI
// Get the asset price
const priceOracleContract = new web3.eth.Contract(IPriceOracleABI, priceOracleAddress)
const price = await priceOracleContract.methods
.getAssetPrice(daiAddress)
.call()
.catch((e) => {
throw Error(`Error getting priceOracle price: ${e.message}`)
})
getSourceOfAsset(address _asset) external view returns(uint256)
Returns the address of the price source for _asset
.
import "./IPriceOracleGetter.sol";
// ... rest of your contract ...
// Retrieve PriceOracle address
LendingPoolAddressesProvider provider = LendingPoolAddressesProvider(address(0x24a42fD28C976A61Df5D00D0599C34c4f90748c8)); // mainnet address, for other addresses: <https://docs.aave.com/developers/developing-on-aave/deployed-contract-instances>
address priceOracleAddress = provider.getPriceOracle();
IPriceOracleGetter priceOracle = IPriceOracleGetter(priceOracleAddress);
address daiAddress = address(0x6B175474E89094C44Da98b954EedeAC495271d0F); // mainnet DAI
address source = priceOracle.getSourceOfAsset(daiAddress);
import IPriceOracleABI from "./IPriceOracleGetter.json"
// From <https://docs.aave.com/developers/developing-on-aave/deployed-contract-instances>
import LendingPoolAddressesProviderABI from "./LendingPoolAddressesProvider.json"
// ... The rest of your code ...
const lpAddressProviderAddress = '0x24a42fD28C976A61Df5D00D0599C34c4f90748c8' // mainnet address, for other addresses: <https://docs.aave.com/developers/developing-on-aave/deployed-contract-instances>
const lpAddressProviderContract = new web3.eth.Contract(LendingPoolAddressesProviderABI, lpAddressProviderAddress)
// Get the latest PriceOracle address
const priceOracleAddress = await lpAddressProviderContract.methods
.getPriceOracle()
.call()
.catch((e) => {
throw Error(`Error getting priceOracle address: ${e.message}`)
})
const daiAddress = '0x6B175474E89094C44Da98b954EedeAC495271d0F' // mainnet DAI
// Get source for asset
const priceOracleContract = new web3.eth.Contract(IPriceOracleABI, priceOracleAddress)
const source = await priceOracleContract.methods
.getSourceOfAsset(daiAddress)
.call()
.catch((e) => {
throw Error(`Error getting priceOracle source for asset: ${e.message}`)
})
getFallbackOracle() external view returns(uint256)
import "./IPriceOracleGetter.sol";
// ... rest of your contract ...
// Retrieve PriceOracle address
LendingPoolAddressesProvider provider = LendingPoolAddressesProvider(address(0x24a42fD28C976A61Df5D00D0599C34c4f90748c8)); // mainnet address, for other addresses: <https://docs.aave.com/developers/developing-on-aave/deployed-contract-instances>
address priceOracleAddress = provider.getPriceOracle();
IPriceOracleGetter priceOracle = IPriceOracleGetter(priceOracleAddress);
address fallback = priceOracle.getFallbackOracle();
import IPriceOracleABI from "./IPriceOracleGetter.json"
// From <https://docs.aave.com/developers/developing-on-aave/deployed-contract-instances>
import LendingPoolAddressesProviderABI from "./LendingPoolAddressesProvider.json"
// ... The rest of your code ...
const lpAddressProviderAddress = '0x24a42fD28C976A61Df5D00D0599C34c4f90748c8' // mainnet address, for other addresses: <https://docs.aave.com/developers/developing-on-aave/deployed-contract-instances>
const lpAddressProviderContract = new web3.eth.Contract(LendingPoolAddressesProviderABI, lpAddressProviderAddress)
// Get the latest PriceOracle address
const priceOracleAddress = await lpAddressProviderContract.methods
.getPriceOracle()
.call()
.catch((e) => {
throw Error(`Error getting priceOracle address: ${e.message}`)
})
// Get fallback oracle address
const priceOracleContract = new web3.eth.Contract(IPriceOracleABI, priceOracleAddress)
const fallbackOracle = await priceOracleContract.methods
.getFallbackOracle()
.call()
.catch((e) => {
throw Error(`Error getting priceOracle fallback: ${e.message}`)
})