{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "expectedPremiumAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "sumInsuredAmount",
          "type": "uint256"
        }
      ],
      "name": "adjustPremiumSumInsured",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "requestId",
          "type": "uint256"
        }
      ],
      "name": "cancelRequest",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "close",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        }
      ],
      "name": "closeClaim",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "collectPremium",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "feeAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "netPremiumAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "confirmedAmount",
          "type": "uint256"
        }
      ],
      "name": "confirmClaim",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "decline",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        }
      ],
      "name": "declineClaim",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "expire",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "premiumAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "sumInsuredAmount",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "metaData",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "applicationData",
          "type": "bytes"
        }
      ],
      "name": "newApplication",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "claimAmount",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "newClaim",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "newPayout",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "payoutId",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "payoutId",
          "type": "uint256"
        }
      ],
      "name": "processPayout",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "feeAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "netPayoutAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "internalType": "string",
          "name": "callbackMethodName",
          "type": "string"
        },
        {
          "internalType": "address",
          "name": "callbackContractAddress",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "responsibleOracleId",
          "type": "uint256"
        }
      ],
      "name": "request",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "requestId",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "revoke",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "underwrite",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "allSourcePaths": {
    "44": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IProductService.sol"
  },
  "ast": {
    "absolutePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IProductService.sol",
    "exportedSymbols": {
      "IProductService": [
        22121
      ]
    },
    "id": 22122,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 21978,
        "literals": [
          "solidity",
          "0.8",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:22:44"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "fullyImplemented": false,
        "id": 22121,
        "linearizedBaseContracts": [
          22121
        ],
        "name": "IProductService",
        "nameLocation": "73:15:44",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "functionSelector": "93b8414a",
            "id": 21993,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "newApplication",
            "nameLocation": "105:14:44",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 21989,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21980,
                  "mutability": "mutable",
                  "name": "owner",
                  "nameLocation": "137:5:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 21993,
                  "src": "129:13:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 21979,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "129:7:44",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21982,
                  "mutability": "mutable",
                  "name": "premiumAmount",
                  "nameLocation": "160:13:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 21993,
                  "src": "152:21:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21981,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "152:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21984,
                  "mutability": "mutable",
                  "name": "sumInsuredAmount",
                  "nameLocation": "191:16:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 21993,
                  "src": "183:24:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21983,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "183:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21986,
                  "mutability": "mutable",
                  "name": "metaData",
                  "nameLocation": "232:8:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 21993,
                  "src": "217:23:44",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 21985,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "217:5:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21988,
                  "mutability": "mutable",
                  "name": "applicationData",
                  "nameLocation": "266:15:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 21993,
                  "src": "251:30:44",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 21987,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "251:5:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "119:169:44"
            },
            "returnParameters": {
              "id": 21992,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21991,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "314:9:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 21993,
                  "src": "306:17:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 21990,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "306:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "305:19:44"
            },
            "scope": 22121,
            "src": "96:229:44",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "e3ebdea5",
            "id": 22006,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "collectPremium",
            "nameLocation": "340:14:44",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 21998,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 21995,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "363:9:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22006,
                  "src": "355:17:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 21994,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "355:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 21997,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "382:6:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22006,
                  "src": "374:14:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 21996,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "374:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "354:35:44"
            },
            "returnParameters": {
              "id": 22005,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22000,
                  "mutability": "mutable",
                  "name": "success",
                  "nameLocation": "433:7:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22006,
                  "src": "428:12:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 21999,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "428:4:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22002,
                  "mutability": "mutable",
                  "name": "feeAmount",
                  "nameLocation": "462:9:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22006,
                  "src": "454:17:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22001,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "454:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22004,
                  "mutability": "mutable",
                  "name": "netPremiumAmount",
                  "nameLocation": "493:16:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22006,
                  "src": "485:24:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22003,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "485:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "414:105:44"
            },
            "scope": 22121,
            "src": "331:189:44",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "30a73da5",
            "id": 22015,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "adjustPremiumSumInsured",
            "nameLocation": "539:23:44",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22013,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22008,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "580:9:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22015,
                  "src": "572:17:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22007,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "572:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22010,
                  "mutability": "mutable",
                  "name": "expectedPremiumAmount",
                  "nameLocation": "608:21:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22015,
                  "src": "600:29:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22009,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "600:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22012,
                  "mutability": "mutable",
                  "name": "sumInsuredAmount",
                  "nameLocation": "647:16:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22015,
                  "src": "639:24:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22011,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "639:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "562:107:44"
            },
            "returnParameters": {
              "id": 22014,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "678:0:44"
            },
            "scope": 22121,
            "src": "530:149:44",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "b75c7dc6",
            "id": 22020,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "revoke",
            "nameLocation": "694:6:44",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22018,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22017,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "709:9:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22020,
                  "src": "701:17:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22016,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "701:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "700:19:44"
            },
            "returnParameters": {
              "id": 22019,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "728:0:44"
            },
            "scope": 22121,
            "src": "685:44:44",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "1b07b17f",
            "id": 22027,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "underwrite",
            "nameLocation": "743:10:44",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22023,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22022,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "762:9:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22027,
                  "src": "754:17:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22021,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "754:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "753:19:44"
            },
            "returnParameters": {
              "id": 22026,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22025,
                  "mutability": "mutable",
                  "name": "success",
                  "nameLocation": "795:7:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22027,
                  "src": "790:12:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 22024,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "790:4:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "789:14:44"
            },
            "scope": 22121,
            "src": "734:70:44",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "8cc7d3d1",
            "id": 22032,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "decline",
            "nameLocation": "818:7:44",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22030,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22029,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "834:9:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22032,
                  "src": "826:17:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22028,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "826:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "825:19:44"
            },
            "returnParameters": {
              "id": 22031,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "853:0:44"
            },
            "scope": 22121,
            "src": "809:45:44",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "c6441798",
            "id": 22037,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "expire",
            "nameLocation": "868:6:44",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22035,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22034,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "883:9:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22037,
                  "src": "875:17:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22033,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "875:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "874:19:44"
            },
            "returnParameters": {
              "id": 22036,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "902:0:44"
            },
            "scope": 22121,
            "src": "859:44:44",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "39c79e0c",
            "id": 22042,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "close",
            "nameLocation": "917:5:44",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22040,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22039,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "931:9:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22042,
                  "src": "923:17:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22038,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "923:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "922:19:44"
            },
            "returnParameters": {
              "id": 22041,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "950:0:44"
            },
            "scope": 22121,
            "src": "908:43:44",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "fae43d15",
            "id": 22053,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "newClaim",
            "nameLocation": "966:8:44",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22049,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22044,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "992:9:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22053,
                  "src": "984:17:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22043,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "984:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22046,
                  "mutability": "mutable",
                  "name": "claimAmount",
                  "nameLocation": "1020:11:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22053,
                  "src": "1012:19:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22045,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1012:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22048,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "1056:4:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22053,
                  "src": "1041:19:44",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 22047,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1041:5:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "974:92:44"
            },
            "returnParameters": {
              "id": 22052,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22051,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "1092:7:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22053,
                  "src": "1084:15:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22050,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1084:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1083:17:44"
            },
            "scope": 22121,
            "src": "957:144:44",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "4e02c63f",
            "id": 22062,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "confirmClaim",
            "nameLocation": "1116:12:44",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22060,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22055,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1146:9:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22062,
                  "src": "1138:17:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22054,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1138:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22057,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "1174:7:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22062,
                  "src": "1166:15:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22056,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1166:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22059,
                  "mutability": "mutable",
                  "name": "confirmedAmount",
                  "nameLocation": "1200:15:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22062,
                  "src": "1192:23:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22058,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1192:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1128:93:44"
            },
            "returnParameters": {
              "id": 22061,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1230:0:44"
            },
            "scope": 22121,
            "src": "1107:124:44",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "4cda0de9",
            "id": 22069,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "declineClaim",
            "nameLocation": "1246:12:44",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22067,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22064,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1267:9:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22069,
                  "src": "1259:17:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22063,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1259:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22066,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "1286:7:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22069,
                  "src": "1278:15:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22065,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1278:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1258:36:44"
            },
            "returnParameters": {
              "id": 22068,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1303:0:44"
            },
            "scope": 22121,
            "src": "1237:67:44",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "7f29dba2",
            "id": 22076,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "closeClaim",
            "nameLocation": "1318:10:44",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22074,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22071,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1337:9:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22076,
                  "src": "1329:17:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22070,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1329:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22073,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "1356:7:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22076,
                  "src": "1348:15:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22072,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1348:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1328:36:44"
            },
            "returnParameters": {
              "id": 22075,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1373:0:44"
            },
            "scope": 22121,
            "src": "1309:65:44",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "781d7846",
            "id": 22089,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "newPayout",
            "nameLocation": "1389:9:44",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22085,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22078,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1416:9:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22089,
                  "src": "1408:17:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22077,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1408:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22080,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "1444:7:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22089,
                  "src": "1436:15:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22079,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1436:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22082,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1470:6:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22089,
                  "src": "1462:14:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22081,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1462:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22084,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "1501:4:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22089,
                  "src": "1486:19:44",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 22083,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1486:5:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1398:113:44"
            },
            "returnParameters": {
              "id": 22088,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22087,
                  "mutability": "mutable",
                  "name": "payoutId",
                  "nameLocation": "1537:8:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22089,
                  "src": "1529:16:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22086,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1529:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1528:18:44"
            },
            "scope": 22121,
            "src": "1380:167:44",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "fe64372b",
            "id": 22100,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processPayout",
            "nameLocation": "1562:13:44",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22094,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22091,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1584:9:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22100,
                  "src": "1576:17:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22090,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1576:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22093,
                  "mutability": "mutable",
                  "name": "payoutId",
                  "nameLocation": "1603:8:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22100,
                  "src": "1595:16:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22092,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1595:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1575:37:44"
            },
            "returnParameters": {
              "id": 22099,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22096,
                  "mutability": "mutable",
                  "name": "feeAmount",
                  "nameLocation": "1659:9:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22100,
                  "src": "1651:17:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22095,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1651:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22098,
                  "mutability": "mutable",
                  "name": "netPayoutAmount",
                  "nameLocation": "1690:15:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22100,
                  "src": "1682:23:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22097,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1682:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1637:78:44"
            },
            "scope": 22121,
            "src": "1553:163:44",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "2c933f22",
            "id": 22115,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "request",
            "nameLocation": "1731:7:44",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22111,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22102,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1756:9:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22115,
                  "src": "1748:17:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 22101,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1748:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22104,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "1790:4:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22115,
                  "src": "1775:19:44",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 22103,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1775:5:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22106,
                  "mutability": "mutable",
                  "name": "callbackMethodName",
                  "nameLocation": "1820:18:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22115,
                  "src": "1804:34:44",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 22105,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1804:6:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22108,
                  "mutability": "mutable",
                  "name": "callbackContractAddress",
                  "nameLocation": "1856:23:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22115,
                  "src": "1848:31:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 22107,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1848:7:44",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 22110,
                  "mutability": "mutable",
                  "name": "responsibleOracleId",
                  "nameLocation": "1897:19:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22115,
                  "src": "1889:27:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22109,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1889:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1738:184:44"
            },
            "returnParameters": {
              "id": 22114,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22113,
                  "mutability": "mutable",
                  "name": "requestId",
                  "nameLocation": "1948:9:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22115,
                  "src": "1940:17:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22112,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1940:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1939:19:44"
            },
            "scope": 22121,
            "src": "1722:237:44",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "3015394c",
            "id": 22120,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "cancelRequest",
            "nameLocation": "1974:13:44",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 22118,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 22117,
                  "mutability": "mutable",
                  "name": "requestId",
                  "nameLocation": "1996:9:44",
                  "nodeType": "VariableDeclaration",
                  "scope": 22120,
                  "src": "1988:17:44",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 22116,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1988:7:44",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1987:19:44"
            },
            "returnParameters": {
              "id": 22119,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2015:0:44"
            },
            "scope": 22121,
            "src": "1965:51:44",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 22122,
        "src": "63:1955:44"
      }
    ],
    "src": "39:1980:44"
  },
  "bytecode": "",
  "bytecodeSha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.2+commit.661d1103"
  },
  "contractName": "IProductService",
  "coverageMap": {
    "branches": {},
    "statements": {}
  },
  "dependencies": [],
  "deployedBytecode": "",
  "deployedSourceMap": "",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "offset": [
    63,
    2018
  ],
  "opcodes": "",
  "pcMap": {},
  "sha1": "a9bb78c3f0ebb9395271b09bb6ebd4f5d77d123a",
  "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface IProductService {\n\n    function newApplication(\n        address owner,\n        uint256 premiumAmount,\n        uint256 sumInsuredAmount,\n        bytes calldata metaData, \n        bytes calldata applicationData \n    ) external returns(bytes32 processId);\n\n    function collectPremium(bytes32 processId, uint256 amount) external\n        returns(\n            bool success,\n            uint256 feeAmount,\n            uint256 netPremiumAmount\n        );\n    \n    function adjustPremiumSumInsured(\n        bytes32 processId, \n        uint256 expectedPremiumAmount,\n        uint256 sumInsuredAmount\n    ) external;\n\n    function revoke(bytes32 processId) external;\n    function underwrite(bytes32 processId) external returns(bool success);\n    function decline(bytes32 processId) external;\n    function expire(bytes32 processId) external;\n    function close(bytes32 processId) external;\n\n    function newClaim(\n        bytes32 processId, \n        uint256 claimAmount,\n        bytes calldata data\n    ) external returns(uint256 claimId);\n\n    function confirmClaim(\n        bytes32 processId, \n        uint256 claimId, \n        uint256 confirmedAmount\n    ) external;\n\n    function declineClaim(bytes32 processId, uint256 claimId) external;\n    function closeClaim(bytes32 processId, uint256 claimId) external;\n\n    function newPayout(\n        bytes32 processId, \n        uint256 claimId, \n        uint256 amount,\n        bytes calldata data\n    ) external returns(uint256 payoutId);\n\n    function processPayout(bytes32 processId, uint256 payoutId) external\n        returns(\n            uint256 feeAmount,\n            uint256 netPayoutAmount\n        );\n\n    function request(\n        bytes32 processId,\n        bytes calldata data,\n        string calldata callbackMethodName,\n        address callbackContractAddress,\n        uint256 responsibleOracleId\n    ) external returns(uint256 requestId);\n\n    function cancelRequest(uint256 requestId) external;\n}\n",
  "sourceMap": "",
  "sourcePath": "/home/vscode/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IProductService.sol",
  "type": "interface"
}