Search
K

PoolLens

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.

Solidity API

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;
}

vTokenBalancesAll

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

getAllPools

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

getPoolByComptroller

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

getVTokenForAsset

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

getPoolsSupportedByAsset

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

vTokenUnderlyingPriceAll

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

getPendingRewards

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

getPoolBadDebt

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

vTokenBalances

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

getPoolDataFromVenusPool

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

vTokenMetadata

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

vTokenMetadataAll

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

vTokenUnderlyingPrice

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