{
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "worker",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "taskid",
          "type": "bytes32"
        }
      ],
      "name": "AccurateContribution",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "catid",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "name",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "description",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "workClockTimeRef",
          "type": "uint256"
        }
      ],
      "name": "CreateCategory",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "worker",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "taskid",
          "type": "bytes32"
        }
      ],
      "name": "FaultyContribution",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "taskid",
          "type": "bytes32"
        }
      ],
      "name": "TaskClaimed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "taskid",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "consensus",
          "type": "bytes32"
        }
      ],
      "name": "TaskConsensus",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "taskid",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "worker",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "hash",
          "type": "bytes32"
        }
      ],
      "name": "TaskContribute",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "taskid",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "results",
          "type": "bytes"
        }
      ],
      "name": "TaskFinalize",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "taskid",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "workerpool",
          "type": "address"
        }
      ],
      "name": "TaskInitialize",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "taskid",
          "type": "bytes32"
        }
      ],
      "name": "TaskReopen",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "taskid",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "worker",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "digest",
          "type": "bytes32"
        }
      ],
      "name": "TaskReveal",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_catid",
          "type": "uint256"
        }
      ],
      "name": "viewCategory",
      "outputs": [
        {
          "components": [
            {
              "internalType": "string",
              "name": "name",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "description",
              "type": "string"
            },
            {
              "internalType": "uint256",
              "name": "workClockTimeRef",
              "type": "uint256"
            }
          ],
          "internalType": "struct IexecODBLibCore.Category",
          "name": "category",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "countCategory",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "count",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "name",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "description",
          "type": "string"
        },
        {
          "internalType": "uint256",
          "name": "workClockTimeRef",
          "type": "uint256"
        }
      ],
      "name": "createCategory",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "CONSENSUS_DURATION_RATIO",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "REVEAL_DURATION_RATIO",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "iexecclerk",
      "outputs": [
        {
          "internalType": "contract IexecClerkInterface",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "appregistry",
      "outputs": [
        {
          "internalType": "contract AppRegistryInterface",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "datasetregistry",
      "outputs": [
        {
          "internalType": "contract DatasetRegistryInterface",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "workerpoolregistry",
      "outputs": [
        {
          "internalType": "contract WorkerpoolRegistryInterface",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_iexecclerkAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_appregistryAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_datasetregistryAddress",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_workerpoolregistryAddress",
          "type": "address"
        }
      ],
      "name": "attachContracts",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_taskid",
          "type": "bytes32"
        }
      ],
      "name": "viewTask",
      "outputs": [
        {
          "components": [
            {
              "internalType": "enum IexecODBLibCore.TaskStatusEnum",
              "name": "status",
              "type": "uint8"
            },
            {
              "internalType": "bytes32",
              "name": "dealid",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "idx",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "timeref",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "contributionDeadline",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "revealDeadline",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "finalDeadline",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "consensusValue",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "revealCounter",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "winnerCounter",
              "type": "uint256"
            },
            {
              "internalType": "address[]",
              "name": "contributors",
              "type": "address[]"
            },
            {
              "internalType": "bytes32",
              "name": "resultDigest",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "results",
              "type": "bytes"
            }
          ],
          "internalType": "struct IexecODBLibCore.Task",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_taskid",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_worker",
          "type": "address"
        }
      ],
      "name": "viewContribution",
      "outputs": [
        {
          "components": [
            {
              "internalType": "enum IexecODBLibCore.ContributionStatusEnum",
              "name": "status",
              "type": "uint8"
            },
            {
              "internalType": "bytes32",
              "name": "resultHash",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "resultSeal",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "enclaveChallenge",
              "type": "address"
            }
          ],
          "internalType": "struct IexecODBLibCore.Contribution",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_worker",
          "type": "address"
        }
      ],
      "name": "viewScore",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "app",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "dataset",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "workerpool",
          "type": "address"
        }
      ],
      "name": "checkResources",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        }
      ],
      "name": "resultFor",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_dealid",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "idx",
          "type": "uint256"
        }
      ],
      "name": "initialize",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_taskid",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_resultHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_resultSeal",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_enclaveChallenge",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "_enclaveSign",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "_workerpoolSign",
          "type": "bytes"
        }
      ],
      "name": "contribute",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_taskid",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_resultDigest",
          "type": "bytes32"
        }
      ],
      "name": "reveal",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_taskid",
          "type": "bytes32"
        }
      ],
      "name": "reopen",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_taskid",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "_results",
          "type": "bytes"
        }
      ],
      "name": "finalize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_taskid",
          "type": "bytes32"
        }
      ],
      "name": "claim",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "_dealid",
          "type": "bytes32[]"
        },
        {
          "internalType": "uint256[]",
          "name": "_idx",
          "type": "uint256[]"
        }
      ],
      "name": "initializeArray",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "_taskid",
          "type": "bytes32[]"
        }
      ],
      "name": "claimArray",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "_dealid",
          "type": "bytes32[]"
        },
        {
          "internalType": "uint256[]",
          "name": "_idx",
          "type": "uint256[]"
        }
      ],
      "name": "initializeAndClaimArray",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_taskid",
          "type": "bytes32"
        }
      ],
      "name": "viewTaskABILegacy",
      "outputs": [
        {
          "internalType": "enum IexecODBLibCore.TaskStatusEnum",
          "name": "",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_taskid",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "_worker",
          "type": "address"
        }
      ],
      "name": "viewContributionABILegacy",
      "outputs": [
        {
          "internalType": "enum IexecODBLibCore.ContributionStatusEnum",
          "name": "",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_catid",
          "type": "uint256"
        }
      ],
      "name": "viewCategoryABILegacy",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "networks": {}
}
