Get Reserve Details
Fetch a lending reserve to know about the asset being borrowed or deposited.
Along with lending and borrowing, you can also get all the details of a reservesuch as liquidity, token vault, supply details, token mint by querying the kamino_lending_Reserve account.
You can directly copy paste this code on replit and see it in action.
async function fetchReserve(ownerAddress: string) {
//get Reserve details using graphQl
const operationsDoc = `
query MyQuery {
kamino_lending_Reserve(
where: {pubkey: {_eq: ${JSON.stringify(ownerAddress)}}}
) {
version
pubkey
liquidity
lendingMarket
lastUpdate
farmDebt
farmCollateral
config
collateral
}
}
`; //graphQl query
const result = await fetch(
`https://programs.shyft.to/v0/graphql/accounts?api_key=${SHYFT_API_KEY}&network=mainnet-beta`,
{
method: "POST",
body: JSON.stringify({
query: operationsDoc,
variables: {},
operationName: "MyQuery",
}),
}
);
return await result.json();
}
async function getData(address: string) {
const { errors, data } = await fetchReserve(address);
if (errors) {
console.error(errors);
}
console.log(JSON.stringify(data)); //can process this json data received
}
getData("d4A2prbA2whesmvHaL88BH6Ewn5N4bTSU2Ze8P6Bc4Q"); //Sol reserve pubkey
The liquidity field returned in the response contains all the liquidity details of the asset in the reserve.
mintPubkey
: the mint address of the asset in the reserve.supplyVault
: Whenever users add their assets to liquidity pool, they are usually contributing to an account called the supply vault. This field contains the supply vault address for that particular reserve.feeVault
: Fee Vault contains the fees generated by the trading activities. This field denotes the address of the fee vault for that particular reserve.mintDecimals
: Decimals for the liquidity or token associated with the reserve.availableAmount
: Amount of liquidity available in the reserve.borrowedAmountSf
: Amount of liquidity borrowed from the reserve.
Last updated
Was this helpful?