ForeignGateway

Git Source

Inherits: IForeignGateway

State Variables

DEFAULT_NB_OF_JURORS

uint256 public constant DEFAULT_NB_OF_JURORS = 3;

localDisputeID

uint256 internal localDisputeID = 1;

feeForJuror

mapping(uint96 => uint256) public feeForJuror;

governor

address public governor;

veaOutbox

address public veaOutbox;

senderChainID

uint256 public immutable senderChainID;

senderGateway

address public override senderGateway;

deprecatedVeaOutbox

address public deprecatedVeaOutbox;

deprecatedVeaOutboxExpiration

uint256 public deprecatedVeaOutboxExpiration;

disputeHashtoDisputeData

mapping(bytes32 => DisputeData) public disputeHashtoDisputeData;

Functions

onlyFromVea

modifier onlyFromVea(address _messageSender);

onlyByGovernor

modifier onlyByGovernor();

constructor

constructor(address _governor, address _veaOutbox, address _senderGateway, uint256 _senderChainID);

changeGovernor

Changes the governor.

function changeGovernor(address _governor) external;

Parameters

NameTypeDescription
_governoraddressThe address of the new governor.

changeVea

Changes the outbox.

function changeVea(address _veaOutbox, uint256 _gracePeriod) external onlyByGovernor;

Parameters

NameTypeDescription
_veaOutboxaddressThe address of the new outbox.
_gracePerioduint256The duration to accept messages from the deprecated bridge (if at all).

changeReceiverGateway

Changes the sender gateway.

function changeReceiverGateway(address _senderGateway) external;

Parameters

NameTypeDescription
_senderGatewayaddressThe address of the new sender gateway.

changeCourtJurorFee

Changes the feeForJuror property value of a specified court.

function changeCourtJurorFee(uint96 _courtID, uint256 _feeForJuror) external onlyByGovernor;

Parameters

NameTypeDescription
_courtIDuint96The ID of the court.
_feeForJuroruint256The new value for the feeForJuror property value.

createDispute

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

createDisputeERC20

function createDisputeERC20(uint256, bytes calldata, uint256) external override returns (uint256);

arbitrationCost

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

relayRule

Relay the rule call from the home gateway to the arbitrable.

function relayRule(address _messageSender, bytes32 _disputeHash, uint256 _ruling, address _relayer)
    external
    override
    onlyFromVea(_messageSender);

withdrawFees

function withdrawFees(bytes32 _disputeHash) external override;

disputeHashToForeignID

function disputeHashToForeignID(bytes32 _disputeHash) external view override returns (uint256);

extraDataToCourtIDMinJurors

function extraDataToCourtIDMinJurors(bytes memory _extraData)
    internal
    view
    returns (uint96 courtID, uint256 minJurors);

Events

OutgoingDispute

event OutgoingDispute(
    bytes32 disputeHash,
    bytes32 blockhash,
    uint256 localDisputeID,
    uint256 _choices,
    bytes _extraData,
    address arbitrable
);

ArbitrationCostModified

event ArbitrationCostModified(uint96 indexed _courtID, uint256 _feeForJuror);

Structs

DisputeData

struct DisputeData {
    uint248 id;
    bool ruled;
    address arbitrable;
    uint256 paid;
    address relayer;
}