Omniscia rain protocol Audit
SeedERC20Factory Code Style Findings
SeedERC20Factory Code Style Findings
SEC-01C: Suboptimal Visibility Specifier
Type | Severity | Location |
---|---|---|
Language Specific | SeedERC20Factory.sol:L14 |
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.