Lockups will not work with fee on transfer tokens
In the documentation it is written that any ERC-20 token can be streamed on Sablier. However, lockups will not work with fee on transfer tokens.
When creating a stream, the deposited amount is stored in a struct, which will be used later when recipient withdraws. The problem is, the function safeTransferFrom may not transfer the given amount of tokens, because there would be fees, meaning less amount will be transfered to the contract.
This difference will be compensated by the money of the other streams, but when the last stream is withdrawn, there will not be enough money for it and part of its money will be stuck in the contract.
NOTE: This applies to all types of streams.
Stuck of funds
Manual Review
It is recommended to get the contract balance before and after the safeTransferFrom to see how much tokens were received, and save this amount in the struct.
https://www.codehawks.com/contests/clvb9njmy00012dqjyaavpl44
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.