Golom contest - giovannidisiena's results

An NFT marketplace that offers the lowest industry fee, a publicly available order-book along with analytical tools.

General Information

Platform: Code4rena

Start Date: 26/07/2022

Pot Size: $75,000 USDC

Total HM: 29

Participants: 179

Period: 6 days

Judge: LSDan

Total Solo HM: 6

Id: 148

League: ETH

Golom

Findings Distribution

Researcher Performance

Rank: 137/179

Findings: 2

Award: $35.17

🌟 Selected for report: 0

🚀 Solo Findings: 0

Judge has assessed an item in Issue #266 as Medium risk. The relevant finding follows:

Stop Using Transfer Use call instead of transfer, as per. This does not introduce any issues for re-entrancy as all calling functions are marked non-reentrant.

#0 - dmvt

2022-10-21T14:19:28Z

Duplicate of #343

Reverting View Function (unreachable code path)

The return statement for an invalid signature is never reached in validateOrder, but since this is a view function then it should not revert and instead defer status check to calling functions (such as in cancelOrder which would be needed to prevent cancellation griefing).

Stop Using Transfer

Use call instead of transfer, as per. This does not introduce any issues for re-entrancy as all calling functions are marked non-reentrant.

Unnecessary Initialization

Avoid unnecessary initialization in VoteEscrowDelegation.sol and RewardDistributor.sol, since variables are zero by default.

Checks Effects Interactions

Re-entrancy via before/afterTokenTransfer hook in mint functions is unlikely as the external contracts would need to also be owner, but it is best practice to follow the Checks Effects Interactions pattern.

Total Supply Validation

The total supply check should exist on the GolomToken mint function itself, rather than just the rewards distributor, to prevent infinite minting by the owner.

Hardhat Console

Remove hardhat console import before deploy.

Timelock Bypass

Validation against the zero address should be added to both setMinter and setDistributor otherwise the owner can subsequently bypass timelock in setting the variables again.

Pre-Compute EIP-712 Typehash

The EIP-712 typehash is designed to be a compile time constant, so update payment and order accordingly.

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