Skip to content

Instantly share code, notes, and snippets.

@JTraversa
Created April 7, 2023 06:07
Show Gist options
  • Save JTraversa/fae47e0ca66f6f7a2aa0a2a8b5ad7dd8 to your computer and use it in GitHub Desktop.
Save JTraversa/fae47e0ca66f6f7a2aa0a2a8b5ad7dd8 to your computer and use it in GitHub Desktop.
YearnSpace-TV _wrapPreview
function _wrapPreview(
uint256 base_
) internal view virtual override returns (uint256 shares) {
IYVToken yvToken = IYVToken(address(sharesToken));
uint256 DEGRADATION_COEFFICIENT = 10 ** 18;
uint256 freeFunds = yvToken.totalAssets();
uint256 lockedProfit = yvToken.lockedProfit();
if (lockedProfit > 0) {
uint256 lockedFundsRatio = (block.timestamp -
yvToken.lastReport()) * yvToken.lockedProfitDegradation();
if (lockedFundsRatio < DEGRADATION_COEFFICIENT) {
freeFunds -=
lockedProfit -
((lockedFundsRatio * lockedProfit) /
DEGRADATION_COEFFICIENT);
}
}
shares = (base_ * yvToken.totalSupply()) / freeFunds;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment