Omniscia Beanstalk Audit
ConvertSilo Code Style Findings
ConvertSilo Code Style Findings
CSO-01C: Inexistent Usage of Constant
Type | Severity | Location |
---|---|---|
Code Style | ConvertSilo.sol:L40, L41 |
Description:
The linked statements utilise the 10000
value literal as a representation of the stalks per LP bean, a constant
that should exist in C
.
Example:
protocol/contracts/farm/facets/ConvertFacet/ConvertSilo.sol
40if (season() == _s) depositSiloAssets(msg.sender, seeds, lpb.mul(10000));41else depositSiloAssets(msg.sender, seeds, lpb.mul(10000).add(season().sub(_s).mul(seeds)));
Recommendation:
We advise the code to be updated to properly utilise a central constant increasing the legibility and maintainability of the codebase.
Alleviation:
The getStalkperBean
constant from the C
implementation is now correctly utilized.
CSO-02C: Redundant Usage of SafeMath
Type | Severity | Location |
---|---|---|
Gas Optimization | ConvertSilo.sol:L75, L151 |
Description:
The linked SafeMath
operations are guaranteed to be performed safely by their surrounding if
clauses and general logical constraints.
Example:
protocol/contracts/farm/facets/ConvertFacet/ConvertSilo.sol
147while ((i < crates.length) && (beansRemoved < maxBeans)) {148 if (beansRemoved.add(amounts[i]) < maxBeans)149 crateBeans = removeBeanDeposit(msg.sender, crates[i], amounts[i]);150 else151 crateBeans = removeBeanDeposit(msg.sender, crates[i], maxBeans.sub(beansRemoved));
Recommendation:
We advise them to be performed without the usage of SafeMath
to optimise the code.
Alleviation:
The redundant SafeMath
instance was appropriately removed.