The SablierV2Lockup::burn
function deletes an NFT associated with a depleted stream but fails to update the _streams
mapping accordingly. This results in the SablierV2Lockup::isStream()
function incorrectly reporting that a stream exists even after its associated NFT has been burned.
The SablierV2Lockup::burn
function deletes an NFT associated with a depleted stream but fails to update the _streams
mapping accordingly. This results in the SablierV2Lockup::isStream()
function incorrectly reporting that a stream exists even after its associated NFT has been burned.
Functions relying on isStream()
to validate stream existence operates under false premises and all the get functions return inconsistent results (for ex. SablierV2Lockup::getStartTime
, SablierV2Lockup::getEndTime
).
To run the test:
In the file /burn/burn.t.sol add:
Run the command: bun run test --match-test test_streamsMappingNotDeleted -vv
Manual review
Update the _streams
mapping in the burn
function to accurately reflect the deletion of the stream.
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.