The L2TokenReceiver smart contract implements a collectFees function that is intended to collect fees from Uniswap v3 liquidity pools. However, this function is not declared in the IL2TokenReceiver interface, which the contract purports to implement.
This inconsistency can lead to integration issues with other contracts or services that rely on the IL2TokenReceiver interface for interaction.
The IL2TokenReceiver interface is expected to declare all public and external functions that the implementing contract provides. The absence of the collectFees function declaration within the interface means that any external contract or service attempting to interact with the L2TokenReceiver contract through the IL2TokenReceiver interface reference will not be able to call the collectFees function, even though it is implemented by the contract.
The primary impact of this issue is on interoperability and contract composability. Contracts or services that use the IL2TokenReceiver interface to interact with instances of L2TokenReceiver will not recognize the collectFees function, potentially breaking functionality or leading to the development of incorrect or inefficient integrations.
Manual review
Update Interface: Add the collectFees function declaration to the IL2TokenReceiver interface to ensure consistency and correct interfacing. The declaration should match the function signature in the L2TokenReceiver contract.
Example update to the interface:
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.