rewardTokens removed from WAuraPool/WConvexPools will be lost forever
pendingRewards pulls a fresh count of reward tokens each time it is called. This is problematic if reward tokens are ever removed from the the underlying Aura/Convex pools because it means that they will no longer be distributed and will be locked in the contract forever.\\nWAuraPools.sol#L166-L189\\n```\\n    uint extraRewardsCount = IAuraRewarder(crvRewarder)\\n        .extraRewardsLength();\\n    tokens = new address[](extraRewardsCount + 1);\\n    rewards = new uint256[](extraRewardsCount + 1);\\n\\n    tokens[0] = IAuraRewarder(crvRewarder).rewardToken();\\n    rewards[0] = _getPendingReward(\\n        stCrvPerShare,\\n        crvRewarder,\\n        amount,\\n        lpDecimals\\n    );\\n\\n    for (uint i = 0; i < extraRewardsCount; i++) {\\n        address rewarder = IAuraRewarder(crvRewarder).extraRewards(i);\\n        uint256 stRewardPerShare = accExtPerShare[tokenId][i];\\n        tokens[i + 1] = IAuraRewarder(rewarder).rewardToken();\\n        rewards[i + 1] = _getPendingReward(\\n            stRewardPerShare,\\n            rewarder,\\n            amount,\\n            lpDecimals\\n        );\\n    }\\n```\\n\\nIn the lines above we can see that only tokens that are currently available on the pool. This means that if tokens are removed then they are no longer claimable and will be lost to those entitled to shares.
Reward tokens should be stored with the tokenID so that it can still be paid out even if it the extra rewardToken is removed.
Users will lose reward tokens if they are removed
```\\n    uint extraRewardsCount = IAuraRewarder(crvRewarder)\\n        .extraRewardsLength();\\n    tokens = new address[](extraRewardsCount + 1);\\n    rewards = new uint256[](extraRewardsCount + 1);\\n\\n    tokens[0] = IAuraRewarder(crvRewarder).rewardToken();\\n    rewards[0] = _getPendingReward(\\n        stCrvPerShare,\\n        crvRewarder,\\n        amount,\\n        lpDecimals\\n    );\\n\\n    for (uint i = 0; i < extraRewardsCount; i++) {\\n        address rewarder = IAuraRewarder(crvRewarder).extraRewards(i);\\n        uint256 stRewardPerShare = accExtPerShare[tokenId][i];\\n        tokens[i + 1] = IAuraRewarder(rewarder).rewardToken();\\n        rewards[i + 1] = _getPendingReward(\\n            stRewardPerShare,\\n            rewarder,\\n            amount,\\n            lpDecimals\\n        );\\n    }\\n```\\n