UNPKG

secretstore-contracts

Version:

Secret Store permissioning and service contracts collection and toolkit.

1,265 lines 264 kB
{ "contractName": "DocumentKeyShadowRetrievalServiceKeyServerApi", "abi": [ { "anonymous": false, "inputs": [ { "indexed": false, "name": "serverKeyId", "type": "bytes32" }, { "indexed": false, "name": "requester", "type": "address" } ], "name": "DocumentKeyCommonRetrievalRequested", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "name": "serverKeyId", "type": "bytes32" }, { "indexed": false, "name": "requesterPublic", "type": "bytes" } ], "name": "DocumentKeyPersonalRetrievalRequested", "type": "event" }, { "constant": false, "inputs": [ { "name": "serverKeyId", "type": "bytes32" }, { "name": "requester", "type": "address" }, { "name": "commonPoint", "type": "bytes" }, { "name": "threshold", "type": "uint8" } ], "name": "documentKeyCommonRetrieved", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "serverKeyId", "type": "bytes32" }, { "name": "requester", "type": "address" }, { "name": "participants", "type": "uint256" }, { "name": "decryptedSecret", "type": "bytes" }, { "name": "shadow", "type": "bytes" } ], "name": "documentKeyPersonalRetrieved", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": false, "inputs": [ { "name": "serverKeyId", "type": "bytes32" }, { "name": "requester", "type": "address" } ], "name": "documentKeyShadowRetrievalError", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "documentKeyShadowRetrievalRequestsCount", "outputs": [ { "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "index", "type": "uint256" } ], "name": "getDocumentKeyShadowRetrievalRequest", "outputs": [ { "name": "", "type": "bytes32" }, { "name": "", "type": "bytes" }, { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "name": "serverKeyId", "type": "bytes32" }, { "name": "keyServer", "type": "address" }, { "name": "requester", "type": "address" } ], "name": "isDocumentKeyShadowRetrievalResponseRequired", "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": "Fun