The `svTokenValue` function can return overestimated value of each strategy vault share token
The `GMXReader.svTokenValue` function can return overestimated value of each strategy vault share token due to outdated `totalSupply`, i.e. without including pending management fees for a long period. This issue can cause the protocol unexpected behavior while keepers provide rebalance and when other protocols receive information about shares value.\\nThe `svTokenValue` function calculates the value of each strategy vault share token with the current amount of `totalSupply`, which may not include pending management fees:\\n```\\n  function svTokenValue(GMXTypes.Store storage self) public view returns (uint256) {\\n    uint256 equityValue_ = equityValue(self);\\n    uint256 totalSupply_ = IERC20(address(self.vault)).totalSupply();\\n    if (equityValue_ == 0 || totalSupply_ == 0) return SAFE_MULTIPLIER;\\n    return equityValue_ * SAFE_MULTIPLIER / totalSupply_;\\n  }\\n```\\n\\nSo the returned share value will be overestimated. The longer the period since the last `mintFee` was called the more overestimated shares value is.
Consider adding `pendingFee` to the totalSupply:\\n```\\n  function svTokenValue(GMXTypes.Store storage self) public view returns (uint256) {\\n    uint256 equityValue_ = equityValue(self);\\n    uint256 totalSupply_ = IERC20(address(self.vault)).totalSupply();\\n    if (equityValue_ == 0 || totalSupply_ == 0) return SAFE_MULTIPLIER;\\n// Remove the line below\\n    return equityValue_ * SAFE_MULTIPLIER / totalSupply_;\\n// Add the line below\\n    return equityValue_ * SAFE_MULTIPLIER / (totalSupply_ // Add the line below\\n pendingFee(self));\\n  } \\n```\\n
The `GMXReader.svTokenValue` function returns an overestimated value of the share token. This issue can cause the protocol unexpected behavior while keepers provide rebalance and when other protocols receive information about the shares value.\\nTools used\\nManual Review
```\\n  function svTokenValue(GMXTypes.Store storage self) public view returns (uint256) {\\n    uint256 equityValue_ = equityValue(self);\\n    uint256 totalSupply_ = IERC20(address(self.vault)).totalSupply();\\n    if (equityValue_ == 0 || totalSupply_ == 0) return SAFE_MULTIPLIER;\\n    return equityValue_ * SAFE_MULTIPLIER / totalSupply_;\\n  }\\n```\\n