{
  "abi": [
    {
      "inputs": [],
      "name": "AccountingExtension_InsufficientAllowance",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AccountingExtension_InsufficientFunds",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AccountingExtension_UnauthorizedModule",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "AccountingExtension_UnauthorizedUser",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondEscalationAccounting_AlreadyClaimed",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondEscalationAccounting_AlreadySettled",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondEscalationAccounting_InsufficientFunds",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BondEscalationAccounting_NoEscalationResult",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "_forVotesWon",
          "type": "bool"
        },
        {
          "indexed": false,
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amountPerPledger",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_winningPledgersLength",
          "type": "uint256"
        }
      ],
      "name": "BondEscalationSettled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_bonder",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "Bonded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_depositor",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "Deposited",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_pledger",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "EscalationRewardClaimed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_payer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "Paid",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_pledger",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "PledgeReleased",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_pledger",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "Pledged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_beneficiary",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "Released",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address[]",
          "name": "_winningPledgers",
          "type": "address[]"
        },
        {
          "indexed": false,
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amountPerPledger",
          "type": "uint256"
        }
      ],
      "name": "WinningPledgersPaid",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_withdrawer",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "Withdrew",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "ORACLE",
      "outputs": [
        {
          "internalType": "contract IOracle",
          "name": "_oracle",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_module",
          "type": "address"
        }
      ],
      "name": "approveModule",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_user",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_bonder",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_sender",
          "type": "address"
        }
      ],
      "name": "bond",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_bonder",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "bond",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_user",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "_bondToken",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "bondedAmountOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_pledger",
          "type": "address"
        }
      ],
      "name": "claimEscalationReward",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "deposit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "escalationResults",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "bool",
          "name": "_forVotesWon",
          "type": "bool"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amountPerPledger",
          "type": "uint256"
        },
        {
          "internalType": "contract IBondEscalationModule",
          "name": "_bondEscalationModule",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "internalType": "bool",
          "name": "_forVotesWon",
          "type": "bool"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amountPerPledger",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_winningPledgersLength",
          "type": "uint256"
        }
      ],
      "name": "onSettleBondEscalation",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_payer",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_receiver",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "pay",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_pledger",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "pledge",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_pledger",
          "type": "address"
        }
      ],
      "name": "pledgerClaimed",
      "outputs": [
        {
          "internalType": "bool",
          "name": "_claimed",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        }
      ],
      "name": "pledges",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_amountPledged",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_bonder",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "release",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_pledger",
          "type": "address"
        },
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "releasePledge",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_module",
          "type": "address"
        }
      ],
      "name": "revokeModule",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_user",
          "type": "address"
        }
      ],
      "name": "userApprovedModules",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "_approvedModules",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "withdraw",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x",
    "sourceMap": "",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x",
    "sourceMap": "",
    "linkReferences": {}
  },
  "methodIdentifiers": {
    "ORACLE()": "38013f02",
    "approveModule(address)": "17825ef3",
    "balanceOf(address,address)": "f7888aec",
    "bond(address,bytes32,address,uint256)": "bba9f26f",
    "bond(address,bytes32,address,uint256,address)": "4aa90d16",
    "bondedAmountOf(address,address,bytes32)": "3c802fc5",
    "claimEscalationReward(bytes32,address)": "9043e2a0",
    "deposit(address,uint256)": "47e7ef24",
    "escalationResults(bytes32)": "1cc41fe8",
    "onSettleBondEscalation(bytes32,bytes32,bool,address,uint256,uint256)": "e517a1f7",
    "pay(bytes32,address,address,address,uint256)": "cab0e418",
    "pledge(address,bytes32,bytes32,address,uint256)": "2c61d33c",
    "pledgerClaimed(bytes32,address)": "c0c1b54e",
    "pledges(bytes32,address)": "3edfa75d",
    "release(address,bytes32,address,uint256)": "a6d09dc8",
    "releasePledge(bytes32,bytes32,address,address,uint256)": "22cfb00a",
    "revokeModule(address)": "a69748b8",
    "userApprovedModules(address)": "96fa9e10",
    "withdraw(address,uint256)": "f3fef3a3"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AccountingExtension_InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccountingExtension_InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccountingExtension_UnauthorizedModule\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccountingExtension_UnauthorizedUser\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondEscalationAccounting_AlreadyClaimed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondEscalationAccounting_AlreadySettled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondEscalationAccounting_InsufficientFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"BondEscalationAccounting_NoEscalationResult\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_forVotesWon\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amountPerPledger\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_winningPledgersLength\",\"type\":\"uint256\"}],\"name\":\"BondEscalationSettled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_bonder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Bonded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_depositor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Deposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_pledger\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"EscalationRewardClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_payer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Paid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_pledger\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"PledgeReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_pledger\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Pledged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Released\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address[]\",\"name\":\"_winningPledgers\",\"type\":\"address[]\"},{\"indexed\":false,\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amountPerPledger\",\"type\":\"uint256\"}],\"name\":\"WinningPledgersPaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_withdrawer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Withdrew\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ORACLE\",\"outputs\":[{\"internalType\":\"contract IOracle\",\"name\":\"_oracle\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_module\",\"type\":\"address\"}],\"name\":\"approveModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_bonder\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"bond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_bonder\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"bond\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_bondToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"bondedAmountOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_pledger\",\"type\":\"address\"}],\"name\":\"claimEscalationReward\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"escalationResults\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"_forVotesWon\",\"type\":\"bool\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountPerPledger\",\"type\":\"uint256\"},{\"internalType\":\"contract IBondEscalationModule\",\"name\":\"_bondEscalationModule\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"_forVotesWon\",\"type\":\"bool\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountPerPledger\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_winningPledgersLength\",\"type\":\"uint256\"}],\"name\":\"onSettleBondEscalation\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_payer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"pay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_pledger\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"pledge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_pledger\",\"type\":\"address\"}],\"name\":\"pledgerClaimed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_claimed\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"pledges\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountPledged\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_bonder\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"release\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_pledger\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"releasePledge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_module\",\"type\":\"address\"}],\"name\":\"revokeModule\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"userApprovedModules\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"_approvedModules\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"BondEscalationSettled(bytes32,bytes32,bool,address,uint256,uint256)\":{\"params\":{\"_amountPerPledger\":\"The amount of `_token` to be paid for each winning pledgers\",\"_disputeId\":\"The ID of the bond-escalated dispute\",\"_forVotesWon\":\"True if the winning side were the for votes\",\"_requestId\":\"The ID of the bond-escalated request\",\"_token\":\"The address of the token being paid out\",\"_winningPledgersLength\":\"The number of winning pledgers\"}},\"Bonded(bytes32,address,address,uint256)\":{\"params\":{\"_amount\":\"The amount of `_token` bonded\",\"_bonder\":\"The user who is getting its tokens bonded\",\"_token\":\"The address of the token being bonded\"}},\"Deposited(address,address,uint256)\":{\"params\":{\"_amount\":\"The amount of `_token` deposited\",\"_depositor\":\"The user who deposited the tokens\",\"_token\":\"The address of the token deposited by the user\"}},\"EscalationRewardClaimed(bytes32,bytes32,address,address,uint256)\":{\"params\":{\"_amount\":\"The amount of `_token` paid to the pledger\",\"_disputeId\":\"The ID of the bond-escalated dispute\",\"_pledger\":\"The user who claimed their reward\",\"_requestId\":\"The ID of the bond-escalated request\",\"_token\":\"The address of the token being paid out\"}},\"Paid(bytes32,address,address,address,uint256)\":{\"params\":{\"_amount\":\"The amount of `_token` transferred\",\"_beneficiary\":\"The user receiving the tokens\",\"_payer\":\"The user who is getting its tokens transferred\",\"_token\":\"The address of the token being transferred\"}},\"PledgeReleased(bytes32,bytes32,address,address,uint256)\":{\"params\":{\"_amount\":\"The amount of `_token` released\",\"_disputeId\":\"The ID of the bond-escalated dispute\",\"_pledger\":\"The user who is getting their tokens released\",\"_requestId\":\"The ID of the bond-escalated request\",\"_token\":\"The address of the token being released\"}},\"Pledged(address,bytes32,bytes32,address,uint256)\":{\"params\":{\"_amount\":\"The amount of `_token` pledged by the user\",\"_disputeId\":\"The ID of the bond-escalated dispute\",\"_pledger\":\"The user who pledged the tokens\",\"_requestId\":\"The ID of the bond-escalated request\",\"_token\":\"The address of the token being pledged\"}},\"Released(bytes32,address,address,uint256)\":{\"params\":{\"_amount\":\"The amount of `_token` released\",\"_beneficiary\":\"The user who is getting its tokens released\",\"_token\":\"The address of the token being released\"}},\"WinningPledgersPaid(bytes32,bytes32,address[],address,uint256)\":{\"params\":{\"_amountPerPledger\":\"The amount of `_token` paid to each of the winning pledgers\",\"_disputeId\":\"The ID of the bond-escalated dispute\",\"_requestId\":\"The ID of the bond-escalated request\",\"_token\":\"The address of the token being paid out\",\"_winningPledgers\":\"The users who got paid for pledging for the winning side\"}},\"Withdrew(address,address,uint256)\":{\"params\":{\"_amount\":\"The amount of `_token` withdrawn\",\"_token\":\"The address of the token withdrawn by the user\",\"_withdrawer\":\"The user who withdrew the tokens\"}}},\"kind\":\"dev\",\"methods\":{\"approveModule(address)\":{\"params\":{\"_module\":\"The address of the module to be approved\"}},\"balanceOf(address,address)\":{\"params\":{\"_token\":\"The token deposited\",\"_user\":\"The address of the user with deposited tokens\"},\"returns\":{\"_amount\":\"The amount of `_token` deposited\"}},\"bond(address,bytes32,address,uint256)\":{\"params\":{\"_amount\":\"The amount of `_token` to bond\",\"_bonder\":\"The address of the user to bond tokens for\",\"_requestId\":\"The id of the request the user is bonding for\",\"_token\":\"The address of the token being bonded\"}},\"bond(address,bytes32,address,uint256,address)\":{\"params\":{\"_amount\":\"The amount of `_token` to bond\",\"_bonder\":\"The address of the user to bond tokens for\",\"_requestId\":\"The id of the request the user is bonding for\",\"_sender\":\"The address starting the propose call on the Oracle\",\"_token\":\"The address of the token being bonded\"}},\"bondedAmountOf(address,address,bytes32)\":{\"params\":{\"_bondToken\":\"The token bonded\",\"_requestId\":\"The id of the request the user bonded for\",\"_user\":\"The address of the user with bonded tokens\"},\"returns\":{\"_amount\":\"The amount of `_bondToken` bonded\"}},\"claimEscalationReward(bytes32,address)\":{\"params\":{\"_disputeId\":\"The ID of the bond-escalated dispute\",\"_pledger\":\"Address of the pledger to claim the rewards\"}},\"deposit(address,uint256)\":{\"details\":\"The user must have approved the accounting extension to transfer the tokens.\",\"params\":{\"_amount\":\"The amount of `_token` to deposit\",\"_token\":\"The address of the token being deposited\"}},\"escalationResults(bytes32)\":{\"params\":{\"_disputeId\":\"The ID of the bond-escalated dispute\"},\"returns\":{\"_amountPerPledger\":\"    Amount of `_token` to be rewarded to each of the winning pledgers\",\"_bondEscalationModule\":\"The address of the bond escalation module that was used\",\"_forVotesWon\":\"         True if the for votes won the dispute\",\"_requestId\":\"           The ID of the bond-escalated request\",\"_token\":\"               Address of the token being paid as a reward for winning the bond escalation\"}},\"onSettleBondEscalation(bytes32,bytes32,bool,address,uint256,uint256)\":{\"details\":\"This function must be called by an allowed module\",\"params\":{\"_amountPerPledger\":\"Amount of `_token` to be rewarded to each of the winning pledgers\",\"_disputeId\":\"The ID of the bond-escalated dispute\",\"_forVotesWon\":\"True if the for votes won the dispute\",\"_requestId\":\"The ID of the bond-escalated request\",\"_token\":\"Address of the token being paid as a reward for winning the bond escalation\",\"_winningPledgersLength\":\"Amount of pledges that won the dispute\"}},\"pay(bytes32,address,address,address,uint256)\":{\"details\":\"Only the virtual balances in the accounting extension are modified. The token contract is not called nor its balances modified.\",\"params\":{\"_amount\":\"The amount of `_token` being transferred\",\"_payer\":\"The address of the user paying the tokens\",\"_receiver\":\"The address of the user receiving the tokens\",\"_requestId\":\"The id of the request handling the user's tokens\",\"_token\":\"The address of the token being transferred\"}},\"pledge(address,bytes32,bytes32,address,uint256)\":{\"details\":\"This function must be called by an allowed module\",\"params\":{\"_amount\":\"Amount of token to pledge\",\"_disputeId\":\"The ID of the bond-escalated dispute\",\"_pledger\":\"Address of the pledger\",\"_requestId\":\"The ID of the bond-escalated request\",\"_token\":\"Address of the token being paid as a reward for winning the bond escalation\"}},\"pledgerClaimed(bytes32,address)\":{\"params\":{\"_pledger\":\"Address of the pledger\",\"_requestId\":\"The ID of the bond-escalated request\"},\"returns\":{\"_claimed\":\"         True if the pledger has claimed their reward\"}},\"pledges(bytes32,address)\":{\"params\":{\"_disputeId\":\"The ID of the bond-escalated dispute\",\"_token\":\"Address of the token being pledged\"},\"returns\":{\"_amountPledged\":\"   The amount of pledged tokens\"}},\"release(address,bytes32,address,uint256)\":{\"params\":{\"_amount\":\"The amount of `_token` to release\",\"_bonder\":\"The address of the user to release tokens for\",\"_requestId\":\"The id of the request where the tokens were bonded\",\"_token\":\"The address of the token being released\"}},\"releasePledge(bytes32,bytes32,address,address,uint256)\":{\"details\":\"This function must be called by an allowed module\",\"params\":{\"_amount\":\"Amount of `_token` to be released to the pledger\",\"_disputeId\":\"The ID of the bond-escalated dispute\",\"_pledger\":\"Address of the pledger\",\"_requestId\":\"The ID of the bond-escalated request\",\"_token\":\"Address of the token to be released\"}},\"revokeModule(address)\":{\"params\":{\"_module\":\"The address of the module to be revoked\"}},\"userApprovedModules(address)\":{\"params\":{\"_user\":\"The address of the user\"},\"returns\":{\"_approvedModules\":\"The array of all modules approved by the user\"}},\"withdraw(address,uint256)\":{\"params\":{\"_amount\":\"The amount of `_token` to withdraw\",\"_token\":\"The address of the token being withdrawn\"}}},\"title\":\"BondEscalationAccounting\",\"version\":1},\"userdoc\":{\"errors\":{\"AccountingExtension_InsufficientAllowance()\":[{\"notice\":\"Thrown when the module bonding user tokens hasn't been approved by the user.\"}],\"AccountingExtension_InsufficientFunds()\":[{\"notice\":\"Thrown when the account doesn't have enough balance to bond/withdraw or not enough bonded to release/pay\"}],\"AccountingExtension_UnauthorizedModule()\":[{\"notice\":\"Thrown when an `onlyAllowedModule` function is called by something else than a module being used in the corresponding request\"}],\"AccountingExtension_UnauthorizedUser()\":[{\"notice\":\"Thrown when an `onlyParticipant` function is called with an address that is not part of the request.\"}],\"BondEscalationAccounting_AlreadyClaimed()\":[{\"notice\":\"Thrown when the user tries to claim their pledge for an escalation that was already claimed\"}],\"BondEscalationAccounting_AlreadySettled()\":[{\"notice\":\"Thrown when trying to settle an already settled escalation\"}],\"BondEscalationAccounting_InsufficientFunds()\":[{\"notice\":\"Thrown when the user doesn't have enough funds to pledge\"}],\"BondEscalationAccounting_NoEscalationResult()\":[{\"notice\":\"Thrown when the user tries to claim their pledge for an escalation that wasn't finished yet\"}]},\"events\":{\"BondEscalationSettled(bytes32,bytes32,bool,address,uint256,uint256)\":{\"notice\":\"A bond escalation has been settled\"},\"Bonded(bytes32,address,address,uint256)\":{\"notice\":\"User's funds have been bonded\"},\"Deposited(address,address,uint256)\":{\"notice\":\"A user deposited tokens into the accounting extension\"},\"EscalationRewardClaimed(bytes32,bytes32,address,address,uint256)\":{\"notice\":\"A user claimed their reward for pledging for the winning side of a dispute\"},\"Paid(bytes32,address,address,address,uint256)\":{\"notice\":\"A payment between users has been made\"},\"PledgeReleased(bytes32,bytes32,address,address,uint256)\":{\"notice\":\"A pledge has been released back to the user\"},\"Pledged(address,bytes32,bytes32,address,uint256)\":{\"notice\":\"A user pledged tokens for one of the sides of a dispute\"},\"Released(bytes32,address,address,uint256)\":{\"notice\":\"User's funds have been released\"},\"WinningPledgersPaid(bytes32,bytes32,address[],address,uint256)\":{\"notice\":\"The pledgers of the winning side of a dispute have been paid\"},\"Withdrew(address,address,uint256)\":{\"notice\":\"A user withdrew tokens from the accounting extension\"}},\"kind\":\"user\",\"methods\":{\"ORACLE()\":{\"notice\":\"Returns the interface for the Oracle contract\"},\"approveModule(address)\":{\"notice\":\"Allows a user to approve a module for bonding tokens\"},\"balanceOf(address,address)\":{\"notice\":\"Returns the amount of a token a user has deposited\"},\"bond(address,bytes32,address,uint256)\":{\"notice\":\"Allows a allowed module to bond a user's tokens for a request\"},\"bond(address,bytes32,address,uint256,address)\":{\"notice\":\"Allows a valid module to bond a user's tokens for a request\"},\"bondedAmountOf(address,address,bytes32)\":{\"notice\":\"Returns the amount of a token a user has bonded\"},\"claimEscalationReward(bytes32,address)\":{\"notice\":\"Claims the reward for the pledger the given dispute\"},\"deposit(address,uint256)\":{\"notice\":\"Transfers tokens from a user and updates his virtual balance\"},\"escalationResults(bytes32)\":{\"notice\":\"The result of the given dispute\"},\"onSettleBondEscalation(bytes32,bytes32,bool,address,uint256,uint256)\":{\"notice\":\"Updates the accounting of the given dispute to reflect the result of the bond escalation\"},\"pay(bytes32,address,address,address,uint256)\":{\"notice\":\"Allows a allowed module to transfer bonded tokens from one user to another\"},\"pledge(address,bytes32,bytes32,address,uint256)\":{\"notice\":\"Pledges the given amount of token to the provided dispute id of the provided request id\"},\"pledgerClaimed(bytes32,address)\":{\"notice\":\"True if the given pledger has claimed their reward for the given dispute\"},\"pledges(bytes32,address)\":{\"notice\":\"The amount pledged by the given pledger in the given dispute of the given request\"},\"release(address,bytes32,address,uint256)\":{\"notice\":\"Allows a valid module to release a user's tokens\"},\"releasePledge(bytes32,bytes32,address,address,uint256)\":{\"notice\":\"Releases a given amount of funds to the pledger\"},\"revokeModule(address)\":{\"notice\":\"Allows a user to revoke a module's approval for bonding tokens\"},\"userApprovedModules(address)\":{\"notice\":\"Returns a list of all modules a user has approved\"},\"withdraw(address,uint256)\":{\"notice\":\"Allows an user to withdraw deposited tokens\"}},\"notice\":\"Extension allowing users to deposit and pledge funds to be used for bond escalation\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"solidity/interfaces/extensions/IBondEscalationAccounting.sol\":\"IBondEscalationAccounting\"},\"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": "AccountingExtension_InsufficientAllowance"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "AccountingExtension_InsufficientFunds"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "AccountingExtension_UnauthorizedModule"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "AccountingExtension_UnauthorizedUser"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondEscalationAccounting_AlreadyClaimed"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondEscalationAccounting_AlreadySettled"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondEscalationAccounting_InsufficientFunds"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "BondEscalationAccounting_NoEscalationResult"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": false
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": false
            },
            {
              "internalType": "bool",
              "name": "_forVotesWon",
              "type": "bool",
              "indexed": false
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "_amountPerPledger",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "_winningPledgersLength",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "BondEscalationSettled",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_bonder",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Bonded",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_depositor",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Deposited",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_pledger",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "EscalationRewardClaimed",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_beneficiary",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_payer",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Paid",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_pledger",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "PledgeReleased",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_pledger",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Pledged",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_beneficiary",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Released",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address[]",
              "name": "_winningPledgers",
              "type": "address[]",
              "indexed": true
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "_amountPerPledger",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "WinningPledgersPaid",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_withdrawer",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address",
              "indexed": true
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "Withdrew",
          "anonymous": false
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "ORACLE",
          "outputs": [
            {
              "internalType": "contract IOracle",
              "name": "_oracle",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_module",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "approveModule"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_user",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "balanceOf",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_bonder",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "_sender",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "bond"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_bonder",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "bond"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_user",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "_bondToken",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "bondedAmountOf",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_pledger",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "claimEscalationReward"
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "deposit"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "escalationResults",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "bool",
              "name": "_forVotesWon",
              "type": "bool"
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "_amountPerPledger",
              "type": "uint256"
            },
            {
              "internalType": "contract IBondEscalationModule",
              "name": "_bondEscalationModule",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            },
            {
              "internalType": "bool",
              "name": "_forVotesWon",
              "type": "bool"
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "_amountPerPledger",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "_winningPledgersLength",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "onSettleBondEscalation"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_payer",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "_receiver",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "pay"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_pledger",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "pledge"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_pledger",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "pledgerClaimed",
          "outputs": [
            {
              "internalType": "bool",
              "name": "_claimed",
              "type": "bool"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "pledges",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "_amountPledged",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_bonder",
              "type": "address"
            },
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "release"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_pledger",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "releasePledge"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_module",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "revokeModule"
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_user",
              "type": "address"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "userApprovedModules",
          "outputs": [
            {
              "internalType": "address[]",
              "name": "_approvedModules",
              "type": "address[]"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "contract IERC20",
              "name": "_token",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "_amount",
              "type": "uint256"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "withdraw"
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {
          "approveModule(address)": {
            "params": {
              "_module": "The address of the module to be approved"
            }
          },
          "balanceOf(address,address)": {
            "params": {
              "_token": "The token deposited",
              "_user": "The address of the user with deposited tokens"
            },
            "returns": {
              "_amount": "The amount of `_token` deposited"
            }
          },
          "bond(address,bytes32,address,uint256)": {
            "params": {
              "_amount": "The amount of `_token` to bond",
              "_bonder": "The address of the user to bond tokens for",
              "_requestId": "The id of the request the user is bonding for",
              "_token": "The address of the token being bonded"
            }
          },
          "bond(address,bytes32,address,uint256,address)": {
            "params": {
              "_amount": "The amount of `_token` to bond",
              "_bonder": "The address of the user to bond tokens for",
              "_requestId": "The id of the request the user is bonding for",
              "_sender": "The address starting the propose call on the Oracle",
              "_token": "The address of the token being bonded"
            }
          },
          "bondedAmountOf(address,address,bytes32)": {
            "params": {
              "_bondToken": "The token bonded",
              "_requestId": "The id of the request the user bonded for",
              "_user": "The address of the user with bonded tokens"
            },
            "returns": {
              "_amount": "The amount of `_bondToken` bonded"
            }
          },
          "claimEscalationReward(bytes32,address)": {
            "params": {
              "_disputeId": "The ID of the bond-escalated dispute",
              "_pledger": "Address of the pledger to claim the rewards"
            }
          },
          "deposit(address,uint256)": {
            "details": "The user must have approved the accounting extension to transfer the tokens.",
            "params": {
              "_amount": "The amount of `_token` to deposit",
              "_token": "The address of the token being deposited"
            }
          },
          "escalationResults(bytes32)": {
            "params": {
              "_disputeId": "The ID of the bond-escalated dispute"
            },
            "returns": {
              "_amountPerPledger": "    Amount of `_token` to be rewarded to each of the winning pledgers",
              "_bondEscalationModule": "The address of the bond escalation module that was used",
              "_forVotesWon": "         True if the for votes won the dispute",
              "_requestId": "           The ID of the bond-escalated request",
              "_token": "               Address of the token being paid as a reward for winning the bond escalation"
            }
          },
          "onSettleBondEscalation(bytes32,bytes32,bool,address,uint256,uint256)": {
            "details": "This function must be called by an allowed module",
            "params": {
              "_amountPerPledger": "Amount of `_token` to be rewarded to each of the winning pledgers",
              "_disputeId": "The ID of the bond-escalated dispute",
              "_forVotesWon": "True if the for votes won the dispute",
              "_requestId": "The ID of the bond-escalated request",
              "_token": "Address of the token being paid as a reward for winning the bond escalation",
              "_winningPledgersLength": "Amount of pledges that won the dispute"
            }
          },
          "pay(bytes32,address,address,address,uint256)": {
            "details": "Only the virtual balances in the accounting extension are modified. The token contract is not called nor its balances modified.",
            "params": {
              "_amount": "The amount of `_token` being transferred",
              "_payer": "The address of the user paying the tokens",
              "_receiver": "The address of the user receiving the tokens",
              "_requestId": "The id of the request handling the user's tokens",
              "_token": "The address of the token being transferred"
            }
          },
          "pledge(address,bytes32,bytes32,address,uint256)": {
            "details": "This function must be called by an allowed module",
            "params": {
              "_amount": "Amount of token to pledge",
              "_disputeId": "The ID of the bond-escalated dispute",
              "_pledger": "Address of the pledger",
              "_requestId": "The ID of the bond-escalated request",
              "_token": "Address of the token being paid as a reward for winning the bond escalation"
            }
          },
          "pledgerClaimed(bytes32,address)": {
            "params": {
              "_pledger": "Address of the pledger",
              "_requestId": "The ID of the bond-escalated request"
            },
            "returns": {
              "_claimed": "         True if the pledger has claimed their reward"
            }
          },
          "pledges(bytes32,address)": {
            "params": {
              "_disputeId": "The ID of the bond-escalated dispute",
              "_token": "Address of the token being pledged"
            },
            "returns": {
              "_amountPledged": "   The amount of pledged tokens"
            }
          },
          "release(address,bytes32,address,uint256)": {
            "params": {
              "_amount": "The amount of `_token` to release",
              "_bonder": "The address of the user to release tokens for",
              "_requestId": "The id of the request where the tokens were bonded",
              "_token": "The address of the token being released"
            }
          },
          "releasePledge(bytes32,bytes32,address,address,uint256)": {
            "details": "This function must be called by an allowed module",
            "params": {
              "_amount": "Amount of `_token` to be released to the pledger",
              "_disputeId": "The ID of the bond-escalated dispute",
              "_pledger": "Address of the pledger",
              "_requestId": "The ID of the bond-escalated request",
              "_token": "Address of the token to be released"
            }
          },
          "revokeModule(address)": {
            "params": {
              "_module": "The address of the module to be revoked"
            }
          },
          "userApprovedModules(address)": {
            "params": {
              "_user": "The address of the user"
            },
            "returns": {
              "_approvedModules": "The array of all modules approved by the user"
            }
          },
          "withdraw(address,uint256)": {
            "params": {
              "_amount": "The amount of `_token` to withdraw",
              "_token": "The address of the token being withdrawn"
            }
          }
        },
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {
          "ORACLE()": {
            "notice": "Returns the interface for the Oracle contract"
          },
          "approveModule(address)": {
            "notice": "Allows a user to approve a module for bonding tokens"
          },
          "balanceOf(address,address)": {
            "notice": "Returns the amount of a token a user has deposited"
          },
          "bond(address,bytes32,address,uint256)": {
            "notice": "Allows a allowed module to bond a user's tokens for a request"
          },
          "bond(address,bytes32,address,uint256,address)": {
            "notice": "Allows a valid module to bond a user's tokens for a request"
          },
          "bondedAmountOf(address,address,bytes32)": {
            "notice": "Returns the amount of a token a user has bonded"
          },
          "claimEscalationReward(bytes32,address)": {
            "notice": "Claims the reward for the pledger the given dispute"
          },
          "deposit(address,uint256)": {
            "notice": "Transfers tokens from a user and updates his virtual balance"
          },
          "escalationResults(bytes32)": {
            "notice": "The result of the given dispute"
          },
          "onSettleBondEscalation(bytes32,bytes32,bool,address,uint256,uint256)": {
            "notice": "Updates the accounting of the given dispute to reflect the result of the bond escalation"
          },
          "pay(bytes32,address,address,address,uint256)": {
            "notice": "Allows a allowed module to transfer bonded tokens from one user to another"
          },
          "pledge(address,bytes32,bytes32,address,uint256)": {
            "notice": "Pledges the given amount of token to the provided dispute id of the provided request id"
          },
          "pledgerClaimed(bytes32,address)": {
            "notice": "True if the given pledger has claimed their reward for the given dispute"
          },
          "pledges(bytes32,address)": {
            "notice": "The amount pledged by the given pledger in the given dispute of the given request"
          },
          "release(address,bytes32,address,uint256)": {
            "notice": "Allows a valid module to release a user's tokens"
          },
          "releasePledge(bytes32,bytes32,address,address,uint256)": {
            "notice": "Releases a given amount of funds to the pledger"
          },
          "revokeModule(address)": {
            "notice": "Allows a user to revoke a module's approval for bonding tokens"
          },
          "userApprovedModules(address)": {
            "notice": "Returns a list of all modules a user has approved"
          },
          "withdraw(address,uint256)": {
            "notice": "Allows an user to withdraw deposited tokens"
          }
        },
        "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/extensions/IBondEscalationAccounting.sol": "IBondEscalationAccounting"
      },
      "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/extensions/IBondEscalationAccounting.sol",
    "id": 42785,
    "exportedSymbols": {
      "IAccountingExtension": [
        42580
      ],
      "IBondEscalationAccounting": [
        42784
      ],
      "IBondEscalationModule": [
        43004
      ],
      "IERC20": [
        2822
      ]
    },
    "nodeType": "SourceUnit",
    "src": "42:9826:60",
    "nodes": [
      {
        "id": 42582,
        "nodeType": "PragmaDirective",
        "src": "42:24:60",
        "nodes": [],
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".19"
        ]
      },
      {
        "id": 42584,
        "nodeType": "ImportDirective",
        "src": "68:64:60",
        "nodes": [],
        "absolutePath": "solidity/interfaces/extensions/IAccountingExtension.sol",
        "file": "./IAccountingExtension.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 42785,
        "sourceUnit": 42581,
        "symbolAliases": [
          {
            "foreign": {
              "id": 42583,
              "name": "IAccountingExtension",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 42580,
              "src": "76:20:60",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 42586,
        "nodeType": "ImportDirective",
        "src": "133:83:60",
        "nodes": [],
        "absolutePath": "solidity/interfaces/modules/dispute/IBondEscalationModule.sol",
        "file": "../modules/dispute/IBondEscalationModule.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 42785,
        "sourceUnit": 43005,
        "symbolAliases": [
          {
            "foreign": {
              "id": 42585,
              "name": "IBondEscalationModule",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 43004,
              "src": "141:21:60",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 42588,
        "nodeType": "ImportDirective",
        "src": "217:70:60",
        "nodes": [],
        "absolutePath": "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol",
        "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 42785,
        "sourceUnit": 2823,
        "symbolAliases": [
          {
            "foreign": {
              "id": 42587,
              "name": "IERC20",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2822,
              "src": "225:6:60",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 42784,
        "nodeType": "ContractDefinition",
        "src": "427:9440:60",
        "nodes": [
          {
            "id": 42605,
            "nodeType": "EventDefinition",
            "src": "1088:136:60",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 42592,
              "nodeType": "StructuredDocumentation",
              "src": "664:421:60",
              "text": " @notice A user pledged tokens for one of the sides of a dispute\n @param _pledger          The user who pledged the tokens\n @param _requestId        The ID of the bond-escalated request\n @param _disputeId        The ID of the bond-escalated dispute\n @param _token            The address of the token being pledged\n @param _amount           The amount of `_token` pledged by the user"
            },
            "eventSelector": "4c8f840b3ec2b142fa4baaaed97faac887353d053a8fc669e76eddbdb829da1c",
            "name": "Pledged",
            "nameLocation": "1094:7:60",
            "parameters": {
              "id": 42604,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42594,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_pledger",
                  "nameLocation": "1123:8:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42605,
                  "src": "1107:24:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 42593,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1107:7:60",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42596,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "1149:10:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42605,
                  "src": "1133:26:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42595,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1133:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42598,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "1177:10:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42605,
                  "src": "1161:26:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42597,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1161:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42601,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_token",
                  "nameLocation": "1196:6:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42605,
                  "src": "1189:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$2822",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "id": 42600,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42599,
                      "name": "IERC20",
                      "nameLocations": [
                        "1189:6:60"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2822,
                      "src": "1189:6:60"
                    },
                    "referencedDeclaration": 2822,
                    "src": "1189:6:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$2822",
                      "typeString": "contract IERC20"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42603,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_amount",
                  "nameLocation": "1212:7:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42605,
                  "src": "1204:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42602,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1204:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1101:122:60"
            }
          },
          {
            "id": 42620,
            "nodeType": "EventDefinition",
            "src": "1700:184:60",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 42606,
              "nodeType": "StructuredDocumentation",
              "src": "1228:469:60",
              "text": " @notice The pledgers of the winning side of a dispute have been paid\n @param _requestId        The ID of the bond-escalated request\n @param _disputeId        The ID of the bond-escalated dispute\n @param _winningPledgers  The users who got paid for pledging for the winning side\n @param _token            The address of the token being paid out\n @param _amountPerPledger The amount of `_token` paid to each of the winning pledgers"
            },
            "eventSelector": "638a2d650202c0985073ecd387beb560f7afb15704e8c4675b99d825a1404fa9",
            "name": "WinningPledgersPaid",
            "nameLocation": "1706:19:60",
            "parameters": {
              "id": 42619,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42608,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "1747:10:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42620,
                  "src": "1731:26:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42607,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1731:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42610,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "1779:10:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42620,
                  "src": "1763:26:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42609,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1763:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42613,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_winningPledgers",
                  "nameLocation": "1813:16:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42620,
                  "src": "1795:34:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 42611,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "1795:7:60",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 42612,
                    "nodeType": "ArrayTypeName",
                    "src": "1795:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42616,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_token",
                  "nameLocation": "1842:6:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42620,
                  "src": "1835:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$2822",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "id": 42615,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42614,
                      "name": "IERC20",
                      "nameLocations": [
                        "1835:6:60"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2822,
                      "src": "1835:6:60"
                    },
                    "referencedDeclaration": 2822,
                    "src": "1835:6:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$2822",
                      "typeString": "contract IERC20"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42618,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_amountPerPledger",
                  "nameLocation": "1862:17:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42620,
                  "src": "1854:25:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42617,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1854:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1725:158:60"
            }
          },
          {
            "id": 42636,
            "nodeType": "EventDefinition",
            "src": "2412:189:60",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 42621,
              "nodeType": "StructuredDocumentation",
              "src": "1888:521:60",
              "text": " @notice A bond escalation has been settled\n @param _requestId             The ID of the bond-escalated request\n @param _disputeId             The ID of the bond-escalated dispute\n @param _forVotesWon           True if the winning side were the for votes\n @param _token                 The address of the token being paid out\n @param _amountPerPledger      The amount of `_token` to be paid for each winning pledgers\n @param _winningPledgersLength The number of winning pledgers"
            },
            "eventSelector": "ea51f708b47296ee0e761d2fb5a34e84aa06342ab1da722fc9c7e827cf3a0ee9",
            "name": "BondEscalationSettled",
            "nameLocation": "2418:21:60",
            "parameters": {
              "id": 42635,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42623,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "2453:10:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42636,
                  "src": "2445:18:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42622,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2445:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42625,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "2477:10:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42636,
                  "src": "2469:18:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42624,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2469:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42627,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_forVotesWon",
                  "nameLocation": "2498:12:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42636,
                  "src": "2493:17:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 42626,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2493:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42630,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_token",
                  "nameLocation": "2523:6:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42636,
                  "src": "2516:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$2822",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "id": 42629,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42628,
                      "name": "IERC20",
                      "nameLocations": [
                        "2516:6:60"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2822,
                      "src": "2516:6:60"
                    },
                    "referencedDeclaration": 2822,
                    "src": "2516:6:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$2822",
                      "typeString": "contract IERC20"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42632,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_amountPerPledger",
                  "nameLocation": "2543:17:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42636,
                  "src": "2535:25:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42631,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2535:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42634,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_winningPledgersLength",
                  "nameLocation": "2574:22:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42636,
                  "src": "2566:30:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42633,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2566:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2439:161:60"
            }
          },
          {
            "id": 42650,
            "nodeType": "EventDefinition",
            "src": "3021:143:60",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 42637,
              "nodeType": "StructuredDocumentation",
              "src": "2605:413:60",
              "text": " @notice A pledge has been released back to the user\n @param _requestId        The ID of the bond-escalated request\n @param _disputeId        The ID of the bond-escalated dispute\n @param _pledger          The user who is getting their tokens released\n @param _token            The address of the token being released\n @param _amount           The amount of `_token` released"
            },
            "eventSelector": "ff8bcc5a5250aedfa702052d8bd42c02522c29c23e40768a188ece4b80edde18",
            "name": "PledgeReleased",
            "nameLocation": "3027:14:60",
            "parameters": {
              "id": 42649,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42639,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "3063:10:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42650,
                  "src": "3047:26:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42638,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3047:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42641,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "3091:10:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42650,
                  "src": "3075:26:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42640,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3075:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42643,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_pledger",
                  "nameLocation": "3119:8:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42650,
                  "src": "3103:24:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 42642,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3103:7:60",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42646,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_token",
                  "nameLocation": "3136:6:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42650,
                  "src": "3129:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$2822",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "id": 42645,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42644,
                      "name": "IERC20",
                      "nameLocations": [
                        "3129:6:60"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2822,
                      "src": "3129:6:60"
                    },
                    "referencedDeclaration": 2822,
                    "src": "3129:6:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$2822",
                      "typeString": "contract IERC20"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42648,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_amount",
                  "nameLocation": "3152:7:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42650,
                  "src": "3144:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42647,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3144:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3041:122:60"
            }
          },
          {
            "id": 42664,
            "nodeType": "EventDefinition",
            "src": "3614:152:60",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 42651,
              "nodeType": "StructuredDocumentation",
              "src": "3168:443:60",
              "text": " @notice A user claimed their reward for pledging for the winning side of a dispute\n @param _requestId        The ID of the bond-escalated request\n @param _disputeId        The ID of the bond-escalated dispute\n @param _pledger          The user who claimed their reward\n @param _token            The address of the token being paid out\n @param _amount           The amount of `_token` paid to the pledger"
            },
            "eventSelector": "a649187f7aba939a5d7af6bf0e38231ef4425ddd00674f16437e959d20e4c159",
            "name": "EscalationRewardClaimed",
            "nameLocation": "3620:23:60",
            "parameters": {
              "id": 42663,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42653,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "3665:10:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42664,
                  "src": "3649:26:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42652,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3649:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42655,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "3693:10:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42664,
                  "src": "3677:26:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42654,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3677:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42657,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_pledger",
                  "nameLocation": "3721:8:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42664,
                  "src": "3705:24:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 42656,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3705:7:60",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42660,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_token",
                  "nameLocation": "3738:6:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42664,
                  "src": "3731:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$2822",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "id": 42659,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42658,
                      "name": "IERC20",
                      "nameLocations": [
                        "3731:6:60"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2822,
                      "src": "3731:6:60"
                    },
                    "referencedDeclaration": 2822,
                    "src": "3731:6:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$2822",
                      "typeString": "contract IERC20"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42662,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_amount",
                  "nameLocation": "3754:7:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42664,
                  "src": "3746:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42661,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3746:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3643:122:60"
            }
          },
          {
            "id": 42677,
            "nodeType": "StructDefinition",
            "src": "4440:170:60",
            "nodes": [],
            "canonicalName": "IBondEscalationAccounting.EscalationResult",
            "members": [
              {
                "constant": false,
                "id": 42666,
                "mutability": "mutable",
                "name": "requestId",
                "nameLocation": "4478:9:60",
                "nodeType": "VariableDeclaration",
                "scope": 42677,
                "src": "4470:17:60",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 42665,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "4470:7:60",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 42668,
                "mutability": "mutable",
                "name": "forVotesWon",
                "nameLocation": "4498:11:60",
                "nodeType": "VariableDeclaration",
                "scope": 42677,
                "src": "4493:16:60",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                },
                "typeName": {
                  "id": 42667,
                  "name": "bool",
                  "nodeType": "ElementaryTypeName",
                  "src": "4493:4:60",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 42671,
                "mutability": "mutable",
                "name": "token",
                "nameLocation": "4522:5:60",
                "nodeType": "VariableDeclaration",
                "scope": 42677,
                "src": "4515:12:60",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_IERC20_$2822",
                  "typeString": "contract IERC20"
                },
                "typeName": {
                  "id": 42670,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 42669,
                    "name": "IERC20",
                    "nameLocations": [
                      "4515:6:60"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 2822,
                    "src": "4515:6:60"
                  },
                  "referencedDeclaration": 2822,
                  "src": "4515:6:60",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$2822",
                    "typeString": "contract IERC20"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 42673,
                "mutability": "mutable",
                "name": "amountPerPledger",
                "nameLocation": "4541:16:60",
                "nodeType": "VariableDeclaration",
                "scope": 42677,
                "src": "4533:24:60",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 42672,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4533:7:60",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 42676,
                "mutability": "mutable",
                "name": "bondEscalationModule",
                "nameLocation": "4585:20:60",
                "nodeType": "VariableDeclaration",
                "scope": 42677,
                "src": "4563:42:60",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_IBondEscalationModule_$43004",
                  "typeString": "contract IBondEscalationModule"
                },
                "typeName": {
                  "id": 42675,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 42674,
                    "name": "IBondEscalationModule",
                    "nameLocations": [
                      "4563:21:60"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 43004,
                    "src": "4563:21:60"
                  },
                  "referencedDeclaration": 43004,
                  "src": "4563:21:60",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IBondEscalationModule_$43004",
                    "typeString": "contract IBondEscalationModule"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "EscalationResult",
            "nameLocation": "4447:16:60",
            "scope": 42784,
            "visibility": "public"
          },
          {
            "id": 42680,
            "nodeType": "ErrorDefinition",
            "src": "4904:48:60",
            "nodes": [],
            "documentation": {
              "id": 42678,
              "nodeType": "StructuredDocumentation",
              "src": "4787:114:60",
              "text": " @notice Thrown when the user tries to claim their pledge for an escalation that was already claimed"
            },
            "errorSelector": "4f4833b8",
            "name": "BondEscalationAccounting_AlreadyClaimed",
            "nameLocation": "4910:39:60",
            "parameters": {
              "id": 42679,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4949:2:60"
            }
          },
          {
            "id": 42683,
            "nodeType": "ErrorDefinition",
            "src": "5073:52:60",
            "nodes": [],
            "documentation": {
              "id": 42681,
              "nodeType": "StructuredDocumentation",
              "src": "4956:114:60",
              "text": " @notice Thrown when the user tries to claim their pledge for an escalation that wasn't finished yet"
            },
            "errorSelector": "e53ac084",
            "name": "BondEscalationAccounting_NoEscalationResult",
            "nameLocation": "5079:43:60",
            "parameters": {
              "id": 42682,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5122:2:60"
            }
          },
          {
            "id": 42686,
            "nodeType": "ErrorDefinition",
            "src": "5211:51:60",
            "nodes": [],
            "documentation": {
              "id": 42684,
              "nodeType": "StructuredDocumentation",
              "src": "5129:79:60",
              "text": " @notice Thrown when the user doesn't have enough funds to pledge"
            },
            "errorSelector": "095508b6",
            "name": "BondEscalationAccounting_InsufficientFunds",
            "nameLocation": "5217:42:60",
            "parameters": {
              "id": 42685,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5259:2:60"
            }
          },
          {
            "id": 42689,
            "nodeType": "ErrorDefinition",
            "src": "5350:48:60",
            "nodes": [],
            "documentation": {
              "id": 42687,
              "nodeType": "StructuredDocumentation",
              "src": "5266:81:60",
              "text": " @notice Thrown when trying to settle an already settled escalation"
            },
            "errorSelector": "fc11ecc3",
            "name": "BondEscalationAccounting_AlreadySettled",
            "nameLocation": "5356:39:60",
            "parameters": {
              "id": 42688,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5395:2:60"
            }
          },
          {
            "id": 42700,
            "nodeType": "FunctionDefinition",
            "src": "5884:94:60",
            "nodes": [],
            "documentation": {
              "id": 42690,
              "nodeType": "StructuredDocumentation",
              "src": "5578:303:60",
              "text": " @notice The amount pledged by the given pledger in the given dispute of the given request\n @param _disputeId         The ID of the bond-escalated dispute\n @param _token             Address of the token being pledged\n @return _amountPledged    The amount of pledged tokens"
            },
            "functionSelector": "3edfa75d",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "pledges",
            "nameLocation": "5893:7:60",
            "parameters": {
              "id": 42696,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42692,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "5909:10:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42700,
                  "src": "5901:18:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42691,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5901:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42695,
                  "mutability": "mutable",
                  "name": "_token",
                  "nameLocation": "5928:6:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42700,
                  "src": "5921:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$2822",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "id": 42694,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42693,
                      "name": "IERC20",
                      "nameLocations": [
                        "5921:6:60"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2822,
                      "src": "5921:6:60"
                    },
                    "referencedDeclaration": 2822,
                    "src": "5921:6:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$2822",
                      "typeString": "contract IERC20"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5900:35:60"
            },
            "returnParameters": {
              "id": 42699,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42698,
                  "mutability": "mutable",
                  "name": "_amountPledged",
                  "nameLocation": "5962:14:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42700,
                  "src": "5954:22:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42697,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5954:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5953:24:60"
            },
            "scope": 42784,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 42718,
            "nodeType": "FunctionDefinition",
            "src": "6564:235:60",
            "nodes": [],
            "documentation": {
              "id": 42701,
              "nodeType": "StructuredDocumentation",
              "src": "5982:579:60",
              "text": " @notice The result of the given dispute\n @param _disputeId             The ID of the bond-escalated dispute\n @return _requestId            The ID of the bond-escalated request\n @return _forVotesWon          True if the for votes won the dispute\n @return _token                Address of the token being paid as a reward for winning the bond escalation\n @return _amountPerPledger     Amount of `_token` to be rewarded to each of the winning pledgers\n @return _bondEscalationModule The address of the bond escalation module that was used"
            },
            "functionSelector": "1cc41fe8",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "escalationResults",
            "nameLocation": "6573:17:60",
            "parameters": {
              "id": 42704,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42703,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "6599:10:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42718,
                  "src": "6591:18:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42702,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6591:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6590:20:60"
            },
            "returnParameters": {
              "id": 42717,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42706,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "6652:10:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42718,
                  "src": "6644:18:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42705,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6644:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42708,
                  "mutability": "mutable",
                  "name": "_forVotesWon",
                  "nameLocation": "6675:12:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42718,
                  "src": "6670:17:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 42707,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "6670:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42711,
                  "mutability": "mutable",
                  "name": "_token",
                  "nameLocation": "6702:6:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42718,
                  "src": "6695:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$2822",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "id": 42710,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42709,
                      "name": "IERC20",
                      "nameLocations": [
                        "6695:6:60"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2822,
                      "src": "6695:6:60"
                    },
                    "referencedDeclaration": 2822,
                    "src": "6695:6:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$2822",
                      "typeString": "contract IERC20"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42713,
                  "mutability": "mutable",
                  "name": "_amountPerPledger",
                  "nameLocation": "6724:17:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42718,
                  "src": "6716:25:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42712,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6716:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42716,
                  "mutability": "mutable",
                  "name": "_bondEscalationModule",
                  "nameLocation": "6771:21:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42718,
                  "src": "6749:43:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IBondEscalationModule_$43004",
                    "typeString": "contract IBondEscalationModule"
                  },
                  "typeName": {
                    "id": 42715,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42714,
                      "name": "IBondEscalationModule",
                      "nameLocations": [
                        "6749:21:60"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 43004,
                      "src": "6749:21:60"
                    },
                    "referencedDeclaration": 43004,
                    "src": "6749:21:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IBondEscalationModule_$43004",
                      "typeString": "contract IBondEscalationModule"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6636:162:60"
            },
            "scope": 42784,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 42728,
            "nodeType": "FunctionDefinition",
            "src": "7104:95:60",
            "nodes": [],
            "documentation": {
              "id": 42719,
              "nodeType": "StructuredDocumentation",
              "src": "6803:298:60",
              "text": " @notice True if the given pledger has claimed their reward for the given dispute\n @param _requestId         The ID of the bond-escalated request\n @param _pledger           Address of the pledger\n @return _claimed          True if the pledger has claimed their reward"
            },
            "functionSelector": "c0c1b54e",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "pledgerClaimed",
            "nameLocation": "7113:14:60",
            "parameters": {
              "id": 42724,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42721,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "7136:10:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42728,
                  "src": "7128:18:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42720,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7128:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42723,
                  "mutability": "mutable",
                  "name": "_pledger",
                  "nameLocation": "7156:8:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42728,
                  "src": "7148:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 42722,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7148:7:60",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7127:38:60"
            },
            "returnParameters": {
              "id": 42727,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42726,
                  "mutability": "mutable",
                  "name": "_claimed",
                  "nameLocation": "7189:8:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42728,
                  "src": "7184:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 42725,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "7184:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7183:15:60"
            },
            "scope": 42784,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 42743,
            "nodeType": "FunctionDefinition",
            "src": "7912:115:60",
            "nodes": [],
            "documentation": {
              "id": 42729,
              "nodeType": "StructuredDocumentation",
              "src": "7375:534:60",
              "text": " @notice Pledges the given amount of token to the provided dispute id of the provided request id\n @dev This function must be called by an allowed module\n @param _pledger           Address of the pledger\n @param _requestId         The ID of the bond-escalated request\n @param _disputeId         The ID of the bond-escalated dispute\n @param _token             Address of the token being paid as a reward for winning the bond escalation\n @param _amount            Amount of token to pledge"
            },
            "functionSelector": "2c61d33c",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "pledge",
            "nameLocation": "7921:6:60",
            "parameters": {
              "id": 42741,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42731,
                  "mutability": "mutable",
                  "name": "_pledger",
                  "nameLocation": "7936:8:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42743,
                  "src": "7928:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 42730,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7928:7:60",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42733,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "7954:10:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42743,
                  "src": "7946:18:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42732,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7946:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42735,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "7974:10:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42743,
                  "src": "7966:18:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42734,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7966:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42738,
                  "mutability": "mutable",
                  "name": "_token",
                  "nameLocation": "7993:6:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42743,
                  "src": "7986:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$2822",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "id": 42737,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42736,
                      "name": "IERC20",
                      "nameLocations": [
                        "7986:6:60"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2822,
                      "src": "7986:6:60"
                    },
                    "referencedDeclaration": 2822,
                    "src": "7986:6:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$2822",
                      "typeString": "contract IERC20"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42740,
                  "mutability": "mutable",
                  "name": "_amount",
                  "nameLocation": "8009:7:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42743,
                  "src": "8001:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42739,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8001:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7927:90:60"
            },
            "returnParameters": {
              "id": 42742,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8026:0:60"
            },
            "scope": 42784,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 42760,
            "nodeType": "FunctionDefinition",
            "src": "8719:202:60",
            "nodes": [],
            "documentation": {
              "id": 42744,
              "nodeType": "StructuredDocumentation",
              "src": "8031:685:60",
              "text": " @notice Updates the accounting of the given dispute to reflect the result of the bond escalation\n @dev This function must be called by an allowed module\n @param _requestId              The ID of the bond-escalated request\n @param _disputeId              The ID of the bond-escalated dispute\n @param _forVotesWon            True if the for votes won the dispute\n @param _token                  Address of the token being paid as a reward for winning the bond escalation\n @param _amountPerPledger       Amount of `_token` to be rewarded to each of the winning pledgers\n @param _winningPledgersLength  Amount of pledges that won the dispute"
            },
            "functionSelector": "e517a1f7",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "onSettleBondEscalation",
            "nameLocation": "8728:22:60",
            "parameters": {
              "id": 42758,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42746,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "8764:10:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42760,
                  "src": "8756:18:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42745,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8756:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42748,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "8788:10:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42760,
                  "src": "8780:18:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42747,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8780:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42750,
                  "mutability": "mutable",
                  "name": "_forVotesWon",
                  "nameLocation": "8809:12:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42760,
                  "src": "8804:17:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 42749,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8804:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42753,
                  "mutability": "mutable",
                  "name": "_token",
                  "nameLocation": "8834:6:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42760,
                  "src": "8827:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$2822",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "id": 42752,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42751,
                      "name": "IERC20",
                      "nameLocations": [
                        "8827:6:60"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2822,
                      "src": "8827:6:60"
                    },
                    "referencedDeclaration": 2822,
                    "src": "8827:6:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$2822",
                      "typeString": "contract IERC20"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42755,
                  "mutability": "mutable",
                  "name": "_amountPerPledger",
                  "nameLocation": "8854:17:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42760,
                  "src": "8846:25:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42754,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8846:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42757,
                  "mutability": "mutable",
                  "name": "_winningPledgersLength",
                  "nameLocation": "8885:22:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42760,
                  "src": "8877:30:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42756,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8877:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8750:161:60"
            },
            "returnParameters": {
              "id": 42759,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8920:0:60"
            },
            "scope": 42784,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 42775,
            "nodeType": "FunctionDefinition",
            "src": "9405:146:60",
            "nodes": [],
            "documentation": {
              "id": 42761,
              "nodeType": "StructuredDocumentation",
              "src": "8925:477:60",
              "text": " @notice Releases a given amount of funds to the pledger\n @dev This function must be called by an allowed module\n @param _requestId         The ID of the bond-escalated request\n @param _disputeId         The ID of the bond-escalated dispute\n @param _pledger           Address of the pledger\n @param _token             Address of the token to be released\n @param _amount            Amount of `_token` to be released to the pledger"
            },
            "functionSelector": "22cfb00a",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "releasePledge",
            "nameLocation": "9414:13:60",
            "parameters": {
              "id": 42773,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42763,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "9441:10:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42775,
                  "src": "9433:18:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42762,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9433:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42765,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "9465:10:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42775,
                  "src": "9457:18:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42764,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9457:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42767,
                  "mutability": "mutable",
                  "name": "_pledger",
                  "nameLocation": "9489:8:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42775,
                  "src": "9481:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 42766,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9481:7:60",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42770,
                  "mutability": "mutable",
                  "name": "_token",
                  "nameLocation": "9510:6:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42775,
                  "src": "9503:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$2822",
                    "typeString": "contract IERC20"
                  },
                  "typeName": {
                    "id": 42769,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 42768,
                      "name": "IERC20",
                      "nameLocations": [
                        "9503:6:60"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 2822,
                      "src": "9503:6:60"
                    },
                    "referencedDeclaration": 2822,
                    "src": "9503:6:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC20_$2822",
                      "typeString": "contract IERC20"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42772,
                  "mutability": "mutable",
                  "name": "_amount",
                  "nameLocation": "9530:7:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42775,
                  "src": "9522:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 42771,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9522:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9427:114:60"
            },
            "returnParameters": {
              "id": 42774,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9550:0:60"
            },
            "scope": 42784,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 42783,
            "nodeType": "FunctionDefinition",
            "src": "9787:78:60",
            "nodes": [],
            "documentation": {
              "id": 42776,
              "nodeType": "StructuredDocumentation",
              "src": "9555:229:60",
              "text": " @notice                 Claims the reward for the pledger the given dispute\n @param _disputeId       The ID of the bond-escalated dispute\n @param _pledger         Address of the pledger to claim the rewards"
            },
            "functionSelector": "9043e2a0",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "claimEscalationReward",
            "nameLocation": "9796:21:60",
            "parameters": {
              "id": 42781,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 42778,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "9826:10:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42783,
                  "src": "9818:18:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 42777,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9818:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 42780,
                  "mutability": "mutable",
                  "name": "_pledger",
                  "nameLocation": "9846:8:60",
                  "nodeType": "VariableDeclaration",
                  "scope": 42783,
                  "src": "9838:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 42779,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "9838:7:60",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9817:38:60"
            },
            "returnParameters": {
              "id": 42782,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9864:0:60"
            },
            "scope": 42784,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 42590,
              "name": "IAccountingExtension",
              "nameLocations": [
                "466:20:60"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 42580,
              "src": "466:20:60"
            },
            "id": 42591,
            "nodeType": "InheritanceSpecifier",
            "src": "466:20:60"
          }
        ],
        "canonicalName": "IBondEscalationAccounting",
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": {
          "id": 42589,
          "nodeType": "StructuredDocumentation",
          "src": "289:137:60",
          "text": " @title BondEscalationAccounting\n @notice Extension allowing users to deposit and pledge funds to be used for bond escalation"
        },
        "fullyImplemented": false,
        "linearizedBaseContracts": [
          42784,
          42580
        ],
        "name": "IBondEscalationAccounting",
        "nameLocation": "437:25:60",
        "scope": 42785,
        "usedErrors": [
          42444,
          42447,
          42450,
          42453,
          42680,
          42683,
          42686,
          42689
        ]
      }
    ],
    "license": "AGPL-3.0-only"
  },
  "id": 60
}