Description When a sender creates a payment stream, they are intended to specify the address of an ERC20 token, which the streamed payment will be in. The README states that the Sablier Protocol is not compatible with any token standard other than ERC20
. However it is possible for a sender to create a payment stream by specifying an ERC721 as the underlying payment asset, if they also pass the ERC721's tokenID as the params.totalAmount
.
Impact Senders who create streams with ERC721s as the underlying payment asset will lose access to their ERC721 token and cause confusion to recipients who observed events such as CreateLockupLinearStream
being emitted.
Proof of Concept
Place the following code in a Foundry Forge test file.
Recommended Mitigation Consider checking the params.asset
has decimals() (or something else unique to ERC20s that ERC721s do not have).
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.