The way FjordStaking::onStreamCanceled
is implemnted makes it impossible for stream sender to cancel streams
According to the sablier documentation Link To Docs
onSablierLockupCancel
Responds to cancellations.Notes:
The function MUST return the selector ISablierLockupRecipient.onSablierLockupCancel.selector.
If this function reverts, the execution in the Lockup contract will revert as well.
`
FjordStaking::onStreamCanceled
does not return ISablierLockupRecipient.onSablierLockupCancel.selector
As you can see above the bytes4
selector is not returned by the above function to the sablier contract hence the SablierV2LockUp::_cancel
will revert.
SablierV2LockUp::_cancel Line 596
By implementing the FjordStaking::onStreamCanceled
it shows that the developers of the FjordStaking
contract wanted to make it possible for the stream senders to cancel streams if they want. By this poor implementation of FjordStaking::onStreamCanceled
this service is denied
Denial of service to stream senders.
Manual Review
Consider returning the the bytes4 selector at the end of FjordStaking::onStreamCanceled
function.
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.