PoolLens
The
PoolLens
contract is designed to retrieve important information for each registered pool. A list of essential information for all pools within the lending protocol can be acquired through the function getAllPools()
. Additionally, the following records can be looked up for specific pools and markets:- the vToken balance of a given user;
- the pool data (oracle address, associated vToken, liquidation incentive, etc) of a pool via its associated comptroller address;
- the vToken address in a pool for a given asset;
- a list of all pools that support an asset;
- the underlying asset price of a vToken;
- the metadata (exchange/borrow/supply rate, total supply, collateral factor, etc) of any vToken.
struct PoolData {
string name;
address creator;
address comptroller;
uint256 blockPosted;
uint256 timestampPosted;
string category;
string logoURL;
string description;
address priceOracle;
uint256 closeFactor;
uint256 liquidationIncentive;
uint256 minLiquidatableCollateral;
struct PoolLens.VTokenMetadata[] vTokens;
}
struct VTokenMetadata {
address vToken;
uint256 exchangeRateCurrent;
uint256 supplyRatePerBlock;
uint256 borrowRatePerBlock;
uint256 reserveFactorMantissa;
uint256 supplyCaps;
uint256 borrowCaps;
uint256 totalBorrows;
uint256 totalReserves;
uint256 totalSupply;
uint256 totalCash;
bool isListed;
uint256 collateralFactorMantissa;
address underlyingAssetAddress;
uint256 vTokenDecimals;
uint256 underlyingDecimals;
}
struct VTokenBalances {
address vToken;
uint256 balanceOf;
uint256 borrowBalanceCurrent;
uint256 balanceOfUnderlying;
uint256 tokenBalance;
uint256 tokenAllowance;
}
struct VTokenUnderlyingPrice {
address vToken;
uint256 underlyingPrice;
}
struct PendingReward {
address vTokenAddress;
uint256 amount;
}
struct RewardSummary {
address distributorAddress;
address rewardTokenAddress;
uint256 totalRewards;
struct PoolLens.PendingReward[] pendingRewards;
}
struct RewardTokenState {
uint224 index;
uint32 block;
}
struct BadDebt {
address vTokenAddress;
uint256 badDebtUsd;
}
struct BadDebtSummary {
address comptroller;
uint256 totalBadDebtUsd;
struct PoolLens.BadDebt[] badDebts;
}
Queries the user's supply/borrow balances in vTokens
function vTokenBalancesAll(contract VToken[] vTokens, address account) external returns (struct PoolLens.VTokenBalances[])
Parameters
Name | Type | Description |
---|---|---|
vTokens | contract VToken[] | The list of vToken addresses |
account | address | The user Account |
Return Values
Name | Type | Description |
---|---|---|
[0] | struct PoolLens.VTokenBalances[] | A list of structs containing balances data |
Queries all pools with addtional details for each of them
function getAllPools(address poolRegistryAddress) external view returns (struct PoolLens.PoolData[])
Parameters
Name | Type | Description |
---|---|---|
poolRegistryAddress | address | The address of the PoolRegistry contract |
Return Values
Name | Type | Description |
---|---|---|
[0] | struct PoolLens.PoolData[] | Arrays of all Venus pools' data |
Queries the details of a pool identified by Comptroller address
function getPoolByComptroller(address poolRegistryAddress, address comptroller) external view returns (struct PoolLens.PoolData)
Parameters
Name | Type | Description |
---|---|---|
poolRegistryAddress | address | The address of the PoolRegistry contract |
comptroller | address | The Comptroller implementation address |
Return Values
Name | Type | Description |
---|---|---|
[0] | struct PoolLens.PoolData | PoolData structure containing the details of the pool |
Returns vToken holding the specified underlying asset in the specified pool
function getVTokenForAsset(address poolRegistryAddress, address comptroller, address asset) external view returns (address)
Parameters
Name | Type | Description |
---|---|---|
poolRegistryAddress | address | The address of the PoolRegistry contract |
comptroller | address | The pool comptroller |
asset | address | The underlyingAsset of VToken |
Return Values
Name | Type | Description |
---|---|---|
[0] | address | Address of the vToken |
Returns all pools that support the specified underlying asset
function getPoolsSupportedByAsset(address poolRegistryAddress, address asset) external view returns (address[])
Parameters
Name | Type | Description |
---|---|---|
poolRegistryAddress | address | The address of the PoolRegistry contract |
asset | address | The underlying asset of vToken |
Return Values
Name | Type | Description |
---|---|---|
[0] | address[] | A list of Comptroller contracts |
Returns the price data for the underlying assets of the specified vTokens
function vTokenUnderlyingPriceAll(contract VToken[] vTokens) external view returns (struct PoolLens.VTokenUnderlyingPrice[])
Parameters
Name | Type | Description |
---|---|---|
vTokens | contract VToken[] | The list of vToken addresses |
Return Values
Name | Type | Description |
---|---|---|
[0] | struct PoolLens.VTokenUnderlyingPrice[] | An array containing the price data for each asset |
Returns the pending rewards for a user for a given pool.
function getPendingRewards(address account, address comptrollerAddress) external view returns (struct PoolLens.RewardSummary[])
Parameters
Name | Type | Description |
---|---|---|
account | address | The user account. |
comptrollerAddress | address | address |
Return Values
Name | Type | Description |
---|---|---|
[0] | struct PoolLens.RewardSummary[] | Pending rewards array |
Returns a summary of a pool's bad debt broken down by market
function getPoolBadDebt(address comptrollerAddress) external view returns (struct PoolLens.BadDebtSummary)
Parameters
Name | Type | Description |
---|---|---|
comptrollerAddress | address | Address of the comptroller |
Return Values
Name | Type | Description |
---|---|---|
[0] | struct PoolLens.BadDebtSummary | badDebtSummary A struct with comptroller address, total bad debut denominated in usd, and a break down of bad debt by market |
Queries the user's supply/borrow balances in the specified vToken
function vTokenBalances(contract VToken vToken, address account) public returns (struct PoolLens.VTokenBalances)
Parameters
Name | Type | Description |
---|---|---|
vToken | contract VToken | vToken address |
account | address | The user Account |
Return Values
Name | Type | Description |
---|---|---|
[0] | struct PoolLens.VTokenBalances | A struct containing the balances data |
Queries additional information for the pool
function getPoolDataFromVenusPool(address poolRegistryAddress, struct PoolRegistryInterface.VenusPool venusPool) public view returns (struct PoolLens.PoolData)
Parameters
Name | Type | Description |
---|---|---|
poolRegistryAddress | address | Address of the PoolRegistry |
venusPool | struct PoolRegistryInterface.VenusPool | The VenusPool Object from PoolRegistry |
Return Values
Name | Type | Description |
---|---|---|
[0] | struct PoolLens.PoolData | Enriched PoolData |
Returns the metadata of VToken
function vTokenMetadata(contract VToken vToken) public view returns (struct PoolLens.VTokenMetadata)
Parameters
Name | Type | Description |
---|---|---|
vToken | contract VToken | The address of vToken |
Return Values
Name | Type | Description |
---|---|---|
[0] | struct PoolLens.VTokenMetadata | VTokenMetadata struct |
Returns the metadata of all VTokens
function vTokenMetadataAll(contract VToken[] vTokens) public view returns (struct PoolLens.VTokenMetadata[])
Parameters
Name | Type | Description |
---|---|---|
vTokens | contract VToken[] | The list of vToken addresses |
Return Values
Name | Type | Description |
---|---|---|
[0] | struct PoolLens.VTokenMetadata[] | An array of VTokenMetadata structs |
Returns the price data for the underlying asset of the specified vToken
function vTokenUnderlyingPrice(contract VToken vToken) public view returns (struct PoolLens.VTokenUnderlyingPrice)
Parameters
Name | Type | Description |
---|---|---|
vToken | contract VToken | vToken address |
Return Values
Name | Type | Description |
---|---|---|
[0] | struct PoolLens.VTokenUnderlyingPrice | The price data for each asset |
Last modified 2mo ago