Art Gobblers contest - rotcivegaf'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: 65/109

Findings: 1

Award: $55.20

🌟 Selected for report: 0

šŸš€ Solo Findings: 0

QA report

Low Risk

L-NIssueInstances
[L‑01]Missing zero address checks9

Total: 9 instances over 1 issues

Non-critical

N-NIssueInstances
[N‑01]Use ++<VAR> and --<VAR> in all cases5
[N‑02]Old mintStart timestamp11

Total: 16 instances over 2 issues

Low Risk

[L-01] Missing zero address checks

File: /src/utils/GobblerReserve.sol

/*_artGobblers parameter*/
23    constructor(ArtGobblers _artGobblers, address _owner) Owned(_owner) {

/*_owner parameter*/
23    constructor(ArtGobblers _artGobblers, address _owner) Owned(_owner) {
File: /src/Pages.sol

160        Goo _goo,

161        address _community,

162        ArtGobblers _artGobblers,
File: /src/utils/token/PagesERC721.sol

37        ArtGobblers _artGobblers,
File: /src/ArtGobblers.sol

292        Goo _goo,

293        Pages _pages,

294        address _team,

295        address _community,

296        RandProvider _randProvider,

Non-critical

[N-01] Use ++<VAR> and --<VAR> in all cases

Align the code to use ++<VAR> and --<VAR> instead of <VAR>++ and <VAR>--

File: /src/utils/GobblerReserve.sol

37            for (uint256 i = 0; i < ids.length; i++) {
File: /src/Pages.sol

251            for (uint256 i = 0; i < numPages; i++) _mint(community, ++lastMintedPageId);
File: /src/utils/token/PagesERC721.sol

115            _balanceOf[from]--;

117            _balanceOf[to]++;

181            _balanceOf[to]++;

[N-02] Old mintStart timestamp

The timestamp 1656369768 it's the date Mon Jun 27 2022 22:42:48 GMT+0000, was 3 months ago approx(my current timestamp it's 1664230384) I recommend pass the mintStart as parameter of the constructor and make sure it will be greater than the current timestamp Also can set inside the DeployRinkeby contract like, uint256 public immutable mintStart = block.timestamp + <DELTA_TO_START>;

File: /script/deploy/DeployRinkeby.s.sol

11    uint256 public immutable mintStart = 1656369768;

#0 - GalloDaSballo

2022-10-06T19:36:47Z

1L from 0 check

Rest doesn't look pertinent

++ is a gas optimization Time of start can be in the past if the mint can start immediately

#1 - GalloDaSballo

2022-10-06T19:36:49Z

1L

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