Skip to main content

getPositionData

Description:

Fetches the user's position in a vault: stake, minted and boosted osToken, wallet osToken balance and the APY parameters. Pass the result as data to calculateAllocatorPosition or calculateStakerPosition.

Arguments:

NameTypeRequiredDescription
userAddressstringYesThe address of the user
vaultAddressstringYesThe address of the vault

Returns:

type Output = {
vault: {
apyData: {
vaultApy: number
borrowApy: number
osTokenApy: number
feePercent: number
ltvPercent: bigint
osTokenRate: bigint
osTokenMintApy: number
allocatorMaxBoostApy: number
leverageMaxMintLtvPercent: bigint
leverageMaxBorrowLtvPercent: bigint
}
isCollateralized: boolean
isOsTokenEnabled: boolean
} | null
stakedAssets: bigint
exitingAssets: bigint
mintedShares: bigint
walletShares: bigint
boostedShares: bigint
boostedAssets: bigint
leverageReward: bigint
}
NameDescription
vaultVault, osToken and Aave APY parameters, null if the vault is not found
stakedAssetsAssets staked by the user in the vault
exitingAssetsAssets of the user in the exit queue
mintedSharesosToken shares minted by the user
walletSharesosToken shares in the user's wallet
boostedSharesosToken shares in the user's boost position, including exiting
boostedAssetsAssets in the user's boost position, including exiting
leverageRewardAnnual reward of the existing boost position in assets

Example:

const data = await sdk.vault.getPositionData({
userAddress: '0x...',
vaultAddress: '0x...',
})

const { apy, totalAssets } = sdk.vault.helpers.calculateAllocatorPosition({
data,
boostedSharesDelta: parseEther('1'),
})