{
  "abi": [
    {
      "inputs": [],
      "name": "BondEscalationModule_BondEscalationCantBeSettled",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondEscalationModule_BondEscalationNotOver",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondEscalationModule_BondEscalationOver",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondEscalationModule_CanOnlySurpassByOnePledge",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondEscalationModule_CanOnlyTieDuringTyingBuffer",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondEscalationModule_DisputeDoesNotExist",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondEscalationModule_DisputeNotEscalated",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondEscalationModule_DisputeWindowOver",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondEscalationModule_InvalidEscalationParameters",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondEscalationModule_MaxNumberOfEscalationsReached",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondEscalationModule_NotEscalatable",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondEscalationModule_ShouldBeEscalated",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondEscalationModule_ZeroValue",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "Module_OnlyOracle",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "enum IBondEscalationModule.BondEscalationStatus",
          "name": "_status",
          "type": "uint8"
        }
      ],
      "name": "BondEscalationStatusUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "_responseId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_disputer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_proposer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "enum IOracle.DisputeStatus",
          "name": "_status",
          "type": "uint8"
        }
      ],
      "name": "DisputeStatusChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_pledger",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "PledgedInFavorOfDisputer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_pledger",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "PledgedInFavorOfProposer",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_finalizer",
          "type": "address"
        }
      ],
      "name": "RequestFinalized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "_responseId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_disputer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_proposer",
          "type": "address"
        }
      ],
      "name": "ResponseDisputed",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "decodeRequestData",
      "outputs": [
        {
          "components": [
            {
              "internalType": "contract IBondEscalationAccounting",
              "name": "accountingExtension",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "bondToken",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "bondSize",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "maxNumberOfEscalations",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "bondEscalationDeadline",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "tyingBuffer",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "disputeWindow",
              "type": "uint256"
            }
          ],
          "internalType": "struct IBondEscalationModule.RequestParameters",
          "name": "_params",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "disputeEscalated",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_responseId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_disputer",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_proposer",
          "type": "address"
        }
      ],
      "name": "disputeResponse",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "disputer",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "responseId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "requestId",
              "type": "bytes32"
            },
            {
              "internalType": "enum IOracle.DisputeStatus",
              "name": "status",
              "type": "uint8"
            }
          ],
          "internalType": "struct IOracle.Dispute",
          "name": "_dispute",
          "type": "tuple"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_finalizer",
          "type": "address"
        }
      ],
      "name": "finalizeRequest",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "getEscalation",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "disputeId",
              "type": "bytes32"
            },
            {
              "internalType": "enum IBondEscalationModule.BondEscalationStatus",
              "name": "status",
              "type": "uint8"
            },
            {
              "internalType": "uint256",
              "name": "amountOfPledgesForDispute",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "amountOfPledgesAgainstDispute",
              "type": "uint256"
            }
          ],
          "internalType": "struct IBondEscalationModule.BondEscalation",
          "name": "_escalation",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "moduleName",
      "outputs": [
        {
          "internalType": "string",
          "name": "_moduleName",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "disputer",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "responseId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "requestId",
              "type": "bytes32"
            },
            {
              "internalType": "enum IOracle.DisputeStatus",
              "name": "status",
              "type": "uint8"
            }
          ],
          "internalType": "struct IOracle.Dispute",
          "name": "_dispute",
          "type": "tuple"
        }
      ],
      "name": "onDisputeStatusChange",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "oracle",
      "outputs": [
        {
          "internalType": "address",
          "name": "_oracle",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "pledgeAgainstDispute",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "pledgeForDispute",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_pledger",
          "type": "address"
        }
      ],
      "name": "pledgesAgainstDispute",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_numPledges",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_pledger",
          "type": "address"
        }
      ],
      "name": "pledgesForDispute",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_numPledges",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "requestData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "_requestData",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "settleBondEscalation",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        }
      ],
      "name": "setupRequest",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x",
    "sourceMap": "",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x",
    "sourceMap": "",
    "linkReferences": {}
  },
  "methodIdentifiers": {
    "decodeRequestData(bytes32)": "4d610a46",
    "disputeEscalated(bytes32)": "7fadb88d",
    "disputeResponse(bytes32,bytes32,address,address)": "98660c18",
    "finalizeRequest(bytes32,address)": "309de607",
    "getEscalation(bytes32)": "7068639f",
    "moduleName()": "93f0899a",
    "onDisputeStatusChange(bytes32,(uint256,address,address,bytes32,bytes32,uint8))": "34837c29",
    "oracle()": "7dc0d1d0",
    "pledgeAgainstDispute(bytes32)": "9debee30",
    "pledgeForDispute(bytes32)": "49646830",
    "pledgesAgainstDispute(bytes32,address)": "ef940cef",
    "pledgesForDispute(bytes32,address)": "076404dc",
    "requestData(bytes32)": "3661346b",
    "settleBondEscalation(bytes32)": "9afaec50",
    "setupRequest(bytes32,bytes)": "2e76be2a"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"BondEscalationModule_BondEscalationCantBeSettled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondEscalationModule_BondEscalationNotOver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondEscalationModule_BondEscalationOver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondEscalationModule_CanOnlySurpassByOnePledge\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondEscalationModule_CanOnlyTieDuringTyingBuffer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondEscalationModule_DisputeDoesNotExist\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondEscalationModule_DisputeNotEscalated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondEscalationModule_DisputeWindowOver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondEscalationModule_InvalidEscalationParameters\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondEscalationModule_MaxNumberOfEscalationsReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondEscalationModule_NotEscalatable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondEscalationModule_ShouldBeEscalated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondEscalationModule_ZeroValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_OnlyOracle\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IBondEscalationModule.BondEscalationStatus\",\"name\":\"_status\",\"type\":\"uint8\"}],\"name\":\"BondEscalationStatusUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_responseId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_disputer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum IOracle.DisputeStatus\",\"name\":\"_status\",\"type\":\"uint8\"}],\"name\":\"DisputeStatusChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_pledger\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"PledgedInFavorOfDisputer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_pledger\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"PledgedInFavorOfProposer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_finalizer\",\"type\":\"address\"}],\"name\":\"RequestFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_responseId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_disputer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"}],\"name\":\"ResponseDisputed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"decodeRequestData\",\"outputs\":[{\"components\":[{\"internalType\":\"contract IBondEscalationAccounting\",\"name\":\"accountingExtension\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"bondToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"bondSize\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxNumberOfEscalations\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"bondEscalationDeadline\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tyingBuffer\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"disputeWindow\",\"type\":\"uint256\"}],\"internalType\":\"struct IBondEscalationModule.RequestParameters\",\"name\":\"_params\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"disputeEscalated\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_responseId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_disputer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"}],\"name\":\"disputeResponse\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"disputer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"responseId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"enum IOracle.DisputeStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"internalType\":\"struct IOracle.Dispute\",\"name\":\"_dispute\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_finalizer\",\"type\":\"address\"}],\"name\":\"finalizeRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"getEscalation\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"enum IBondEscalationModule.BondEscalationStatus\",\"name\":\"status\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"amountOfPledgesForDispute\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountOfPledgesAgainstDispute\",\"type\":\"uint256\"}],\"internalType\":\"struct IBondEscalationModule.BondEscalation\",\"name\":\"_escalation\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"moduleName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_moduleName\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"disputer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"responseId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"requestId\",\"type\":\"bytes32\"},{\"internalType\":\"enum IOracle.DisputeStatus\",\"name\":\"status\",\"type\":\"uint8\"}],\"internalType\":\"struct IOracle.Dispute\",\"name\":\"_dispute\",\"type\":\"tuple\"}],\"name\":\"onDisputeStatusChange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_oracle\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"pledgeAgainstDispute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"pledgeForDispute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_pledger\",\"type\":\"address\"}],\"name\":\"pledgesAgainstDispute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_numPledges\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_pledger\",\"type\":\"address\"}],\"name\":\"pledgesForDispute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_numPledges\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"requestData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"_requestData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"settleBondEscalation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"setupRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"BondEscalationStatusUpdated(bytes32,bytes32,uint8)\":{\"params\":{\"_disputeId\":\"The id of the dispute going through the bond escalation mechanism.\",\"_requestId\":\"The id of the request associated with the bond escalation mechanism.\",\"_status\":\"The new status.\"}},\"DisputeStatusChanged(bytes32,bytes32,address,address,uint8)\":{\"params\":{\"_disputer\":\"The address of the disputed\",\"_proposer\":\"The address of the proposer\",\"_requestId\":\"The id of the request\",\"_responseId\":\"The id of the response\",\"_status\":\"The new status of the dispute\"}},\"PledgedInFavorOfDisputer(bytes32,address,uint256)\":{\"params\":{\"_amount\":\"The amount pledged.\",\"_disputeId\":\"The id of the dispute the pledger is pledging in favor of.\",\"_pledger\":\"The address of the pledger.\"}},\"PledgedInFavorOfProposer(bytes32,address,uint256)\":{\"params\":{\"_amount\":\"The amount pledged.\",\"_disputeId\":\"The id of the dispute the pledger is pledging against.\",\"_pledger\":\"The address of the pledger.\"}},\"RequestFinalized(bytes32,address)\":{\"params\":{\"_finalizer\":\"The address that initiated the finalization\",\"_requestId\":\"The ID of the request that was finalized\"}},\"ResponseDisputed(bytes32,bytes32,address,address)\":{\"params\":{\"_disputer\":\"The address of the disputed\",\"_proposer\":\"The address of the proposer\",\"_requestId\":\"The id of the request created\",\"_responseId\":\"The id of the response disputed\"}}},\"kind\":\"dev\",\"methods\":{\"decodeRequestData(bytes32)\":{\"params\":{\"_requestId\":\"The id of the request to decode.\"},\"returns\":{\"_params\":\"The struct containing the parameters for the request\"}},\"disputeEscalated(bytes32)\":{\"params\":{\"_disputeId\":\"The ID of the dispute to escalate.\"}},\"disputeResponse(bytes32,bytes32,address,address)\":{\"details\":\"If this is the first dispute of the request and the bond escalation window is not over,      it will start the bond escalation process. This function must be called through the Oracle.\",\"params\":{\"_disputer\":\"The address of the disputer.\",\"_proposer\":\"The address of the proposer of the response.\",\"_requestId\":\"The ID of the request containing the response to dispute.\",\"_responseId\":\"The ID of the request to dispute.\"},\"returns\":{\"_dispute\":\"The data of the created dispute.\"}},\"finalizeRequest(bytes32,address)\":{\"params\":{\"_finalizer\":\"The address that initiated the finalization\",\"_requestId\":\"The ID of the request being finalized\"}},\"getEscalation(bytes32)\":{\"params\":{\"_requestId\":\"The id of the request to get its escalation data.\"},\"returns\":{\"_escalation\":\"The struct containing the escalation data.\"}},\"moduleName()\":{\"returns\":{\"_moduleName\":\"The name of the module.\"}},\"onDisputeStatusChange(bytes32,(uint256,address,address,bytes32,bytes32,uint8))\":{\"params\":{\"_dispute\":\"The full dispute object.\",\"_disputeId\":\"The ID of the dispute to update the status for.\"}},\"oracle()\":{\"returns\":{\"_oracle\":\"The address of the oracle\"}},\"pledgeAgainstDispute(bytes32)\":{\"details\":\"Must be called directly through this contract. Will revert if the disputeId is not going through         the bond escalation process.If the bond escalation is not tied at the end of its deadline, a tying buffer is added      to avoid scenarios where one of the parties breaks the tie very last second.      During the tying buffer, the losing party can only tie, and once the escalation is tied      no further funds can be pledged.\",\"params\":{\"_disputeId\":\"ID of the dispute id to pledge against.\"}},\"pledgeForDispute(bytes32)\":{\"details\":\"This function must be called directly through this contract.If the bond escalation is not tied at the end of its deadline, a tying buffer is added      to avoid scenarios where one of the parties breaks the tie very last second.      During the tying buffer, the losing party can only tie, and once the escalation is tied      no further funds can be pledged.\",\"params\":{\"_disputeId\":\"The ID of the dispute to pledge for.\"}},\"pledgesAgainstDispute(bytes32,address)\":{\"params\":{\"_pledger\":\"The address of the pledger to get the pledges for.\",\"_requestId\":\"The id of the request to get the pledges for.\"},\"returns\":{\"_numPledges\":\"The number of pledges made by the pledger against the dispute.\"}},\"pledgesForDispute(bytes32,address)\":{\"params\":{\"_pledger\":\"The address of the pledger to get the pledges for.\",\"_requestId\":\"The id of the request to get the pledges for.\"},\"returns\":{\"_numPledges\":\"The number of pledges made by the pledger for the dispute.\"}},\"requestData(bytes32)\":{\"params\":{\"_requestId\":\"The id of the request\"},\"returns\":{\"_requestData\":\"The data of the request\"}},\"settleBondEscalation(bytes32)\":{\"details\":\"Must be called directly through this contract.Can only be called if after the deadline + tyingBuffer window is over, the pledges weren't tied\",\"params\":{\"_requestId\":\"requestId of the request to settle the bond escalation process for.\"}},\"setupRequest(bytes32,bytes)\":{\"params\":{\"_data\":\"The data of the request\",\"_requestId\":\"The ID of the request\"}}},\"title\":\"BondEscalationModule\",\"version\":1},\"userdoc\":{\"errors\":{\"BondEscalationModule_BondEscalationCantBeSettled()\":[{\"notice\":\"Thrown when trying to settle a dispute that went through the bond escalation when it's not active.\"}],\"BondEscalationModule_BondEscalationNotOver()\":[{\"notice\":\"Thrown when trying to escalate a dispute going through the bond escalation module before its deadline.\"}],\"BondEscalationModule_BondEscalationOver()\":[{\"notice\":\"Thrown when trying to pledge after the bond escalation deadline.\"}],\"BondEscalationModule_CanOnlySurpassByOnePledge()\":[{\"notice\":\"Thrown when trying to surpass the number of pledges of the other side by more than 1 in the bond escalation mechanism.\"}],\"BondEscalationModule_CanOnlyTieDuringTyingBuffer()\":[{\"notice\":\"Thrown when trying to tie outside of the tying buffer.\"}],\"BondEscalationModule_DisputeDoesNotExist()\":[{\"notice\":\"Thrown when trying to pledge for a dispute that does not exist\"}],\"BondEscalationModule_DisputeNotEscalated()\":[{\"notice\":\"Thrown when trying to pledge for a dispute that is not going through the bond escalation mechanism.\"}],\"BondEscalationModule_DisputeWindowOver()\":[{\"notice\":\"Thrown when trying to dispute a response after the dispute period expired.\"}],\"BondEscalationModule_InvalidEscalationParameters()\":[{\"notice\":\"Thrown when trying to set up a request with invalid bond size or maximum amount of escalations.\"}],\"BondEscalationModule_MaxNumberOfEscalationsReached()\":[{\"notice\":\"Thrown when the number of escalation pledges of a given dispute has reached its maximum.\"}],\"BondEscalationModule_NotEscalatable()\":[{\"notice\":\"Thrown when trying to escalate a dispute going through the bond escalation process that is not tied         or that is not active.\"}],\"BondEscalationModule_ShouldBeEscalated()\":[{\"notice\":\"Thrown when trying to settle a bond escalation process that is not tied.\"}],\"BondEscalationModule_ZeroValue()\":[{\"notice\":\"Thrown when the max number of escalations or the bond size is set to 0.\"}],\"Module_OnlyOracle()\":[{\"notice\":\"Thrown when the caller is not the oracle\"}]},\"events\":{\"BondEscalationStatusUpdated(bytes32,bytes32,uint8)\":{\"notice\":\"The status of the bond escalation mechanism has been updated.\"},\"DisputeStatusChanged(bytes32,bytes32,address,address,uint8)\":{\"notice\":\"Emitted when a dispute status is updated\"},\"PledgedInFavorOfDisputer(bytes32,address,uint256)\":{\"notice\":\"A pledge has been made in favor of a dispute.\"},\"PledgedInFavorOfProposer(bytes32,address,uint256)\":{\"notice\":\"A pledge has been made against a dispute.\"},\"RequestFinalized(bytes32,address)\":{\"notice\":\"Emitted when a request is finalized\"},\"ResponseDisputed(bytes32,bytes32,address,address)\":{\"notice\":\"Emitted when a response is disputed\"}},\"kind\":\"user\",\"methods\":{\"decodeRequestData(bytes32)\":{\"notice\":\"Decodes the request data associated with a request id.\"},\"disputeEscalated(bytes32)\":{\"notice\":\"Verifies whether the dispute going through the bond escalation mechanism has reached a tie and         updates its escalation status accordingly.\"},\"disputeResponse(bytes32,bytes32,address,address)\":{\"notice\":\"Disputes a response\"},\"finalizeRequest(bytes32,address)\":{\"notice\":\"Finalizes a given request and executes any additional logic set by the chosen modules\"},\"getEscalation(bytes32)\":{\"notice\":\"Returns the escalation data for a request.\"},\"moduleName()\":{\"notice\":\"Returns the name of the module.\"},\"onDisputeStatusChange(bytes32,(uint256,address,address,bytes32,bytes32,uint8))\":{\"notice\":\"Updates the status of a given disputeId and pays the proposer and disputer accordingly. If this         dispute has gone through the bond escalation mechanism, then it will pay the winning pledgers as well.\"},\"oracle()\":{\"notice\":\"Returns the address of the oracle\"},\"pledgeAgainstDispute(bytes32)\":{\"notice\":\"Pledges funds against a given disputeId during its bond escalation process.\"},\"pledgeForDispute(bytes32)\":{\"notice\":\"Bonds funds in favor of a given dispute during the bond escalation process.\"},\"pledgesAgainstDispute(bytes32,address)\":{\"notice\":\"Returns the amount of pledges that a particular pledger has made against a given dispute.\"},\"pledgesForDispute(bytes32,address)\":{\"notice\":\"Returns the amount of pledges that a particular pledger has made for a given dispute.\"},\"requestData(bytes32)\":{\"notice\":\"Returns the data of the request associated with the provided id\"},\"settleBondEscalation(bytes32)\":{\"notice\":\"Settles the bond escalation process of a given requestId.\"},\"setupRequest(bytes32,bytes)\":{\"notice\":\"Stores the request data and runs module-specific hooks\"}},\"notice\":\"Module allowing users to have the first dispute of a request go through the bond escalation mechanism.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"solidity/interfaces/modules/dispute/IBondEscalationModule.sol\":\"IBondEscalationModule\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[\":@defi-wonderland/=node_modules/@defi-wonderland/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":solmate/=node_modules/solmate/src/\"]},\"sources\":{\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IModule.sol\":{\"keccak256\":\"0x72c2f68e8c2b749d9ae745269c706b137a640d6bd6f65f966238b547d61e3a05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4edb1aae7c4abd875d2da44a2dd83781c3c0a3d059edf2d1f2be1c44f865456f\",\"dweb:/ipfs/QmbEHy8tENha1ANEEZADpH4THmqC8aHyCXxFYPw4tS5mf4\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IOracle.sol\":{\"keccak256\":\"0x606262b4bb3b1447b1f6afef8a1b49088956b168a4b066f6f60da4712b95d3cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a763cdb6ba9f12a93e3d5238d6d3235c5c0c229df94793927f9d2abe00542823\",\"dweb:/ipfs/QmbAbfVyCiHvNvhHxc5r8tK5GUuVBATo15Ma5MirhZPtE6\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/dispute/IDisputeModule.sol\":{\"keccak256\":\"0x21707db43d55ba040893ef0ffefa7f9740c6e03b94d750637e6b2c047a16baa4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ae582ca2fdd6fc82c650333066c95a917221282ad7ef15ea62fb4a31e4ed864d\",\"dweb:/ipfs/QmdxvkpNCK46uYv31TxAtxCiRPSoxbT4hrs94WQfR4ctTM\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/finality/IFinalityModule.sol\":{\"keccak256\":\"0xf6f465732ee119879e3317227f9cf6468055f4f98acdb4365f5b4eacda32948e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://82e1928a7bbc5bce95e1b83d917e1470c72a0bec7494f6f42471b21c0f2b641e\",\"dweb:/ipfs/QmSjaBsNhzCfQd5xwZa98LNYSZ1TqAqo6inRTGD31ua4L8\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/request/IRequestModule.sol\":{\"keccak256\":\"0xefa5dd3334a1676cca1c1860c66c16adb1e399917742476d15de8737b5cb0032\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03bcff0500f4054b5f71b0badd1779f8dfaa7fc74fc64788991438a1d9d2d14d\",\"dweb:/ipfs/QmdDjbGPgBfbbyT26Xtt9uBD7nYnhSK43fa9skfuBrfjCc\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/resolution/IResolutionModule.sol\":{\"keccak256\":\"0x36e75a87661b234be605a7455c88eaf4e7cbc9f5b4ea08133dd6d9d5af8d6bc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://232536c4e8b2e9114035e57360976ff24931459fb22a026114d392d3e315ea67\",\"dweb:/ipfs/QmPYKU5RDGMqTZZzCCvVy7ssush4EQGgCCbzbeGpnejGno\"]},\"node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/response/IResponseModule.sol\":{\"keccak256\":\"0xd0610065a22a8d3323427d871a73b835e4d0dffb3afe4bb7e8bbee81b8b9ed1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c72dcbd36f11e87fc21c922684e5524f0c83830dc945ac92614ea1cd770a1bf\",\"dweb:/ipfs/QmfYnQfSDd2jS9QEAdpmDF6wVXWqitQpmJsSeEHs1mtUQP\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"solidity/interfaces/extensions/IAccountingExtension.sol\":{\"keccak256\":\"0x31b990f92e67ce2b480ca97fcc54d44dddaa82fa60259439d8556bfbb7963d0e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://23e6ef2026bf40ef58f625b7377c70e4988902ae14df333e9be35129a57a87f0\",\"dweb:/ipfs/QmW1RfXvujkVHqXazdeTKshba9rX6kzSCRfZKBwLi38Ue5\"]},\"solidity/interfaces/extensions/IBondEscalationAccounting.sol\":{\"keccak256\":\"0xbb8a09dc8120dce27ef6365377acc387e0ef230969b993590cc81aaa096e36d0\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://31c592b9527e6be74502d7ec135a77bb2802662c75df3a05f916fa050fe34747\",\"dweb:/ipfs/QmQBj39ptDdwMzhjgMzkJHNWbL7Ek41YNhMZaKDtKBG7oc\"]},\"solidity/interfaces/modules/dispute/IBondEscalationModule.sol\":{\"keccak256\":\"0x092ef0770e8587b1828891addecd270a0d49de18df36093480e006842dd3ef20\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://93939711123171337804d8acfe5aab8c1924b997cede75d16e13e7e61bf62f08\",\"dweb:/ipfs/QmQp8T8FXe5aJ6oJdUFRnzAoKarmmRihEF9aZiJWdaBwdt\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.19+commit.7dd6d404"
    },
    "language": "Solidity",
    "output": {
      "abi": [
        {
          "inputs": [],
          "type": "error",
          "name": "BondEscalationModule_BondEscalationCantBeSettled"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondEscalationModule_BondEscalationNotOver"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondEscalationModule_BondEscalationOver"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondEscalationModule_CanOnlySurpassByOnePledge"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondEscalationModule_CanOnlyTieDuringTyingBuffer"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondEscalationModule_DisputeDoesNotExist"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondEscalationModule_DisputeNotEscalated"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondEscalationModule_DisputeWindowOver"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondEscalationModule_InvalidEscalationParameters"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondEscalationModule_MaxNumberOfEscalationsReached"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondEscalationModule_NotEscalatable"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondEscalationModule_ShouldBeEscalated"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondEscalationModule_ZeroValue"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "Module_OnlyOracle"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "enum IBondEscalationModule.BondEscalationStatus",
              "name": "_status",
              "type": "uint8",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "BondEscalationStatusUpdated",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_responseId",
              "type": "bytes32",
              "indexed": false
            },
            {
              "internalType": "address",
              "name": "_disputer",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "address",
              "name": "_proposer",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "enum IOracle.DisputeStatus",
              "name": "_status",
              "type": "uint8",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "DisputeStatusChanged",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_pledger",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "PledgedInFavorOfDisputer",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_pledger",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "PledgedInFavorOfProposer",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_finalizer",
              "type": "address",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "RequestFinalized",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_responseId",
              "type": "bytes32",
              "indexed": false
            },
            {
              "internalType": "address",
              "name": "_disputer",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "address",
              "name": "_proposer",
              "type": "address",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "ResponseDisputed",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "decodeRequestData",
          "outputs": [
            {
              "internalType": "struct IBondEscalationModule.RequestParameters",
              "name": "_params",
              "type": "tuple",
              "components": [
                {
                  "internalType": "contract IBondEscalationAccounting",
                  "name": "accountingExtension",
                  "type": "address"
                },
                {
                  "internalType": "contract IERC20",
                  "name": "bondToken",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "bondSize",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "maxNumberOfEscalations",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "bondEscalationDeadline",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "tyingBuffer",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "disputeWindow",
                  "type": "uint256"
                }
              ]
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "disputeEscalated"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "_responseId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_disputer",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "_proposer",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "disputeResponse",
          "outputs": [
            {
              "internalType": "struct IOracle.Dispute",
              "name": "_dispute",
              "type": "tuple",
              "components": [
                {
                  "internalType": "uint256",
                  "name": "createdAt",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "disputer",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "proposer",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "responseId",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "requestId",
                  "type": "bytes32"
                },
                {
                  "internalType": "enum IOracle.DisputeStatus",
                  "name": "status",
                  "type": "uint8"
                }
              ]
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_finalizer",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "finalizeRequest"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "getEscalation",
          "outputs": [
            {
              "internalType": "struct IBondEscalationModule.BondEscalation",
              "name": "_escalation",
              "type": "tuple",
              "components": [
                {
                  "internalType": "bytes32",
                  "name": "disputeId",
                  "type": "bytes32"
                },
                {
                  "internalType": "enum IBondEscalationModule.BondEscalationStatus",
                  "name": "status",
                  "type": "uint8"
                },
                {
                  "internalType": "uint256",
                  "name": "amountOfPledgesForDispute",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amountOfPledgesAgainstDispute",
                  "type": "uint256"
                }
              ]
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "moduleName",
          "outputs": [
            {
              "internalType": "string",
              "name": "_moduleName",
              "type": "string"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            },
            {
              "internalType": "struct IOracle.Dispute",
              "name": "_dispute",
              "type": "tuple",
              "components": [
                {
                  "internalType": "uint256",
                  "name": "createdAt",
                  "type": "uint256"
                },
                {
                  "internalType": "address",
                  "name": "disputer",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "proposer",
                  "type": "address"
                },
                {
                  "internalType": "bytes32",
                  "name": "responseId",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "requestId",
                  "type": "bytes32"
                },
                {
                  "internalType": "enum IOracle.DisputeStatus",
                  "name": "status",
                  "type": "uint8"
                }
              ]
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "onDisputeStatusChange"
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "oracle",
          "outputs": [
            {
              "internalType": "address",
              "name": "_oracle",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "pledgeAgainstDispute"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "pledgeForDispute"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_pledger",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "pledgesAgainstDispute",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "_numPledges",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_pledger",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "pledgesForDispute",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "_numPledges",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "requestData",
          "outputs": [
            {
              "internalType": "bytes",
              "name": "_requestData",
              "type": "bytes"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "settleBondEscalation"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "_data",
              "type": "bytes"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setupRequest"
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {
          "decodeRequestData(bytes32)": {
            "params": {
              "_requestId": "The id of the request to decode."
            },
            "returns": {
              "_params": "The struct containing the parameters for the request"
            }
          },
          "disputeEscalated(bytes32)": {
            "params": {
              "_disputeId": "The ID of the dispute to escalate."
            }
          },
          "disputeResponse(bytes32,bytes32,address,address)": {
            "details": "If this is the first dispute of the request and the bond escalation window is not over,      it will start the bond escalation process. This function must be called through the Oracle.",
            "params": {
              "_disputer": "The address of the disputer.",
              "_proposer": "The address of the proposer of the response.",
              "_requestId": "The ID of the request containing the response to dispute.",
              "_responseId": "The ID of the request to dispute."
            },
            "returns": {
              "_dispute": "The data of the created dispute."
            }
          },
          "finalizeRequest(bytes32,address)": {
            "params": {
              "_finalizer": "The address that initiated the finalization",
              "_requestId": "The ID of the request being finalized"
            }
          },
          "getEscalation(bytes32)": {
            "params": {
              "_requestId": "The id of the request to get its escalation data."
            },
            "returns": {
              "_escalation": "The struct containing the escalation data."
            }
          },
          "moduleName()": {
            "returns": {
              "_moduleName": "The name of the module."
            }
          },
          "onDisputeStatusChange(bytes32,(uint256,address,address,bytes32,bytes32,uint8))": {
            "params": {
              "_dispute": "The full dispute object.",
              "_disputeId": "The ID of the dispute to update the status for."
            }
          },
          "oracle()": {
            "returns": {
              "_oracle": "The address of the oracle"
            }
          },
          "pledgeAgainstDispute(bytes32)": {
            "details": "Must be called directly through this contract. Will revert if the disputeId is not going through         the bond escalation process.If the bond escalation is not tied at the end of its deadline, a tying buffer is added      to avoid scenarios where one of the parties breaks the tie very last second.      During the tying buffer, the losing party can only tie, and once the escalation is tied      no further funds can be pledged.",
            "params": {
              "_disputeId": "ID of the dispute id to pledge against."
            }
          },
          "pledgeForDispute(bytes32)": {
            "details": "This function must be called directly through this contract.If the bond escalation is not tied at the end of its deadline, a tying buffer is added      to avoid scenarios where one of the parties breaks the tie very last second.      During the tying buffer, the losing party can only tie, and once the escalation is tied      no further funds can be pledged.",
            "params": {
              "_disputeId": "The ID of the dispute to pledge for."
            }
          },
          "pledgesAgainstDispute(bytes32,address)": {
            "params": {
              "_pledger": "The address of the pledger to get the pledges for.",
              "_requestId": "The id of the request to get the pledges for."
            },
            "returns": {
              "_numPledges": "The number of pledges made by the pledger against the dispute."
            }
          },
          "pledgesForDispute(bytes32,address)": {
            "params": {
              "_pledger": "The address of the pledger to get the pledges for.",
              "_requestId": "The id of the request to get the pledges for."
            },
            "returns": {
              "_numPledges": "The number of pledges made by the pledger for the dispute."
            }
          },
          "requestData(bytes32)": {
            "params": {
              "_requestId": "The id of the request"
            },
            "returns": {
              "_requestData": "The data of the request"
            }
          },
          "settleBondEscalation(bytes32)": {
            "details": "Must be called directly through this contract.Can only be called if after the deadline + tyingBuffer window is over, the pledges weren't tied",
            "params": {
              "_requestId": "requestId of the request to settle the bond escalation process for."
            }
          },
          "setupRequest(bytes32,bytes)": {
            "params": {
              "_data": "The data of the request",
              "_requestId": "The ID of the request"
            }
          }
        },
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {
          "decodeRequestData(bytes32)": {
            "notice": "Decodes the request data associated with a request id."
          },
          "disputeEscalated(bytes32)": {
            "notice": "Verifies whether the dispute going through the bond escalation mechanism has reached a tie and         updates its escalation status accordingly."
          },
          "disputeResponse(bytes32,bytes32,address,address)": {
            "notice": "Disputes a response"
          },
          "finalizeRequest(bytes32,address)": {
            "notice": "Finalizes a given request and executes any additional logic set by the chosen modules"
          },
          "getEscalation(bytes32)": {
            "notice": "Returns the escalation data for a request."
          },
          "moduleName()": {
            "notice": "Returns the name of the module."
          },
          "onDisputeStatusChange(bytes32,(uint256,address,address,bytes32,bytes32,uint8))": {
            "notice": "Updates the status of a given disputeId and pays the proposer and disputer accordingly. If this         dispute has gone through the bond escalation mechanism, then it will pay the winning pledgers as well."
          },
          "oracle()": {
            "notice": "Returns the address of the oracle"
          },
          "pledgeAgainstDispute(bytes32)": {
            "notice": "Pledges funds against a given disputeId during its bond escalation process."
          },
          "pledgeForDispute(bytes32)": {
            "notice": "Bonds funds in favor of a given dispute during the bond escalation process."
          },
          "pledgesAgainstDispute(bytes32,address)": {
            "notice": "Returns the amount of pledges that a particular pledger has made against a given dispute."
          },
          "pledgesForDispute(bytes32,address)": {
            "notice": "Returns the amount of pledges that a particular pledger has made for a given dispute."
          },
          "requestData(bytes32)": {
            "notice": "Returns the data of the request associated with the provided id"
          },
          "settleBondEscalation(bytes32)": {
            "notice": "Settles the bond escalation process of a given requestId."
          },
          "setupRequest(bytes32,bytes)": {
            "notice": "Stores the request data and runs module-specific hooks"
          }
        },
        "version": 1
      }
    },
    "settings": {
      "remappings": [
        "@defi-wonderland/=node_modules/@defi-wonderland/",
        "@openzeppelin/=node_modules/@openzeppelin/",
        "ds-test/=node_modules/ds-test/src/",
        "forge-std/=node_modules/forge-std/src/",
        "solmate/=node_modules/solmate/src/"
      ],
      "optimizer": {
        "enabled": true,
        "runs": 10000
      },
      "metadata": {
        "bytecodeHash": "ipfs"
      },
      "compilationTarget": {
        "solidity/interfaces/modules/dispute/IBondEscalationModule.sol": "IBondEscalationModule"
      },
      "libraries": {}
    },
    "sources": {
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IModule.sol": {
        "keccak256": "0x72c2f68e8c2b749d9ae745269c706b137a640d6bd6f65f966238b547d61e3a05",
        "urls": [
          "bzz-raw://4edb1aae7c4abd875d2da44a2dd83781c3c0a3d059edf2d1f2be1c44f865456f",
          "dweb:/ipfs/QmbEHy8tENha1ANEEZADpH4THmqC8aHyCXxFYPw4tS5mf4"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IOracle.sol": {
        "keccak256": "0x606262b4bb3b1447b1f6afef8a1b49088956b168a4b066f6f60da4712b95d3cf",
        "urls": [
          "bzz-raw://a763cdb6ba9f12a93e3d5238d6d3235c5c0c229df94793927f9d2abe00542823",
          "dweb:/ipfs/QmbAbfVyCiHvNvhHxc5r8tK5GUuVBATo15Ma5MirhZPtE6"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/dispute/IDisputeModule.sol": {
        "keccak256": "0x21707db43d55ba040893ef0ffefa7f9740c6e03b94d750637e6b2c047a16baa4",
        "urls": [
          "bzz-raw://ae582ca2fdd6fc82c650333066c95a917221282ad7ef15ea62fb4a31e4ed864d",
          "dweb:/ipfs/QmdxvkpNCK46uYv31TxAtxCiRPSoxbT4hrs94WQfR4ctTM"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/finality/IFinalityModule.sol": {
        "keccak256": "0xf6f465732ee119879e3317227f9cf6468055f4f98acdb4365f5b4eacda32948e",
        "urls": [
          "bzz-raw://82e1928a7bbc5bce95e1b83d917e1470c72a0bec7494f6f42471b21c0f2b641e",
          "dweb:/ipfs/QmSjaBsNhzCfQd5xwZa98LNYSZ1TqAqo6inRTGD31ua4L8"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/request/IRequestModule.sol": {
        "keccak256": "0xefa5dd3334a1676cca1c1860c66c16adb1e399917742476d15de8737b5cb0032",
        "urls": [
          "bzz-raw://03bcff0500f4054b5f71b0badd1779f8dfaa7fc74fc64788991438a1d9d2d14d",
          "dweb:/ipfs/QmdDjbGPgBfbbyT26Xtt9uBD7nYnhSK43fa9skfuBrfjCc"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/resolution/IResolutionModule.sol": {
        "keccak256": "0x36e75a87661b234be605a7455c88eaf4e7cbc9f5b4ea08133dd6d9d5af8d6bc6",
        "urls": [
          "bzz-raw://232536c4e8b2e9114035e57360976ff24931459fb22a026114d392d3e315ea67",
          "dweb:/ipfs/QmPYKU5RDGMqTZZzCCvVy7ssush4EQGgCCbzbeGpnejGno"
        ],
        "license": "MIT"
      },
      "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/response/IResponseModule.sol": {
        "keccak256": "0xd0610065a22a8d3323427d871a73b835e4d0dffb3afe4bb7e8bbee81b8b9ed1b",
        "urls": [
          "bzz-raw://8c72dcbd36f11e87fc21c922684e5524f0c83830dc945ac92614ea1cd770a1bf",
          "dweb:/ipfs/QmfYnQfSDd2jS9QEAdpmDF6wVXWqitQpmJsSeEHs1mtUQP"
        ],
        "license": "MIT"
      },
      "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": {
        "keccak256": "0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305",
        "urls": [
          "bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5",
          "dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"
        ],
        "license": "MIT"
      },
      "solidity/interfaces/extensions/IAccountingExtension.sol": {
        "keccak256": "0x31b990f92e67ce2b480ca97fcc54d44dddaa82fa60259439d8556bfbb7963d0e",
        "urls": [
          "bzz-raw://23e6ef2026bf40ef58f625b7377c70e4988902ae14df333e9be35129a57a87f0",
          "dweb:/ipfs/QmW1RfXvujkVHqXazdeTKshba9rX6kzSCRfZKBwLi38Ue5"
        ],
        "license": "MIT"
      },
      "solidity/interfaces/extensions/IBondEscalationAccounting.sol": {
        "keccak256": "0xbb8a09dc8120dce27ef6365377acc387e0ef230969b993590cc81aaa096e36d0",
        "urls": [
          "bzz-raw://31c592b9527e6be74502d7ec135a77bb2802662c75df3a05f916fa050fe34747",
          "dweb:/ipfs/QmQBj39ptDdwMzhjgMzkJHNWbL7Ek41YNhMZaKDtKBG7oc"
        ],
        "license": "AGPL-3.0-only"
      },
      "solidity/interfaces/modules/dispute/IBondEscalationModule.sol": {
        "keccak256": "0x092ef0770e8587b1828891addecd270a0d49de18df36093480e006842dd3ef20",
        "urls": [
          "bzz-raw://93939711123171337804d8acfe5aab8c1924b997cede75d16e13e7e61bf62f08",
          "dweb:/ipfs/QmQp8T8FXe5aJ6oJdUFRnzAoKarmmRihEF9aZiJWdaBwdt"
        ],
        "license": "AGPL-3.0-only"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "solidity/interfaces/modules/dispute/IBondEscalationModule.sol",
    "id": 43005,
    "exportedSymbols": {
      "IBondEscalationAccounting": [
        42784
      ],
      "IBondEscalationModule": [
        43004
      ],
      "IDisputeModule": [
        2346
      ],
      "IERC20": [
        2822
      ],
      "IOracle": [
        2282
      ]
    },
    "nodeType": "SourceUnit",
    "src": "42:12246:62",
    "nodes": [
      {
        "id": 42804,
        "nodeType": "PragmaDirective",
        "src": "42:24:62",
        "nodes": [],
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".19"
        ]
      },
      {
        "id": 42806,
        "nodeType": "ImportDirective",
        "src": "68:70:62",
        "nodes": [],
        "absolutePath": "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol",
        "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 43005,
        "sourceUnit": 2823,
        "symbolAliases": [
          {
            "foreign": {
              "id": 42805,
              "name": "IERC20",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2822,
              "src": "76:6:62",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 42808,
        "nodeType": "ImportDirective",
        "src": "139:96:62",
        "nodes": [],
        "absolutePath": "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/IOracle.sol",
        "file": "@defi-wonderland/prophet-core-contracts/solidity/interfaces/IOracle.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 43005,
        "sourceUnit": 2283,
        "symbolAliases": [
          {
            "foreign": {
              "id": 42807,
              "name": "IOracle",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2282,
              "src": "147:7:62",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 42810,
        "nodeType": "ImportDirective",
        "src": "236:128:62",
        "nodes": [],
        "absolutePath": "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/dispute/IDisputeModule.sol",
        "file": "@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/dispute/IDisputeModule.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 43005,
        "sourceUnit": 2347,
        "symbolAliases": [
          {
            "foreign": {
              "id": 42809,
              "name": "IDisputeModule",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2346,
              "src": "244:14:62",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 42812,
        "nodeType": "ImportDirective",
        "src": "366:89:62",
        "nodes": [],
        "absolutePath": "solidity/interfaces/extensions/IBondEscalationAccounting.sol",
        "file": "../../extensions/IBondEscalationAccounting.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 43005,
        "sourceUnit": 42785,
        "symbolAliases": [
          {
            "foreign": {
              "id": 42811,
              "name": "IBondEscalationAccounting",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 42784,
              "src": "374:25:62",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 43004,
        "nodeType": "ContractDefinition",
        "src": "610:11677:62",
        "nodes": [
          {
            "id": 42824,
            "nodeType": "EventDefinition",
            "src": "1089:110:62",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 42816,
              "nodeType": "StructuredDocumentation",
              "src": "837:249:62",
              "text": " @notice A pledge has been made in favor of a dispute.\n @param _disputeId The id of the dispute the pledger is pledging in favor of.\n @param _pledger   The address of the pledger.\n @param _amount    The amount pledged."
            },
            "eventSelector": "6ec006063fa149998ddb865f7e6cfed978cd521d6c06c556c8355d7dc3da6c59",
            "name": "PledgedInFavorOfDisputer",
            "nameLocation": "1095:24:62",
            "parameters": {
              "id": 42823,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42818,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "1136:10:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42824,
                  "src": "1120:26:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42817,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1120:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42820,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_pledger",
                  "nameLocation": "1164:8:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42824,
                  "src": "1148:24:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 42819,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1148:7:62",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42822,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_amount",
                  "nameLocation": "1190:7:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42824,
                  "src": "1174:23:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42821,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1174:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1119:79:62"
            }
          },
          {
            "id": 42833,
            "nodeType": "EventDefinition",
            "src": "1447:110:62",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 42825,
              "nodeType": "StructuredDocumentation",
              "src": "1203:241:62",
              "text": " @notice A pledge has been made against a dispute.\n @param _disputeId The id of the dispute the pledger is pledging against.\n @param _pledger   The address of the pledger.\n @param _amount    The amount pledged."
            },
            "eventSelector": "3a48d55c6657f7a9112ecbe53292735822d7cd7a31fb5e59c4b46fc86bf93983",
            "name": "PledgedInFavorOfProposer",
            "nameLocation": "1453:24:62",
            "parameters": {
              "id": 42832,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42827,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "1494:10:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42833,
                  "src": "1478:26:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42826,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1478:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42829,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_pledger",
                  "nameLocation": "1522:8:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42833,
                  "src": "1506:24:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 42828,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1506:7:62",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42831,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_amount",
                  "nameLocation": "1548:7:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42833,
                  "src": "1532:23:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42830,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1532:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1477:79:62"
            }
          },
          {
            "id": 42843,
            "nodeType": "EventDefinition",
            "src": "1874:128:62",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 42834,
              "nodeType": "StructuredDocumentation",
              "src": "1561:310:62",
              "text": " @notice The status of the bond escalation mechanism has been updated.\n @param _requestId The id of the request associated with the bond escalation mechanism.\n @param _disputeId The id of the dispute going through the bond escalation mechanism.\n @param _status    The new status."
            },
            "eventSelector": "7321d41e15b6e1528c11d6a510979859cdbecc491a1b5f248ac7ac37f6d93ee6",
            "name": "BondEscalationStatusUpdated",
            "nameLocation": "1880:27:62",
            "parameters": {
              "id": 42842,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42836,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "1929:10:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42843,
                  "src": "1913:26:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42835,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1913:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42838,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "1957:10:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42843,
                  "src": "1941:26:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42837,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1941:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42841,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_status",
                  "nameLocation": "1990:7:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42843,
                  "src": "1969:28:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_BondEscalationStatus_$42888",
                    "typeString": "enum IBondEscalationModule.BondEscalationStatus"
                  },
                  "typeName": {
                    "id": 42840,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42839,
                      "name": "BondEscalationStatus",
                      "nameLocations": [
                        "1969:20:62"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42888,
                      "src": "1969:20:62"
                    },
                    "referencedDeclaration": 42888,
                    "src": "1969:20:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_BondEscalationStatus_$42888",
                      "typeString": "enum IBondEscalationModule.BondEscalationStatus"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1907:94:62"
            }
          },
          {
            "id": 42846,
            "nodeType": "ErrorDefinition",
            "src": "2307:51:62",
            "nodes": [],
            "documentation": {
              "id": 42844,
              "nodeType": "StructuredDocumentation",
              "src": "2179:125:62",
              "text": " @notice Thrown when trying to escalate a dispute going through the bond escalation module before its deadline."
            },
            "errorSelector": "3dec5dcf",
            "name": "BondEscalationModule_BondEscalationNotOver",
            "nameLocation": "2313:42:62",
            "parameters": {
              "id": 42845,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2355:2:62"
            }
          },
          {
            "id": 42849,
            "nodeType": "ErrorDefinition",
            "src": "2486:49:62",
            "nodes": [],
            "documentation": {
              "id": 42847,
              "nodeType": "StructuredDocumentation",
              "src": "2361:122:62",
              "text": " @notice Thrown when trying to pledge for a dispute that is not going through the bond escalation mechanism."
            },
            "errorSelector": "ed147c8e",
            "name": "BondEscalationModule_DisputeNotEscalated",
            "nameLocation": "2492:40:62",
            "parameters": {
              "id": 42848,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2532:2:62"
            }
          },
          {
            "id": 42852,
            "nodeType": "ErrorDefinition",
            "src": "2652:59:62",
            "nodes": [],
            "documentation": {
              "id": 42850,
              "nodeType": "StructuredDocumentation",
              "src": "2538:111:62",
              "text": " @notice Thrown when the number of escalation pledges of a given dispute has reached its maximum."
            },
            "errorSelector": "87459fd7",
            "name": "BondEscalationModule_MaxNumberOfEscalationsReached",
            "nameLocation": "2658:50:62",
            "parameters": {
              "id": 42851,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2708:2:62"
            }
          },
          {
            "id": 42855,
            "nodeType": "ErrorDefinition",
            "src": "2838:57:62",
            "nodes": [],
            "documentation": {
              "id": 42853,
              "nodeType": "StructuredDocumentation",
              "src": "2714:121:62",
              "text": " @notice Thrown when trying to settle a dispute that went through the bond escalation when it's not active."
            },
            "errorSelector": "7b45fd71",
            "name": "BondEscalationModule_BondEscalationCantBeSettled",
            "nameLocation": "2844:48:62",
            "parameters": {
              "id": 42854,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2892:2:62"
            }
          },
          {
            "id": 42858,
            "nodeType": "ErrorDefinition",
            "src": "2996:47:62",
            "nodes": [],
            "documentation": {
              "id": 42856,
              "nodeType": "StructuredDocumentation",
              "src": "2898:95:62",
              "text": " @notice Thrown when trying to settle a bond escalation process that is not tied."
            },
            "errorSelector": "ba7a57f3",
            "name": "BondEscalationModule_ShouldBeEscalated",
            "nameLocation": "3002:38:62",
            "parameters": {
              "id": 42857,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3040:2:62"
            }
          },
          {
            "id": 42861,
            "nodeType": "ErrorDefinition",
            "src": "3126:57:62",
            "nodes": [],
            "documentation": {
              "id": 42859,
              "nodeType": "StructuredDocumentation",
              "src": "3046:77:62",
              "text": " @notice Thrown when trying to tie outside of the tying buffer."
            },
            "errorSelector": "b82c5330",
            "name": "BondEscalationModule_CanOnlyTieDuringTyingBuffer",
            "nameLocation": "3132:48:62",
            "parameters": {
              "id": 42860,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3180:2:62"
            }
          },
          {
            "id": 42864,
            "nodeType": "ErrorDefinition",
            "src": "3283:39:62",
            "nodes": [],
            "documentation": {
              "id": 42862,
              "nodeType": "StructuredDocumentation",
              "src": "3186:94:62",
              "text": " @notice Thrown when the max number of escalations or the bond size is set to 0."
            },
            "errorSelector": "fd949f92",
            "name": "BondEscalationModule_ZeroValue",
            "nameLocation": "3289:30:62",
            "parameters": {
              "id": 42863,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3319:2:62"
            }
          },
          {
            "id": 42867,
            "nodeType": "ErrorDefinition",
            "src": "3415:48:62",
            "nodes": [],
            "documentation": {
              "id": 42865,
              "nodeType": "StructuredDocumentation",
              "src": "3325:87:62",
              "text": " @notice Thrown when trying to pledge after the bond escalation deadline."
            },
            "errorSelector": "d53b827d",
            "name": "BondEscalationModule_BondEscalationOver",
            "nameLocation": "3421:39:62",
            "parameters": {
              "id": 42866,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3460:2:62"
            }
          },
          {
            "id": 42870,
            "nodeType": "ErrorDefinition",
            "src": "3627:44:62",
            "nodes": [],
            "documentation": {
              "id": 42868,
              "nodeType": "StructuredDocumentation",
              "src": "3466:158:62",
              "text": " @notice Thrown when trying to escalate a dispute going through the bond escalation process that is not tied\n         or that is not active."
            },
            "errorSelector": "6c886a93",
            "name": "BondEscalationModule_NotEscalatable",
            "nameLocation": "3633:35:62",
            "parameters": {
              "id": 42869,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3668:2:62"
            }
          },
          {
            "id": 42873,
            "nodeType": "ErrorDefinition",
            "src": "3762:49:62",
            "nodes": [],
            "documentation": {
              "id": 42871,
              "nodeType": "StructuredDocumentation",
              "src": "3674:85:62",
              "text": " @notice Thrown when trying to pledge for a dispute that does not exist"
            },
            "errorSelector": "03964145",
            "name": "BondEscalationModule_DisputeDoesNotExist",
            "nameLocation": "3768:40:62",
            "parameters": {
              "id": 42872,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3808:2:62"
            }
          },
          {
            "id": 42876,
            "nodeType": "ErrorDefinition",
            "src": "3958:55:62",
            "nodes": [],
            "documentation": {
              "id": 42874,
              "nodeType": "StructuredDocumentation",
              "src": "3814:141:62",
              "text": " @notice Thrown when trying to surpass the number of pledges of the other side by more than 1 in the bond escalation mechanism."
            },
            "errorSelector": "752e0573",
            "name": "BondEscalationModule_CanOnlySurpassByOnePledge",
            "nameLocation": "3964:46:62",
            "parameters": {
              "id": 42875,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4010:2:62"
            }
          },
          {
            "id": 42879,
            "nodeType": "ErrorDefinition",
            "src": "4116:47:62",
            "nodes": [],
            "documentation": {
              "id": 42877,
              "nodeType": "StructuredDocumentation",
              "src": "4016:97:62",
              "text": " @notice Thrown when trying to dispute a response after the dispute period expired."
            },
            "errorSelector": "c1485a80",
            "name": "BondEscalationModule_DisputeWindowOver",
            "nameLocation": "4122:38:62",
            "parameters": {
              "id": 42878,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4160:2:62"
            }
          },
          {
            "id": 42882,
            "nodeType": "ErrorDefinition",
            "src": "4287:57:62",
            "nodes": [],
            "documentation": {
              "id": 42880,
              "nodeType": "StructuredDocumentation",
              "src": "4166:118:62",
              "text": " @notice Thrown when trying to set up a request with invalid bond size or maximum amount of escalations."
            },
            "errorSelector": "b0a7ec45",
            "name": "BondEscalationModule_InvalidEscalationParameters",
            "nameLocation": "4293:48:62",
            "parameters": {
              "id": 42881,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4341:2:62"
            }
          },
          {
            "id": 42888,
            "nodeType": "EnumDefinition",
            "src": "4642:433:62",
            "nodes": [],
            "canonicalName": "IBondEscalationModule.BondEscalationStatus",
            "members": [
              {
                "id": 42883,
                "name": "None",
                "nameLocation": "4674:4:62",
                "nodeType": "EnumValue",
                "src": "4674:4:62"
              },
              {
                "id": 42884,
                "name": "Active",
                "nameLocation": "4747:6:62",
                "nodeType": "EnumValue",
                "src": "4747:6:62"
              },
              {
                "id": 42885,
                "name": "Escalated",
                "nameLocation": "4818:9:62",
                "nodeType": "EnumValue",
                "src": "4818:9:62"
              },
              {
                "id": 42886,
                "name": "DisputerLost",
                "nameLocation": "4915:12:62",
                "nodeType": "EnumValue",
                "src": "4915:12:62"
              },
              {
                "id": 42887,
                "name": "DisputerWon",
                "nameLocation": "4997:11:62",
                "nodeType": "EnumValue",
                "src": "4997:11:62"
              }
            ],
            "name": "BondEscalationStatus",
            "nameLocation": "4647:20:62"
          },
          {
            "id": 42905,
            "nodeType": "StructDefinition",
            "src": "6254:249:62",
            "nodes": [],
            "canonicalName": "IBondEscalationModule.RequestParameters",
            "members": [
              {
                "constant": false,
                "id": 42891,
                "mutability": "mutable",
                "name": "accountingExtension",
                "nameLocation": "6311:19:62",
                "nodeType": "VariableDeclaration",
                "scope": 42905,
                "src": "6285:45:62",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_IBondEscalationAccounting_$42784",
                  "typeString": "contract IBondEscalationAccounting"
                },
                "typeName": {
                  "id": 42890,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 42889,
                    "name": "IBondEscalationAccounting",
                    "nameLocations": [
                      "6285:25:62"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 42784,
                    "src": "6285:25:62"
                  },
                  "referencedDeclaration": 42784,
                  "src": "6285:25:62",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IBondEscalationAccounting_$42784",
                    "typeString": "contract IBondEscalationAccounting"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 42894,
                "mutability": "mutable",
                "name": "bondToken",
                "nameLocation": "6343:9:62",
                "nodeType": "VariableDeclaration",
                "scope": 42905,
                "src": "6336:16:62",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_IERC20_$2822",
                  "typeString": "contract IERC20"
                },
                "typeName": {
                  "id": 42893,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 42892,
                    "name": "IERC20",
                    "nameLocations": [
                      "6336:6:62"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 2822,
                    "src": "6336:6:62"
                  },
                  "referencedDeclaration": 2822,
                  "src": "6336:6:62",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$2822",
                    "typeString": "contract IERC20"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 42896,
                "mutability": "mutable",
                "name": "bondSize",
                "nameLocation": "6366:8:62",
                "nodeType": "VariableDeclaration",
                "scope": 42905,
                "src": "6358:16:62",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 42895,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "6358:7:62",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 42898,
                "mutability": "mutable",
                "name": "maxNumberOfEscalations",
                "nameLocation": "6388:22:62",
                "nodeType": "VariableDeclaration",
                "scope": 42905,
                "src": "6380:30:62",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 42897,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "6380:7:62",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 42900,
                "mutability": "mutable",
                "name": "bondEscalationDeadline",
                "nameLocation": "6424:22:62",
                "nodeType": "VariableDeclaration",
                "scope": 42905,
                "src": "6416:30:62",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 42899,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "6416:7:62",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 42902,
                "mutability": "mutable",
                "name": "tyingBuffer",
                "nameLocation": "6460:11:62",
                "nodeType": "VariableDeclaration",
                "scope": 42905,
                "src": "6452:19:62",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 42901,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "6452:7:62",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 42904,
                "mutability": "mutable",
                "name": "disputeWindow",
                "nameLocation": "6485:13:62",
                "nodeType": "VariableDeclaration",
                "scope": 42905,
                "src": "6477:21:62",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 42903,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "6477:7:62",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "RequestParameters",
            "nameLocation": "6261:17:62",
            "scope": 43004,
            "visibility": "public"
          },
          {
            "id": 42915,
            "nodeType": "StructDefinition",
            "src": "6945:165:62",
            "nodes": [],
            "canonicalName": "IBondEscalationModule.BondEscalation",
            "members": [
              {
                "constant": false,
                "id": 42907,
                "mutability": "mutable",
                "name": "disputeId",
                "nameLocation": "6981:9:62",
                "nodeType": "VariableDeclaration",
                "scope": 42915,
                "src": "6973:17:62",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 42906,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "6973:7:62",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 42910,
                "mutability": "mutable",
                "name": "status",
                "nameLocation": "7017:6:62",
                "nodeType": "VariableDeclaration",
                "scope": 42915,
                "src": "6996:27:62",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_BondEscalationStatus_$42888",
                  "typeString": "enum IBondEscalationModule.BondEscalationStatus"
                },
                "typeName": {
                  "id": 42909,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 42908,
                    "name": "BondEscalationStatus",
                    "nameLocations": [
                      "6996:20:62"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 42888,
                    "src": "6996:20:62"
                  },
                  "referencedDeclaration": 42888,
                  "src": "6996:20:62",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_BondEscalationStatus_$42888",
                    "typeString": "enum IBondEscalationModule.BondEscalationStatus"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 42912,
                "mutability": "mutable",
                "name": "amountOfPledgesForDispute",
                "nameLocation": "7037:25:62",
                "nodeType": "VariableDeclaration",
                "scope": 42915,
                "src": "7029:33:62",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 42911,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "7029:7:62",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 42914,
                "mutability": "mutable",
                "name": "amountOfPledgesAgainstDispute",
                "nameLocation": "7076:29:62",
                "nodeType": "VariableDeclaration",
                "scope": 42915,
                "src": "7068:37:62",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 42913,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "7068:7:62",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "BondEscalation",
            "nameLocation": "6952:14:62",
            "scope": 43004,
            "visibility": "public"
          },
          {
            "id": 42924,
            "nodeType": "FunctionDefinition",
            "src": "7499:101:62",
            "nodes": [],
            "documentation": {
              "id": 42916,
              "nodeType": "StructuredDocumentation",
              "src": "7290:206:62",
              "text": " @notice Returns the escalation data for a request.\n @param _requestId The id of the request to get its escalation data.\n @return _escalation The struct containing the escalation data."
            },
            "functionSelector": "7068639f",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getEscalation",
            "nameLocation": "7508:13:62",
            "parameters": {
              "id": 42919,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42918,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "7530:10:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42924,
                  "src": "7522:18:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42917,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7522:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7521:20:62"
            },
            "returnParameters": {
              "id": 42923,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42922,
                  "mutability": "mutable",
                  "name": "_escalation",
                  "nameLocation": "7587:11:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42924,
                  "src": "7565:33:62",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_BondEscalation_$42915_memory_ptr",
                    "typeString": "struct IBondEscalationModule.BondEscalation"
                  },
                  "typeName": {
                    "id": 42921,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42920,
                      "name": "BondEscalation",
                      "nameLocations": [
                        "7565:14:62"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42915,
                      "src": "7565:14:62"
                    },
                    "referencedDeclaration": 42915,
                    "src": "7565:14:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_BondEscalation_$42915_storage_ptr",
                      "typeString": "struct IBondEscalationModule.BondEscalation"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7564:35:62"
            },
            "scope": 43004,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 42933,
            "nodeType": "FunctionDefinition",
            "src": "7814:104:62",
            "nodes": [],
            "documentation": {
              "id": 42925,
              "nodeType": "StructuredDocumentation",
              "src": "7604:207:62",
              "text": " @notice Decodes the request data associated with a request id.\n @param _requestId The id of the request to decode.\n @return _params The struct containing the parameters for the request"
            },
            "functionSelector": "4d610a46",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "decodeRequestData",
            "nameLocation": "7823:17:62",
            "parameters": {
              "id": 42928,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42927,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "7849:10:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42933,
                  "src": "7841:18:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42926,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7841:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7840:20:62"
            },
            "returnParameters": {
              "id": 42932,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42931,
                  "mutability": "mutable",
                  "name": "_params",
                  "nameLocation": "7909:7:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42933,
                  "src": "7884:32:62",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RequestParameters_$42905_memory_ptr",
                    "typeString": "struct IBondEscalationModule.RequestParameters"
                  },
                  "typeName": {
                    "id": 42930,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42929,
                      "name": "RequestParameters",
                      "nameLocations": [
                        "7884:17:62"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 42905,
                      "src": "7884:17:62"
                    },
                    "referencedDeclaration": 42905,
                    "src": "7884:17:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$42905_storage_ptr",
                      "typeString": "struct IBondEscalationModule.RequestParameters"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7883:34:62"
            },
            "scope": 43004,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 42943,
            "nodeType": "FunctionDefinition",
            "src": "8258:109:62",
            "nodes": [],
            "documentation": {
              "id": 42934,
              "nodeType": "StructuredDocumentation",
              "src": "7922:333:62",
              "text": " @notice Returns the amount of pledges that a particular pledger has made for a given dispute.\n @param _requestId The id of the request to get the pledges for.\n @param _pledger The address of the pledger to get the pledges for.\n @return _numPledges The number of pledges made by the pledger for the dispute."
            },
            "functionSelector": "076404dc",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "pledgesForDispute",
            "nameLocation": "8267:17:62",
            "parameters": {
              "id": 42939,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42936,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "8293:10:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42943,
                  "src": "8285:18:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42935,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8285:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42938,
                  "mutability": "mutable",
                  "name": "_pledger",
                  "nameLocation": "8313:8:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42943,
                  "src": "8305:16:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 42937,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8305:7:62",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8284:38:62"
            },
            "returnParameters": {
              "id": 42942,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42941,
                  "mutability": "mutable",
                  "name": "_numPledges",
                  "nameLocation": "8354:11:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42943,
                  "src": "8346:19:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42940,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8346:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8345:21:62"
            },
            "scope": 43004,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 42953,
            "nodeType": "FunctionDefinition",
            "src": "8715:113:62",
            "nodes": [],
            "documentation": {
              "id": 42944,
              "nodeType": "StructuredDocumentation",
              "src": "8371:341:62",
              "text": " @notice Returns the amount of pledges that a particular pledger has made against a given dispute.\n @param _requestId The id of the request to get the pledges for.\n @param _pledger The address of the pledger to get the pledges for.\n @return _numPledges The number of pledges made by the pledger against the dispute."
            },
            "functionSelector": "ef940cef",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "pledgesAgainstDispute",
            "nameLocation": "8724:21:62",
            "parameters": {
              "id": 42949,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42946,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "8754:10:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42953,
                  "src": "8746:18:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42945,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8746:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42948,
                  "mutability": "mutable",
                  "name": "_pledger",
                  "nameLocation": "8774:8:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42953,
                  "src": "8766:16:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 42947,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8766:7:62",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8745:38:62"
            },
            "returnParameters": {
              "id": 42952,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42951,
                  "mutability": "mutable",
                  "name": "_numPledges",
                  "nameLocation": "8815:11:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42953,
                  "src": "8807:19:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42950,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8807:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8806:21:62"
            },
            "scope": 43004,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 42969,
            "nodeType": "FunctionDefinition",
            "src": "9581:184:62",
            "nodes": [],
            "baseFunctions": [
              2330
            ],
            "documentation": {
              "id": 42954,
              "nodeType": "StructuredDocumentation",
              "src": "9004:574:62",
              "text": " @notice Disputes a response\n @dev If this is the first dispute of the request and the bond escalation window is not over,\n      it will start the bond escalation process. This function must be called through the Oracle.\n @param _requestId  The ID of the request containing the response to dispute.\n @param _responseId The ID of the request to dispute.\n @param _disputer   The address of the disputer.\n @param _proposer   The address of the proposer of the response.\n @return _dispute The data of the created dispute."
            },
            "functionSelector": "98660c18",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "disputeResponse",
            "nameLocation": "9590:15:62",
            "overrides": {
              "id": 42964,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "9714:8:62"
            },
            "parameters": {
              "id": 42963,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42956,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "9619:10:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42969,
                  "src": "9611:18:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42955,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9611:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42958,
                  "mutability": "mutable",
                  "name": "_responseId",
                  "nameLocation": "9643:11:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42969,
                  "src": "9635:19:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42957,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9635:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42960,
                  "mutability": "mutable",
                  "name": "_disputer",
                  "nameLocation": "9668:9:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42969,
                  "src": "9660:17:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 42959,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9660:7:62",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42962,
                  "mutability": "mutable",
                  "name": "_proposer",
                  "nameLocation": "9691:9:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42969,
                  "src": "9683:17:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 42961,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9683:7:62",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9605:99:62"
            },
            "returnParameters": {
              "id": 42968,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42967,
                  "mutability": "mutable",
                  "name": "_dispute",
                  "nameLocation": "9755:8:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42969,
                  "src": "9732:31:62",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                    "typeString": "struct IOracle.Dispute"
                  },
                  "typeName": {
                    "id": 42966,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42965,
                      "name": "IOracle.Dispute",
                      "nameLocations": [
                        "9732:7:62",
                        "9740:7:62"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2045,
                      "src": "9732:15:62"
                    },
                    "referencedDeclaration": 2045,
                    "src": "9732:15:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Dispute_$2045_storage_ptr",
                      "typeString": "struct IOracle.Dispute"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9731:33:62"
            },
            "scope": 43004,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 42979,
            "nodeType": "FunctionDefinition",
            "src": "10137:102:62",
            "nodes": [],
            "baseFunctions": [
              2339
            ],
            "documentation": {
              "id": 42970,
              "nodeType": "StructuredDocumentation",
              "src": "9769:365:62",
              "text": " @notice Updates the status of a given disputeId and pays the proposer and disputer accordingly. If this\n         dispute has gone through the bond escalation mechanism, then it will pay the winning pledgers as well.\n @param _disputeId  The ID of the dispute to update the status for.\n @param _dispute    The full dispute object."
            },
            "functionSelector": "34837c29",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "onDisputeStatusChange",
            "nameLocation": "10146:21:62",
            "overrides": {
              "id": 42977,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "10230:8:62"
            },
            "parameters": {
              "id": 42976,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42972,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "10176:10:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42979,
                  "src": "10168:18:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42971,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10168:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42975,
                  "mutability": "mutable",
                  "name": "_dispute",
                  "nameLocation": "10211:8:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42979,
                  "src": "10188:31:62",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Dispute_$2045_memory_ptr",
                    "typeString": "struct IOracle.Dispute"
                  },
                  "typeName": {
                    "id": 42974,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42973,
                      "name": "IOracle.Dispute",
                      "nameLocations": [
                        "10188:7:62",
                        "10196:7:62"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2045,
                      "src": "10188:15:62"
                    },
                    "referencedDeclaration": 2045,
                    "src": "10188:15:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Dispute_$2045_storage_ptr",
                      "typeString": "struct IOracle.Dispute"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10167:53:62"
            },
            "returnParameters": {
              "id": 42978,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10238:0:62"
            },
            "scope": 43004,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 42985,
            "nodeType": "FunctionDefinition",
            "src": "10482:55:62",
            "nodes": [],
            "baseFunctions": [
              2345
            ],
            "documentation": {
              "id": 42980,
              "nodeType": "StructuredDocumentation",
              "src": "10243:236:62",
              "text": " @notice Verifies whether the dispute going through the bond escalation mechanism has reached a tie and\n         updates its escalation status accordingly.\n @param _disputeId The ID of the dispute to escalate."
            },
            "functionSelector": "7fadb88d",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "disputeEscalated",
            "nameLocation": "10491:16:62",
            "parameters": {
              "id": 42983,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42982,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "10516:10:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42985,
                  "src": "10508:18:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42981,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "10508:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10507:20:62"
            },
            "returnParameters": {
              "id": 42984,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "10536:0:62"
            },
            "scope": 43004,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 42991,
            "nodeType": "FunctionDefinition",
            "src": "11109:55:62",
            "nodes": [],
            "documentation": {
              "id": 42986,
              "nodeType": "StructuredDocumentation",
              "src": "10541:565:62",
              "text": " @notice Bonds funds in favor of a given dispute during the bond escalation process.\n @dev This function must be called directly through this contract.\n @dev If the bond escalation is not tied at the end of its deadline, a tying buffer is added\n      to avoid scenarios where one of the parties breaks the tie very last second.\n      During the tying buffer, the losing party can only tie, and once the escalation is tied\n      no further funds can be pledged.\n @param _disputeId  The ID of the dispute to pledge for."
            },
            "functionSelector": "49646830",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "pledgeForDispute",
            "nameLocation": "11118:16:62",
            "parameters": {
              "id": 42989,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42988,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "11143:10:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42991,
                  "src": "11135:18:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42987,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11135:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11134:20:62"
            },
            "returnParameters": {
              "id": 42990,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11163:0:62"
            },
            "scope": 43004,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 42997,
            "nodeType": "FunctionDefinition",
            "src": "11816:59:62",
            "nodes": [],
            "documentation": {
              "id": 42992,
              "nodeType": "StructuredDocumentation",
              "src": "11168:645:62",
              "text": " @notice Pledges funds against a given disputeId during its bond escalation process.\n @dev Must be called directly through this contract. Will revert if the disputeId is not going through\n         the bond escalation process.\n @dev If the bond escalation is not tied at the end of its deadline, a tying buffer is added\n      to avoid scenarios where one of the parties breaks the tie very last second.\n      During the tying buffer, the losing party can only tie, and once the escalation is tied\n      no further funds can be pledged.\n @param _disputeId ID of the dispute id to pledge against."
            },
            "functionSelector": "9debee30",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "pledgeAgainstDispute",
            "nameLocation": "11825:20:62",
            "parameters": {
              "id": 42995,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42994,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "11854:10:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 42997,
                  "src": "11846:18:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42993,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "11846:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11845:20:62"
            },
            "returnParameters": {
              "id": 42996,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11874:0:62"
            },
            "scope": 43004,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 43003,
            "nodeType": "FunctionDefinition",
            "src": "12226:59:62",
            "nodes": [],
            "documentation": {
              "id": 42998,
              "nodeType": "StructuredDocumentation",
              "src": "11879:344:62",
              "text": " @notice Settles the bond escalation process of a given requestId.\n @dev Must be called directly through this contract.\n @dev Can only be called if after the deadline + tyingBuffer window is over, the pledges weren't tied\n @param _requestId requestId of the request to settle the bond escalation process for."
            },
            "functionSelector": "9afaec50",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "settleBondEscalation",
            "nameLocation": "12235:20:62",
            "parameters": {
              "id": 43001,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43000,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "12264:10:62",
                  "nodeType": "VariableDeclaration",
                  "scope": 43003,
                  "src": "12256:18:62",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42999,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "12256:7:62",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12255:20:62"
            },
            "returnParameters": {
              "id": 43002,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12284:0:62"
            },
            "scope": 43004,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 42814,
              "name": "IDisputeModule",
              "nameLocations": [
                "645:14:62"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 2346,
              "src": "645:14:62"
            },
            "id": 42815,
            "nodeType": "InheritanceSpecifier",
            "src": "645:14:62"
          }
        ],
        "canonicalName": "IBondEscalationModule",
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": {
          "id": 42813,
          "nodeType": "StructuredDocumentation",
          "src": "457:152:62",
          "text": " @title BondEscalationModule\n @notice Module allowing users to have the first dispute of a request go through the bond escalation mechanism."
        },
        "fullyImplemented": false,
        "linearizedBaseContracts": [
          43004,
          2346,
          1782
        ],
        "name": "IBondEscalationModule",
        "nameLocation": "620:21:62",
        "scope": 43005,
        "usedErrors": [
          1745,
          42846,
          42849,
          42852,
          42855,
          42858,
          42861,
          42864,
          42867,
          42870,
          42873,
          42876,
          42879,
          42882
        ]
      }
    ],
    "license": "AGPL-3.0-only"
  },
  "id": 62
}