Omniscia Vector Finance Audit
Locker Code Style Findings
Locker Code Style Findings
LOC-01C: Inexistent Error Messages
Type | Severity | Location |
---|---|---|
Code Style | Informational | Locker.sol:L71-L73, L105 |
Description:
The linked require
checks have no error messages explicitly defined.
Example:
105require(IERC20(lockToken).transfer(msg.sender, _amount));
Recommendation:
We advise them to be set so to aid in the validation of the require
's condition as well as the legibility of the codebase.
Alleviation:
Although the linked statements were omitted, a new require
check was introduced that still does not contain an error message.
LOC-02C: Inexistent Visibility Specifier
Type | Severity | Location |
---|---|---|
Code Style | Informational | Locker.sol:L25 |
Description:
The linked variable has no visibility specifier explicitly set.
Example:
24mapping(address => userDeposit[]) public userDeposits;25mapping(address => uint256) depositNumbers;
Recommendation:
We advise one to be set so to avoid potential compilation discrepancies in the future as the default behaviour is for the compiler to assign one automatically which may change in future pragma
versions.
Alleviation:
The public
visibility specifier was introduced for the linked variable.
LOC-03C: Variable Mutability Optimization
Type | Severity | Location |
---|---|---|
Gas Optimization | Informational | Locker.sol:L10, L12, L32, L34 |
Description:
The linked variables are assigned to only once during the contract's constructor
.
Example:
27constructor(28 address _lockToken,29 uint256 _lockTime,30 uint256 _maxDeposits31) baseERC20("Locked VTX", "LVTX") {32 lockToken = _lockToken;33 lockTime = _lockTime;34 maxDeposits = _maxDeposits;35}
Recommendation:
We advise them to be set as immutable
greatly optimizing their gas cost.
Alleviation:
The variable mutability for the first variable was optimized however the second variable had a setter function introduced thereby alleviating this exhibit in full.