Omniscia Moby Audit

ERC20 Code Style Findings

ERC20 Code Style Findings

ERC-01C: Inexistent Error Message

TypeSeverityLocation
Code StyleERC20.sol:L224

Description:

The linked require check has no error message explicitly defined.

Example:

contracts/tokens/ERC20.sol
224require(msg.sender == owner);

Recommendation:

We advise one to be set so to increase the legibility of the codebase and aid in validating the require check's condition.

Alleviation (b02fae335f62cc1f5f4236fb4d982ad16a32bd26):

The statement has been omitted as a result of a separate exhibit, rendering this exhibit nullified.

ERC-02C: Variable Mutability Specifier (Immutable)

TypeSeverityLocation
Gas OptimizationERC20.sol:L40

Description:

The linked variable is assigned to only once during the contract's constructor.

Example:

contracts/tokens/ERC20.sol
40address owner; // mock
41uint256 private _totalSupply;
42
43string private _name;
44string private _symbol;
45uint8 private _decimals;
46
47/**
48 * @dev Sets the values for {name} and {symbol}, initializes {decimals} with
49 * a default value of 18.
50 *
51 * To select a different value for {decimals}, use {_setupDecimals}.
52 *
53 * All three of these values are immutable: they can only be set once during
54 * construction.
55 */
56constructor (string memory name, string memory symbol, uint8 decimals) public {
57 _name = name;
58 _symbol = symbol;
59 _decimals = decimals;
60
61 owner = msg.sender;
62}

Recommendation:

We advise it to be set as immutable greatly optimizing its read-access gas cost.

Alleviation (b02fae335f62cc1f5f4236fb4d982ad16a32bd26):

The variable has been omitted as a result of a separate exhibit, rendering this exhibit nullified.