{
  "abi": [
    {
      "inputs": [],
      "name": "Module_OnlyOracle",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "PrivateERC20ResolutionModule_AlreadyResolved",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "PrivateERC20ResolutionModule_CommittingPhaseOver",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "PrivateERC20ResolutionModule_DisputeNotEscalated",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "PrivateERC20ResolutionModule_EmptyCommitment",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "PrivateERC20ResolutionModule_NonExistentDispute",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "PrivateERC20ResolutionModule_OnGoingCommittingPhase",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "PrivateERC20ResolutionModule_OnGoingRevealingPhase",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "PrivateERC20ResolutionModule_RevealingPhaseOver",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "PrivateERC20ResolutionModule_WrongRevealData",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_startTime",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "CommittingPhaseStarted",
      "type": "event"
    },
    {
      "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"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "_voter",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "_commitment",
          "type": "bytes32"
        }
      ],
      "name": "VoteCommitted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "_voter",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_numberOfVotes",
          "type": "uint256"
        }
      ],
      "name": "VoteRevealed",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_commitment",
          "type": "bytes32"
        }
      ],
      "name": "commitVote",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_numberOfVotes",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "_salt",
          "type": "bytes32"
        }
      ],
      "name": "computeCommitment",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "_commitment",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_requestId",
          "type": "bytes32"
        }
      ],
      "name": "decodeRequestData",
      "outputs": [
        {
          "components": [
            {
              "internalType": "contract IAccountingExtension",
              "name": "accountingExtension",
              "type": "address"
            },
            {
              "internalType": "contract IERC20",
              "name": "votingToken",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "minVotesForQuorum",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "committingTimeWindow",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "revealingTimeWindow",
              "type": "uint256"
            }
          ],
          "internalType": "struct IPrivateERC20ResolutionModule.RequestParameters",
          "name": "_params",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        }
      ],
      "name": "escalations",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "_startTime",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_totalVotes",
          "type": "uint256"
        }
      ],
      "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": [],
      "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": "bytes32",
          "name": "_disputeId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_numberOfVotes",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "_salt",
          "type": "bytes32"
        }
      ],
      "name": "revealVote",
      "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": {
    "commitVote(bytes32,bytes32,bytes32)": "ce5470d7",
    "computeCommitment(bytes32,uint256,bytes32)": "201f0365",
    "decodeRequestData(bytes32)": "4d610a46",
    "escalations(bytes32)": "4cf3ad6a",
    "finalizeRequest(bytes32,address)": "309de607",
    "moduleName()": "93f0899a",
    "oracle()": "7dc0d1d0",
    "requestData(bytes32)": "3661346b",
    "resolveDispute(bytes32)": "c8218e3e",
    "revealVote(bytes32,bytes32,uint256,bytes32)": "8748cb63",
    "setupRequest(bytes32,bytes)": "2e76be2a",
    "startResolution(bytes32)": "d96dd0e7"
  },
  "rawMetadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Module_OnlyOracle\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PrivateERC20ResolutionModule_AlreadyResolved\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PrivateERC20ResolutionModule_CommittingPhaseOver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PrivateERC20ResolutionModule_DisputeNotEscalated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PrivateERC20ResolutionModule_EmptyCommitment\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PrivateERC20ResolutionModule_NonExistentDispute\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PrivateERC20ResolutionModule_OnGoingCommittingPhase\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PrivateERC20ResolutionModule_OnGoingRevealingPhase\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PrivateERC20ResolutionModule_RevealingPhaseOver\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PrivateERC20ResolutionModule_WrongRevealData\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_startTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"CommittingPhaseStarted\",\"type\":\"event\"},{\"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\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_commitment\",\"type\":\"bytes32\"}],\"name\":\"VoteCommitted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_numberOfVotes\",\"type\":\"uint256\"}],\"name\":\"VoteRevealed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_commitment\",\"type\":\"bytes32\"}],\"name\":\"commitVote\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_numberOfVotes\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"}],\"name\":\"computeCommitment\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"_commitment\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_requestId\",\"type\":\"bytes32\"}],\"name\":\"decodeRequestData\",\"outputs\":[{\"components\":[{\"internalType\":\"contract IAccountingExtension\",\"name\":\"accountingExtension\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"votingToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minVotesForQuorum\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"committingTimeWindow\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revealingTimeWindow\",\"type\":\"uint256\"}],\"internalType\":\"struct IPrivateERC20ResolutionModule.RequestParameters\",\"name\":\"_params\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"}],\"name\":\"escalations\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_startTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_totalVotes\",\"type\":\"uint256\"}],\"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\":[],\"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\":\"bytes32\",\"name\":\"_disputeId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_numberOfVotes\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_salt\",\"type\":\"bytes32\"}],\"name\":\"revealVote\",\"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\":{\"CommittingPhaseStarted(uint256,bytes32)\":{\"params\":{\"_disputeId\":\"The id of the dispute being voted on\",\"_startTime\":\"The timestamp at which the phase started\"}},\"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\"}},\"VoteCommitted(address,bytes32,bytes32)\":{\"params\":{\"_commitment\":\"The commitment provided by the voter\",\"_disputeId\":\"The id of the dispute being voted on\",\"_voter\":\"The user who provided a commitment of a vote\"}},\"VoteRevealed(address,bytes32,uint256)\":{\"params\":{\"_disputeId\":\"The id of the dispute being voted on\",\"_numberOfVotes\":\"The number of votes cast\",\"_voter\":\"The user who revealed his vote\"}}},\"kind\":\"dev\",\"methods\":{\"commitVote(bytes32,bytes32,bytes32)\":{\"details\":\"Committing multiple times and overwriting a previous commitment is allowed\",\"params\":{\"_commitment\":\"The commitment computed from the provided data and the user's address\",\"_disputeId\":\"The id of the dispute being voted on\",\"_requestId\":\"The id of the request being disputed\"}},\"computeCommitment(bytes32,uint256,bytes32)\":{\"params\":{\"_disputeId\":\"The id of the dispute being voted on\",\"_numberOfVotes\":\"The amount of votes being cast\"},\"returns\":{\"_commitment\":\"The commitment computed from the provided data and the user's address\"}},\"decodeRequestData(bytes32)\":{\"params\":{\"_requestId\":\"The ID of the request\"},\"returns\":{\"_params\":\"The struct containing the parameters for the request\"}},\"escalations(bytes32)\":{\"params\":{\"_disputeId\":\"The id of the dispute\"},\"returns\":{\"_startTime\":\"The timestamp at which the dispute was escalated\",\"_totalVotes\":\"The total amount of votes cast for the dispute\"}},\"finalizeRequest(bytes32,address)\":{\"params\":{\"_finalizer\":\"The address that initiated the finalization\",\"_requestId\":\"The ID of the request being finalized\"}},\"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 being resolved\"}},\"revealVote(bytes32,bytes32,uint256,bytes32)\":{\"details\":\"The user must have previously approved the module to transfer the tokens\",\"params\":{\"_disputeId\":\"The id of the dispute being voted on\",\"_numberOfVotes\":\"The amount of votes being revealed\",\"_requestId\":\"The id of the request being disputed\",\"_salt\":\"The salt used to compute the commitment\"}},\"setupRequest(bytes32,bytes)\":{\"params\":{\"_data\":\"The data of the request\",\"_requestId\":\"The ID of the request\"}},\"startResolution(bytes32)\":{\"details\":\"Only callable by the Oracle\",\"params\":{\"_disputeId\":\"The id of the dispute to start resolution of\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"Module_OnlyOracle()\":[{\"notice\":\"Thrown when the caller is not the oracle\"}],\"PrivateERC20ResolutionModule_AlreadyResolved()\":[{\"notice\":\"Thrown when trying to resolve a dispute that is already resolved\"}],\"PrivateERC20ResolutionModule_CommittingPhaseOver()\":[{\"notice\":\"Thrown when trying to commit a vote after the committing deadline\"}],\"PrivateERC20ResolutionModule_DisputeNotEscalated()\":[{\"notice\":\"Thrown when the dispute has not been escalated\"}],\"PrivateERC20ResolutionModule_EmptyCommitment()\":[{\"notice\":\"Thrown when trying to commit an empty commitment\"}],\"PrivateERC20ResolutionModule_NonExistentDispute()\":[{\"notice\":\"Thrown when trying to resolve a dispute that does not exist\"}],\"PrivateERC20ResolutionModule_OnGoingCommittingPhase()\":[{\"notice\":\"Thrown when trying to resolve a dispute during the committing phase\"}],\"PrivateERC20ResolutionModule_OnGoingRevealingPhase()\":[{\"notice\":\"Thrown when trying to resolve a dispute during the revealing phase\"}],\"PrivateERC20ResolutionModule_RevealingPhaseOver()\":[{\"notice\":\"Thrown when trying to reveal a vote after the revealing deadline\"}],\"PrivateERC20ResolutionModule_WrongRevealData()\":[{\"notice\":\"Thrown when trying to reveal a vote with data that does not match the stored commitment\"}]},\"events\":{\"CommittingPhaseStarted(uint256,bytes32)\":{\"notice\":\"The phase of committing votes has started\"},\"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\"},\"VoteCommitted(address,bytes32,bytes32)\":{\"notice\":\"A commitment has been provided by a voter\"},\"VoteRevealed(address,bytes32,uint256)\":{\"notice\":\"A vote has been revealed by a voter providing the salt used to compute the commitment\"}},\"kind\":\"user\",\"methods\":{\"commitVote(bytes32,bytes32,bytes32)\":{\"notice\":\"Stores a commitment for a vote cast by a voter\"},\"computeCommitment(bytes32,uint256,bytes32)\":{\"notice\":\"Computes a valid commitment for the revealing phase\"},\"decodeRequestData(bytes32)\":{\"notice\":\"Returns the decoded data for a request\"},\"escalations(bytes32)\":{\"notice\":\"Returns the escalation data for a dispute\"},\"finalizeRequest(bytes32,address)\":{\"notice\":\"Finalizes a given request and executes any additional logic set by the chosen modules\"},\"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 a dispute by tallying the votes and executing the winning outcome\"},\"revealVote(bytes32,bytes32,uint256,bytes32)\":{\"notice\":\"Reveals a vote cast by a voter\"},\"setupRequest(bytes32,bytes)\":{\"notice\":\"Stores the request data and runs module-specific hooks\"},\"startResolution(bytes32)\":{\"notice\":\"Starts the committing phase for a dispute\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"solidity/interfaces/modules/resolution/IPrivateERC20ResolutionModule.sol\":\"IPrivateERC20ResolutionModule\"},\"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/modules/resolution/IPrivateERC20ResolutionModule.sol\":{\"keccak256\":\"0x1a036cb7ecca11ab379d89458b0e7ed50a8763b17ef9e98e2ec538e3058fdebe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aa1a1db2ae16549fee7fb02fe26a60dbedde4903f056f95d44e454b1cec2f48e\",\"dweb:/ipfs/QmSKMxPAASdhLz8DSCgK8rZgeMdmyVfb5kZvbps5xggoy1\"]}},\"version\":1}",
  "metadata": {
    "compiler": {
      "version": "0.8.19+commit.7dd6d404"
    },
    "language": "Solidity",
    "output": {
      "abi": [
        {
          "inputs": [],
          "type": "error",
          "name": "Module_OnlyOracle"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "PrivateERC20ResolutionModule_AlreadyResolved"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "PrivateERC20ResolutionModule_CommittingPhaseOver"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "PrivateERC20ResolutionModule_DisputeNotEscalated"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "PrivateERC20ResolutionModule_EmptyCommitment"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "PrivateERC20ResolutionModule_NonExistentDispute"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "PrivateERC20ResolutionModule_OnGoingCommittingPhase"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "PrivateERC20ResolutionModule_OnGoingRevealingPhase"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "PrivateERC20ResolutionModule_RevealingPhaseOver"
        },
        {
          "inputs": [],
          "type": "error",
          "name": "PrivateERC20ResolutionModule_WrongRevealData"
        },
        {
          "inputs": [
            {
              "internalType": "uint256",
              "name": "_startTime",
              "type": "uint256",
              "indexed": false
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "CommittingPhaseStarted",
          "anonymous": false
        },
        {
          "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": "address",
              "name": "_voter",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": false
            },
            {
              "internalType": "bytes32",
              "name": "_commitment",
              "type": "bytes32",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "VoteCommitted",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "address",
              "name": "_voter",
              "type": "address",
              "indexed": false
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32",
              "indexed": false
            },
            {
              "internalType": "uint256",
              "name": "_numberOfVotes",
              "type": "uint256",
              "indexed": false
            }
          ],
          "type": "event",
          "name": "VoteRevealed",
          "anonymous": false
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "_commitment",
              "type": "bytes32"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "commitVote"
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "_numberOfVotes",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "_salt",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "computeCommitment",
          "outputs": [
            {
              "internalType": "bytes32",
              "name": "_commitment",
              "type": "bytes32"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "decodeRequestData",
          "outputs": [
            {
              "internalType": "struct IPrivateERC20ResolutionModule.RequestParameters",
              "name": "_params",
              "type": "tuple",
              "components": [
                {
                  "internalType": "contract IAccountingExtension",
                  "name": "accountingExtension",
                  "type": "address"
                },
                {
                  "internalType": "contract IERC20",
                  "name": "votingToken",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "minVotesForQuorum",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "committingTimeWindow",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "revealingTimeWindow",
                  "type": "uint256"
                }
              ]
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            }
          ],
          "stateMutability": "view",
          "type": "function",
          "name": "escalations",
          "outputs": [
            {
              "internalType": "uint256",
              "name": "_startTime",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "_totalVotes",
              "type": "uint256"
            }
          ]
        },
        {
          "inputs": [
            {
              "internalType": "bytes32",
              "name": "_requestId",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "_finalizer",
              "type": "address"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "finalizeRequest"
        },
        {
          "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": "bytes32",
              "name": "_disputeId",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "_numberOfVotes",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "_salt",
              "type": "bytes32"
            }
          ],
          "stateMutability": "nonpayable",
          "type": "function",
          "name": "revealVote"
        },
        {
          "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": {
          "commitVote(bytes32,bytes32,bytes32)": {
            "details": "Committing multiple times and overwriting a previous commitment is allowed",
            "params": {
              "_commitment": "The commitment computed from the provided data and the user's address",
              "_disputeId": "The id of the dispute being voted on",
              "_requestId": "The id of the request being disputed"
            }
          },
          "computeCommitment(bytes32,uint256,bytes32)": {
            "params": {
              "_disputeId": "The id of the dispute being voted on",
              "_numberOfVotes": "The amount of votes being cast"
            },
            "returns": {
              "_commitment": "The commitment computed from the provided data and the user's address"
            }
          },
          "decodeRequestData(bytes32)": {
            "params": {
              "_requestId": "The ID of the request"
            },
            "returns": {
              "_params": "The struct containing the parameters for the request"
            }
          },
          "escalations(bytes32)": {
            "params": {
              "_disputeId": "The id of the dispute"
            },
            "returns": {
              "_startTime": "The timestamp at which the dispute was escalated",
              "_totalVotes": "The total amount of votes cast for the dispute"
            }
          },
          "finalizeRequest(bytes32,address)": {
            "params": {
              "_finalizer": "The address that initiated the finalization",
              "_requestId": "The ID of the request being finalized"
            }
          },
          "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 being resolved"
            }
          },
          "revealVote(bytes32,bytes32,uint256,bytes32)": {
            "details": "The user must have previously approved the module to transfer the tokens",
            "params": {
              "_disputeId": "The id of the dispute being voted on",
              "_numberOfVotes": "The amount of votes being revealed",
              "_requestId": "The id of the request being disputed",
              "_salt": "The salt used to compute the commitment"
            }
          },
          "setupRequest(bytes32,bytes)": {
            "params": {
              "_data": "The data of the request",
              "_requestId": "The ID of the request"
            }
          },
          "startResolution(bytes32)": {
            "details": "Only callable by the Oracle",
            "params": {
              "_disputeId": "The id of the dispute to start resolution of"
            }
          }
        },
        "version": 1
      },
      "userdoc": {
        "kind": "user",
        "methods": {
          "commitVote(bytes32,bytes32,bytes32)": {
            "notice": "Stores a commitment for a vote cast by a voter"
          },
          "computeCommitment(bytes32,uint256,bytes32)": {
            "notice": "Computes a valid commitment for the revealing phase"
          },
          "decodeRequestData(bytes32)": {
            "notice": "Returns the decoded data for a request"
          },
          "escalations(bytes32)": {
            "notice": "Returns the escalation data for a dispute"
          },
          "finalizeRequest(bytes32,address)": {
            "notice": "Finalizes a given request and executes any additional logic set by the chosen modules"
          },
          "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 a dispute by tallying the votes and executing the winning outcome"
          },
          "revealVote(bytes32,bytes32,uint256,bytes32)": {
            "notice": "Reveals a vote cast by a voter"
          },
          "setupRequest(bytes32,bytes)": {
            "notice": "Stores the request data and runs module-specific hooks"
          },
          "startResolution(bytes32)": {
            "notice": "Starts the committing phase for a dispute"
          }
        },
        "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/IPrivateERC20ResolutionModule.sol": "IPrivateERC20ResolutionModule"
      },
      "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/modules/resolution/IPrivateERC20ResolutionModule.sol": {
        "keccak256": "0x1a036cb7ecca11ab379d89458b0e7ed50a8763b17ef9e98e2ec538e3058fdebe",
        "urls": [
          "bzz-raw://aa1a1db2ae16549fee7fb02fe26a60dbedde4903f056f95d44e454b1cec2f48e",
          "dweb:/ipfs/QmSKMxPAASdhLz8DSCgK8rZgeMdmyVfb5kZvbps5xggoy1"
        ],
        "license": "MIT"
      }
    },
    "version": 1
  },
  "ast": {
    "absolutePath": "solidity/interfaces/modules/resolution/IPrivateERC20ResolutionModule.sol",
    "id": 43988,
    "exportedSymbols": {
      "IAccountingExtension": [
        42580
      ],
      "IERC20": [
        2822
      ],
      "IPrivateERC20ResolutionModule": [
        43987
      ],
      "IResolutionModule": [
        2399
      ]
    },
    "nodeType": "SourceUnit",
    "src": "32:7443:74",
    "nodes": [
      {
        "id": 43838,
        "nodeType": "PragmaDirective",
        "src": "32:24:74",
        "nodes": [],
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".19"
        ]
      },
      {
        "id": 43840,
        "nodeType": "ImportDirective",
        "src": "58:137:74",
        "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": 43988,
        "sourceUnit": 2400,
        "symbolAliases": [
          {
            "foreign": {
              "id": 43839,
              "name": "IResolutionModule",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2399,
              "src": "66:17:74",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 43842,
        "nodeType": "ImportDirective",
        "src": "196:70:74",
        "nodes": [],
        "absolutePath": "node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol",
        "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 43988,
        "sourceUnit": 2823,
        "symbolAliases": [
          {
            "foreign": {
              "id": 43841,
              "name": "IERC20",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 2822,
              "src": "204:6:74",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 43844,
        "nodeType": "ImportDirective",
        "src": "267:79:74",
        "nodes": [],
        "absolutePath": "solidity/interfaces/extensions/IAccountingExtension.sol",
        "file": "../../extensions/IAccountingExtension.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 43988,
        "sourceUnit": 42581,
        "symbolAliases": [
          {
            "foreign": {
              "id": 43843,
              "name": "IAccountingExtension",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": 42580,
              "src": "275:20:74",
              "typeDescriptions": {}
            },
            "nameLocation": "-1:-1:-1"
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 43987,
        "nodeType": "ContractDefinition",
        "src": "507:6967:74",
        "nodes": [
          {
            "id": 43855,
            "nodeType": "EventDefinition",
            "src": "997:77:74",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 43847,
              "nodeType": "StructuredDocumentation",
              "src": "745:249:74",
              "text": " @notice A commitment has been provided by a voter\n @param _voter The user who provided a commitment of a vote\n @param _disputeId The id of the dispute being voted on\n @param _commitment The commitment provided by the voter"
            },
            "eventSelector": "68d466cc7510ac7cdbf434edb9bb9cc5f07d6c604b1613c7d0ef3c820dbd297e",
            "name": "VoteCommitted",
            "nameLocation": "1003:13:74",
            "parameters": {
              "id": 43854,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43849,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_voter",
                  "nameLocation": "1025:6:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43855,
                  "src": "1017:14:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 43848,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1017:7:74",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 43851,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "1041:10:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43855,
                  "src": "1033:18:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43850,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1033:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 43853,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_commitment",
                  "nameLocation": "1061:11:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43855,
                  "src": "1053:19:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43852,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1053:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1016:57:74"
            }
          },
          {
            "id": 43864,
            "nodeType": "EventDefinition",
            "src": "1356:79:74",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 43856,
              "nodeType": "StructuredDocumentation",
              "src": "1078:275:74",
              "text": " @notice A vote has been revealed by a voter providing\n the salt used to compute the commitment\n @param _voter The user who revealed his vote\n @param _disputeId The id of the dispute being voted on\n @param _numberOfVotes The number of votes cast"
            },
            "eventSelector": "964bc9ffc6c2ef7cc8b83901ff022400ae65f2ed56f5810f077218bc635b5f7c",
            "name": "VoteRevealed",
            "nameLocation": "1362:12:74",
            "parameters": {
              "id": 43863,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43858,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_voter",
                  "nameLocation": "1383:6:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43864,
                  "src": "1375:14:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 43857,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1375:7:74",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 43860,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "1399:10:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43864,
                  "src": "1391:18:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43859,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1391:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 43862,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_numberOfVotes",
                  "nameLocation": "1419:14:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43864,
                  "src": "1411:22:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 43861,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1411:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1374:60:74"
            }
          },
          {
            "id": 43871,
            "nodeType": "EventDefinition",
            "src": "1630:69:74",
            "nodes": [],
            "anonymous": false,
            "documentation": {
              "id": 43865,
              "nodeType": "StructuredDocumentation",
              "src": "1439:188:74",
              "text": " @notice The phase of committing votes has started\n @param _startTime The timestamp at which the phase started\n @param _disputeId The id of the dispute being voted on"
            },
            "eventSelector": "92f15b32ce181f47b37f3acd0b17c5f96b81e8054933b44f961deaa3a3c50378",
            "name": "CommittingPhaseStarted",
            "nameLocation": "1636:22:74",
            "parameters": {
              "id": 43870,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43867,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_startTime",
                  "nameLocation": "1667:10:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43871,
                  "src": "1659:18:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 43866,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1659:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 43869,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "1687:10:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43871,
                  "src": "1679:18:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43868,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1679:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1658:40:74"
            }
          },
          {
            "id": 43874,
            "nodeType": "ErrorDefinition",
            "src": "1948:57:74",
            "nodes": [],
            "documentation": {
              "id": 43872,
              "nodeType": "StructuredDocumentation",
              "src": "1876:69:74",
              "text": " @notice Thrown when the dispute has not been escalated"
            },
            "errorSelector": "4966c8e3",
            "name": "PrivateERC20ResolutionModule_DisputeNotEscalated",
            "nameLocation": "1954:48:74",
            "parameters": {
              "id": 43873,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2002:2:74"
            }
          },
          {
            "id": 43877,
            "nodeType": "ErrorDefinition",
            "src": "2100:57:74",
            "nodes": [],
            "documentation": {
              "id": 43875,
              "nodeType": "StructuredDocumentation",
              "src": "2009:88:74",
              "text": " @notice Thrown when trying to commit a vote after the committing deadline"
            },
            "errorSelector": "08bc34c7",
            "name": "PrivateERC20ResolutionModule_CommittingPhaseOver",
            "nameLocation": "2106:48:74",
            "parameters": {
              "id": 43876,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2154:2:74"
            }
          },
          {
            "id": 43880,
            "nodeType": "ErrorDefinition",
            "src": "2251:56:74",
            "nodes": [],
            "documentation": {
              "id": 43878,
              "nodeType": "StructuredDocumentation",
              "src": "2161:87:74",
              "text": " @notice Thrown when trying to reveal a vote after the revealing deadline"
            },
            "errorSelector": "264977e6",
            "name": "PrivateERC20ResolutionModule_RevealingPhaseOver",
            "nameLocation": "2257:47:74",
            "parameters": {
              "id": 43879,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2304:2:74"
            }
          },
          {
            "id": 43883,
            "nodeType": "ErrorDefinition",
            "src": "2404:60:74",
            "nodes": [],
            "documentation": {
              "id": 43881,
              "nodeType": "StructuredDocumentation",
              "src": "2311:90:74",
              "text": " @notice Thrown when trying to resolve a dispute during the committing phase"
            },
            "errorSelector": "9e3d31ea",
            "name": "PrivateERC20ResolutionModule_OnGoingCommittingPhase",
            "nameLocation": "2410:51:74",
            "parameters": {
              "id": 43882,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2461:2:74"
            }
          },
          {
            "id": 43886,
            "nodeType": "ErrorDefinition",
            "src": "2560:59:74",
            "nodes": [],
            "documentation": {
              "id": 43884,
              "nodeType": "StructuredDocumentation",
              "src": "2468:89:74",
              "text": " @notice Thrown when trying to resolve a dispute during the revealing phase"
            },
            "errorSelector": "9ce93ae5",
            "name": "PrivateERC20ResolutionModule_OnGoingRevealingPhase",
            "nameLocation": "2566:50:74",
            "parameters": {
              "id": 43885,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2616:2:74"
            }
          },
          {
            "id": 43889,
            "nodeType": "ErrorDefinition",
            "src": "2708:56:74",
            "nodes": [],
            "documentation": {
              "id": 43887,
              "nodeType": "StructuredDocumentation",
              "src": "2623:82:74",
              "text": " @notice Thrown when trying to resolve a dispute that does not exist"
            },
            "errorSelector": "2f035e10",
            "name": "PrivateERC20ResolutionModule_NonExistentDispute",
            "nameLocation": "2714:47:74",
            "parameters": {
              "id": 43888,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2761:2:74"
            }
          },
          {
            "id": 43892,
            "nodeType": "ErrorDefinition",
            "src": "2842:53:74",
            "nodes": [],
            "documentation": {
              "id": 43890,
              "nodeType": "StructuredDocumentation",
              "src": "2768:71:74",
              "text": " @notice Thrown when trying to commit an empty commitment"
            },
            "errorSelector": "dca831c0",
            "name": "PrivateERC20ResolutionModule_EmptyCommitment",
            "nameLocation": "2848:44:74",
            "parameters": {
              "id": 43891,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2892:2:74"
            }
          },
          {
            "id": 43895,
            "nodeType": "ErrorDefinition",
            "src": "3012:53:74",
            "nodes": [],
            "documentation": {
              "id": 43893,
              "nodeType": "StructuredDocumentation",
              "src": "2899:110:74",
              "text": " @notice Thrown when trying to reveal a vote with data that does not match the stored commitment"
            },
            "errorSelector": "1fcb91b4",
            "name": "PrivateERC20ResolutionModule_WrongRevealData",
            "nameLocation": "3018:44:74",
            "parameters": {
              "id": 43894,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3062:2:74"
            }
          },
          {
            "id": 43898,
            "nodeType": "ErrorDefinition",
            "src": "3159:53:74",
            "nodes": [],
            "documentation": {
              "id": 43896,
              "nodeType": "StructuredDocumentation",
              "src": "3069:87:74",
              "text": " @notice Thrown when trying to resolve a dispute that is already resolved"
            },
            "errorSelector": "62c44f06",
            "name": "PrivateERC20ResolutionModule_AlreadyResolved",
            "nameLocation": "3165:44:74",
            "parameters": {
              "id": 43897,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3209:2:74"
            }
          },
          {
            "id": 43911,
            "nodeType": "StructDefinition",
            "src": "3868:198:74",
            "nodes": [],
            "canonicalName": "IPrivateERC20ResolutionModule.RequestParameters",
            "members": [
              {
                "constant": false,
                "id": 43901,
                "mutability": "mutable",
                "name": "accountingExtension",
                "nameLocation": "3920:19:74",
                "nodeType": "VariableDeclaration",
                "scope": 43911,
                "src": "3899:40:74",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_IAccountingExtension_$42580",
                  "typeString": "contract IAccountingExtension"
                },
                "typeName": {
                  "id": 43900,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 43899,
                    "name": "IAccountingExtension",
                    "nameLocations": [
                      "3899:20:74"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 42580,
                    "src": "3899:20:74"
                  },
                  "referencedDeclaration": 42580,
                  "src": "3899:20:74",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IAccountingExtension_$42580",
                    "typeString": "contract IAccountingExtension"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 43904,
                "mutability": "mutable",
                "name": "votingToken",
                "nameLocation": "3952:11:74",
                "nodeType": "VariableDeclaration",
                "scope": 43911,
                "src": "3945:18:74",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_IERC20_$2822",
                  "typeString": "contract IERC20"
                },
                "typeName": {
                  "id": 43903,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 43902,
                    "name": "IERC20",
                    "nameLocations": [
                      "3945:6:74"
                    ],
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 2822,
                    "src": "3945:6:74"
                  },
                  "referencedDeclaration": 2822,
                  "src": "3945:6:74",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC20_$2822",
                    "typeString": "contract IERC20"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 43906,
                "mutability": "mutable",
                "name": "minVotesForQuorum",
                "nameLocation": "3977:17:74",
                "nodeType": "VariableDeclaration",
                "scope": 43911,
                "src": "3969:25:74",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 43905,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "3969:7:74",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 43908,
                "mutability": "mutable",
                "name": "committingTimeWindow",
                "nameLocation": "4008:20:74",
                "nodeType": "VariableDeclaration",
                "scope": 43911,
                "src": "4000:28:74",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 43907,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4000:7:74",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 43910,
                "mutability": "mutable",
                "name": "revealingTimeWindow",
                "nameLocation": "4042:19:74",
                "nodeType": "VariableDeclaration",
                "scope": 43911,
                "src": "4034:27:74",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 43909,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4034:7:74",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "RequestParameters",
            "nameLocation": "3875:17:74",
            "scope": 43987,
            "visibility": "public"
          },
          {
            "id": 43916,
            "nodeType": "StructDefinition",
            "src": "4267:70:74",
            "nodes": [],
            "canonicalName": "IPrivateERC20ResolutionModule.Escalation",
            "members": [
              {
                "constant": false,
                "id": 43913,
                "mutability": "mutable",
                "name": "startTime",
                "nameLocation": "4299:9:74",
                "nodeType": "VariableDeclaration",
                "scope": 43916,
                "src": "4291:17:74",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 43912,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4291:7:74",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 43915,
                "mutability": "mutable",
                "name": "totalVotes",
                "nameLocation": "4322:10:74",
                "nodeType": "VariableDeclaration",
                "scope": 43916,
                "src": "4314:18:74",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 43914,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4314:7:74",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Escalation",
            "nameLocation": "4274:10:74",
            "scope": 43987,
            "visibility": "public"
          },
          {
            "id": 43921,
            "nodeType": "StructDefinition",
            "src": "4517:70:74",
            "nodes": [],
            "canonicalName": "IPrivateERC20ResolutionModule.VoterData",
            "members": [
              {
                "constant": false,
                "id": 43918,
                "mutability": "mutable",
                "name": "numOfVotes",
                "nameLocation": "4548:10:74",
                "nodeType": "VariableDeclaration",
                "scope": 43921,
                "src": "4540:18:74",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 43917,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "4540:7:74",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 43920,
                "mutability": "mutable",
                "name": "commitment",
                "nameLocation": "4572:10:74",
                "nodeType": "VariableDeclaration",
                "scope": 43921,
                "src": "4564:18:74",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                },
                "typeName": {
                  "id": 43919,
                  "name": "bytes32",
                  "nodeType": "ElementaryTypeName",
                  "src": "4564:7:74",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "VoterData",
            "nameLocation": "4524:9:74",
            "scope": 43987,
            "visibility": "public"
          },
          {
            "id": 43931,
            "nodeType": "FunctionDefinition",
            "src": "5022:105:74",
            "nodes": [],
            "documentation": {
              "id": 43922,
              "nodeType": "StructuredDocumentation",
              "src": "4765:254:74",
              "text": " @notice Returns the escalation data for a dispute\n @param _disputeId The id of the dispute\n @return _startTime The timestamp at which the dispute was escalated\n @return _totalVotes The total amount of votes cast for the dispute"
            },
            "functionSelector": "4cf3ad6a",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "escalations",
            "nameLocation": "5031:11:74",
            "parameters": {
              "id": 43925,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43924,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "5051:10:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43931,
                  "src": "5043:18:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43923,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5043:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5042:20:74"
            },
            "returnParameters": {
              "id": 43930,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43927,
                  "mutability": "mutable",
                  "name": "_startTime",
                  "nameLocation": "5094:10:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43931,
                  "src": "5086:18:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 43926,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5086:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 43929,
                  "mutability": "mutable",
                  "name": "_totalVotes",
                  "nameLocation": "5114:11:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43931,
                  "src": "5106:19:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 43928,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5106:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5085:41:74"
            },
            "scope": 43987,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 43937,
            "nodeType": "FunctionDefinition",
            "src": "5476:54:74",
            "nodes": [],
            "baseFunctions": [
              2392
            ],
            "documentation": {
              "id": 43932,
              "nodeType": "StructuredDocumentation",
              "src": "5303:170:74",
              "text": " @notice Starts the committing phase for a dispute\n @dev Only callable by the Oracle\n @param _disputeId The id of the dispute to start resolution of"
            },
            "functionSelector": "d96dd0e7",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "startResolution",
            "nameLocation": "5485:15:74",
            "parameters": {
              "id": 43935,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43934,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "5509:10:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43937,
                  "src": "5501:18:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43933,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5501:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5500:20:74"
            },
            "returnParameters": {
              "id": 43936,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5529:0:74"
            },
            "scope": 43987,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 43947,
            "nodeType": "FunctionDefinition",
            "src": "5905:90:74",
            "nodes": [],
            "documentation": {
              "id": 43938,
              "nodeType": "StructuredDocumentation",
              "src": "5534:368:74",
              "text": " @notice Stores a commitment for a vote cast by a voter\n @dev Committing multiple times and overwriting a previous commitment is allowed\n @param _requestId The id of the request being disputed\n @param _disputeId The id of the dispute being voted on\n @param _commitment The commitment computed from the provided data and the user's address"
            },
            "functionSelector": "ce5470d7",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "commitVote",
            "nameLocation": "5914:10:74",
            "parameters": {
              "id": 43945,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43940,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "5933:10:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43947,
                  "src": "5925:18:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43939,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5925:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 43942,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "5953:10:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43947,
                  "src": "5945:18:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43941,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5945:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 43944,
                  "mutability": "mutable",
                  "name": "_commitment",
                  "nameLocation": "5973:11:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43947,
                  "src": "5965:19:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43943,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5965:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5924:61:74"
            },
            "returnParameters": {
              "id": 43946,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5994:0:74"
            },
            "scope": 43987,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 43959,
            "nodeType": "FunctionDefinition",
            "src": "6378:108:74",
            "nodes": [],
            "documentation": {
              "id": 43948,
              "nodeType": "StructuredDocumentation",
              "src": "5999:376:74",
              "text": " @notice Reveals a vote cast by a voter\n @dev The user must have previously approved the module to transfer the tokens\n @param _requestId The id of the request being disputed\n @param _disputeId The id of the dispute being voted on\n @param _numberOfVotes The amount of votes being revealed\n @param _salt The salt used to compute the commitment"
            },
            "functionSelector": "8748cb63",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "revealVote",
            "nameLocation": "6387:10:74",
            "parameters": {
              "id": 43957,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43950,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "6406:10:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43959,
                  "src": "6398:18:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43949,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6398:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 43952,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "6426:10:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43959,
                  "src": "6418:18:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43951,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6418:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 43954,
                  "mutability": "mutable",
                  "name": "_numberOfVotes",
                  "nameLocation": "6446:14:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43959,
                  "src": "6438:22:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 43953,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6438:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 43956,
                  "mutability": "mutable",
                  "name": "_salt",
                  "nameLocation": "6470:5:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43959,
                  "src": "6462:13:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43955,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6462:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6397:79:74"
            },
            "returnParameters": {
              "id": 43958,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6485:0:74"
            },
            "scope": 43987,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 43965,
            "nodeType": "FunctionDefinition",
            "src": "6688:53:74",
            "nodes": [],
            "baseFunctions": [
              2398
            ],
            "documentation": {
              "id": 43960,
              "nodeType": "StructuredDocumentation",
              "src": "6490:195:74",
              "text": " @notice Resolves a dispute by tallying the votes and executing the winning outcome\n @dev Only callable by the Oracle\n @param _disputeId The id of the dispute being resolved"
            },
            "functionSelector": "c8218e3e",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "resolveDispute",
            "nameLocation": "6697:14:74",
            "parameters": {
              "id": 43963,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43962,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "6720:10:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43965,
                  "src": "6712:18:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43961,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6712:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6711:20:74"
            },
            "returnParameters": {
              "id": 43964,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6740:0:74"
            },
            "scope": 43987,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 43974,
            "nodeType": "FunctionDefinition",
            "src": "6928:104:74",
            "nodes": [],
            "documentation": {
              "id": 43966,
              "nodeType": "StructuredDocumentation",
              "src": "6745:180:74",
              "text": " @notice Returns the decoded data for a request\n @param _requestId The ID of the request\n @return _params The struct containing the parameters for the request"
            },
            "functionSelector": "4d610a46",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "decodeRequestData",
            "nameLocation": "6937:17:74",
            "parameters": {
              "id": 43969,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43968,
                  "mutability": "mutable",
                  "name": "_requestId",
                  "nameLocation": "6963:10:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43974,
                  "src": "6955:18:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43967,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6955:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6954:20:74"
            },
            "returnParameters": {
              "id": 43973,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43972,
                  "mutability": "mutable",
                  "name": "_params",
                  "nameLocation": "7023:7:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43974,
                  "src": "6998:32:74",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RequestParameters_$43911_memory_ptr",
                    "typeString": "struct IPrivateERC20ResolutionModule.RequestParameters"
                  },
                  "typeName": {
                    "id": 43971,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 43970,
                      "name": "RequestParameters",
                      "nameLocations": [
                        "6998:17:74"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 43911,
                      "src": "6998:17:74"
                    },
                    "referencedDeclaration": 43911,
                    "src": "6998:17:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RequestParameters_$43911_storage_ptr",
                      "typeString": "struct IPrivateERC20ResolutionModule.RequestParameters"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6997:34:74"
            },
            "scope": 43987,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 43986,
            "nodeType": "FunctionDefinition",
            "src": "7326:146:74",
            "nodes": [],
            "documentation": {
              "id": 43975,
              "nodeType": "StructuredDocumentation",
              "src": "7036:287:74",
              "text": " @notice Computes a valid commitment for the revealing phase\n @param _disputeId The id of the dispute being voted on\n @param _numberOfVotes The amount of votes being cast\n @return _commitment The commitment computed from the provided data and the user's address"
            },
            "functionSelector": "201f0365",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "computeCommitment",
            "nameLocation": "7335:17:74",
            "parameters": {
              "id": 43982,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43977,
                  "mutability": "mutable",
                  "name": "_disputeId",
                  "nameLocation": "7366:10:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43986,
                  "src": "7358:18:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43976,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7358:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 43979,
                  "mutability": "mutable",
                  "name": "_numberOfVotes",
                  "nameLocation": "7390:14:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43986,
                  "src": "7382:22:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 43978,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7382:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 43981,
                  "mutability": "mutable",
                  "name": "_salt",
                  "nameLocation": "7418:5:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43986,
                  "src": "7410:13:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43980,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7410:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7352:75:74"
            },
            "returnParameters": {
              "id": 43985,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 43984,
                  "mutability": "mutable",
                  "name": "_commitment",
                  "nameLocation": "7459:11:74",
                  "nodeType": "VariableDeclaration",
                  "scope": 43986,
                  "src": "7451:19:74",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 43983,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7451:7:74",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7450:21:74"
            },
            "scope": 43987,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 43845,
              "name": "IResolutionModule",
              "nameLocations": [
                "550:17:74"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 2399,
              "src": "550:17:74"
            },
            "id": 43846,
            "nodeType": "InheritanceSpecifier",
            "src": "550:17:74"
          }
        ],
        "canonicalName": "IPrivateERC20ResolutionModule",
        "contractDependencies": [],
        "contractKind": "interface",
        "fullyImplemented": false,
        "linearizedBaseContracts": [
          43987,
          2399,
          1782
        ],
        "name": "IPrivateERC20ResolutionModule",
        "nameLocation": "517:29:74",
        "scope": 43988,
        "usedErrors": [
          1745,
          43874,
          43877,
          43880,
          43883,
          43886,
          43889,
          43892,
          43895,
          43898
        ]
      }
    ],
    "license": "MIT"
  },
  "id": 74
}