RealitioHomeArbitrationProxy

This contract is meant to be deployed to side-chains (i.e.: xDAI) in which Reality.eth is deployed.

Variables

realitio

contract RealitioInterface realitio

The address of the Realitio contract (v2.1+ required). TRUSTED.

amb

contract IAMB amb

ArbitraryMessageBridge contract address. TRUSTED.

foreignProxy

address foreignProxy

Address of the counter-party proxy on the Foreign Chain. TRUSTED.

foreignChainId

bytes32 foreignChainId

The chain ID where the foreign proxy is deployed.

metadata

string metadata

Metadata for Realitio interface.

Status

enum Status {
  None,
  Rejected,
  Notified,
  AwaitingRuling,
  Ruled,
  Finished
}

Request

struct Request {
  enum RealitioHomeArbitrationProxy.Status status;
  bytes32 arbitratorAnswer;
}

requests

mapping(bytes32 => mapping(address => struct RealitioHomeArbitrationProxy.Request)) requests

Associates an arbitration request with a question ID and a requester address. requests[questionID][requester]

questionIDToRequester

mapping(bytes32 => address) questionIDToRequester

Associates a question ID with the requester who succeeded in requesting arbitration. questionIDToRequester[questionID]

Modifiers

onlyForeignProxy

modifier onlyForeignProxy()

Functions

constructor

constructor(contract IAMB _amb, address _foreignProxy, bytes32 _foreignChainId, contract RealitioInterface _realitio) public

Creates an arbitration proxy on the home chain.

Parameters

receiveArbitrationRequest

function receiveArbitrationRequest(bytes32 _questionID, address _requester, uint256 _maxPrevious) external

Receives the requested arbitration for a question. TRUSTED.

Parameters

handleNotifiedRequest

function handleNotifiedRequest(bytes32 _questionID, address _requester) external

Handles arbitration request after it has been notified to Realitio for a given question.

This method exists because receiveArbitrationRequest is called by the AMB and cannot send messages back to it.

Parameters

handleRejectedRequest

function handleRejectedRequest(bytes32 _questionID, address _requester) external

Handles arbitration request after it has been rejected.

_This method exists because receiveArbitrationRequest is called by the AMB and cannot send messages back to it. Reasons why the request might be rejected:

  • The question does not exist

  • The question was not answered yet

  • The question bond value changed while the arbitration was being requested

  • Another request was already accepted_

Parameters

receiveArbitrationFailure

function receiveArbitrationFailure(bytes32 _questionID, address _requester) external

Receives a failed attempt to request arbitration. TRUSTED.

Currently this can happen only if the arbitration cost increased.

Parameters

receiveArbitrationAnswer

function receiveArbitrationAnswer(bytes32 _questionID, bytes32 _answer) external

Receives the answer to a specified question. TRUSTED.

Parameters

reportArbitrationAnswer

function reportArbitrationAnswer(bytes32 _questionID, bytes32 _lastHistoryHash, bytes32 _lastAnswerOrCommitmentID, address _lastAnswerer) external

Reports the answer provided by the arbitrator to a specified question.

The Realitio contract validates the input parameters passed to this method, so making this publicly accessible is safe.

Parameters

Last updated