Omniscia 0xPhase Audit

ERC20PermitUpgradeable Code Style Findings

ERC20PermitUpgradeable Code Style Findings

ERP-01C: Redundant In-Memory Variable

TypeSeverityLocation
Gas OptimizationERC20PermitUpgradeable.sol:L63, L65

Description:

The referenced success variable is declared and utilized in the immediate ensuing statement.

Example:

lib/token/ERC20/ERC20PermitUpgradeable.sol
63bool success = SignatureChecker.isValidSignatureNow(owner, hash, sig);
64
65require(success, "ERC20PermitUpgradeable: invalid signature");

Recommendation:

We advise the function invocation itself to be performed within the require check, rendering the local success variable redundant.

Alleviation (3dd3d7bf0c2693b2f9c23bacedfa420393f7ea84):

The SignatureChecker::isValidSignatureNow function is directly evaluated within the require check referenced, optimizing the code's gas cost.