The current implementation of the Escrow contract allows an arbiter's fee to be set to even as high as 99% of the price, which seems to be an unnecessarily high percentage allowe.
In the provided Escrow.sol contract, the Escrow
constructor includes a check to prevent the arbiter's fee from exceeding the transaction price:
However, the problem with this implementation is that it only checks if the arbiter's fee is equal to or greater than the price, but it does not limit the proportion of the price that the arbiter's fee can be. This means that the arbiter's fee can be set to 99% of the price, which could be seen as unreasonably high for an escrow service.
As indicated in the comment with the "@audit" tag:
Allowing an excessively high arbiter's fee seems like the wrong logic to use
Manual Audit
Consider implementing a restriction on the maximum allowable proportion of the price that can be set as the arbiter's fee. For example, a limitation where the arbiter's fee cannot be more than 50% of the price could be deemed more reasonable.
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.