code-423n4 / 2022-05-opensea-seaport-findings

1 stars 0 forks source link

QA Report #106

Open code423n4 opened 2 years ago

code423n4 commented 2 years ago

QA (LOW & NON-CRITICAL)

Changing critical addresses in contracts should be a two-step process where the first transaction (from the old/current address) registers the new address (i.e. grants ownership) and the second transaction (from the new address) replaces the old address with the new one (i.e. claims ownership). This gives an opportunity to recover from incorrect addresses mistakenly used in the first step. If not, contract functionality might become inaccessible. Reference, Reference

GAS OPTIMIZATIONS

GalloDaSballo commented 2 years ago

The whole project have different solidity compiler ranges (>0.8.7, 0.8.13)

Disagree per discussion on #65

Zero-checks in general / constructor / functions

Disagree for sake of gas savings

At ConduitController.sol, createConduit() function there is no address(0) check and 0 value check for the supplied parameters.

Agree because of #56 Low valid

At ConduitController.sol, createConduit() function is not compared

I believe the code to be fine, however had the warden demonstrated the actual inconsistency with a POC (address != estimate) then the finding could have been upgraded to a higher severity. In lack of that I believe this to be invalid

At ConduitController.sol, getChannel() function, the logic should be;

@0xleastwood @HardlyDifficult @0age this looks valid, wdyt?

Disagree with rest

1 or 2 Low Valid based on Sponsor Feedback

HardlyDifficult commented 2 years ago

At ConduitController.sol, getChannel() function, the logic should be;

The current code is correct. For example, let's say 3 channels were created and getChannel(1) is called. The proposal is if (1 <= 3) revert which should not revert.

GalloDaSballo commented 2 years ago

Updated #67 so

1L + 1 NC