dsa-resolvers-deprecated/contracts/protocols/polygon/resolvers/aave/v2/main.sol
2021-06-16 07:38:08 +08:00

37 lines
1.4 KiB
Solidity

pragma solidity ^0.6.0;
pragma experimental ABIEncoderV2;
import { Helpers } from "./helpers.sol";
import { AaveAddressProvider, AaveProtocolDataProvider, AaveLendingPool } from "./interface.sol";
contract Resolver is Helpers {
function getPosition(address user, address[] memory tokens) public view returns(AaveUserTokenData[] memory, AaveUserData memory) {
AaveAddressProvider addrProvider = AaveAddressProvider(getAaveAddressProvider());
uint length = tokens.length;
address[] memory _tokens = new address[](length);
for (uint i = 0; i < length; i++) {
_tokens[i] = tokens[i] == getEthAddr() ? getWethAddr() : tokens[i];
}
AaveUserTokenData[] memory tokensData = new AaveUserTokenData[](length);
(TokenPrice[] memory tokenPrices, uint ethPrice) = getTokensPrices(addrProvider, _tokens);
for (uint i = 0; i < length; i++) {
tokensData[i] = getTokenData(
AaveProtocolDataProvider(getAaveProtocolDataProvider()),
user,
_tokens[i],
tokenPrices[i].priceInEth,
tokenPrices[i].priceInUsd
);
}
return (tokensData, getUserData(AaveLendingPool(addrProvider.getLendingPool()), user, ethPrice, _tokens));
}
}
contract InstaAaveV2Resolver is Resolver {
string public constant name = "AaveV2-Resolver-v1.6";
}