In Escrow.sol
we have confirmReceipt()
and resolveDispute()
:
The confirmReceipt()
allows the buyer to confirm that all is well and the seller has fulfilled his obligations.
The initiateDispute()
function allows either the buyer or the seller to initiate a dispute if they believe the terms of the agreement have not been met.
There is a way for the buyer to try "for free" to see how far the seller is willing to reduce the price.
It is possible for a buyer to constantly try to lower the price and pay less for the audit. This can be done by observing the mempool to see if initiateDispute()
will be called by the seller on disagreement.
For example:
They agreed on $10,000
The buyer tries to reduce by $1000 and succeeds.
He then tries another $500, but the seller is unwilling and decides to call initiateDispute()
.
The buyer sees the transaction in mempool and immediately front-run calls confirmReceipt()
, as he has already lowered the price with 1000$.
This the buyer can constantly do and reduce the price to the seller's tolerance threshold.
The seller (auditor) will lose funds
Manual Review
This is very difficult to prevent and I personally can't think of how to do it.
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.