Phuture Finance contest - oyc_109's results

Crypto index platform, that simplifies your investments through automated, themed index products.

General Information

Platform: Code4rena

Start Date: 19/04/2022

Pot Size: $30,000 USDC

Total HM: 10

Participants: 43

Period: 3 days

Judges: moose-code, JasoonS

Total Solo HM: 7

Id: 90

League: ETH

Phuture Finance

Findings Distribution

Researcher Performance

Rank: 25/43

Findings: 2

Award: $94.37

🌟 Selected for report: 0

🚀 Solo Findings: 0

Awards

62.9884 USDC - $62.99

Labels

bug
QA (Quality Assurance)

External Links

Unspecific Compiler Version Pragma

Impact

Issue Information: L003 - Unspecific Compiler Version Pragma

Findings:
BaseIndex.sol::3 => pragma solidity >=0.8.7; ChainlinkPriceOracle.sol::3 => pragma solidity >=0.8.7; IndexLayout.sol::3 => pragma solidity >=0.8.7; IndexLogic.sol::3 => pragma solidity >=0.8.7; ManagedIndex.sol::3 => pragma solidity >=0.8.7; ManagedIndexReweightingLogic.sol::3 => pragma solidity >=0.8.7; PhutureIndex.sol::3 => pragma solidity >=0.8.7; PhuturePriceOracle.sol::3 => pragma solidity >=0.8.7; TopNMarketCapIndex.sol::3 => pragma solidity >=0.8.7; TopNMarketCapReweightingLogic.sol::3 => pragma solidity >=0.8.7; TrackedIndex.sol::3 => pragma solidity >=0.8.7; TrackedIndexReweightingLogic.sol::3 => pragma solidity >=0.8.7; UniswapV2PathPriceOracle.sol::3 => pragma solidity >=0.8.7; UniswapV2PriceOracle.sol::3 => pragma solidity >=0.8.7; interfaces/IAnatomyUpdater.sol::3 => pragma solidity >=0.8.7; interfaces/IChainlinkPriceOracle.sol::3 => pragma solidity >=0.8.7; interfaces/IFeePool.sol::3 => pragma solidity >=0.8.7; interfaces/IIndex.sol::3 => pragma solidity >=0.8.7; interfaces/IIndexFactory.sol::3 => pragma solidity >=0.8.7; interfaces/IIndexLayout.sol::3 => pragma solidity >=0.8.7; interfaces/IIndexLogic.sol::3 => pragma solidity >=0.8.7; interfaces/IIndexRegistry.sol::3 => pragma solidity >=0.8.7; interfaces/IManagedIndex.sol::3 => pragma solidity >=0.8.7; interfaces/IManagedIndexReweightingLogic.sol::3 => pragma solidity >=0.8.7; interfaces/INameRegistry.sol::3 => pragma solidity >=0.8.7; interfaces/IOrderer.sol::3 => pragma solidity >=0.8.7; interfaces/IPhuturePriceOracle.sol::3 => pragma solidity >=0.8.7; interfaces/IPriceOracle.sol::3 => pragma solidity >=0.8.7; interfaces/IReweightableIndex.sol::3 => pragma solidity >=0.8.7; interfaces/ITopNMarketCapCategories.sol::3 => pragma solidity >=0.8.7; interfaces/ITopNMarketCapIndexFactory.sol::3 => pragma solidity >=0.8.7; interfaces/ITopNMarketCapIndexReweightingLogic.sol::3 => pragma solidity >=0.8.7; interfaces/ITrackedIndexReweightingLogic.sol::3 => pragma solidity >=0.8.7; interfaces/IUniswapV2PathPriceOracle.sol::3 => pragma solidity >=0.8.7; interfaces/IUniswapV2PriceOracle.sol::3 => pragma solidity >=0.8.7; interfaces/IvToken.sol::3 => pragma solidity >=0.8.7; interfaces/IvTokenFactory.sol::3 => pragma solidity >=0.8.7; interfaces/external/IChainLinkFeed.sol::3 => pragma solidity >=0.8.7; interfaces/external/IWETH.sol::3 => pragma solidity >=0.8.7; libraries/AUMCalculationLibrary.sol::3 => pragma solidity >=0.8.7; libraries/BP.sol::3 => pragma solidity >=0.8.7; libraries/FixedPoint112.sol::3 => pragma solidity >=0.8.7; libraries/FullMath.sol::2 => pragma solidity >=0.8.4 <0.9.0; libraries/IndexLibrary.sol::3 => pragma solidity >=0.8.7; libraries/NAV.sol::3 => pragma solidity >=0.8.7; vToken.sol::3 => pragma solidity >=0.8.7;

Awards

31.3783 USDC - $31.38

Labels

bug
G (Gas Optimization)

External Links

Issues found

Don't Initialize Variables with Default Value

Impact

Issue Information: G001 - variables with default value

Findings:
TopNMarketCapIndex.sol::51 => uint8 weight = _i == 0 UniswapV2PathPriceOracle.sol::34 => for (uint i = 0; i < path.length - 1; i++) { UniswapV2PathPriceOracle.sol::49 => for (uint i = 0; i < path.length - 1; i++) {

Cache Array Length Outside of Loop

Impact

Issue Information: G002 - array length outside loop

Findings:
BaseIndex.sol::78 => for (uint i; i < _assets.length; ++i) { IndexLogic.sol::39 => for (uint i; i < assets.length(); ++i) { IndexLogic.sol::60 => for (uint i; i < inactiveAssets.length(); ++i) { ManagedIndex.sol::30 => for (uint i; i < _assets.length; ++i) { ManagedIndex.sol::53 => if (data.length == 0) { ManagedIndexReweightingLogic.sol::38 => for (uint i; i < assets.length(); ++i) { ManagedIndexReweightingLogic.sol::50 => for (uint i; i < _updatedAssets.length; ++i) { ManagedIndexReweightingLogic.sol::96 => for (uint i; i < _inactiveAssets.length; ++i) { TopNMarketCapIndex.sol::48 => for (uint i; i < _assets.length; ++i) { TopNMarketCapReweightingLogic.sol::37 => for (uint i; i < assets.length(); ++i) { TopNMarketCapReweightingLogic.sol::104 => for (uint i; i < _inactiveAssets.length; ++i) { TrackedIndex.sol::35 => for (uint i; i < _assets.length; ++i) { TrackedIndexReweightingLogic.sol::37 => for (uint i; i < assets.length(); ++i) { TrackedIndexReweightingLogic.sol::66 => for (uint i; i < assets.length(); ++i) { UniswapV2PathPriceOracle.sol::34 => for (uint i = 0; i < path.length - 1; i++) { UniswapV2PathPriceOracle.sol::49 => for (uint i = 0; i < path.length - 1; i++) {

Long Revert Strings

Impact

Issue Information: G007 - long (revert) strings

Findings:
TopNMarketCapIndex.sol::74 => revert("TopNMarketCapIndex: REWEIGH_FAILED"); TopNMarketCapReweightingLogic.sol::67 => require(IAccessControl(registry).hasRole(ASSET_ROLE, asset), "TopNMarketCapIndex: INVALID_ASSET"); UniswapV2PathPriceOracle.sol::25 => require(_oracles.length == _path.length - 1, "UniswapV2PathPriceOracle: ORACLES");

Prefix increments are cheaper than postfix increments

Impact

Issue Information: G009 - Prefix increments are cheaper than postfix increments

Findings:
UniswapV2PathPriceOracle.sol::34 => for (uint i = 0; i < path.length - 1; i++) { UniswapV2PathPriceOracle.sol::49 => for (uint i = 0; i < path.length - 1; i++) { libraries/FullMath.sol::124 => result++;
AuditHub

A portfolio for auditors, a security profile for protocols, a hub for web3 security.

Built bymalatrax © 2024

Auditors

Browse

Contests

Browse

Get in touch

ContactTwitter