Note: At the judges request here, this downgraded issue from the same warden has been included in this report for completeness.
https://github.com/code-423n4/2023-11-shellprotocol/blob/485de7383cdf88284ee6bcf2926fb7c19e9fb257/src/ocean/Ocean.sol#L1166-L1171
The owner gets fees every time _grantFeeToOcean() is invoked, (from unwrapping ether, ERC1155, ERC20 and wrapping ERC20).
This fee is usually in the shToken format (except for the ERC1155 fees, which follows the ERC1155 token decimals), so when the owner wants to withdraw his fees in the ERC20 format, he will have to call unwrapERC20 as well.
When the owner calls the ERC20Unwrap interaction, he will have to pay fees as well. This means that whenever he wants to withdraw a sum of tokens, he will have to pay fees. Then, when he wants to withdraw the fees he paid, he will have to pay fees again. This will lead to a small sum of fees left inside the contract that cannot be withdrawn.
Eg. Owner has about 100e18 of shUSDC accumulated from fees that he wants to withdraw. 
This goes on perpetually; the owner cannot withdraw all his fees entirely.
Owner will have some fees stuck in the contract.
VSCode
When calling _grantFeeToOcean(), if the msg.sender is the owner, then skip the function so that the owner doesnt have to pay his own fees.
Invalid Validation
0xA5DF (judge) decreased severity to QA
For this audit, 5 reports were submitted by wardens detailing gas optimizations. The report highlighted below by hunter_w3b received the top score from the judge.
The following wardens also submitted reports: 0x11singh99, 0xVolcano, IllIllI, and Sathish9098.
