{
  "abi": [
    {
      "inputs": [],
      "name": "ArbitratorModule_InvalidArbitrator",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ArbitratorModule_InvalidDisputeId",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ArbitratorModule_InvalidResolutionStatus",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ArbitratorModule_OnlyArbitrator",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "Module_OnlyOracle",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "enum IOracle.DisputeStatus",
          "name": "_status",
          "type": "uint8"
        }
      ],
      "name": "DisputeResolved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "_finalizer",
          "type": "address"
        }
      ],
      "name": "RequestFinalized",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "ResolutionStarted",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "decodeRequestData",
      "outputs": [
        {
          "internalType": "address",
          "name": "_arbitrator",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_finalizer",
          "type": "address"
        }
      ],
      "name": "finalizeRequest",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "getStatus",
      "outputs": [
        {
          "internalType": "enum IArbitratorModule.ArbitrationStatus",
          "name": "_disputeStatus",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "moduleName",
      "outputs": [
        {
          "internalType": "string",
          "name": "_moduleName",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "oracle",
      "outputs": [
        {
          "internalType": "address",
          "name": "_oracle",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "requestData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "_requestData",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "resolveDispute",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        }
      ],
      "name": "setupRequest",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "startResolution",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x",
    "sourceMap": "",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x",
    "sourceMap": "",
    "linkReferences": {}
  },
  "methodIdentifiers": {
    "decodeRequestData(bytes32)": "4d610a46",
    "finalizeRequest(bytes32,address)": "309de607",
    "getStatus(bytes32)": "5de28ae0",
    "moduleName()": "93f0899a",
    "oracle()": "7dc0d1d0",
    "requestData(bytes32)": "3661346b",
    "resolveDispute(bytes32)": "c8218e3e",
    "setupRequest(bytes32,bytes)": "2e76be2a",
    "startResolution(bytes32)": "d96dd0e7"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ArbitratorModule_InvalidArbitrator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ArbitratorModule_InvalidDisputeId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ArbitratorModule_InvalidResolutionStatus\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ArbitratorModule_OnlyArbitrator\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Module_OnlyOracle\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum IOracle.DisputeStatus\",\"name\":\"_status\",\"type\":\"uint8\"}],\"name\":\"DisputeResolved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_finalizer\",\"type\":\"address\"}],\"name\":\"RequestFinalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"ResolutionStarted\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"decodeRequestData\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_arbitrator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_finalizer\",\"type\":\"address\"}],\"name\":\"finalizeRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"getStatus\",\"outputs\":[{\"internalType\":\"enum IArbitratorModule.ArbitrationStatus\",\"name\":\"_disputeStatus\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"moduleName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"_moduleName\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_oracle\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"requestData\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"_requestData\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"resolveDispute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"setupRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"startResolution\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"DisputeResolved(bytes32,bytes32,uint8)\":{\"params\":{\"_disputeId\":\"The id for the dispute that was resolved\",\"_requestId\":\"The id for the request that was disputed\",\"_status\":\"The final result of the resolution\"}},\"RequestFinalized(bytes32,address)\":{\"params\":{\"_finalizer\":\"The address that initiated the finalization\",\"_requestId\":\"The ID of the request that was finalized\"}},\"ResolutionStarted(bytes32,bytes32)\":{\"params\":{\"_disputeId\":\"The id for the dispute that the resolution was started for\",\"_requestId\":\"The id for the request for the dispute\"}}},\"kind\":\"dev\",\"methods\":{\"decodeRequestData(bytes32)\":{\"params\":{\"_requestId\":\"The ID of the request\"},\"returns\":{\"_arbitrator\":\"The address of the arbitrator\"}},\"finalizeRequest(bytes32,address)\":{\"params\":{\"_finalizer\":\"The address that initiated the finalization\",\"_requestId\":\"The ID of the request being finalized\"}},\"getStatus(bytes32)\":{\"params\":{\"_disputeId\":\"The ID of the dispute\"},\"returns\":{\"_disputeStatus\":\"The `ArbitrationStatus` of the dispute\"}},\"moduleName()\":{\"returns\":{\"_moduleName\":\"The name of the module.\"}},\"oracle()\":{\"returns\":{\"_oracle\":\"The address of the oracle\"}},\"requestData(bytes32)\":{\"params\":{\"_requestId\":\"The id of the request\"},\"returns\":{\"_requestData\":\"The data of the request\"}},\"resolveDispute(bytes32)\":{\"details\":\"Only callable by the Oracle\",\"params\":{\"_disputeId\":\"The ID of the dispute\"}},\"setupRequest(bytes32,bytes)\":{\"params\":{\"_data\":\"The data of the request\",\"_requestId\":\"The ID of the request\"}},\"startResolution(bytes32)\":{\"details\":\"Only callable by the OracleWill revert if the arbitrator address is the address zero\",\"params\":{\"_disputeId\":\"The ID of the dispute\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"ArbitratorModule_InvalidArbitrator()\":[{\"notice\":\"Thrown when the arbitrator address is the address zero\"}],\"ArbitratorModule_InvalidDisputeId()\":[{\"notice\":\"Thrown when trying to resolve a dispute that is not escalated\"}],\"ArbitratorModule_InvalidResolutionStatus()\":[{\"notice\":\"Thrown when the arbitrator returns an invalid resolution status\"}],\"ArbitratorModule_OnlyArbitrator()\":[{\"notice\":\"Thrown when an unauthorized caller calls a function only the arbitrator can call\"}],\"Module_OnlyOracle()\":[{\"notice\":\"Thrown when the caller is not the oracle\"}]},\"events\":{\"DisputeResolved(bytes32,bytes32,uint8)\":{\"notice\":\"Emitted when a dispute has been resolved\"},\"RequestFinalized(bytes32,address)\":{\"notice\":\"Emitted when a request is finalized\"},\"ResolutionStarted(bytes32,bytes32)\":{\"notice\":\"Emitted when a resolution is started\"}},\"kind\":\"user\",\"methods\":{\"decodeRequestData(bytes32)\":{\"notice\":\"Returns the decoded data for a request\"},\"finalizeRequest(bytes32,address)\":{\"notice\":\"Finalizes a given request and executes any additional logic set by the chosen modules\"},\"getStatus(bytes32)\":{\"notice\":\"Returns the current arbitration status of a dispute\"},\"moduleName()\":{\"notice\":\"Returns the name of the module.\"},\"oracle()\":{\"notice\":\"Returns the address of the oracle\"},\"requestData(bytes32)\":{\"notice\":\"Returns the data of the request associated with the provided id\"},\"resolveDispute(bytes32)\":{\"notice\":\"Resolves the dispute by getting the answer from the arbitrator and updating the dispute status\"},\"setupRequest(bytes32,bytes)\":{\"notice\":\"Stores the request data and runs module-specific hooks\"},\"startResolution(bytes32)\":{\"notice\":\"Starts the arbitration process by calling `resolve` on the arbitrator and flags the dispute as Active\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"solidity/interfaces/modules/resolution/IArbitratorModule.sol\":\"IArbitratorModule\"},\"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\"]},\"solidity/interfaces/modules/resolution/IArbitratorModule.sol\":{\"keccak256\":\"0xc4a27b06a09d11b40940214100abf17ad0140bc8fa875ad0800accee7bfb585e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://55ee5b3ca145ae7c4f9f1212896a3975282ca66a6f7eb8c0dd3a506901e979a7\",\"dweb:/ipfs/QmQogSJMVPDjGUT1cp6YBsLXG97F6WMHtCNqworkpyN8g7\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.19+commit.7dd6d404"
    },
    "language": "Solidity",
    "output": {
      "abi": [
        {
          "inputs": [],
          "type": "error",
          "name": "ArbitratorModule_InvalidArbitrator"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "ArbitratorModule_InvalidDisputeId"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "ArbitratorModule_InvalidResolutionStatus"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "ArbitratorModule_OnlyArbitrator"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "Module_OnlyOracle"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "enum IOracle.DisputeStatus",
              "name": "_status",
              "type": "uint8",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "DisputeResolved",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "address",
              "name": "_finalizer",
              "type": "address",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "RequestFinalized",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32",
              "indexed": true
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": true
            }
          ],
          "type": "event",
          "name": "ResolutionStarted",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "decodeRequestData",
          "outputs": [
            {
              "internalType": "address",
              "name": "_arbitrator",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_finalizer",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "finalizeRequest"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "getStatus",
          "outputs": [
            {
              "internalType": "enum IArbitratorModule.ArbitrationStatus",
              "name": "_disputeStatus",
              "type": "uint8"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "moduleName",
          "outputs": [
            {
              "internalType": "string",
              "name": "_moduleName",
              "type": "string"
            }
          ]
        },
        {
          "inputs": [],
          "stateMutability": "view",
          "type": "function",
          "name": "oracle",
          "outputs": [
            {
              "internalType": "address",
              "name": "_oracle",
              "type": "address"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "requestData",
          "outputs": [
            {
              "internalType": "bytes",
              "name": "_requestData",
              "type": "bytes"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "resolveDispute"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "_data",
              "type": "bytes"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "setupRequest"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "startResolution"
        }
      ],
      "devdoc": {
        "kind": "dev",
        "methods": {
          "decodeRequestData(bytes32)": {
            "params": {
              "_requestId": "The ID of the request"
            },
            "returns": {
              "_arbitrator": "The address of the arbitrator"
            }
          },
          "finalizeRequest(bytes32,address)": {
            "params": {
              "_finalizer": "The address that initiated the finalization",
              "_requestId": "The ID of the request being finalized"
            }
          },
          "getStatus(bytes32)": {
            "params": {
              "_disputeId": "The ID of the dispute"
            },
            "returns": {
              "_disputeStatus": "The `ArbitrationStatus` of the dispute"
            }
          },
          "moduleName()": {
            "returns": {
              "_moduleName": "The name of the module."
            }
          },
          "oracle()": {
            "returns": {
              "_oracle": "The address of the oracle"
            }
          },
          "requestData(bytes32)": {
            "params": {
              "_requestId": "The id of the request"
            },
            "returns": {
              "_requestData": "The data of the request"
            }
          },
          "resolveDispute(bytes32)": {
            "details": "Only callable by the Oracle",
            "params": {
              "_disputeId": "The ID of the dispute"
            }
          },
          "setupRequest(bytes32,bytes)": {
            "params": {
              "_data": "The data of the request",
              "_requestId": "The ID of the request"
            }
          },
          "startResolution(bytes32)": {
            "details": "Only callable by the OracleWill revert if the arbitrator address is the address zero",
            "params": {
              "_disputeId": "The ID of the dispute"
            }
          }
        },
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {
          "decodeRequestData(bytes32)": {
            "notice": "Returns the decoded data for a request"
          },
          "finalizeRequest(bytes32,address)": {
            "notice": "Finalizes a given request and executes any additional logic set by the chosen modules"
          },
          "getStatus(bytes32)": {
            "notice": "Returns the current arbitration status of a dispute"
          },
          "moduleName()": {
            "notice": "Returns the name of the module."
          },
          "oracle()": {
            "notice": "Returns the address of the oracle"
          },
          "requestData(bytes32)": {
            "notice": "Returns the data of the request associated with the provided id"
          },
          "resolveDispute(bytes32)": {
            "notice": "Resolves the dispute by getting the answer from the arbitrator and updating the dispute status"
          },
          "setupRequest(bytes32,bytes)": {
            "notice": "Stores the request data and runs module-specific hooks"
          },
          "startResolution(bytes32)": {
            "notice": "Starts the arbitration process by calling `resolve` on the arbitrator and flags the dispute as Active"
          }
        },
        "version": 1
      }
    },
    "settings": {
      "remappings": [
        "@defi-wonderland/=node_modules/@defi-wonderland/",
        "@openzeppelin/=node_modules/@openzeppelin/",
        "ds-test/=node_modules/ds-test/src/",
        "forge-std/=node_modules/forge-std/src/",
        "solmate/=node_modules/solmate/src/"
      ],
      "optimizer": {
        "enabled": true,
        "runs": 10000
      },
      "metadata": {
        "bytecodeHash": "ipfs"
      },
      "compilationTarget": {
        "solidity/interfaces/modules/resolution/IArbitratorModule.sol": "IArbitratorModule"
      },
      "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"
      },
      "solidity/interfaces/modules/resolution/IArbitratorModule.sol": {
        "keccak256": "0xc4a27b06a09d11b40940214100abf17ad0140bc8fa875ad0800accee7bfb585e",
        "urls": [
          "bzz-raw://55ee5b3ca145ae7c4f9f1212896a3975282ca66a6f7eb8c0dd3a506901e979a7",
          "dweb:/ipfs/QmQogSJMVPDjGUT1cp6YBsLXG97F6WMHtCNqworkpyN8g7"
        ],
        "license": "MIT"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "solidity/interfaces/modules/resolution/IArbitratorModule.sol",
    "id": 43482,
    "exportedSymbols": {
      "IArbitratorModule": [
        43481
      ],
      "IResolutionModule": [
        2399
      ]
    },
    "nodeType": "SourceUnit",
    "src": "32:2830:71",
    "nodes": [
      {
        "id": 43431,
        "nodeType": "PragmaDirective",
        "src": "32:24:71",
        "nodes": [],
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".19"
        ]
      },
      {
        "id": 43433,
        "nodeType": "ImportDirective",
        "src": "58:137:71",
        "nodes": [],
        "absolutePath": "node_modules/@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/resolution/IResolutionModule.sol",
        "file": "@defi-wonderland/prophet-core-contracts/solidity/interfaces/modules/resolution/IResolutionModule.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 43482,
        "sourceUnit": 2400,
        "symbolAliases": [
          {
            "foreign": {
              "id": 43432,
              "name": "IResolutionModule",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2399,
              "src": "66:17:71",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 43481,
        "nodeType": "ContractDefinition",
        "src": "319:2542:71",
        "nodes": [
          {
            "id": 43438,
            "nodeType": "ErrorDefinition",
            "src": "651:40:71",
            "nodes": [],
            "documentation": {
              "id": 43436,
              "nodeType": "StructuredDocumentation",
              "src": "545:103:71",
              "text": " @notice Thrown when an unauthorized caller calls a function only the arbitrator can call"
            },
            "errorSelector": "2a6105f8",
            "name": "ArbitratorModule_OnlyArbitrator",
            "nameLocation": "657:31:71",
            "parameters": {
              "id": 43437,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "688:2:71"
            }
          },
          {
            "id": 43441,
            "nodeType": "ErrorDefinition",
            "src": "782:42:71",
            "nodes": [],
            "documentation": {
              "id": 43439,
              "nodeType": "StructuredDocumentation",
              "src": "695:84:71",
              "text": " @notice Thrown when trying to resolve a dispute that is not escalated"
            },
            "errorSelector": "48965c9f",
            "name": "ArbitratorModule_InvalidDisputeId",
            "nameLocation": "788:33:71",
            "parameters": {
              "id": 43440,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "821:2:71"
            }
          },
          {
            "id": 43444,
            "nodeType": "ErrorDefinition",
            "src": "908:43:71",
            "nodes": [],
            "documentation": {
              "id": 43442,
              "nodeType": "StructuredDocumentation",
              "src": "828:77:71",
              "text": " @notice Thrown when the arbitrator address is the address zero"
            },
            "errorSelector": "4fae127f",
            "name": "ArbitratorModule_InvalidArbitrator",
            "nameLocation": "914:34:71",
            "parameters": {
              "id": 43443,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "948:2:71"
            }
          },
          {
            "id": 43447,
            "nodeType": "ErrorDefinition",
            "src": "1044:49:71",
            "nodes": [],
            "documentation": {
              "id": 43445,
              "nodeType": "StructuredDocumentation",
              "src": "955:86:71",
              "text": " @notice Thrown when the arbitrator returns an invalid resolution status"
            },
            "errorSelector": "3dfc5618",
            "name": "ArbitratorModule_InvalidResolutionStatus",
            "nameLocation": "1050:40:71",
            "parameters": {
              "id": 43446,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1090:2:71"
            }
          },
          {
            "id": 43451,
            "nodeType": "EnumDefinition",
            "src": "1338:195:71",
            "nodes": [],
            "canonicalName": "IArbitratorModule.ArbitrationStatus",
            "members": [
              {
                "id": 43448,
                "name": "Unknown",
                "nameLocation": "1367:7:71",
                "nodeType": "EnumValue",
                "src": "1367:7:71"
              },
              {
                "id": 43449,
                "name": "Active",
                "nameLocation": "1433:6:71",
                "nodeType": "EnumValue",
                "src": "1433:6:71"
              },
              {
                "id": 43450,
                "name": "Resolved",
                "nameLocation": "1482:8:71",
                "nodeType": "EnumValue",
                "src": "1482:8:71"
              }
            ],
            "name": "ArbitrationStatus",
            "nameLocation": "1343:17:71"
          },
          {
            "id": 43460,
            "nodeType": "FunctionDefinition",
            "src": "1898:96:71",
            "nodes": [],
            "documentation": {
              "id": 43452,
              "nodeType": "StructuredDocumentation",
              "src": "1709:186:71",
              "text": " @notice Returns the current arbitration status of a dispute\n @param _disputeId The ID of the dispute\n @return _disputeStatus The `ArbitrationStatus` of the dispute"
            },
            "functionSelector": "5de28ae0",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getStatus",
            "nameLocation": "1907:9:71",
            "parameters": {
              "id": 43455,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43454,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "1925:10:71",
                  "nodeType": "VariableDeclaration",
                  "scope": 43460,
                  "src": "1917:18:71",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43453,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1917:7:71",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1916:20:71"
            },
            "returnParameters": {
              "id": 43459,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43458,
                  "mutability": "mutable",
                  "name": "_disputeStatus",
                  "nameLocation": "1978:14:71",
                  "nodeType": "VariableDeclaration",
                  "scope": 43460,
                  "src": "1960:32:71",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ArbitrationStatus_$43451",
                    "typeString": "enum IArbitratorModule.ArbitrationStatus"
                  },
                  "typeName": {
                    "id": 43457,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 43456,
                      "name": "ArbitrationStatus",
                      "nameLocations": [
                        "1960:17:71"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 43451,
                      "src": "1960:17:71"
                    },
                    "referencedDeclaration": 43451,
                    "src": "1960:17:71",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ArbitrationStatus_$43451",
                      "typeString": "enum IArbitratorModule.ArbitrationStatus"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1959:34:71"
            },
            "scope": 43481,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 43466,
            "nodeType": "FunctionDefinition",
            "src": "2281:54:71",
            "nodes": [],
            "baseFunctions": [
              2392
            ],
            "documentation": {
              "id": 43461,
              "nodeType": "StructuredDocumentation",
              "src": "1998:280:71",
              "text": " @notice Starts the arbitration process by calling `resolve` on the\n arbitrator and flags the dispute as Active\n @dev Only callable by the Oracle\n @dev Will revert if the arbitrator address is the address zero\n @param _disputeId The ID of the dispute"
            },
            "functionSelector": "d96dd0e7",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "startResolution",
            "nameLocation": "2290:15:71",
            "parameters": {
              "id": 43464,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43463,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "2314:10:71",
                  "nodeType": "VariableDeclaration",
                  "scope": 43466,
                  "src": "2306:18:71",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43462,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2306:7:71",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2305:20:71"
            },
            "returnParameters": {
              "id": 43465,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2334:0:71"
            },
            "scope": 43481,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 43472,
            "nodeType": "FunctionDefinition",
            "src": "2547:53:71",
            "nodes": [],
            "baseFunctions": [
              2398
            ],
            "documentation": {
              "id": 43467,
              "nodeType": "StructuredDocumentation",
              "src": "2339:205:71",
              "text": " @notice Resolves the dispute by getting the answer from the arbitrator\n and updating the dispute status\n @dev Only callable by the Oracle\n @param _disputeId The ID of the dispute"
            },
            "functionSelector": "c8218e3e",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "resolveDispute",
            "nameLocation": "2556:14:71",
            "parameters": {
              "id": 43470,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43469,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "2579:10:71",
                  "nodeType": "VariableDeclaration",
                  "scope": 43472,
                  "src": "2571:18:71",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43468,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2571:7:71",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2570:20:71"
            },
            "returnParameters": {
              "id": 43471,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2599:0:71"
            },
            "scope": 43481,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 43480,
            "nodeType": "FunctionDefinition",
            "src": "2768:91:71",
            "nodes": [],
            "documentation": {
              "id": 43473,
              "nodeType": "StructuredDocumentation",
              "src": "2604:161:71",
              "text": " @notice Returns the decoded data for a request\n @param _requestId The ID of the request\n @return _arbitrator The address of the arbitrator"
            },
            "functionSelector": "4d610a46",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "decodeRequestData",
            "nameLocation": "2777:17:71",
            "parameters": {
              "id": 43476,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43475,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "2803:10:71",
                  "nodeType": "VariableDeclaration",
                  "scope": 43480,
                  "src": "2795:18:71",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43474,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2795:7:71",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2794:20:71"
            },
            "returnParameters": {
              "id": 43479,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43478,
                  "mutability": "mutable",
                  "name": "_arbitrator",
                  "nameLocation": "2846:11:71",
                  "nodeType": "VariableDeclaration",
                  "scope": 43480,
                  "src": "2838:19:71",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 43477,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2838:7:71",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2837:21:71"
            },
            "scope": 43481,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 43434,
              "name": "IResolutionModule",
              "nameLocations": [
                "350:17:71"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 2399,
              "src": "350:17:71"
            },
            "id": 43435,
            "nodeType": "InheritanceSpecifier",
            "src": "350:17:71"
          }
        ],
        "canonicalName": "IArbitratorModule",
        "contractDependencies": [],
        "contractKind": "interface",
        "fullyImplemented": false,
        "linearizedBaseContracts": [
          43481,
          2399,
          1782
        ],
        "name": "IArbitratorModule",
        "nameLocation": "329:17:71",
        "scope": 43482,
        "usedErrors": [
          1745,
          43438,
          43441,
          43444,
          43447
        ]
      }
    ],
    "license": "MIT"
  },
  "id": 71
}