Missing Proper Access Control
Some functions do not have proper access control and are `public`, meaning that anyone can call them. This will result in system take over depending on how critical those functionalities are.\\n```\\n \\*/\\nfunction setIDOLContract(address contractAddress) public {\\n    require(address(\\_IDOLContract) == address(0), "IDOL contract is already registered");\\n    \\_setStableCoinContract(contractAddress);\\n}\\n```\\n
Make the `setIDOLContract()` function `internal` and call it from the constructor, or only allow the `deployer` to set the value.
```\\n \\*/\\nfunction setIDOLContract(address contractAddress) public {\\n    require(address(\\_IDOLContract) == address(0), "IDOL contract is already registered");\\n    \\_setStableCoinContract(contractAddress);\\n}\\n```\\n