The CreateMerkleLL and CreateMerkleLT events are not emitted when the contract is not created from SablierV2MerkleLockupFactory.
The deployment of SablierV2MerkleLL and SablierV2MerkleLT contracts is not limited to the use of the SablierV2MerkleLockupFactory contract. This allows any creator to deploy Merkle contracts independently of the SablierV2MerkleLockupFactory contract.
Consequently, the CreateMerkleLL and CreateMerkleLT events are exclusively emitted when these contracts are deployed via the SablierV2MerkleLockupFactory contract, not when deployed by other Merkle contracts.
The protocol relies on these event emissions to record the creation of Merkle contracts. However, this setup leads to a scenario where Merkle contracts deployed without utilizing the SablierV2MerkleLockupFactory contract may not be registered by the Sablier Interface.
The protocol risks losing critical event data necessary for logging the creation of Merkle contracts on its interface. Consequently, certain Merkle contracts may not appear on the interface as intended.
Manual Review
Include CreateMerkleLL and CreateMerkleLT event emissions in the constructors of SablierV2MerkleLL and SablierV2MerkleLT contracts to ensure event emission even when the contracts are not created from SablierV2MerkleLockupFactory.
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.