The stream NFT can not be transferred by the approved operator. Since the function expects the NFT owner should be the caller.
NFT transfer or other related functions can be done either by the owner of the NFT or the user who was deleagted by the NFT owner.
In this case, when third party operator does operation on behalf of the NFT owner.
In Sablier, the withdraw can be called by the approved operator. this is to enable for any third party operation.
But the function withdrawMaxAndTransfer
expects that the caller should be the NFT owner.
Approved operator can not do the operation on behalf of the NFT owner. This will raise issue when NFT transfers across markets.
Manual review.
We would suggest to refractor the withdrawMaxAndTransfer
so that the approved user can call this.
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.