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
Rank: 25/43
Findings: 2
Award: $94.37
🌟 Selected for report: 0
🚀 Solo Findings: 0
🌟 Selected for report: IllIllI
Also found by: 0v3rf10w, 0xDjango, 0xkatana, Dravee, Kenshin, Tadashi, TerrierLover, abhinavmir, defsec, ellahi, fatima_naz, foobar, gzeon, hyh, joestakey, kebabsec, kenta, minhquanym, oyc_109, rayn, robee, sseefried, xpriment626, z3s
62.9884 USDC - $62.99
Issue Information: L003 - Unspecific Compiler Version Pragma
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;
🌟 Selected for report: IllIllI
Also found by: 0v3rf10w, 0xDjango, 0xNazgul, 0xkatana, Dravee, Kenshin, MaratCerby, Tadashi, TerrierLover, Tomio, TrungOre, defsec, ellahi, fatherOfBlocks, fatima_naz, gzeon, joestakey, kenta, minhquanym, oyc_109, rayn, rfa, robee, simon135, slywaters, windhustler, z3s
31.3783 USDC - $31.38
Issue Information: G001 - variables with default value
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++) {
Issue Information: G002 - array length outside loop
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++) {
Issue Information: G007 - long (revert) strings
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");
Issue Information: G009 - Prefix increments are cheaper than postfix increments
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++;