The OperatorStakingPool::_withdraw
function fails to transfer operator tokens back to the user during withdrawals or when an operator is removed. This oversight results in operator funds being locked within the contract.
When an operator withdraws via a call to the OperatorStakingPool::withdraw
function, and when the operator is being removed via an admin call to the OperatorStakingPool::removeOperators
function, the internal _withdraw
function is called to transfer the operator tokens to the user. However, this transfer is not currently performed, resulting in operator funds being stuck in the contract.
Operators always lose their deposited tokens.
Manual Review
Update the OperatorStakingPool::_withdraw
function to:
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.