L2GraphTokenGateway.finalizeInboundTransfer() does not need to be payable since it checks for zero eth sent in the function call since the function does not allow eth to be sent due to the require check
L2GraphTokenGateway.outboundTransfer() does not need to be payable since it checks for zero eth sent in the function call since function does not allow eth to be sent due to the require check
Local variable shadowing
The following are occurrences of local variable shadwing.
GraphProxy.constructor._admin shadows the function GraphProxyStorage.admin()
GraphProxy._acceptUpgrade._pendingImplementation shadows the function GraphProxyStorage._pendingImplementation()
Controller.setPartialPaused._partialPaused shadows Pausable._partialPaused() state vaiable variable
Controller.setPaused._paused shadows Pausable._paused() state vaiable variable
Recommendation: Rename the local variables that shadow another component.
Missing zero address check
The following are missing checks for zero address to ensure the address state variable is not set to zero address.
L2GraphTokenGateway.finalizeInboundTransfer() does not need to be payable since it checks for zero eth sent in the function call since the function does not allow eth to be sent due to the require check
L2GraphTokenGateway.outboundTransfer() does not need to be payable since it checks for zero eth sent in the function call since function does not allow eth to be sent due to the require check
Local variable shadowing The following are occurrences of local variable shadwing.
Recommendation: Rename the local variables that shadow another component.
Occurrences:
Recommendation: apply necessary checks to ensure zero address is not supplied as input.