Calling a valid OperatorVault::raiseAlert would reward the caller as stated on Chainlink docs, but the OperatorVault is not transferring portion of the reward to the operator, making the call not profitable and instead the opreator reward is lost.
opRewards is calculated and deducted when transfering the token to vaultController address but after that there are no action for opRewards as this variable is local variable then it would dissapear after the call is completed
Operator would lose their reward when calling the raiseAlert function, making the call not provitable and would make the vaultController lose potential reward that can be received from raising valid alert.
This is significant loses for the protocol overall.
manual review
There would be varying recommendation for this issue, and I prefer the first one to make the operator reward logic not much changed:
add the value of opRewards after calling raiseAlert in the state variable unclaimedRewards
add code to transfer the opRewards to the operator inside the raiseAlert function similar to vaultController
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.