Omniscia rain protocol Audit

SeedERC20Factory Code Style Findings

SeedERC20Factory Code Style Findings

SEC-01C: Suboptimal Visibility Specifier

Description:

The implementation visibility specifier of the SeedERC20Factory is set as private disallowing users to inspect the actual implementation the factory deploys instances from.

Example:

contracts/seed/SeedERC20Factory.sol
12/// Template contract to clone.
13/// Deployed by the constructor.
14address private immutable implementation;
15
16/// Build the reference implementation to clone for each child.
17constructor() {
18 address implementation_ = address(new SeedERC20());
19 emit Implementation(msg.sender, implementation_);
20 implementation = implementation_;
21}

Recommendation:

We advise it to be set as public given that it will be a frequently queried member of the contract that would otherwise be slightly inconvenient to access if done so by inspecting the contract's constructor. This finding is applicable to all factory implementations of the project and as such will not be duplicated.

Alleviation:

The visibility of the variable was properly set as public increasing the contract's transparency.