ReentrancyGuard is redundant and can be removed.
resolveDispute() makes external calls to the tokenContract, although the tokens that will be used in the contract supposed to be trusted and safe by contest docs, resolveDispute() uses nonReentrant. This causes inconsistency and redundancy and it is inefficient.
Since the same function uses inState() modifier, moving the following line up to L110 will have the same effect:
https://github.com/Cyfrin/2023-07-escrow/blob/65a60eb0773803fa0be4ba72defaec7d8567bccc/src/Escrow.sol#L116
Inconsistency, gas inefficiency.
Manual Review
Remove ReentrancyGuard and move https://github.com/Cyfrin/2023-07-escrow/blob/65a60eb0773803fa0be4ba72defaec7d8567bccc/src/Escrow.sol#L116
to the L:110
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.