If no arbiter
is configured, initiateDispute
will always revert and funds will be stuck in the Escrow
contract.
When the Escrow
contract is deployed via the EscrowFactory
, price
tokens will be transferred from the buyer
address to the Escrow
contract.
Those funds will be stored in the contract until one of these events happens:
seller
correctly provides its service off-chain and the buyer
executes confirmReceipt
by transferring the funds from the Escrow
contract to the seller
account
buyer
or seller
are in dispute and one of them call initiateDispute
. At this point, the arbiter
considers the situation off-chain and execute resolveDispute
to split the Escrow
funds between the buyer
and seller
(minus the arbiterFee
)
The second option is only available if the arbiter
address is correctly configured, otherwise the call to initiateDispute
will always revert.
In a scenario where a dispute is needed and the arbiter
has not been configured, those funds will always be stuck in the Escrow
contract.
Scenario 1) The seller does not provide the service. In this case, the buyer wants his tokens back, but the only possible option available (because no arbiter is configured) to move funds is confirmReceipt
that would send the funds to the seller who did not provide the service.
Scenario 2) The seller has correctly provided the service, but the buyer refuses to pay and will not execute confirmReceipt
. In this case, the buyer has received the off-chain work, but the seller will not get paid, and the funds will remain in the contract.
Funds remain stuck in the contracts or go to a seller
that have not provided the service.
Manual
The Escrow
contract should always be fully configured to avoid the two scenarios explained above. If the arbiter
or arbiterFee
are not correctly configured, the creation of the Escrow
should revert.
The Escrow.constructor
should perform the following checks:
arbiter != address(0)
arbiterFee
should have a lower bound (proportional to the price
) to incentivize the arbiter
to fulfil the role
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.