IArbitratorV1

Git Source

Functions

createDispute

Create a dispute. Must be called by the arbitrable contract. Must be paid at least arbitrationCost(_extraData).

function createDispute(uint256 _choices, bytes calldata _extraData) external payable returns (uint256 disputeID);

Parameters

NameTypeDescription
_choicesuint256Amount of choices the arbitrator can make in this dispute.
_extraDatabytesCan be used to give additional info on the dispute to be created.

Returns

NameTypeDescription
disputeIDuint256ID of the dispute created.

arbitrationCost

Compute the cost of arbitration. It is recommended not to increase it often, as it can be highly time and gas consuming for the arbitrated contracts to cope with fee augmentation.

function arbitrationCost(bytes calldata _extraData) external view returns (uint256 cost);

Parameters

NameTypeDescription
_extraDatabytesCan be used to give additional info on the dispute to be created.

Returns

NameTypeDescription
costuint256Amount to be paid.

appeal

Appeal a ruling. Note that it has to be called before the arbitrator contract calls rule.

function appeal(uint256 _disputeID, bytes calldata _extraData) external payable;

Parameters

NameTypeDescription
_disputeIDuint256ID of the dispute to be appealed.
_extraDatabytesCan be used to give extra info on the appeal.

appealCost

Compute the cost of appeal. It is recommended not to increase it often, as it can be higly time and gas consuming for the arbitrated contracts to cope with fee augmentation.

function appealCost(uint256 _disputeID, bytes calldata _extraData) external view returns (uint256 cost);

Parameters

NameTypeDescription
_disputeIDuint256ID of the dispute to be appealed.
_extraDatabytesCan be used to give additional info on the dispute to be created.

Returns

NameTypeDescription
costuint256Amount to be paid.

appealPeriod

Compute the start and end of the dispute's current or next appeal period, if possible. If not known or appeal is impossible: should return (0, 0).

function appealPeriod(uint256 _disputeID) external view returns (uint256 start, uint256 end);

Parameters

NameTypeDescription
_disputeIDuint256ID of the dispute.

Returns

NameTypeDescription
startuint256The start of the period.
enduint256The end of the period.

disputeStatus

Return the status of a dispute.

function disputeStatus(uint256 _disputeID) external view returns (DisputeStatus status);

Parameters

NameTypeDescription
_disputeIDuint256ID of the dispute to rule.

Returns

NameTypeDescription
statusDisputeStatusThe status of the dispute.

currentRuling

Return the current ruling of a dispute. This is useful for parties to know if they should appeal.

function currentRuling(uint256 _disputeID) external view returns (uint256 ruling);

Parameters

NameTypeDescription
_disputeIDuint256ID of the dispute.

Returns

NameTypeDescription
rulinguint256The ruling which has been given or the one which will be given if there is no appeal.

Events

DisputeCreation

To be emitted when a dispute is created.

event DisputeCreation(uint256 indexed _disputeID, IArbitrableV1 indexed _arbitrable);

AppealPossible

To be emitted when a dispute can be appealed.

event AppealPossible(uint256 indexed _disputeID, IArbitrableV1 indexed _arbitrable);

AppealDecision

To be emitted when the current ruling is appealed.

event AppealDecision(uint256 indexed _disputeID, IArbitrableV1 indexed _arbitrable);

Enums

DisputeStatus

enum DisputeStatus {
    Waiting,
    Appealable,
    Solved
}