Get user earnings
Developers > Best Yield > Get user earnings
Tracking earnings on Idle is easy, you just need the avg buy price of the IdleTokens, the amount of IdleTokens held by a user and the current price.
IdleToken contract saves and updates the userAvgPrices
mapping which contains the avg price paid for each IdleToken of a user, so to calculate earnings (in underlying) one can do the following:
address user = <address_of_user>;
IIdleToken idleDAI = IIdleToken(<address_idle_token>);
uint256 userBalance = idleDAI.balanceOf(user);
uint256 avgCost = userBalance.times(idleDAI.userAvgPrices(user)).div(10**18);
uint256 currentValue = userBalance.times(idleDAI.tokenPriceWithFee()).div(10**18);
uint256 earnings = currentValue.minus(avgCost);
Last updated
Was this helpful?