Art Gobblers contest - asutorufos's results

Experimental Decentralized Art Factory By Justin Roiland and Paradigm.

General Information

Platform: Code4rena

Start Date: 20/09/2022

Pot Size: $100,000 USDC

Total HM: 4

Participants: 109

Period: 7 days

Judge: GalloDaSballo

Id: 163

League: ETH

Art Gobblers

Findings Distribution

Researcher Performance

Rank: 69/109

Findings: 1

Award: $55.20

🌟 Selected for report: 0

🚀 Solo Findings: 0

L-1 Missing checks for address(0x0) when assigning values to address state or immutable variables Zero address should be checked for state variables, immutable variables. A zero address can lead into problems.

https://github.com/code-423n4/2022-09-artgobblers/blob/main/src/ArtGobblers.sol#L294-L295

L-2 Missing indexed event parameters Each event should use three indexed fields if there are three or more fields

https://github.com/code-423n4/2022-09-artgobblers/blob/main/src/ArtGobblers.sol#L240

L-3 Use of Block.timestamp Block timestamps have historically been used for a variety of applications, such as entropy for random numbers (see the Entropy Illusion for further details), locking funds for periods of time, and various state-changing conditional statements that are time-dependent. Miners have the ability to adjust timestamps slightly, which can prove to be dangerous if block timestamps are used incorrectly in smart contracts.

https://github.com/code-423n4/2022-09-artgobblers/blob/main/src/ArtGobblers.sol#L399 https://github.com/code-423n4/2022-09-artgobblers/blob/main/src/ArtGobblers.sol#L763

L-4 abi.encodePacked() should not be used with dynamic types when passing the result to a hash function such as keccak256() Use abi.encode() instead which will pad items to 32 bytes, which will prevent hash collisions (e.g. abi.encodePacked(0x123,0x456) => 0x123456 => abi.encodePacked(0x1,0x23456), but abi.encode(0x123,0x456) => 0x0...1230...456). Unless there is a compelling reason, abi.encode should be preferred. If there is only one argument to abi.encodePacked() it can often be cast to bytes() or bytes32() instead.

https://github.com/code-423n4/2022-09-artgobblers/blob/main/src/ArtGobblers.sol#L347

N-1 Large multiples of ten should use scientific notation https://github.com/code-423n4/2022-09-artgobblers/blob/main/src/ArtGobblers.sol#L112

#0 - GalloDaSballo

2022-10-06T00:38:11Z

1L for address(0) 1R for scientific

Rest is not explained

1L 1R

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