{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract Controller",
          "name": "_controller",
          "type": "address"
        },
        {
          "internalType": "uint64",
          "name": "_maxGuardiansPerDraftBatch",
          "type": "uint64"
        },
        {
          "internalType": "uint256",
          "name": "_skippedDisputes",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "disputeId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "AppealDepositSettled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "disputeId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "enum IDisputeManager.DisputeState",
          "name": "state",
          "type": "uint8"
        }
      ],
      "name": "DisputeStateChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "disputeId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint64",
          "name": "termId",
          "type": "uint64"
        }
      ],
      "name": "EvidencePeriodClosed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "disputeId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "guardian",
          "type": "address"
        }
      ],
      "name": "GuardianDrafted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "previousMaxGuardiansPerDraftBatch",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "currentMaxGuardiansPerDraftBatch",
          "type": "uint64"
        }
      ],
      "name": "MaxGuardiansPerDraftBatchChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "ModuleCached",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "disputeId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "contract IArbitrable",
          "name": "subject",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint64",
          "name": "draftTermId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "guardiansNumber",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "metadata",
          "type": "bytes"
        }
      ],
      "name": "NewDispute",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "disputeId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "collectedTokens",
          "type": "uint256"
        }
      ],
      "name": "PenaltiesSettled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        }
      ],
      "name": "RecoverFunds",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "disputeId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "guardian",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "tokens",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "fees",
          "type": "uint256"
        }
      ],
      "name": "RewardSettled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "disputeId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint64",
          "name": "draftTermId",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "guardiansNumber",
          "type": "uint256"
        }
      ],
      "name": "RulingAppealConfirmed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "disputeId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "ruling",
          "type": "uint8"
        }
      ],
      "name": "RulingAppealed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "disputeId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint8",
          "name": "ruling",
          "type": "uint8"
        }
      ],
      "name": "RulingComputed",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "_ids",
          "type": "bytes32[]"
        },
        {
          "internalType": "address[]",
          "name": "_addresses",
          "type": "address[]"
        }
      ],
      "name": "cacheModules",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "contract IArbitrable",
          "name": "_subject",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_disputeId",
          "type": "uint256"
        }
      ],
      "name": "closeEvidencePeriod",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_disputeId",
          "type": "uint256"
        }
      ],
      "name": "computeRuling",
      "outputs": [
        {
          "internalType": "contract IArbitrable",
          "name": "subject",
          "type": "address"
        },
        {
          "internalType": "uint8",
          "name": "finalRuling",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_disputeId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_roundId",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "_ruling",
          "type": "uint8"
        }
      ],
      "name": "confirmAppeal",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_disputeId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_roundId",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "_ruling",
          "type": "uint8"
        }
      ],
      "name": "createAppeal",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "contract IArbitrable",
          "name": "_subject",
          "type": "address"
        },
        {
          "internalType": "uint8",
          "name": "_possibleRulings",
          "type": "uint8"
        },
        {
          "internalType": "bytes",
          "name": "_metadata",
          "type": "bytes"
        }
      ],
      "name": "createDispute",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_disputeId",
          "type": "uint256"
        }
      ],
      "name": "draft",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_voteId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_voter",
          "type": "address"
        }
      ],
      "name": "ensureCanCommit",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_voteId",
          "type": "uint256"
        }
      ],
      "name": "ensureCanCommit",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_voteId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_voter",
          "type": "address"
        }
      ],
      "name": "ensureCanReveal",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_disputeId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_roundId",
          "type": "uint256"
        }
      ],
      "name": "getAppeal",
      "outputs": [
        {
          "internalType": "address",
          "name": "maker",
          "type": "address"
        },
        {
          "internalType": "uint64",
          "name": "appealedRuling",
          "type": "uint64"
        },
        {
          "internalType": "address",
          "name": "taker",
          "type": "address"
        },
        {
          "internalType": "uint64",
          "name": "opposedRuling",
          "type": "uint64"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getController",
      "outputs": [
        {
          "internalType": "contract Controller",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_disputeId",
          "type": "uint256"
        }
      ],
      "name": "getDispute",
      "outputs": [
        {
          "internalType": "contract IArbitrable",
          "name": "subject",
          "type": "address"
        },
        {
          "internalType": "uint8",
          "name": "possibleRulings",
          "type": "uint8"
        },
        {
          "internalType": "enum IDisputeManager.DisputeState",
          "name": "state",
          "type": "uint8"
        },
        {
          "internalType": "uint8",
          "name": "finalRuling",
          "type": "uint8"
        },
        {
          "internalType": "uint256",
          "name": "lastRoundId",
          "type": "uint256"
        },
        {
          "internalType": "uint64",
          "name": "createTermId",
          "type": "uint64"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getDisputeFees",
      "outputs": [
        {
          "internalType": "contract ERC20",
          "name": "feeToken",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "totalFees",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_disputeId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_roundId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_guardian",
          "type": "address"
        }
      ],
      "name": "getGuardian",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "weight",
          "type": "uint64"
        },
        {
          "internalType": "bool",
          "name": "rewarded",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_disputeId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_roundId",
          "type": "uint256"
        }
      ],
      "name": "getNextRoundDetails",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "nextRoundStartTerm",
          "type": "uint64"
        },
        {
          "internalType": "uint64",
          "name": "nextRoundGuardiansNumber",
          "type": "uint64"
        },
        {
          "internalType": "enum IDisputeManager.DisputeState",
          "name": "newDisputeState",
          "type": "uint8"
        },
        {
          "internalType": "contract ERC20",
          "name": "feeToken",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "totalFees",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "guardianFees",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "appealDeposit",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "confirmAppealDeposit",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_disputeId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_roundId",
          "type": "uint256"
        }
      ],
      "name": "getRound",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "draftTerm",
          "type": "uint64"
        },
        {
          "internalType": "uint64",
          "name": "delayedTerms",
          "type": "uint64"
        },
        {
          "internalType": "uint64",
          "name": "guardiansNumber",
          "type": "uint64"
        },
        {
          "internalType": "uint64",
          "name": "selectedGuardians",
          "type": "uint64"
        },
        {
          "internalType": "uint256",
          "name": "guardianFees",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "settledPenalties",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "collectedTokens",
          "type": "uint256"
        },
        {
          "internalType": "uint64",
          "name": "coherentGuardians",
          "type": "uint64"
        },
        {
          "internalType": "enum IDisputeManager.AdjudicationState",
          "name": "state",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "maxGuardiansPerDraftBatch",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "address payable",
          "name": "_to",
          "type": "address"
        }
      ],
      "name": "recoverFunds",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint64",
          "name": "_maxGuardiansPerDraftBatch",
          "type": "uint64"
        }
      ],
      "name": "setMaxGuardiansPerDraftBatch",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_disputeId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_roundId",
          "type": "uint256"
        }
      ],
      "name": "settleAppealDeposit",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_disputeId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_roundId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_guardiansToSettle",
          "type": "uint256"
        }
      ],
      "name": "settlePenalties",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_disputeId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_roundId",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_guardian",
          "type": "address"
        }
      ],
      "name": "settleReward",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ]
}