AuraSpell#closePositionFarm will take reward fees on underlying tokens when borrow token is also a reward
AuraSpell.sol#L227-L247\\n```\\n            wAuraPools.getVault(lpToken).exitPool(\\n                IBalancerPool(lpToken).getPoolId(),\\n                address(this),\\n                address(this),\\n                IBalancerVault.ExitPoolRequest(\\n                    tokens,\\n                    minAmountsOut,\\n                    abi.encode(0, amountPosRemove, borrowTokenIndex),\\n                    false\\n                )\\n            );\\n        }\\n    }\\n\\n    /// 4. Swap each reward token for the debt token\\n    uint256 rewardTokensLength = rewardTokens.length;\\n    for (uint256 i; i != rewardTokensLength; ) {\\n        address sellToken = rewardTokens[i];\\n        if (sellToken == STASH_AURA) sellToken = AURA;\\n\\n        _doCutRewardsFee(sellToken);\\n```\\n\\nWe can see above that closePositionFarm redeems the BLP before it takes the reward cut. This can cause serious issues. If there is any overlap between the reward tokens and the borrow token then _doCutRewardsFee will take a cut of the underlying liquidity. This causes loss to the user as too many fees are taken from them.
Use the same order as ConvexSpell and sell rewards BEFORE burning BLP
User will lose funds due to incorrect fees
```\\n            wAuraPools.getVault(lpToken).exitPool(\\n                IBalancerPool(lpToken).getPoolId(),\\n                address(this),\\n                address(this),\\n                IBalancerVault.ExitPoolRequest(\\n                    tokens,\\n                    minAmountsOut,\\n                    abi.encode(0, amountPosRemove, borrowTokenIndex),\\n                    false\\n                )\\n            );\\n        }\\n    }\\n\\n    /// 4. Swap each reward token for the debt token\\n    uint256 rewardTokensLength = rewardTokens.length;\\n    for (uint256 i; i != rewardTokensLength; ) {\\n        address sellToken = rewardTokens[i];\\n        if (sellToken == STASH_AURA) sellToken = AURA;\\n\\n        _doCutRewardsFee(sellToken);\\n```\\n