In the SablierFlow
contract, the Transfer event emission is specified in multiple functions within the ISablierFlow
interface. However, the implementation of some of these functions in SablierFlow does not emit the Transfer event as documented. This discrepancy can lead to inconsistencies, potentially impacting users, auditors, and automated tools that rely on the expected Transfer event emissions for tracking token and NFT transfers. The lack of event emission could also lead to misinterpretations of the contract’s functionality and hinder accurate monitoring of the contract’s state.
The ISablierFlow
interface specifies that certain functions emit the Transfer event, indicating a change in ownership or balance in the ERC-20 or ERC-721 tokens involved in the contract. However, in the actual SablierFlow contract implementation, some of these functions, such as createAndDeposit
, do not emit the Transfer event as documented. This discrepancy results in inconsistencies between the contract’s documented interface and its implementation.
For users, tools, and scripts that depend on the Transfer event for tracking NFT and token movements, the lack of event emissions leads to incomplete or misleading data. This can impact applications, dashboards, or analytics tools monitoring the flow of tokens and NFTs within the contract. Auditors and developers may face challenges in identifying token movements and stream creation without a consistent Transfer event trail.
Manual Review
For each function in SablierFlow
that specifies Transfer
event emission in the interface but lacks it in the implementation (e.g., createAndDeposit
), the contract should include the Transfer event where appropriate.
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.