The contract has an inconsistent use of the nonReentrant modifier using it on the resolveDispute()
function but not on the confirmReceipt()
function.
Both functions call the safeTransfer
method and so, in this case, they either both should have the modifier or neither should. Considering that they follow the CEI pattern, they both have modifiers only allowing specific users to transfer funds and neither of them can be reentered unless using ERC777 which in this case has been stated as a known issue and is discouraged.
Improves the readability and consistency of the code.
Manual review
Consider either remove the reentrancy guard completely or adding it to all the functions that change state.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.