Omniscia Echidna Finance Audit
MerkleDistributor Code Style Findings
MerkleDistributor Code Style Findings
MDR-01C: Inexistent Error Message
| Type | Severity | Location |
|---|---|---|
| Code Style | Informational | MerkleDistributor.sol:L115 |
Description:
The linked require check has no error message explicitly defined.
Example:
contracts/airdrop/MerkleDistributor.sol
115require(block.timestamp <= vestingUntil);Recommendation:
We advise one to be set so to aid in the validation of the require's condition as well as the legibility of the codebase.
Alleviation:
An error message was properly defined for the linked statement.
MDR-02C: Redundant Contract Variable
| Type | Severity | Location |
|---|---|---|
| Gas Optimization | Informational | MerkleDistributor.sol:L19, L46 |
Description:
The linked variable remains unutilized in the code.
Example:
contracts/airdrop/MerkleDistributor.sol
19address public rewardPool;Recommendation:
We advise it to be safely omitted.
Alleviation:
The variable was safely omitted from the codebase.
MDR-03C: Variable Mutability Specifiers
| Type | Severity | Location |
|---|---|---|
| Gas Optimization | Informational | MerkleDistributor.sol:L18, L20-L22, L42-L45 |
Description:
The linked variables are assigned to only once during the contract's constructor.
Example:
contracts/airdrop/MerkleDistributor.sol
37constructor(38 address token_,39 uint256 total_,40 bytes32 merkleRoot_41) {42 vestingStart = block.timestamp;43 vestingUntil = block.timestamp + VESTING;44 token = token_;45 merkleRoot = merkleRoot_;46 rewardPool = address(0);47 totalLeft = total_;48}Recommendation:
We advise them to be set as immutable greatly optimizing the codebase.
Alleviation:
All referenced variables were properly set as immutable.