user deposited funds lose in giant pool because SyndicateRewardsProcessor consider deposited ETH as rewards because function _updateAccumulatedETHPerLP() and totalRewardsReceived() don't consider idleETH
Audit: 2022-11-stakehouse-findings
Severity: HIGH

# Lines of code

https://github.com/code-423n4/2022-11-stakehouse/blob/4b6828e9c807f2f7c569e6d721ca1289f7cf7112/contracts/liquid-staking/SyndicateRewardsProcessor.sol#L92-L95
https://github.com/code-423n4/2022-11-stakehouse/blob/4b6828e9c807f2f7c569e6d721ca1289f7cf7112/contracts/liquid-staking/SyndicateRewardsProcessor.sol#L75-L90


# Vulnerability details

## Impact
function `_updateAccumulatedETHPerLP()` in `SyndicateRewardsProcessor` is tracking accumulated ETH per share but due to the fact that it doesn't consider deposited ETH (`idelETH` in contract balance) it consider deposited ETH as rewards. this would cause totally wrong reward distributions and some user lose their deposits.

## Proof of Concept
This is `_updateAccumulatedETHPerLP()` and `totalRewardsReceived()` code in `SyndicateRewardsProcessor`:
```
    /// @dev Internal logic for tracking accumulated ETH per share
    function _updateAccumulatedETHPerLP(uint256 _numOfShares) internal {
        if (_numOfShares > 0) {
            uint256 received = totalRewardsReceived();
            uint256 unprocessed = received - totalETHSeen;

            if (unprocessed > 0) {
                emit ETHReceived(unprocessed);

                // accumulated ETH per minted share is scaled to avoid precision loss. it is scaled down later
                accumulatedETHPerLPShare += (unprocessed * PRECISION) / _numOfShares;

                totalETHSeen = received;
            }
        }
    }

    /// @notice Total rewards received by this contract from the syndicate
    function totalRewardsReceived() public virtual view returns (uint256) {
        return address(this).balance + totalClaimed;
    }

```
As you can see in `totalRewardsReceived()` the total balance of contract is treated as received rewards and in `_updateAccumulatedETHPerLP()` the value of `idleETH` is not used so if a user deposits ETH in the giant pool then those ETH would be considered as rewards and distributed among other users. these are the steps that cause this bug to happen:
1- contract has `100` ETH balance and `totalClaimed` is `20` and `totalETHSeen` is `120` and `idleETH` is `100` and `lpTokenETH.totalSupply()` is `200` and `accumulatedETHPerLPShare` is `0.1`. (users deposited 200 ETH which 100 of them is staked and 100 ETH stayed in giant pool as `idleETH` and the staked ones created `20` ETH as reward)
2- `user1` deposits `20` ETH into the contract which increase `idleETH` to `120` and `lpTokenETH.totalSupply()` to `220` and ETH balance contract to `120`.
3- now `updateAccumulatedETHPerLP()` is get called it would calculate `totalRewardsReceived()` as `120 + 20 = 140` and `unprocessed` ETH as `140 - 120 = 20` and `accumulatedETHPerLPShare` as `0.1 + (20/220) = 0.19`.
4- even so there was no new reward because contract don't consider the new deposits in the rewards formula so it treat deposits as rewards and user who deposited his ETH would lose his deposits.


## Tools Used
VIM

## Recommended Mitigation Steps
contrac