The owner can borrow token0/token1 in the rescueFunds
If some random tokens/funds are accidentally transferred to the pool, the `owner` can call the `rescueFunds` function to withdraw any funds manually:\\n```\\nfunction rescueFunds(IERC20 token, uint256 amount) external nonReentrant onlyOwner {\\n    uint256 balance0 = token0.uniBalanceOf(address(this));\\n    uint256 balance1 = token1.uniBalanceOf(address(this));\\n\\n    token.uniTransfer(msg.sender, amount);\\n\\n    require(token0.uniBalanceOf(address(this)) >= balance0, "Mooniswap: access denied");\\n    require(token1.uniBalanceOf(address(this)) >= balance1, "Mooniswap: access denied");\\n    require(balanceOf(address(this)) >= \\_BASE\\_SUPPLY, "Mooniswap: access denied");\\n}\\n```\\n\\nThere's no restriction on which funds the `owner` can try to withdraw and which token to call. It's theoretically possible to transfer pool tokens and then return them to the contract (e.g. in the case of ERC-777). That action would be similar to a free flash loan.
Explicitly check that the `token` is not equal to any of the pool tokens.
```\\nfunction rescueFunds(IERC20 token, uint256 amount) external nonReentrant onlyOwner {\\n    uint256 balance0 = token0.uniBalanceOf(address(this));\\n    uint256 balance1 = token1.uniBalanceOf(address(this));\\n\\n    token.uniTransfer(msg.sender, amount);\\n\\n    require(token0.uniBalanceOf(address(this)) >= balance0, "Mooniswap: access denied");\\n    require(token1.uniBalanceOf(address(this)) >= balance1, "Mooniswap: access denied");\\n    require(balanceOf(address(this)) >= \\_BASE\\_SUPPLY, "Mooniswap: access denied");\\n}\\n```\\n