OpenSea Seaport contest - sashik_eth's results

A marketplace contract for safely and efficiently creating and fulfilling orders for ERC721 and ERC1155 items.

General Information

Platform: Code4rena

Start Date: 20/05/2022

Pot Size: $1,000,000 USDC

Total HM: 4

Participants: 59

Period: 14 days

Judge: leastwood

Id: 128

League: ETH

OpenSea

Findings Distribution

Researcher Performance

Rank: 49/59

Findings: 1

Award: $435.74

🌟 Selected for report: 0

🚀 Solo Findings: 0

G - Unchecked arithmetic

Using unchecked block for operations that can't overflow/underflow.

This line could be unchecked since if channelIndexPlusOne == 0, thenchannelPreviouslyOpen == false (L138) and if statement on L149 wouldn't be satisfied:

	uint256 removedChannelIndex = channelIndexPlusOne - 1; 

https://github.com/code-423n4/2022-05-opensea-seaport/blob/main/contracts/conduit/ConduitController.sol#L152

This lines could be unchecked due to check on L91 _validateOrderAndUpdateStatus -> _verifyTime, so if orderParameters.endTime <= block.timestamp or orderParameters.startTime > block.timestamp - transaction will be reverted before:

        uint256 duration = orderParameters.endTime - orderParameters.startTime;
        uint256 elapsed = block.timestamp - orderParameters.startTime;
        uint256 remaining = duration - elapsed; 

https://github.com/code-423n4/2022-05-opensea-seaport/blob/main/contracts/lib/OrderFulfiller.sol#L163-L165

#0 - HardlyDifficult

2022-07-04T23:50:49Z

It appears these lines are after the conditional and unchecked should provide small savings.

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