Early depositors to BufferBinaryPool can manipulate exchange rates to steal funds from later depositors
To calculate the exchange rate for shares in BufferBinaryPool it divides the total supply of shares by the totalTokenXBalance of the vault. The first deposit can mint a very small number of shares then donate tokenX to the vault to grossly manipulate the share price. When later depositor deposit into the vault they will lose value due to precision loss and the adversary will profit.\\n```\\nfunction totalTokenXBalance()\\n    public\\n    view\\n    override\\n    returns (uint256 balance)\\n{\\n    return tokenX.balanceOf(address(this)) - lockedPremium;\\n}\\n```\\n\\nShare exchange rate is calculated using the total supply of shares and the totalTokenXBalance, which leaves it vulnerable to exchange rate manipulation. As an example, assume tokenX == USDC. An adversary can mint a single share, then donate 1e8 USDC. Minting the first share established a 1:1 ratio but then donating 1e8 changed the ratio to 1:1e8. Now any deposit lower than 1e8 (100 USDC) will suffer from precision loss and the attackers share will benefit from it.
Require a small minimum deposit (i.e. 1e6)
Adversary can effectively steal funds from later users through precision loss
```\\nfunction totalTokenXBalance()\\n    public\\n    view\\n    override\\n    returns (uint256 balance)\\n{\\n    return tokenX.balanceOf(address(this)) - lockedPremium;\\n}\\n```\\n