As we are using the Ownable contract which allows transfering ownership this involves an SLOAD to get VaderPoolV2's address. As we never are going to transfer ownership of this contract we could store it in an immutable variable which will save gas costs.
Recommended Mitigation Steps
Remove Ownable dependency and store address in immutable variable.
Handle
TomFrench
Vulnerability details
Impact
Gas costs on deploying LPTokens
Proof of Concept
The address of VaderPoolV2 is stored implicitly as the owner of the LPWrappet contract.
https://github.com/code-423n4/2021-11-vader/blob/607d2b9e253d59c782e921bfc2951184d3f65825/contracts/dex-v2/wrapper/LPWrapper.sol#L31
As we are using the
Ownable
contract which allows transfering ownership this involves an SLOAD to getVaderPoolV2
's address. As we never are going to transfer ownership of this contract we could store it in an immutable variable which will save gas costs.Recommended Mitigation Steps
Remove
Ownable
dependency and store address in immutable variable.