40,000 USDC
View results
Submission Details
Severity: gas
Valid

The nonReentrant modifier should occur before all other modifiers

Summary

The nonReentrant modifier in line 109. should be place first if there are more than one modifiers.

Vulnerability Details

It is best practice to use it first to prevent reentry in other modifiers. The following is in ln 109.

function resolveDispute(uint256 buyerAward) external onlyArbiter nonReentrant inState(State.Disputed)

Impact

If there is complex logic in other modifiers, they will not be protected against reentry

Tools Used

Manual review

Recommendations

In line 109, this can be used

function resolveDispute(uint256 buyerAward) external nonReentrant onlyArbiter inState(State.Disputed)

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.