secretstore-contracts
Version:
Secret Store permissioning and service contracts collection and toolkit.
1,265 lines • 264 kB
JSON
{
"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