This report identifies a potential issue in L1TokenFacet.sol that could lead to locked ETH within the contract. The issue is related to the contract being marked as payable even though none of its functions currently process ETH payments.
The L1TokenFacet contract is inherited from ReentrancyGuard which is itself marked as payable. This means that the L1TokenFacet contract inherits the payable modifier. While none of the functions within L1TokenFacet currently handle ETH payments, the contract itself can still receive ETH.
Loss of funds: If any ETH is accidentally or intentionally sent to the L1TokenFacet contract, it will be locked and inaccessible.
Manual code review
Consider removing the payable modifier from the L1TokenFacet contract. If future functionalities require receiving ETH payments, implement proper mechanisms to handle them securely.
Alternatively, you can add a modifier to all functions that restricts them from being called with a value greater than 0 (disallowing any ETH payments).
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.