Untitled
unknown
plain_text
3 years ago
961 B
7
Indexable
function _decreasePosition(address _account, address _collateralToken, address _indexToken, uint256 _collateralDelta, uint256 _sizeDelta, bool _isLong, address _receiver, uint256 _price) internal returns (uint256) { address _vault = vault; if (_isLong) { require(IVault(_vault).getMinPrice(_indexToken) >= _price, "BasePositionManager: mark price lower than limit"); } else { require(IVault(_vault).getMaxPrice(_indexToken) <= _price, "BasePositionManager: mark price higher than limit"); } address timelock = IVault(_vault).gov(); ITimelock(timelock).enableLeverage(_vault); uint256 amountOut = IRouter(router).pluginDecreasePosition(_account, _collateralToken, _indexToken, _collateralDelta, _sizeDelta, _isLong, _receiver); ITimelock(timelock).disableLeverage(_vault); _emitDecreasePositionReferral(_account, _sizeDelta); return amountOut; }
Editor is loading...