In Staking.deposit() and Staking.claim() CEI pattern is not followed. I am confident that reentrancies due to this are not possible in these functions however solidity best practices should be kept. I am submitting this as informational.
The deposit() function of Staking.sol first performs the transfer of deposit tokens to the staking contract and then does changes to the state. The claim() function first updates the index for msg.sender , then sends the claimable WETH to the msg.sender and after that sets the changes to the state. Here reentrancy is not possible since the token we are transfering is WETH (we know for sure it is not ERC777) and because of the fact that token transfers do not require a fallback function to be implemented by the receiver. However I believe adhering to solidity best practices is the way to go. This is Informational
Not following solidity best practices
Manual Review
Apply the checks-effects-interactions pattern in the above mentioned functions.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.