Platform: Code4rena
Start Date: 07/04/2022
Pot Size: $100,000 USDC
Total HM: 20
Participants: 62
Period: 7 days
Judge: LSDan
Total Solo HM: 11
Id: 107
League: ETH
Rank: 35/62
Findings: 2
Award: $233.96
🌟 Selected for report: 0
🚀 Solo Findings: 0
🌟 Selected for report: Dravee
Also found by: 0x1f8b, 0xDjango, 0xkatana, AuditsAreUS, Cityscape, Foundation, Funen, Hawkeye, IllIllI, JC, JMukesh, Jujic, Kthere, PPrieditis, Picodes, Ruhum, TerrierLover, TrungOre, WatchPug, berndartmueller, catchup, cccz, cmichel, delfin454000, dy, ellahi, hickuphh3, horsefacts, hubble, hyh, ilan, jayjonah8, kebabsec, kenta, minhquanym, pauliax, rayn, reassor, rfa, robee, samruna
151.5077 USDC - $151.51
https://github.com/code-423n4/2022-04-jpegd/blob/main/contracts/vaults/NFTVault.sol#L129 contract is mispelled as "contrat"
/// @param _nftContract The NFT contrat address. It could also be the address of an helper contract
Proposed Change:
/// @param _nftContract The NFT contract address. It could also be the address of an helper contract
🌟 Selected for report: Dravee
Also found by: 0v3rf10w, 0x1f8b, 0xDjango, 0xNazgul, 0xkatana, Cityscape, Cr4ckM3, FSchmoede, Foundation, Funen, Hawkeye, IllIllI, JMukesh, Meta0xNull, PPrieditis, Picodes, TerrierLover, Tomio, WatchPug, berndartmueller, catchup, delfin454000, dirk_y, ellahi, hickuphh3, ilan, kebabsec, kenta, nahnah, rayn, rfa, robee, rokinot, saian, securerodd, slywaters, sorrynotsorry
82.4497 USDC - $82.45
address internal constant ETH = address(0);
could be changed to just
address internal constant ETH;
https://github.com/code-423n4/2022-04-jpegd/blob/main/contracts/vaults/NFTVault.sol#L181
for (uint256 i = 0; i < _typeInitializers.length; i++) { NFTCategoryInitializer memory initializer = _typeInitializers[i]; nftTypeValueETH[initializer.hash] = initializer.valueETH; for (uint256 j = 0; j < initializer.nfts.length; j++) { nftTypes[initializer.nfts[j]] = initializer.hash; } }
Could be changed to
for (uint256 i; i < _typeInitializers.length; i++) { NFTCategoryInitializer memory initializer = _typeInitializers[i]; nftTypeValueETH[initializer.hash] = initializer.valueETH; for (uint256 j; j < initializer.nfts.length; j++) { nftTypes[initializer.nfts[j]] = initializer.hash; } }
https://github.com/code-423n4/2022-04-jpegd/blob/main/contracts/vaults/NFTVault.sol#L181
for (uint256 i = 0; i < _typeInitializers.length; i++) { NFTCategoryInitializer memory initializer = _typeInitializers[i]; nftTypeValueETH[initializer.hash] = initializer.valueETH; for (uint256 j = 0; j < initializer.nfts.length; j++) { nftTypes[initializer.nfts[j]] = initializer.hash; } }
could be changed to
for (uint256 i = 0; i < _typeInitializers.length; ++i) { NFTCategoryInitializer memory initializer = _typeInitializers[i]; nftTypeValueETH[initializer.hash] = initializer.valueETH; for (uint256 j = 0; j < initializer.nfts.length; ++j) { nftTypes[initializer.nfts[j]] = initializer.hash; } }
https://github.com/code-423n4/2022-04-jpegd/blob/main/contracts/vaults/NFTVault.sol#L181
for (uint256 i = 0; i < _typeInitializers.length; i++) { NFTCategoryInitializer memory initializer = _typeInitializers[i]; nftTypeValueETH[initializer.hash] = initializer.valueETH; for (uint256 j = 0; j < initializer.nfts.length; j++) { nftTypes[initializer.nfts[j]] = initializer.hash; } }
Could be changed to
uint typeInitlength = _typeInitializers.length; for (uint256 i = 0; i < typeInitlength; i++) { NFTCategoryInitializer memory initializer = _typeInitializers[i]; nftTypeValueETH[initializer.hash] = initializer.valueETH; for (uint256 j = 0; j < initializer.nfts.length; j++) { nftTypes[initializer.nfts[j]] = initializer.hash; } }