{
  "contractName": "ServerKeyRetrievalServiceKeyServerApi",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "serverKeyId",
          "type": "bytes32"
        }
      ],
      "name": "ServerKeyRetrievalRequested",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "serverKeyId",
          "type": "bytes32"
        },
        {
          "name": "serverKeyPublic",
          "type": "bytes"
        },
        {
          "name": "threshold",
          "type": "uint8"
        }
      ],
      "name": "serverKeyRetrieved",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "serverKeyId",
          "type": "bytes32"
        }
      ],
      "name": "serverKeyRetrievalError",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "serverKeyRetrievalRequestsCount",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "index",
          "type": "uint256"
        }
      ],
      "name": "getServerKeyRetrievalRequest",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "serverKeyId",
          "type": "bytes32"
        },
        {
          "name": "keyServer",
          "type": "address"
        }
      ],
      "name": "isServerKeyRetrievalResponseRequired",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "//! The Secret Store service contract intefaces.\n//!\n//! Copyright 2017 Svyatoslav Nikolsky, Parity Technologies Ltd.\n//!\n//! Licensed under the Apache License, Version 2.0 (the \"License\");\n//! you may not use this file except in compliance with the License.\n//! You may obtain a copy of the License at\n//!\n//!     http://www.apache.org/licenses/LICENSE-2.0\n//!\n//! Unless required by applicable law or agreed to in writing, software\n//! distributed under the License is distributed on an \"AS IS\" BASIS,\n//! WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n//! See the License for the specific language governing permissions and\n//! limitations under the License.\n\npragma solidity ^0.4.24;\n\n/// Server Key generation service contract API (client view).\ninterface ServerKeyGenerationServiceClientApi {\n    /// When server key is generated.\n    event ServerKeyGenerated(bytes32 indexed serverKeyId, bytes serverKeyPublic);\n    /// When error occurs during server key generation.\n    event ServerKeyGenerationError(bytes32 indexed serverKeyId);\n\n    /// Request new server key generation. Generated key will be published via ServerKeyGenerated event when available.\n    function generateServerKey(bytes32 serverKeyId, uint8 threshold) external payable;\n}\n\n/// Server Key generation service contract API (key server view).\ninterface ServerKeyGenerationServiceKeyServerApi {\n    /// When sever key generation request is received.\n    event ServerKeyGenerationRequested(bytes32 serverKeyId, address author, uint8 threshold);\n\n    /// Called when generation is reported by key server.\n    function serverKeyGenerated(bytes32 serverKeyId, bytes serverKeyPublic) external;\n    /// Called when error occurs during server key generation.\n    function serverKeyGenerationError(bytes32 serverKeyId) external;\n\n    /// Get count of pending server key generation requests.\n    function serverKeyGenerationRequestsCount() external view returns (uint256);\n    /// Get server key generation request with given index.\n    /// Returns: (serverKeyId, author, threshold)\n    function getServerKeyGenerationRequest(uint256 index) external view returns (bytes32, address, uint256);\n    /// Returs true if response from given keyServer is required.\n    function isServerKeyGenerationResponseRequired(bytes32 serverKeyId, address keyServer) external view returns (bool);\n}\n\n/// Server Key retrieval service contract API (client view).\ninterface ServerKeyRetrievalServiceClientApi {\n    /// When server key is retrieved.\n    event ServerKeyRetrieved(bytes32 indexed serverKeyId, bytes serverKeyPublic, uint256 threshold);\n    /// When error occurs during server key retrieval.\n    event ServerKeyRetrievalError(bytes32 indexed serverKeyId);\n\n    /// Retrieve existing server key. Retrieved key will be published via ServerKeyRetrieved or ServerKeyRetrievalError.\n    function retrieveServerKey(bytes32 serverKeyId) external payable;\n}\n\n/// Server Key retrieval service contract API (key server view).\ninterface ServerKeyRetrievalServiceKeyServerApi {\n    /// When sever key retrieval request is received.\n    event ServerKeyRetrievalRequested(bytes32 serverKeyId);\n\n    /// Called when retrieval is reported by key server.\n    function serverKeyRetrieved(bytes32 serverKeyId, bytes serverKeyPublic, uint8 threshold) external;\n    /// Called when error occurs during server key retrieval.\n    function serverKeyRetrievalError(bytes32 serverKeyId) external;\n\n    /// Get count of pending server key retrieval requests.\n    function serverKeyRetrievalRequestsCount() external view returns (uint256);\n    /// Get server key retrieval request with given index.\n    /// Returns: (serverKeyId)\n    function getServerKeyRetrievalRequest(uint256 index) external view returns (bytes32);\n    /// Returs true if response from given keyServer is required.\n    function isServerKeyRetrievalResponseRequired(bytes32 serverKeyId, address keyServer) external view returns (bool);\n}\n\n/// Document Key store service contract API (client view).\ninterface DocumentKeyStoreServiceClientApi {\n    /// When document key is stored.\n    event DocumentKeyStored(bytes32 indexed serverKeyId);\n    /// When error occurs during document key store.\n    event DocumentKeyStoreError(bytes32 indexed serverKeyId);\n\n    /// Request document key store. Use `secretstore_generateDocumentKey` RPC to generate both\n    /// `commonPoint` and `encryptedPoint`.\n    function storeDocumentKey(bytes32 serverKeyId, bytes commonPoint, bytes encryptedPoint) external payable;\n}\n\n/// Document Key store service contract API (key server view).\ninterface DocumentKeyStoreServiceKeyServerApi {\n    /// When document key store request is received.\n    event DocumentKeyStoreRequested(bytes32 serverKeyId, address author, bytes commonPoint, bytes encryptedPoint);\n\n    /// Called when store is reported by key server.\n    function documentKeyStored(bytes32 serverKeyId) external;\n    /// Called when error occurs during document key store.\n    function documentKeyStoreError(bytes32 serverKeyId) external;\n\n    /// Get count of pending document key store requests.\n    function documentKeyStoreRequestsCount() external view returns (uint256);\n    /// Get document key store request with given index.\n    /// Returns: (serverKeyId, author, commonPoint, encryptedPoint)\n    function getDocumentKeyStoreRequest(uint256 index) external view returns (bytes32, address, bytes, bytes);\n    /// Returs true if response from given keyServer is required.\n    function isDocumentKeyStoreResponseRequired(bytes32 serverKeyId, address keyServer) external view returns (bool);\n}\n\n/// Document Key shadow retrieval service contract API (client view).\ninterface DocumentKeyShadowRetrievalServiceClientApi {\n    /// When document key common portion is retrieved. Ater this event s fired, wait for\n    /// exactly `threshold+1` `DocumentKeyPersonalRetrieved` events with the same `decryptedSecret` value.\n    event DocumentKeyCommonRetrieved(bytes32 indexed serverKeyId, address indexed requester, bytes commonPoint, uint8 threshold);\n    /// When document key personal portion is retrieved. After enough events are fired, use `secretstore_shadowDecrypt`\n    /// to decrypt document contents.\n    event DocumentKeyPersonalRetrieved(bytes32 indexed serverKeyId, address indexed requester, bytes decryptedSecret, bytes shadow);\n    /// When error occurs during document key retrieval.\n    event DocumentKeyShadowRetrievalError(bytes32 indexed serverKeyId, address indexed requester);\n\n    /// Request document key retrieval.\n    function retrieveDocumentKeyShadow(bytes32 serverKeyId, bytes requesterPublic) external payable;\n}\n\n/// Document Key shadow retrieval service contract API (key server view).\ninterface DocumentKeyShadowRetrievalServiceKeyServerApi {\n    /// When document key common-portion retrieval request is received.\n    event DocumentKeyCommonRetrievalRequested(bytes32 serverKeyId, address requester);\n    /// When document key personal-portion retrieval request is received.\n    event DocumentKeyPersonalRetrievalRequested(bytes32 serverKeyId, bytes requesterPublic);\n\n    /// Called when common data is reported by key server.\n    function documentKeyCommonRetrieved(\n        bytes32 serverKeyId,\n        address requester,\n        bytes commonPoint,\n        uint8 threshold) external;\n    /// Called when 'personal' data is reported by key server.\n    function documentKeyPersonalRetrieved(\n        bytes32 serverKeyId,\n        address requester,\n        uint256 participants,\n        bytes decryptedSecret,\n        bytes shadow) external;\n    /// Called when error occurs during document key shadow retrieval.\n    function documentKeyShadowRetrievalError(bytes32 serverKeyId, address requester) external;\n\n    /// Get count of pending document key shadow retrieval requests.\n    function documentKeyShadowRetrievalRequestsCount() external view returns (uint256);\n    /// Get document key shadow retrieval request with given index.\n    /// Returns: (serverKeyId, requesterPublic, isCommonRetrievalCompleted)\n    function getDocumentKeyShadowRetrievalRequest(uint256 index) external view returns (bytes32, bytes, bool);\n    /// Returs true if response from given keyServer is required.\n    function isDocumentKeyShadowRetrievalResponseRequired(bytes32 serverKeyId, address keyServer, address requester)\n        external\n        view\n        returns (bool);\n}\n",
  "sourcePath": "/home/aznagy/work/secretstore/secretstore-contracts/contracts/interfaces/SecretStoreService.sol",
  "ast": {
    "absolutePath": "/home/aznagy/work/secretstore/secretstore-contracts/contracts/interfaces/SecretStoreService.sol",
    "exportedSymbols": {
      "DocumentKeyShadowRetrievalServiceClientApi": [
        800
      ],
      "DocumentKeyShadowRetrievalServiceKeyServerApi": [
        871
      ],
      "DocumentKeyStoreServiceClientApi": [
        718
      ],
      "DocumentKeyStoreServiceKeyServerApi": [
        766
      ],
      "ServerKeyGenerationServiceClientApi": [
        596
      ],
      "ServerKeyGenerationServiceKeyServerApi": [
        642
      ],
      "ServerKeyRetrievalServiceClientApi": [
        660
      ],
      "ServerKeyRetrievalServiceKeyServerApi": [
        700
      ]
    },
    "id": 872,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 578,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "689:24:3"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": "Server Key generation service contract API (client view).",
        "fullyImplemented": false,
        "id": 596,
        "linearizedBaseContracts": [
          596
        ],
        "name": "ServerKeyGenerationServiceClientApi",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": "When server key is generated.",
            "id": 584,
            "name": "ServerKeyGenerated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 583,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 580,
                  "indexed": true,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 584,
                  "src": "892:27:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 579,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "892:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 582,
                  "indexed": false,
                  "name": "serverKeyPublic",
                  "nodeType": "VariableDeclaration",
                  "scope": 584,
                  "src": "921:21:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 581,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "921:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "891:52:3"
            },
            "src": "867:77:3"
          },
          {
            "anonymous": false,
            "documentation": "When error occurs during server key generation.",
            "id": 588,
            "name": "ServerKeyGenerationError",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 587,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 586,
                  "indexed": true,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 588,
                  "src": "1036:27:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 585,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1036:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1035:29:3"
            },
            "src": "1005:60:3"
          },
          {
            "body": null,
            "documentation": "Request new server key generation. Generated key will be published via ServerKeyGenerated event when available.",
            "id": 595,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "generateServerKey",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 593,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 590,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 595,
                  "src": "1218:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 589,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1218:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 592,
                  "name": "threshold",
                  "nodeType": "VariableDeclaration",
                  "scope": 595,
                  "src": "1239:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 591,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1239:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1217:38:3"
            },
            "payable": true,
            "returnParameters": {
              "id": 594,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1272:0:3"
            },
            "scope": 596,
            "src": "1191:82:3",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 872,
        "src": "777:498:3"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": "Server Key generation service contract API (key server view).",
        "fullyImplemented": false,
        "id": 642,
        "linearizedBaseContracts": [
          642
        ],
        "name": "ServerKeyGenerationServiceKeyServerApi",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": "When sever key generation request is received.",
            "id": 604,
            "name": "ServerKeyGenerationRequested",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 603,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 598,
                  "indexed": false,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 604,
                  "src": "1488:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 597,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1488:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 600,
                  "indexed": false,
                  "name": "author",
                  "nodeType": "VariableDeclaration",
                  "scope": 604,
                  "src": "1509:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 599,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1509:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 602,
                  "indexed": false,
                  "name": "threshold",
                  "nodeType": "VariableDeclaration",
                  "scope": 604,
                  "src": "1525:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 601,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1525:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1487:54:3"
            },
            "src": "1453:89:3"
          },
          {
            "body": null,
            "documentation": "Called when generation is reported by key server.",
            "id": 611,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "serverKeyGenerated",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 609,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 606,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 611,
                  "src": "1634:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 605,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1634:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 608,
                  "name": "serverKeyPublic",
                  "nodeType": "VariableDeclaration",
                  "scope": 611,
                  "src": "1655:21:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 607,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1655:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1633:44:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 610,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1686:0:3"
            },
            "scope": 642,
            "src": "1606:81:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Called when error occurs during server key generation.",
            "id": 616,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "serverKeyGenerationError",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 614,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 613,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 616,
                  "src": "1789:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 612,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1789:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1788:21:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 615,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1818:0:3"
            },
            "scope": 642,
            "src": "1755:64:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Get count of pending server key generation requests.",
            "id": 621,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "serverKeyGenerationRequestsCount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 617,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1927:2:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 620,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 619,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 621,
                  "src": "1953:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 618,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1953:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1952:9:3"
            },
            "scope": 642,
            "src": "1886:76:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Get server key generation request with given index.\n Returns: (serverKeyId, author, threshold)",
            "id": 632,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getServerKeyGenerationRequest",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 624,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 623,
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 632,
                  "src": "2116:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 622,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2116:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2115:15:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 631,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 626,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 632,
                  "src": "2154:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 625,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2154:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 628,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 632,
                  "src": "2163:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 627,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2163:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 630,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 632,
                  "src": "2172:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 629,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2172:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2153:27:3"
            },
            "scope": 642,
            "src": "2077:104:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Returs true if response from given keyServer is required.",
            "id": 641,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isServerKeyGenerationResponseRequired",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 637,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 634,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 641,
                  "src": "2299:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 633,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2299:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 636,
                  "name": "keyServer",
                  "nodeType": "VariableDeclaration",
                  "scope": 641,
                  "src": "2320:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 635,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2320:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2298:40:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 640,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 639,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 641,
                  "src": "2362:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 638,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2362:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2361:6:3"
            },
            "scope": 642,
            "src": "2252:116:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 872,
        "src": "1343:1027:3"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": "Server Key retrieval service contract API (client view).",
        "fullyImplemented": false,
        "id": 660,
        "linearizedBaseContracts": [
          660
        ],
        "name": "ServerKeyRetrievalServiceClientApi",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": "When server key is retrieved.",
            "id": 650,
            "name": "ServerKeyRetrieved",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 649,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 644,
                  "indexed": true,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 650,
                  "src": "2547:27:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 643,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2547:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 646,
                  "indexed": false,
                  "name": "serverKeyPublic",
                  "nodeType": "VariableDeclaration",
                  "scope": 650,
                  "src": "2576:21:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 645,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2576:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 648,
                  "indexed": false,
                  "name": "threshold",
                  "nodeType": "VariableDeclaration",
                  "scope": 650,
                  "src": "2599:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 647,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2599:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2546:71:3"
            },
            "src": "2522:96:3"
          },
          {
            "anonymous": false,
            "documentation": "When error occurs during server key retrieval.",
            "id": 654,
            "name": "ServerKeyRetrievalError",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 653,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 652,
                  "indexed": true,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 654,
                  "src": "2708:27:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 651,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2708:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2707:29:3"
            },
            "src": "2678:59:3"
          },
          {
            "body": null,
            "documentation": "Retrieve existing server key. Retrieved key will be published via ServerKeyRetrieved or ServerKeyRetrievalError.",
            "id": 659,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "retrieveServerKey",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 657,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 656,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 659,
                  "src": "2891:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 655,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2891:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2890:21:3"
            },
            "payable": true,
            "returnParameters": {
              "id": 658,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2928:0:3"
            },
            "scope": 660,
            "src": "2864:65:3",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 872,
        "src": "2433:498:3"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": "Server Key retrieval service contract API (key server view).",
        "fullyImplemented": false,
        "id": 700,
        "linearizedBaseContracts": [
          700
        ],
        "name": "ServerKeyRetrievalServiceKeyServerApi",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": "When sever key retrieval request is received.",
            "id": 664,
            "name": "ServerKeyRetrievalRequested",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 663,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 662,
                  "indexed": false,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 664,
                  "src": "3140:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 661,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3140:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3139:21:3"
            },
            "src": "3106:55:3"
          },
          {
            "body": null,
            "documentation": "Called when retrieval is reported by key server.",
            "id": 673,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "serverKeyRetrieved",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 671,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 666,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 673,
                  "src": "3252:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 665,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3252:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 668,
                  "name": "serverKeyPublic",
                  "nodeType": "VariableDeclaration",
                  "scope": 673,
                  "src": "3273:21:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 667,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "3273:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 670,
                  "name": "threshold",
                  "nodeType": "VariableDeclaration",
                  "scope": 673,
                  "src": "3296:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 669,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "3296:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3251:61:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 672,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3321:0:3"
            },
            "scope": 700,
            "src": "3224:98:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Called when error occurs during server key retrieval.",
            "id": 678,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "serverKeyRetrievalError",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 676,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 675,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 678,
                  "src": "3422:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 674,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3422:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3421:21:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 677,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3451:0:3"
            },
            "scope": 700,
            "src": "3389:63:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Get count of pending server key retrieval requests.",
            "id": 683,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "serverKeyRetrievalRequestsCount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 679,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3558:2:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 682,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 681,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 683,
                  "src": "3584:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 680,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3584:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3583:9:3"
            },
            "scope": 700,
            "src": "3518:75:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Get server key retrieval request with given index.\n Returns: (serverKeyId)",
            "id": 690,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getServerKeyRetrievalRequest",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 686,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 685,
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 690,
                  "src": "3726:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 684,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3726:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3725:15:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 689,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 688,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 690,
                  "src": "3764:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 687,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3764:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3763:9:3"
            },
            "scope": 700,
            "src": "3688:85:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Returs true if response from given keyServer is required.",
            "id": 699,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isServerKeyRetrievalResponseRequired",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 695,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 692,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 699,
                  "src": "3890:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 691,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3890:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 694,
                  "name": "keyServer",
                  "nodeType": "VariableDeclaration",
                  "scope": 699,
                  "src": "3911:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 693,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3911:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3889:40:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 698,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 697,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 699,
                  "src": "3953:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 696,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3953:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3952:6:3"
            },
            "scope": 700,
            "src": "3844:115:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 872,
        "src": "2998:963:3"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": "Document Key store service contract API (client view).",
        "fullyImplemented": false,
        "id": 718,
        "linearizedBaseContracts": [
          718
        ],
        "name": "DocumentKeyStoreServiceClientApi",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": "When document key is stored.",
            "id": 704,
            "name": "DocumentKeyStored",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 703,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 702,
                  "indexed": true,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 704,
                  "src": "4132:27:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 701,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4132:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4131:29:3"
            },
            "src": "4108:53:3"
          },
          {
            "anonymous": false,
            "documentation": "When error occurs during document key store.",
            "id": 708,
            "name": "DocumentKeyStoreError",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 707,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 706,
                  "indexed": true,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 708,
                  "src": "4247:27:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 705,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4247:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4246:29:3"
            },
            "src": "4219:57:3"
          },
          {
            "body": null,
            "documentation": "Request document key store. Use `secretstore_generateDocumentKey` RPC to generate both\n `commonPoint` and `encryptedPoint`.",
            "id": 717,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "storeDocumentKey",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 715,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 710,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 717,
                  "src": "4447:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 709,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4447:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 712,
                  "name": "commonPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 717,
                  "src": "4468:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 711,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4468:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 714,
                  "name": "encryptedPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 717,
                  "src": "4487:20:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 713,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4487:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4446:62:3"
            },
            "payable": true,
            "returnParameters": {
              "id": 716,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4525:0:3"
            },
            "scope": 718,
            "src": "4421:105:3",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 872,
        "src": "4022:506:3"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": "Document Key store service contract API (key server view).",
        "fullyImplemented": false,
        "id": 766,
        "linearizedBaseContracts": [
          766
        ],
        "name": "DocumentKeyStoreServiceKeyServerApi",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": "When document key store request is received.",
            "id": 728,
            "name": "DocumentKeyStoreRequested",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 727,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 720,
                  "indexed": false,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 728,
                  "src": "4730:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 719,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4730:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 722,
                  "indexed": false,
                  "name": "author",
                  "nodeType": "VariableDeclaration",
                  "scope": 728,
                  "src": "4751:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 721,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4751:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 724,
                  "indexed": false,
                  "name": "commonPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 728,
                  "src": "4767:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 723,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4767:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 726,
                  "indexed": false,
                  "name": "encryptedPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 728,
                  "src": "4786:20:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 725,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4786:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4729:78:3"
            },
            "src": "4698:110:3"
          },
          {
            "body": null,
            "documentation": "Called when store is reported by key server.",
            "id": 733,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "documentKeyStored",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 731,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 730,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 733,
                  "src": "4894:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 729,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4894:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4893:21:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 732,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4923:0:3"
            },
            "scope": 766,
            "src": "4867:57:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Called when error occurs during document key store.",
            "id": 738,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "documentKeyStoreError",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 736,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 735,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 738,
                  "src": "5020:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 734,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5020:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5019:21:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 737,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5049:0:3"
            },
            "scope": 766,
            "src": "4989:61:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Get count of pending document key store requests.",
            "id": 743,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "documentKeyStoreRequestsCount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 739,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5152:2:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 742,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 741,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 743,
                  "src": "5178:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 740,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5178:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5177:9:3"
            },
            "scope": 766,
            "src": "5114:73:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Get document key store request with given index.\n Returns: (serverKeyId, author, commonPoint, encryptedPoint)",
            "id": 756,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getDocumentKeyStoreRequest",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 746,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 745,
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 756,
                  "src": "5353:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 744,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5353:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5352:15:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 755,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 748,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 756,
                  "src": "5391:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 747,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5391:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 750,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 756,
                  "src": "5400:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 749,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5400:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 752,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 756,
                  "src": "5409:5:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 751,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5409:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 754,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 756,
                  "src": "5416:5:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 753,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5416:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5390:32:3"
            },
            "scope": 766,
            "src": "5317:106:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Returs true if response from given keyServer is required.",
            "id": 765,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isDocumentKeyStoreResponseRequired",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 761,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 758,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 765,
                  "src": "5538:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 757,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5538:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 760,
                  "name": "keyServer",
                  "nodeType": "VariableDeclaration",
                  "scope": 765,
                  "src": "5559:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 759,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5559:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5537:40:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 764,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 763,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 765,
                  "src": "5601:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 762,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5601:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5600:6:3"
            },
            "scope": 766,
            "src": "5494:113:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 872,
        "src": "4593:1016:3"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": "Document Key shadow retrieval service contract API (client view).",
        "fullyImplemented": false,
        "id": 800,
        "linearizedBaseContracts": [
          800
        ],
        "name": "DocumentKeyShadowRetrievalServiceClientApi",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": "When document key common portion is retrieved. Ater this event s fired, wait for\n exactly `threshold+1` `DocumentKeyPersonalRetrieved` events with the same `decryptedSecret` value.",
            "id": 776,
            "name": "DocumentKeyCommonRetrieved",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 775,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 768,
                  "indexed": true,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 776,
                  "src": "5969:27:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 767,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5969:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 770,
                  "indexed": true,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 776,
                  "src": "5998:25:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 769,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5998:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 772,
                  "indexed": false,
                  "name": "commonPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 776,
                  "src": "6025:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 771,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "6025:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 774,
                  "indexed": false,
                  "name": "threshold",
                  "nodeType": "VariableDeclaration",
                  "scope": 776,
                  "src": "6044:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 773,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "6044:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5968:92:3"
            },
            "src": "5936:125:3"
          },
          {
            "anonymous": false,
            "documentation": "When document key personal portion is retrieved. After enough events are fired, use `secretstore_shadowDecrypt`\n to decrypt document contents.",
            "id": 786,
            "name": "DocumentKeyPersonalRetrieved",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 785,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 778,
                  "indexed": true,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 786,
                  "src": "6259:27:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 777,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6259:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 780,
                  "indexed": true,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 786,
                  "src": "6288:25:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 779,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6288:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 782,
                  "indexed": false,
                  "name": "decryptedSecret",
                  "nodeType": "VariableDeclaration",
                  "scope": 786,
                  "src": "6315:21:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 781,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "6315:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 784,
                  "indexed": false,
                  "name": "shadow",
                  "nodeType": "VariableDeclaration",
                  "scope": 786,
                  "src": "6338:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 783,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "6338:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6258:93:3"
            },
            "src": "6224:128:3"
          },
          {
            "anonymous": false,
            "documentation": "When error occurs during document key retrieval.",
            "id": 792,
            "name": "DocumentKeyShadowRetrievalError",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 791,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 788,
                  "indexed": true,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 792,
                  "src": "6452:27:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 787,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6452:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 790,
                  "indexed": true,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 792,
                  "src": "6481:25:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 789,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6481:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6451:56:3"
            },
            "src": "6414:94:3"
          },
          {
            "body": null,
            "documentation": "Request document key retrieval.",
            "id": 799,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "retrieveDocumentKeyShadow",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 797,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 794,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 799,
                  "src": "6589:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 793,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6589:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 796,
                  "name": "requesterPublic",
                  "nodeType": "VariableDeclaration",
                  "scope": 799,
                  "src": "6610:21:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 795,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "6610:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6588:44:3"
            },
            "payable": true,
            "returnParameters": {
              "id": 798,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6649:0:3"
            },
            "scope": 800,
            "src": "6554:96:3",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 872,
        "src": "5681:971:3"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": "Document Key shadow retrieval service contract API (key server view).",
        "fullyImplemented": false,
        "id": 871,
        "linearizedBaseContracts": [
          871
        ],
        "name": "DocumentKeyShadowRetrievalServiceKeyServerApi",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": "When document key common-portion retrieval request is received.",
            "id": 806,
            "name": "DocumentKeyCommonRetrievalRequested",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 805,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 802,
                  "indexed": false,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 806,
                  "src": "6904:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 801,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6904:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 804,
                  "indexed": false,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 806,
                  "src": "6925:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 803,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6925:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6903:40:3"
            },
            "src": "6862:82:3"
          },
          {
            "anonymous": false,
            "documentation": "When document key personal-portion retrieval request is received.",
            "id": 812,
            "name": "DocumentKeyPersonalRetrievalRequested",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 811,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 808,
                  "indexed": false,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 812,
                  "src": "7067:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 807,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7067:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 810,
                  "indexed": false,
                  "name": "requesterPublic",
                  "nodeType": "VariableDeclaration",
                  "scope": 812,
                  "src": "7088:21:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 809,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "7088:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7066:44:3"
            },
            "src": "7023:88:3"
          },
          {
            "body": null,
            "documentation": "Called when common data is reported by key server.",
            "id": 823,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "documentKeyCommonRetrieved",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 821,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 814,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 823,
                  "src": "7221:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 813,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7221:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 816,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 823,
                  "src": "7250:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 815,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7250:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 818,
                  "name": "commonPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 823,
                  "src": "7277:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 817,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "7277:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 820,
                  "name": "threshold",
                  "nodeType": "VariableDeclaration",
                  "scope": 823,
                  "src": "7304:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 819,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "7304:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7211:109:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 822,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7329:0:3"
            },
            "scope": 871,
            "src": "7176:154:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Called when 'personal' data is reported by key server.",
            "id": 836,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "documentKeyPersonalRetrieved",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 834,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 825,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 836,
                  "src": "7445:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 824,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7445:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 827,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 836,
                  "src": "7474:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 826,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7474:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 829,
                  "name": "participants",
                  "nodeType": "VariableDeclaration",
                  "scope": 836,
                  "src": "7501:20:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 828,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7501:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 831,
                  "name": "decryptedSecret",
                  "nodeType": "VariableDeclaration",
                  "scope": 836,
                  "src": "7531:21:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 830,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "7531:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 833,
                  "name": "shadow",
                  "nodeType": "VariableDeclaration",
                  "scope": 836,
                  "src": "7562:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 832,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "7562:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7435:140:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 835,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7584:0:3"
            },
            "scope": 871,
            "src": "7398:187:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Called when error occurs during document key shadow retrieval.",
            "id": 843,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "documentKeyShadowRetrievalError",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 841,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 838,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 843,
                  "src": "7702:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 837,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7702:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 840,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 843,
                  "src": "7723:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 839,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7723:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7701:40:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 842,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7750:0:3"
            },
            "scope": 871,
            "src": "7661:90:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Get count of pending document key shadow retrieval requests.",
            "id": 848,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "documentKeyShadowRetrievalRequestsCount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 844,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7874:2:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 847,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 846,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 848,
                  "src": "7900:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 845,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7900:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7899:9:3"
            },
            "scope": 871,
            "src": "7826:83:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Get document key shadow retrieval request with given index.\n Returns: (serverKeyId, requesterPublic, isCommonRetrievalCompleted)",
            "id": 859,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getDocumentKeyShadowRetrievalRequest",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 851,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 850,
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 859,
                  "src": "8104:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 849,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8104:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8103:15:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 858,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 853,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 859,
                  "src": "8142:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 852,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8142:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 855,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 859,
                  "src": "8151:5:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 854,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "8151:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 857,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 859,
                  "src": "8158:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 856,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8158:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8141:22:3"
            },
            "scope": 871,
            "src": "8058:106:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Returs true if response from given keyServer is required.",
            "id": 870,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isDocumentKeyShadowRetrievalResponseRequired",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 866,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 861,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 870,
                  "src": "8289:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 860,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8289:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 863,
                  "name": "keyServer",
                  "nodeType": "VariableDeclaration",
                  "scope": 870,
                  "src": "8310:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 862,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8310:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 865,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 870,
                  "src": "8329:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 864,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8329:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8288:59:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 869,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 868,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 870,
                  "src": "8395:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 867,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8395:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8394:6:3"
            },
            "scope": 871,
            "src": "8235:166:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 872,
        "src": "6728:1675:3"
      }
    ],
    "src": "689:7715:3"
  },
  "legacyAST": {
    "absolutePath": "/home/aznagy/work/secretstore/secretstore-contracts/contracts/interfaces/SecretStoreService.sol",
    "exportedSymbols": {
      "DocumentKeyShadowRetrievalServiceClientApi": [
        800
      ],
      "DocumentKeyShadowRetrievalServiceKeyServerApi": [
        871
      ],
      "DocumentKeyStoreServiceClientApi": [
        718
      ],
      "DocumentKeyStoreServiceKeyServerApi": [
        766
      ],
      "ServerKeyGenerationServiceClientApi": [
        596
      ],
      "ServerKeyGenerationServiceKeyServerApi": [
        642
      ],
      "ServerKeyRetrievalServiceClientApi": [
        660
      ],
      "ServerKeyRetrievalServiceKeyServerApi": [
        700
      ]
    },
    "id": 872,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 578,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "689:24:3"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": "Server Key generation service contract API (client view).",
        "fullyImplemented": false,
        "id": 596,
        "linearizedBaseContracts": [
          596
        ],
        "name": "ServerKeyGenerationServiceClientApi",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": "When server key is generated.",
            "id": 584,
            "name": "ServerKeyGenerated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 583,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 580,
                  "indexed": true,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 584,
                  "src": "892:27:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 579,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "892:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 582,
                  "indexed": false,
                  "name": "serverKeyPublic",
                  "nodeType": "VariableDeclaration",
                  "scope": 584,
                  "src": "921:21:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 581,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "921:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "891:52:3"
            },
            "src": "867:77:3"
          },
          {
            "anonymous": false,
            "documentation": "When error occurs during server key generation.",
            "id": 588,
            "name": "ServerKeyGenerationError",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 587,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 586,
                  "indexed": true,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 588,
                  "src": "1036:27:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 585,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1036:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1035:29:3"
            },
            "src": "1005:60:3"
          },
          {
            "body": null,
            "documentation": "Request new server key generation. Generated key will be published via ServerKeyGenerated event when available.",
            "id": 595,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "generateServerKey",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 593,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 590,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 595,
                  "src": "1218:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 589,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1218:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 592,
                  "name": "threshold",
                  "nodeType": "VariableDeclaration",
                  "scope": 595,
                  "src": "1239:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 591,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1239:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1217:38:3"
            },
            "payable": true,
            "returnParameters": {
              "id": 594,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1272:0:3"
            },
            "scope": 596,
            "src": "1191:82:3",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 872,
        "src": "777:498:3"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": "Server Key generation service contract API (key server view).",
        "fullyImplemented": false,
        "id": 642,
        "linearizedBaseContracts": [
          642
        ],
        "name": "ServerKeyGenerationServiceKeyServerApi",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": "When sever key generation request is received.",
            "id": 604,
            "name": "ServerKeyGenerationRequested",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 603,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 598,
                  "indexed": false,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 604,
                  "src": "1488:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 597,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1488:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 600,
                  "indexed": false,
                  "name": "author",
                  "nodeType": "VariableDeclaration",
                  "scope": 604,
                  "src": "1509:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 599,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1509:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 602,
                  "indexed": false,
                  "name": "threshold",
                  "nodeType": "VariableDeclaration",
                  "scope": 604,
                  "src": "1525:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 601,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1525:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1487:54:3"
            },
            "src": "1453:89:3"
          },
          {
            "body": null,
            "documentation": "Called when generation is reported by key server.",
            "id": 611,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "serverKeyGenerated",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 609,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 606,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 611,
                  "src": "1634:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 605,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1634:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 608,
                  "name": "serverKeyPublic",
                  "nodeType": "VariableDeclaration",
                  "scope": 611,
                  "src": "1655:21:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 607,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1655:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1633:44:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 610,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1686:0:3"
            },
            "scope": 642,
            "src": "1606:81:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Called when error occurs during server key generation.",
            "id": 616,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "serverKeyGenerationError",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 614,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 613,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 616,
                  "src": "1789:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 612,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1789:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1788:21:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 615,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1818:0:3"
            },
            "scope": 642,
            "src": "1755:64:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Get count of pending server key generation requests.",
            "id": 621,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "serverKeyGenerationRequestsCount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 617,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1927:2:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 620,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 619,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 621,
                  "src": "1953:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 618,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1953:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1952:9:3"
            },
            "scope": 642,
            "src": "1886:76:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Get server key generation request with given index.\n Returns: (serverKeyId, author, threshold)",
            "id": 632,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getServerKeyGenerationRequest",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 624,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 623,
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 632,
                  "src": "2116:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 622,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2116:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2115:15:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 631,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 626,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 632,
                  "src": "2154:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 625,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2154:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 628,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 632,
                  "src": "2163:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 627,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2163:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 630,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 632,
                  "src": "2172:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 629,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2172:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2153:27:3"
            },
            "scope": 642,
            "src": "2077:104:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Returs true if response from given keyServer is required.",
            "id": 641,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isServerKeyGenerationResponseRequired",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 637,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 634,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 641,
                  "src": "2299:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 633,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2299:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 636,
                  "name": "keyServer",
                  "nodeType": "VariableDeclaration",
                  "scope": 641,
                  "src": "2320:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 635,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2320:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2298:40:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 640,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 639,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 641,
                  "src": "2362:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 638,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2362:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2361:6:3"
            },
            "scope": 642,
            "src": "2252:116:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 872,
        "src": "1343:1027:3"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": "Server Key retrieval service contract API (client view).",
        "fullyImplemented": false,
        "id": 660,
        "linearizedBaseContracts": [
          660
        ],
        "name": "ServerKeyRetrievalServiceClientApi",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": "When server key is retrieved.",
            "id": 650,
            "name": "ServerKeyRetrieved",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 649,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 644,
                  "indexed": true,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 650,
                  "src": "2547:27:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 643,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2547:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 646,
                  "indexed": false,
                  "name": "serverKeyPublic",
                  "nodeType": "VariableDeclaration",
                  "scope": 650,
                  "src": "2576:21:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 645,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2576:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 648,
                  "indexed": false,
                  "name": "threshold",
                  "nodeType": "VariableDeclaration",
                  "scope": 650,
                  "src": "2599:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 647,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2599:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2546:71:3"
            },
            "src": "2522:96:3"
          },
          {
            "anonymous": false,
            "documentation": "When error occurs during server key retrieval.",
            "id": 654,
            "name": "ServerKeyRetrievalError",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 653,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 652,
                  "indexed": true,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 654,
                  "src": "2708:27:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 651,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2708:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2707:29:3"
            },
            "src": "2678:59:3"
          },
          {
            "body": null,
            "documentation": "Retrieve existing server key. Retrieved key will be published via ServerKeyRetrieved or ServerKeyRetrievalError.",
            "id": 659,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "retrieveServerKey",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 657,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 656,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 659,
                  "src": "2891:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 655,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2891:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2890:21:3"
            },
            "payable": true,
            "returnParameters": {
              "id": 658,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2928:0:3"
            },
            "scope": 660,
            "src": "2864:65:3",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 872,
        "src": "2433:498:3"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": "Server Key retrieval service contract API (key server view).",
        "fullyImplemented": false,
        "id": 700,
        "linearizedBaseContracts": [
          700
        ],
        "name": "ServerKeyRetrievalServiceKeyServerApi",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": "When sever key retrieval request is received.",
            "id": 664,
            "name": "ServerKeyRetrievalRequested",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 663,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 662,
                  "indexed": false,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 664,
                  "src": "3140:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 661,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3140:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3139:21:3"
            },
            "src": "3106:55:3"
          },
          {
            "body": null,
            "documentation": "Called when retrieval is reported by key server.",
            "id": 673,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "serverKeyRetrieved",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 671,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 666,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 673,
                  "src": "3252:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 665,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3252:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 668,
                  "name": "serverKeyPublic",
                  "nodeType": "VariableDeclaration",
                  "scope": 673,
                  "src": "3273:21:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 667,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "3273:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 670,
                  "name": "threshold",
                  "nodeType": "VariableDeclaration",
                  "scope": 673,
                  "src": "3296:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 669,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "3296:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3251:61:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 672,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3321:0:3"
            },
            "scope": 700,
            "src": "3224:98:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Called when error occurs during server key retrieval.",
            "id": 678,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "serverKeyRetrievalError",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 676,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 675,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 678,
                  "src": "3422:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 674,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3422:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3421:21:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 677,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3451:0:3"
            },
            "scope": 700,
            "src": "3389:63:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Get count of pending server key retrieval requests.",
            "id": 683,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "serverKeyRetrievalRequestsCount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 679,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3558:2:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 682,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 681,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 683,
                  "src": "3584:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 680,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3584:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3583:9:3"
            },
            "scope": 700,
            "src": "3518:75:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Get server key retrieval request with given index.\n Returns: (serverKeyId)",
            "id": 690,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getServerKeyRetrievalRequest",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 686,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 685,
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 690,
                  "src": "3726:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 684,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3726:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3725:15:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 689,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 688,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 690,
                  "src": "3764:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 687,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3764:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3763:9:3"
            },
            "scope": 700,
            "src": "3688:85:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Returs true if response from given keyServer is required.",
            "id": 699,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isServerKeyRetrievalResponseRequired",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 695,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 692,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 699,
                  "src": "3890:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 691,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3890:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 694,
                  "name": "keyServer",
                  "nodeType": "VariableDeclaration",
                  "scope": 699,
                  "src": "3911:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 693,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3911:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3889:40:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 698,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 697,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 699,
                  "src": "3953:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 696,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3953:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3952:6:3"
            },
            "scope": 700,
            "src": "3844:115:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 872,
        "src": "2998:963:3"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": "Document Key store service contract API (client view).",
        "fullyImplemented": false,
        "id": 718,
        "linearizedBaseContracts": [
          718
        ],
        "name": "DocumentKeyStoreServiceClientApi",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": "When document key is stored.",
            "id": 704,
            "name": "DocumentKeyStored",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 703,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 702,
                  "indexed": true,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 704,
                  "src": "4132:27:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 701,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4132:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4131:29:3"
            },
            "src": "4108:53:3"
          },
          {
            "anonymous": false,
            "documentation": "When error occurs during document key store.",
            "id": 708,
            "name": "DocumentKeyStoreError",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 707,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 706,
                  "indexed": true,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 708,
                  "src": "4247:27:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 705,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4247:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4246:29:3"
            },
            "src": "4219:57:3"
          },
          {
            "body": null,
            "documentation": "Request document key store. Use `secretstore_generateDocumentKey` RPC to generate both\n `commonPoint` and `encryptedPoint`.",
            "id": 717,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "storeDocumentKey",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 715,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 710,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 717,
                  "src": "4447:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 709,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4447:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 712,
                  "name": "commonPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 717,
                  "src": "4468:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 711,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4468:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 714,
                  "name": "encryptedPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 717,
                  "src": "4487:20:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 713,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4487:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4446:62:3"
            },
            "payable": true,
            "returnParameters": {
              "id": 716,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4525:0:3"
            },
            "scope": 718,
            "src": "4421:105:3",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 872,
        "src": "4022:506:3"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": "Document Key store service contract API (key server view).",
        "fullyImplemented": false,
        "id": 766,
        "linearizedBaseContracts": [
          766
        ],
        "name": "DocumentKeyStoreServiceKeyServerApi",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": "When document key store request is received.",
            "id": 728,
            "name": "DocumentKeyStoreRequested",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 727,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 720,
                  "indexed": false,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 728,
                  "src": "4730:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 719,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4730:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 722,
                  "indexed": false,
                  "name": "author",
                  "nodeType": "VariableDeclaration",
                  "scope": 728,
                  "src": "4751:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 721,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4751:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 724,
                  "indexed": false,
                  "name": "commonPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 728,
                  "src": "4767:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 723,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4767:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 726,
                  "indexed": false,
                  "name": "encryptedPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 728,
                  "src": "4786:20:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 725,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4786:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4729:78:3"
            },
            "src": "4698:110:3"
          },
          {
            "body": null,
            "documentation": "Called when store is reported by key server.",
            "id": 733,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "documentKeyStored",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 731,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 730,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 733,
                  "src": "4894:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 729,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4894:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4893:21:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 732,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4923:0:3"
            },
            "scope": 766,
            "src": "4867:57:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Called when error occurs during document key store.",
            "id": 738,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "documentKeyStoreError",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 736,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 735,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 738,
                  "src": "5020:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 734,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5020:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5019:21:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 737,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5049:0:3"
            },
            "scope": 766,
            "src": "4989:61:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Get count of pending document key store requests.",
            "id": 743,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "documentKeyStoreRequestsCount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 739,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5152:2:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 742,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 741,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 743,
                  "src": "5178:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 740,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5178:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5177:9:3"
            },
            "scope": 766,
            "src": "5114:73:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Get document key store request with given index.\n Returns: (serverKeyId, author, commonPoint, encryptedPoint)",
            "id": 756,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getDocumentKeyStoreRequest",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 746,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 745,
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 756,
                  "src": "5353:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 744,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5353:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5352:15:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 755,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 748,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 756,
                  "src": "5391:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 747,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5391:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 750,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 756,
                  "src": "5400:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 749,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5400:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 752,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 756,
                  "src": "5409:5:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 751,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5409:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 754,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 756,
                  "src": "5416:5:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 753,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "5416:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5390:32:3"
            },
            "scope": 766,
            "src": "5317:106:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Returs true if response from given keyServer is required.",
            "id": 765,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isDocumentKeyStoreResponseRequired",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 761,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 758,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 765,
                  "src": "5538:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 757,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5538:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 760,
                  "name": "keyServer",
                  "nodeType": "VariableDeclaration",
                  "scope": 765,
                  "src": "5559:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 759,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5559:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5537:40:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 764,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 763,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 765,
                  "src": "5601:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 762,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "5601:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5600:6:3"
            },
            "scope": 766,
            "src": "5494:113:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 872,
        "src": "4593:1016:3"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": "Document Key shadow retrieval service contract API (client view).",
        "fullyImplemented": false,
        "id": 800,
        "linearizedBaseContracts": [
          800
        ],
        "name": "DocumentKeyShadowRetrievalServiceClientApi",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": "When document key common portion is retrieved. Ater this event s fired, wait for\n exactly `threshold+1` `DocumentKeyPersonalRetrieved` events with the same `decryptedSecret` value.",
            "id": 776,
            "name": "DocumentKeyCommonRetrieved",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 775,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 768,
                  "indexed": true,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 776,
                  "src": "5969:27:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 767,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5969:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 770,
                  "indexed": true,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 776,
                  "src": "5998:25:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 769,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5998:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 772,
                  "indexed": false,
                  "name": "commonPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 776,
                  "src": "6025:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 771,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "6025:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 774,
                  "indexed": false,
                  "name": "threshold",
                  "nodeType": "VariableDeclaration",
                  "scope": 776,
                  "src": "6044:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 773,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "6044:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5968:92:3"
            },
            "src": "5936:125:3"
          },
          {
            "anonymous": false,
            "documentation": "When document key personal portion is retrieved. After enough events are fired, use `secretstore_shadowDecrypt`\n to decrypt document contents.",
            "id": 786,
            "name": "DocumentKeyPersonalRetrieved",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 785,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 778,
                  "indexed": true,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 786,
                  "src": "6259:27:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 777,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6259:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 780,
                  "indexed": true,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 786,
                  "src": "6288:25:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 779,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6288:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 782,
                  "indexed": false,
                  "name": "decryptedSecret",
                  "nodeType": "VariableDeclaration",
                  "scope": 786,
                  "src": "6315:21:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 781,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "6315:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 784,
                  "indexed": false,
                  "name": "shadow",
                  "nodeType": "VariableDeclaration",
                  "scope": 786,
                  "src": "6338:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 783,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "6338:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6258:93:3"
            },
            "src": "6224:128:3"
          },
          {
            "anonymous": false,
            "documentation": "When error occurs during document key retrieval.",
            "id": 792,
            "name": "DocumentKeyShadowRetrievalError",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 791,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 788,
                  "indexed": true,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 792,
                  "src": "6452:27:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 787,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6452:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 790,
                  "indexed": true,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 792,
                  "src": "6481:25:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 789,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6481:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6451:56:3"
            },
            "src": "6414:94:3"
          },
          {
            "body": null,
            "documentation": "Request document key retrieval.",
            "id": 799,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "retrieveDocumentKeyShadow",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 797,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 794,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 799,
                  "src": "6589:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 793,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6589:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 796,
                  "name": "requesterPublic",
                  "nodeType": "VariableDeclaration",
                  "scope": 799,
                  "src": "6610:21:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 795,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "6610:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6588:44:3"
            },
            "payable": true,
            "returnParameters": {
              "id": 798,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6649:0:3"
            },
            "scope": 800,
            "src": "6554:96:3",
            "stateMutability": "payable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 872,
        "src": "5681:971:3"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": "Document Key shadow retrieval service contract API (key server view).",
        "fullyImplemented": false,
        "id": 871,
        "linearizedBaseContracts": [
          871
        ],
        "name": "DocumentKeyShadowRetrievalServiceKeyServerApi",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": "When document key common-portion retrieval request is received.",
            "id": 806,
            "name": "DocumentKeyCommonRetrievalRequested",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 805,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 802,
                  "indexed": false,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 806,
                  "src": "6904:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 801,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "6904:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 804,
                  "indexed": false,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 806,
                  "src": "6925:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 803,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6925:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "6903:40:3"
            },
            "src": "6862:82:3"
          },
          {
            "anonymous": false,
            "documentation": "When document key personal-portion retrieval request is received.",
            "id": 812,
            "name": "DocumentKeyPersonalRetrievalRequested",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 811,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 808,
                  "indexed": false,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 812,
                  "src": "7067:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 807,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7067:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 810,
                  "indexed": false,
                  "name": "requesterPublic",
                  "nodeType": "VariableDeclaration",
                  "scope": 812,
                  "src": "7088:21:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 809,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "7088:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7066:44:3"
            },
            "src": "7023:88:3"
          },
          {
            "body": null,
            "documentation": "Called when common data is reported by key server.",
            "id": 823,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "documentKeyCommonRetrieved",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 821,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 814,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 823,
                  "src": "7221:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 813,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7221:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 816,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 823,
                  "src": "7250:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 815,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7250:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 818,
                  "name": "commonPoint",
                  "nodeType": "VariableDeclaration",
                  "scope": 823,
                  "src": "7277:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 817,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "7277:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 820,
                  "name": "threshold",
                  "nodeType": "VariableDeclaration",
                  "scope": 823,
                  "src": "7304:15:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 819,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "7304:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7211:109:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 822,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7329:0:3"
            },
            "scope": 871,
            "src": "7176:154:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Called when 'personal' data is reported by key server.",
            "id": 836,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "documentKeyPersonalRetrieved",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 834,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 825,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 836,
                  "src": "7445:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 824,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7445:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 827,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 836,
                  "src": "7474:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 826,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7474:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 829,
                  "name": "participants",
                  "nodeType": "VariableDeclaration",
                  "scope": 836,
                  "src": "7501:20:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 828,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7501:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 831,
                  "name": "decryptedSecret",
                  "nodeType": "VariableDeclaration",
                  "scope": 836,
                  "src": "7531:21:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 830,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "7531:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 833,
                  "name": "shadow",
                  "nodeType": "VariableDeclaration",
                  "scope": 836,
                  "src": "7562:12:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 832,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "7562:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7435:140:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 835,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7584:0:3"
            },
            "scope": 871,
            "src": "7398:187:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Called when error occurs during document key shadow retrieval.",
            "id": 843,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "documentKeyShadowRetrievalError",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 841,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 838,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 843,
                  "src": "7702:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 837,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "7702:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 840,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 843,
                  "src": "7723:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 839,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "7723:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7701:40:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 842,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7750:0:3"
            },
            "scope": 871,
            "src": "7661:90:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Get count of pending document key shadow retrieval requests.",
            "id": 848,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "documentKeyShadowRetrievalRequestsCount",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 844,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7874:2:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 847,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 846,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 848,
                  "src": "7900:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 845,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7900:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "7899:9:3"
            },
            "scope": 871,
            "src": "7826:83:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Get document key shadow retrieval request with given index.\n Returns: (serverKeyId, requesterPublic, isCommonRetrievalCompleted)",
            "id": 859,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getDocumentKeyShadowRetrievalRequest",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 851,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 850,
                  "name": "index",
                  "nodeType": "VariableDeclaration",
                  "scope": 859,
                  "src": "8104:13:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 849,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8104:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8103:15:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 858,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 853,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 859,
                  "src": "8142:7:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 852,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8142:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 855,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 859,
                  "src": "8151:5:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 854,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "8151:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 857,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 859,
                  "src": "8158:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 856,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8158:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8141:22:3"
            },
            "scope": 871,
            "src": "8058:106:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": "Returs true if response from given keyServer is required.",
            "id": 870,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "isDocumentKeyShadowRetrievalResponseRequired",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 866,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 861,
                  "name": "serverKeyId",
                  "nodeType": "VariableDeclaration",
                  "scope": 870,
                  "src": "8289:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 860,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8289:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 863,
                  "name": "keyServer",
                  "nodeType": "VariableDeclaration",
                  "scope": 870,
                  "src": "8310:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 862,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8310:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 865,
                  "name": "requester",
                  "nodeType": "VariableDeclaration",
                  "scope": 870,
                  "src": "8329:17:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 864,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8329:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8288:59:3"
            },
            "payable": false,
            "returnParameters": {
              "id": 869,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 868,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 870,
                  "src": "8395:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 867,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8395:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "8394:6:3"
            },
            "scope": 871,
            "src": "8235:166:3",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 872,
        "src": "6728:1675:3"
      }
    ],
    "src": "689:7715:3"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.2",
  "updatedAt": "2019-01-23T09:53:59.496Z"
}