DAOfiV1Pair.deposit() accepts deposits of zero, blocking the pool
`DAOfiV1Pair.deposit()` is used to deposit liquidity into the pool. Only a single deposit can be made, so no liquidity can ever be added to a pool where `deposited == true`. The `deposit()` function does not check for a nonzero deposit amount in either token, so a malicious user that does not hold any of the `baseToken` or `quoteToken` can lock the pool by calling `deposit()` without first transferring any funds to the pool.\\n```\\nfunction deposit(address to) external override lock returns (uint256 amountBaseOut) {\\n    require(msg.sender == router, 'DAOfiV1: FORBIDDEN\\_DEPOSIT');\\n    require(deposited == false, 'DAOfiV1: DOUBLE\\_DEPOSIT');\\n    reserveBase = IERC20(baseToken).balanceOf(address(this));\\n    reserveQuote = IERC20(quoteToken).balanceOf(address(this));\\n    // this function is locked and the contract can not reset reserves\\n    deposited = true;\\n    if (reserveQuote > 0) {\\n        // set initial supply from reserveQuote\\n        supply = amountBaseOut = getBaseOut(reserveQuote);\\n        if (amountBaseOut > 0) {\\n            \\_safeTransfer(baseToken, to, amountBaseOut);\\n            reserveBase = reserveBase.sub(amountBaseOut);\\n        }\\n    }\\n    emit Deposit(msg.sender, reserveBase, reserveQuote, amountBaseOut, to);\\n}\\n```\\n
Require a minimum deposit amount in both `baseToken` and `quoteToken`, and do not rely on any assumptions about the distribution of `baseToken` as part of the security model.
```\\nfunction deposit(address to) external override lock returns (uint256 amountBaseOut) {\\n    require(msg.sender == router, 'DAOfiV1: FORBIDDEN\\_DEPOSIT');\\n    require(deposited == false, 'DAOfiV1: DOUBLE\\_DEPOSIT');\\n    reserveBase = IERC20(baseToken).balanceOf(address(this));\\n    reserveQuote = IERC20(quoteToken).balanceOf(address(this));\\n    // this function is locked and the contract can not reset reserves\\n    deposited = true;\\n    if (reserveQuote > 0) {\\n        // set initial supply from reserveQuote\\n        supply = amountBaseOut = getBaseOut(reserveQuote);\\n        if (amountBaseOut > 0) {\\n            \\_safeTransfer(baseToken, to, amountBaseOut);\\n            reserveBase = reserveBase.sub(amountBaseOut);\\n        }\\n    }\\n    emit Deposit(msg.sender, reserveBase, reserveQuote, amountBaseOut, to);\\n}\\n```\\n