Accidental `renounceOwnership()` call can disrupt key operations in multiple contracts.
`Ownable` contains a function named `renounceOwnership()` which can be used to remove the ownership of contracts in a protocol.\\nThis can lead to `SDLPoolCCIPControllerPrimary`, `SDLPoolCCIPControllerPrimary`, `WrappedTokenBridge`, `LinearBoostController` and `RESDLTokenBridge` contracts becoming disowned, which will then break critical functions of the protocol.\\nThe `WrappedTokenBridge`, `LinearBoostController` and `RESDLTokenBridge` contracts inherit from `Ownable`, `SDLPoolCCIPControllerPrimary` from `SDLPoolCCIPController` which inherits `Ownable`, and `SDLPoolCCIPControllerSecondary` inherits from SDLPoolCCIPControllerPrimary; and hence inherit `renounceOwnership()` function.\\nThe owner could accidentally (or intentionally) call `renounceOwnership()` which transfers ownership to `address(0)`. This will break numerous functions within each contract referenced that has the `onlyOwner()` modifier assigned. Below are a list of those functions:\\n`SDLPoolCCIPControllerPrimary`\\n`setRewardsInitiator()`\\n`setWrappedRewardToken()`\\n`approveRewardTokens()`\\n`removeWhitelistedChain()`\\n`addWhitelistedChain()`\\n`SDLPoolCCIPControllerSecondary`\\n`setExtraArgs()`\\n`WrappedTokenBridge`\\n`recoverTokens()`\\n`transferTokens()`\\n`LinearBoostController`\\n`setMaxLockingDuration()`\\n`setMaxBoost()`\\n`RESDLTokenBridge`.\\n`setExtraArgs()`\\nPOC\\nAdd this test to `test/core/ccip/sdl-pool-ccip-controller-primary.test.ts`\\n```\\n it.only('renounce ownership', async () => {\\n    console.log("Owner before", await controller.owner())\\n    // set max link fee\\n    await controller.setMaxLINKFee(toEther(100))\\n    // console out the max link fee\\n    console.log("Set max link fee with onlyOwner modifier", await controller.maxLINKFee())\\n    \\n    // renounce ownership using renounceOwnership() from owner contract\\n    await expect(controller.renounceOwnership())\\n    // set max link fee and expect revert\\n    await expect(controller.setMaxLINKFee(toEther(200))).to.be.revertedWith('Ownable: caller is not the owner')\\n    // console out the max link fee\\n    console.log("set max link fee hasn't changed", await controller.maxLINKFee())\\n    // console out the owner\\n    console.log("Owner after", await controller.owner())\\n \\n  })\\n```\\n
Accidental `renounceOwnership()` call can disrupt key operations in multiple contracts.\\nDisable `renounceOwnership()` if function in the Ownable contract not required.\\n```\\n// Add the line below\\n function renounceOwnership() public override onlyOwner {\\n// Add the line below\\n     revert ("Not allowed");\\n// Add the line below\\n }\\n```\\n
```\\n it.only('renounce ownership', async () => {\\n    console.log("Owner before", await controller.owner())\\n    // set max link fee\\n    await controller.setMaxLINKFee(toEther(100))\\n    // console out the max link fee\\n    console.log("Set max link fee with onlyOwner modifier", await controller.maxLINKFee())\\n    \\n    // renounce ownership using renounceOwnership() from owner contract\\n    await expect(controller.renounceOwnership())\\n    // set max link fee and expect revert\\n    await expect(controller.setMaxLINKFee(toEther(200))).to.be.revertedWith('Ownable: caller is not the owner')\\n    // console out the max link fee\\n    console.log("set max link fee hasn't changed", await controller.maxLINKFee())\\n    // console out the owner\\n    console.log("Owner after", await controller.owner())\\n \\n  })\\n```\\n