inside SablierV2Lockup.sol
function burn
is called whenever a stream needs to be burned:
A check ensures that only depleted streams
can be burned, providing a safety measure for the recipient
, so their stream
cannot be burned if it still contains withdrawable funds.
After going through the check, the ERC721 Burn function gets called. Note that the function does not check if the sender is authorized to operate on the token:
This means that granted roles are allowed to call this function for the recipient
. This makes sense this an approved third is allowed to call burn
as the comments state:
However, unlike functions such as _cancel
, the burn
function cannot be called by the stream sender, as it lacks the _IsCallerStreamSender
check. This is illogical, as the creator of a stream
should have the authority to burn
their own created stream
. As of now a recipient
can choose to never burn
his stream
which can lead to an overpopulated array of streamid
's
Manual Review
make sure to add the _isCallerStreamSender
role to the burn
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.