When burning a streamId(NFT), the system checks whether the stream is valid through the modifier notNull
which verifies the dictionary with that streamId and checks whether the property isStream
is true.
The problem is that this variable is not updated when the NFT is burned. This means that users will still receive in their UI when fetching the streams that the burned streamId is still active. Then when trying to burn it again the transaction will revert with the following error SablierV2Lockup_Unauthorized
.
As the streamId
has been previously burned, now it belongs to the address zero, but yet it still passes on the modifier notNull
as isStream
is yet true
.
Manual Review
In the function burn
make sure to update the stream state by setting the isStream
property to false
.
https://docs.codehawks.com/hawks-auditors/how-to-determine-a-finding-validity
https://docs.codehawks.com/hawks-auditors/how-to-determine-a-finding-validity
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.