incubed
Version:
Typescript-version of the incubed client
5 lines • 66.6 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const validate_1 = require("../util/validate");
/* tslint:disable */
exports.validationDef = { IN3NodeWeight: { description: 'a local weight of a n3-node. (This is used internally to weight the requests)', type: 'object', properties: { weight: { description: 'factor the weight this noe (default 1.0)', type: 'number', example: 0.5 }, responseCount: { description: 'number of uses.', type: 'integer', example: 147 }, avgResponseTime: { description: 'average time of a response in ms', type: 'number', example: 240 }, pricePerRequest: { description: 'last price', type: 'integer' }, lastRequest: { description: 'timestamp of the last request in ms', type: 'integer', example: 1529074632623 }, blacklistedUntil: { description: 'blacklisted because of failed requests until the timestamp', type: 'integer', example: 1529074639623 } } }, IN3NodeConfig: { description: 'a configuration of a in3-server.', type: 'object', required: ['address', 'url', 'deposit', 'chainIds'], properties: { index: { description: 'the index within the contract', type: 'integer', example: 13 }, address: { description: 'the address of the node, which is the public address it iis signing with.', type: 'string', format: 'address', example: '0x6C1a01C2aB554930A937B0a2E8105fB47946c679' }, timeout: { description: 'the time (in seconds) until an owner is able to receive his deposit back after he unregisters himself', type: 'integer', example: 3600 }, url: { description: 'the endpoint to post to', type: 'string', example: 'https://in3.slock.it' }, chainIds: { description: 'the list of supported chains', example: ['0x1'], type: 'array', items: { type: 'string', format: 'hex' } }, deposit: { description: 'the deposit of the node in wei', type: 'integer', example: 12350000 }, capacity: { description: 'the capacity of the node.', type: 'integer', example: 100 }, props: { description: 'the properties of the node.', type: 'integer', example: 3 } } }, IN3RPCRequestConfig: { description: 'additional config for a IN3 RPC-Request', required: ['chainId'], properties: { chainId: { description: 'the requested chainId', type: 'string', example: '0x1', format: 'hex' }, includeCode: { description: 'if true, the request should include the codes of all accounts. otherwise only the the codeHash is returned. In this case the client may ask by calling eth_getCode() afterwards', type: 'boolean', example: true }, verifiedHashes: { description: 'if the client sends a array of blockhashes the server will not deliver any signatures or blockheaders for these blocks, but only return a string with a number.', type: 'array', items: { type: 'string', format: 'bytes32' } }, latestBlock: { description: 'if specified, the blocknumber *latest* will be replaced by blockNumber- specified value', type: 'integer', example: 6 }, useRef: { description: 'if true binary-data (starting with a 0x) will be refered if occuring again.', type: 'boolean' }, useBinary: { description: 'if true binary-data will be used.', type: 'boolean' }, useFullProof: { description: 'if true all data in the response will be proven, which leads to a higher payload.', type: 'boolean' }, finality: { description: 'if given the server will deliver the blockheaders of the following blocks until at least the number in percent of the validators is reached.', type: 'number' }, verification: { description: 'defines the kind of proof the client is asking for', type: 'string', enum: ['never', 'proof', 'proofWithSignature'], example: 'proof' }, clientSignature: { description: 'the signature of the client' }, signatures: { description: 'a list of addresses requested to sign the blockhash', type: 'array', example: ['0x6C1a01C2aB554930A937B0a2E8105fB47946c679'], items: { type: 'string', format: 'address' } } } }, Signature: { description: 'Verified ECDSA Signature. Signatures are a pair (r, s). Where r is computed as the X coordinate of a point R, modulo the curve order n.', type: 'object', required: ['r', 's', 'v', 'msgHash', 'block', 'blockHash'], properties: { address: { type: 'string', description: 'the address of the signing node', format: 'address', example: '0x6C1a01C2aB554930A937B0a2E8105fB47946c679' }, block: { type: 'number', description: 'the blocknumber', example: 3123874 }, blockHash: { type: 'string', description: 'the hash of the block', example: '0x6C1a01C2aB554930A937B0a212346037E8105fB47946c679', format: 'bytes32' }, msgHash: { type: 'string', description: 'hash of the message', format: 'bytes32', example: '0x9C1a01C2aB554930A937B0a212346037E8105fB47946AB5D' }, r: { type: 'string', description: 'Positive non-zero Integer signature.r', format: 'hex', example: '0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1f' }, s: { type: 'string', description: 'Positive non-zero Integer signature.s', format: 'hex', example: '0x6d17b34aeaf95fee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda' }, v: { type: 'integer', description: 'Calculated curve point, or identity element O.', format: 'hex', example: 28 } } }, IN3ResponseConfig: { type: 'object', description: 'additional data returned from a IN3 Server', properties: { proof: { description: 'the Proof-data as part of the in3-section', type: 'object', required: ['type'], properties: { type: { description: 'the type of the proof', type: 'string', enum: ['transactionProof', 'receiptProof', 'blockProof', 'accountProof', 'callProof', 'logProof'], example: 'accountProof' }, block: { type: 'string', description: 'the serialized blockheader as hex, required in most proofs', example: '0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b' }, finalityBlocks: { type: 'array', description: 'the serialized blockheader as hex, required in case of finality asked', example: ['0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b'] }, transactions: { type: 'array', description: 'the list of transactions of the block', example: [] }, uncles: { type: 'array', description: 'the list of uncle-headers of the block', example: [] }, merkleProof: { type: 'array', description: 'the serialized merle-noodes beginning with the root-node', exmaple: ['0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b', '0x01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1', '0xcf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbd'], items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, merkleProofPrev: { type: 'array', description: 'the serialized merkle-noodes beginning with the root-node of the previous entry (only for full proof of receipts)', exmaple: ['0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b', '0x01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1', '0xcf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbd'], items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, txProof: { type: 'array', description: 'the serialized merkle-nodes beginning with the root-node in order to prrof the transactionIndex', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, logProof: { description: 'a Object holding proofs for event logs. The key is the blockNumber as hex', type: 'object', additionalProperties: { type: 'object', required: ['block', 'receipts'], properties: { number: { description: 'the blockNumber', type: 'number' }, block: { description: 'the serialized blockheader', type: 'string', example: '0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b' }, allReceipts: { description: 'temp. list of all receipts, which is not included in the final proof', type: 'array' }, receipts: { description: 'the map of existing receipts with the txHash as key', type: 'object', additionalProperties: { type: 'object', required: ['txIndex', 'proof'], properties: { txHash: { type: 'string', description: 'the transactionHash' }, txIndex: { type: 'integer', description: 'the transactionIndex within the block' }, txProof: { type: 'array', description: 'the merkleProof', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, proof: { type: 'array', description: 'the merkleProof', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } } } } } } } }, accounts: { type: 'object', description: 'a map of addresses and their AccountProof', additionalProperties: { type: 'object', description: 'the Proof-for a single Account', required: ['accountProof', 'address', 'balance', 'codeHash', 'nonce', 'storageHash', 'storageProof'], properties: { accountProof: { type: 'array', description: 'the serialized merle-noodes beginning with the root-node', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, address: { type: 'string', description: 'the address of this account', pattern: '^0x[0-9a-fA-F]+$' }, balance: { type: 'string', description: 'the balance of this account as hex', pattern: '^0x[0-9a-fA-F]+$' }, codeHash: { type: 'string', description: 'the codeHash of this account as hex', pattern: '^0x[0-9a-fA-F]+$' }, code: { type: 'string', description: 'the code of this account as hex ( if required)', pattern: '^0x[0-9a-fA-F]+$' }, nonce: { type: 'string', description: 'the nonce of this account as hex', pattern: '^0x[0-9a-fA-F]+$' }, storageHash: { type: 'string', description: 'the storageHash of this account as hex', pattern: '^0x[0-9a-fA-F]+$' }, storageProof: { type: 'array', description: 'proof for requested storage-data', items: { type: 'object', required: ['key', 'proof', 'value'], properties: { key: { type: 'string', description: 'the storage key', pattern: '^0x[0-9a-fA-F]+$' }, proof: { type: 'array', description: 'the serialized merkle-noodes beginning with the root-node ( storageHash )', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, value: { type: 'string', description: 'the stored value', pattern: '^0x[0-9a-fA-F]+$' } } } } } } }, txIndex: { type: 'integer', description: 'the transactionIndex within the block', example: 4 }, signatures: { type: 'array', description: 'requested signatures', items: { description: 'Verified ECDSA Signature. Signatures are a pair (r, s). Where r is computed as the X coordinate of a point R, modulo the curve order n.', type: 'object', required: ['r', 's', 'v', 'msgHash', 'block', 'blockHash'], properties: { address: { type: 'string', description: 'the address of the signing node', format: 'address', example: '0x6C1a01C2aB554930A937B0a2E8105fB47946c679' }, block: { type: 'number', description: 'the blocknumber', example: 3123874 }, blockHash: { type: 'string', description: 'the hash of the block', example: '0x6C1a01C2aB554930A937B0a212346037E8105fB47946c679', format: 'bytes32' }, msgHash: { type: 'string', description: 'hash of the message', format: 'bytes32', example: '0x9C1a01C2aB554930A937B0a212346037E8105fB47946AB5D' }, r: { type: 'string', description: 'Positive non-zero Integer signature.r', format: 'hex', example: '0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1f' }, s: { type: 'string', description: 'Positive non-zero Integer signature.s', format: 'hex', example: '0x6d17b34aeaf95fee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda' }, v: { type: 'integer', description: 'Calculated curve point, or identity element O.', format: 'hex', example: 28 } } } } } }, lastNodeList: { description: 'the blocknumber for the last block updating the nodelist. If the client has a smaller blocknumber he should update the nodeList.', type: 'number', example: 326478 }, lastValidatorChange: { description: 'the blocknumber of gthe last change of the validatorList', type: 'number' }, currentBlock: { description: 'the current blocknumber.', type: 'number', example: 320126478 } } }, ChainSpec: { type: 'object', description: 'describes the chainspecific consensus params', properties: { engine: { description: 'the engine type (like Ethhash, authorityRound, ... )', type: 'string' }, validatorContract: { description: 'the aura contract to get the validators', type: 'string' }, validatorList: { description: 'the list of validators', type: 'array' } } }, IN3Config: { description: 'the iguration of the IN3-Client. This can be paritally overriden for every request.', type: 'object', required: ['minDeposit', 'requestCount', 'chainId'], properties: { cacheTimeout: { type: 'number', description: 'number of seconds requests can be cached.' }, nodeLimit: { description: 'the limit of nodes to store in the client.', type: 'number', example: 150 }, keepIn3: { description: 'if true, the in3-section of thr response will be kept. Otherwise it will be removed after validating the data. This is useful for debugging or if the proof should be used afterwards.', type: 'boolean', example: false }, format: { description: 'the format for sending the data to the client. Default is json, but using cbor means using only 30-40% of the payload since it is using binary encoding', type: 'string', enum: ['json', 'jsonRef', 'cbor'], example: 'json' }, key: { description: 'the client key to sign requests', example: '0x387a8233c96e1fc0ad5e284353276177af2186e7afa85296f106336e376669f7' }, autoConfig: { description: 'if true the config will be adjusted depending on the request', type: 'boolean', example: false }, retryWithoutProof: { description: 'if true the the request may be handled without proof in case of an error. (use with care!)', type: 'boolean', example: false }, maxAttempts: { description: 'max number of attempts in case a response is rejected', type: 'number', example: 10 }, includeCode: { description: 'if true, the request should include the codes of all accounts. otherwise only the the codeHash is returned. In this case the client may ask by calling eth_getCode() afterwards', type: 'boolean', example: true }, maxCodeCache: { description: 'number of max bytes used to cache the code in memory', type: 'integer', example: 100000 }, maxBlockCache: { description: 'number of number of blocks cached in memory', type: 'integer', example: 100 }, verifiedHashes: { description: 'if the client sends a array of blockhashes the server will not deliver any signatures or blockheaders for these blocks, but only return a string with a number. This is automaticly updated by the cache, but can be overriden per request.', type: 'array', items: { type: 'string', format: 'bytes32' } }, proof: { description: 'if true the nodes should send a proof of the response', type: 'string', enum: ['none', 'standard', 'full'], example: true }, signatureCount: { description: 'number of signatures requested', type: 'number', example: 2 }, minDeposit: { type: 'number', description: 'min stake of the server. Only nodes owning at least this amount will be chosen.', example: 0 }, replaceLatestBlock: { description: 'if specified, the blocknumber *latest* will be replaced by blockNumber- specified value', type: 'integer', example: 6 }, requestCount: { type: 'number', min: 1, default: 1, description: 'the number of request send when getting a first answer', example: 3 }, finality: { type: 'number', min: 0, max: 100, default: 0, description: 'the number in percent needed in order reach finality (% of signature of the validators)', example: 50 }, timeout: { type: 'number', min: 1, default: 2000, description: 'specifies the number of milliseconds before the request times out. increasing may be helpful if the device uses a slow connection.', example: 3000 }, chainId: { type: 'string', pattern: '^0x[0-9a-fA-F]+$', description: 'servers to filter for the given chain. The chain-id based on EIP-155.', example: '0x1' }, chainRegistry: { type: 'string', pattern: '^0x[0-9a-fA-F]+$', description: 'main chain-registry contract', example: '0xe36179e2286ef405e929C90ad3E70E649B22a945' }, mainChain: { type: 'string', pattern: '^0x[0-9a-fA-F]+$', description: 'main chain-id, where the chain registry is running.', example: '0x1' }, autoUpdateList: { type: 'boolean', description: 'if true the nodelist will be automaticly updated if the lastBlock is newer', example: true }, cacheStorage: { description: 'a cache handler offering 2 functions ( setItem(string,string), getItem(string) )' }, loggerUrl: { type: 'string', description: 'a url of RES-Endpoint, the client will log all errors to. The client will post to this endpoint JSON like { id?, level, message, meta? }' }, rpc: { type: 'string', description: 'url of one or more rpc-endpoints to use. (list can be comma seperated)' }, servers: { type: 'object', description: 'the nodelist per chain', additionalProperties: { type: 'object', properties: { verifier: { type: 'string', description: 'name of the module responsible for handling the verification' }, name: { type: 'string', description: 'a alias for the chain' }, chainSpec: { description: 'describes the chainspecific consensus params', type: 'object', properties: { engine: { description: 'the engine type (like Ethhash, authorityRound, ... )', type: 'string' }, validatorContract: { description: 'the aura contract to get the validators', type: 'string' }, validatorList: { description: 'the list of validators', type: 'array' } } }, initAddresses: { description: 'a list of addresses which should always be part of the nodelist when getting an update', type: 'array', example: ['0xe36179e2286ef405e929C90ad3E70E649B22a945', '0x6d17b34aeaf95fee98c0437b4ac839d8a2ece1b1'], items: { type: 'string' } }, lastBlock: { type: 'integer', description: 'the blockNumber of the last event in the registry', example: 23498798 }, contract: { type: 'string', description: 'the address of the registry contract', example: '0xe36179e2286ef405e929C90ad3E70E649B22a945' }, needsUpdate: { type: 'boolean', description: 'if true the nodelist should be updated.' }, contractChain: { type: 'string', description: 'the chainid for the contract', example: '0x8' }, nodeList: { description: 'the list of nodes', type: 'array', items: { description: 'a configuration of a in3-server.', type: 'object', required: ['address', 'url', 'deposit', 'chainIds'], properties: { index: { description: 'the index within the contract', type: 'integer', example: 13 }, address: { description: 'the address of the node, which is the public address it iis signing with.', type: 'string', format: 'address', example: '0x6C1a01C2aB554930A937B0a2E8105fB47946c679' }, timeout: { description: 'the time (in seconds) until an owner is able to receive his deposit back after he unregisters himself', type: 'integer', example: 3600 }, url: { description: 'the endpoint to post to', type: 'string', example: 'https://in3.slock.it' }, chainIds: { description: 'the list of supported chains', example: ['0x1'], type: 'array', items: { type: 'string', format: 'hex' } }, deposit: { description: 'the deposit of the node in wei', type: 'integer', example: 12350000 }, capacity: { description: 'the capacity of the node.', type: 'integer', example: 100 }, props: { description: 'the properties of the node.', type: 'integer', example: 3 } } } }, nodeAuthorities: { description: 'the list of authority nodes for handling conflicts', type: 'array', example: ['0xe36179e2286ef405e929C90ad3E70E649B22a945', '0x6d17b34aeaf95fee98c0437b4ac839d8a2ece1b1'], items: { type: 'string' } }, weights: { description: 'the weights of nodes depending on former performance which is used internally', type: 'object', additionalProperties: { description: 'a local weight of a n3-node. (This is used internally to weight the requests)', type: 'object', properties: { weight: { description: 'factor the weight this noe (default 1.0)', type: 'number', example: 0.5 }, responseCount: { description: 'number of uses.', type: 'integer', example: 147 }, avgResponseTime: { description: 'average time of a response in ms', type: 'number', example: 240 }, pricePerRequest: { description: 'last price', type: 'integer' }, lastRequest: { description: 'timestamp of the last request in ms', type: 'integer', example: 1529074632623 }, blacklistedUntil: { description: 'blacklisted because of failed requests until the timestamp', type: 'integer', example: 1529074639623 } } } } } } } } }, RPCRequest: { type: 'object', description: 'a JSONRPC-Request with N3-Extension', required: ['jsonrpc', 'method'], properties: { jsonrpc: { description: 'the version', type: 'string', enum: ['2.0'] }, method: { description: 'the method to call', type: 'string', example: 'eth_getBalance' }, id: { description: 'the identifier of the request', type: ['number', 'string'], example: 2 }, params: { description: 'the params', type: 'array', example: ['0xe36179e2286ef405e929C90ad3E70E649B22a945', 'latest'] }, in3: { description: 'additional config for a IN3 RPC-Request', required: ['chainId'], properties: { chainId: { description: 'the requested chainId', type: 'string', example: '0x1', format: 'hex' }, includeCode: { description: 'if true, the request should include the codes of all accounts. otherwise only the the codeHash is returned. In this case the client may ask by calling eth_getCode() afterwards', type: 'boolean', example: true }, verifiedHashes: { description: 'if the client sends a array of blockhashes the server will not deliver any signatures or blockheaders for these blocks, but only return a string with a number.', type: 'array', items: { type: 'string', format: 'bytes32' } }, latestBlock: { description: 'if specified, the blocknumber *latest* will be replaced by blockNumber- specified value', type: 'integer', example: 6 }, useRef: { description: 'if true binary-data (starting with a 0x) will be refered if occuring again.', type: 'boolean' }, useBinary: { description: 'if true binary-data will be used.', type: 'boolean' }, useFullProof: { description: 'if true all data in the response will be proven, which leads to a higher payload.', type: 'boolean' }, finality: { description: 'if given the server will deliver the blockheaders of the following blocks until at least the number in percent of the validators is reached.', type: 'number' }, verification: { description: 'defines the kind of proof the client is asking for', type: 'string', enum: ['never', 'proof', 'proofWithSignature'], example: 'proof' }, clientSignature: { description: 'the signature of the client' }, signatures: { description: 'a list of addresses requested to sign the blockhash', type: 'array', example: ['0x6C1a01C2aB554930A937B0a2E8105fB47946c679'], items: { type: 'string', format: 'address' } } } } } }, RPCResponse: { type: 'object', description: 'a JSONRPC-Responset with N3-Extension', required: ['jsonrpc', 'id'], properties: { jsonrpc: { description: 'the version', type: 'string', enum: ['2.0'] }, id: { description: 'the id matching the request', type: ['string', 'number'], example: 2 }, error: { description: 'in case of an error this needs to be set', type: 'string' }, result: { description: 'the params', example: '0xa35bc' }, in3: { description: 'additional data returned from a IN3 Server', type: 'object', properties: { proof: { description: 'the Proof-data as part of the in3-section', type: 'object', required: ['type'], properties: { type: { description: 'the type of the proof', type: 'string', enum: ['transactionProof', 'receiptProof', 'blockProof', 'accountProof', 'callProof', 'logProof'], example: 'accountProof' }, block: { type: 'string', description: 'the serialized blockheader as hex, required in most proofs', example: '0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b' }, finalityBlocks: { type: 'array', description: 'the serialized blockheader as hex, required in case of finality asked', example: ['0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b'] }, transactions: { type: 'array', description: 'the list of transactions of the block', example: [] }, uncles: { type: 'array', description: 'the list of uncle-headers of the block', example: [] }, merkleProof: { type: 'array', description: 'the serialized merle-noodes beginning with the root-node', exmaple: ['0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b', '0x01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1', '0xcf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbd'], items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, merkleProofPrev: { type: 'array', description: 'the serialized merkle-noodes beginning with the root-node of the previous entry (only for full proof of receipts)', exmaple: ['0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b', '0x01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1', '0xcf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbd'], items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, txProof: { type: 'array', description: 'the serialized merkle-nodes beginning with the root-node in order to prrof the transactionIndex', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, logProof: { description: 'a Object holding proofs for event logs. The key is the blockNumber as hex', type: 'object', additionalProperties: { type: 'object', required: ['block', 'receipts'], properties: { number: { description: 'the blockNumber', type: 'number' }, block: { description: 'the serialized blockheader', type: 'string', example: '0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b' }, allReceipts: { description: 'temp. list of all receipts, which is not included in the final proof', type: 'array' }, receipts: { description: 'the map of existing receipts with the txHash as key', type: 'object', additionalProperties: { type: 'object', required: ['txIndex', 'proof'], properties: { txHash: { type: 'string', description: 'the transactionHash' }, txIndex: { type: 'integer', description: 'the transactionIndex within the block' }, txProof: { type: 'array', description: 'the merkleProof', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, proof: { type: 'array', description: 'the merkleProof', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } } } } } } } }, accounts: { type: 'object', description: 'a map of addresses and their AccountProof', additionalProperties: { type: 'object', description: 'the Proof-for a single Account', required: ['accountProof', 'address', 'balance', 'codeHash', 'nonce', 'storageHash', 'storageProof'], properties: { accountProof: { type: 'array', description: 'the serialized merle-noodes beginning with the root-node', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, address: { type: 'string', description: 'the address of this account', pattern: '^0x[0-9a-fA-F]+$' }, balance: { type: 'string', description: 'the balance of this account as hex', pattern: '^0x[0-9a-fA-F]+$' }, codeHash: { type: 'string', description: 'the codeHash of this account as hex', pattern: '^0x[0-9a-fA-F]+$' }, code: { type: 'string', description: 'the code of this account as hex ( if required)', pattern: '^0x[0-9a-fA-F]+$' }, nonce: { type: 'string', description: 'the nonce of this account as hex', pattern: '^0x[0-9a-fA-F]+$' }, storageHash: { type: 'string', description: 'the storageHash of this account as hex', pattern: '^0x[0-9a-fA-F]+$' }, storageProof: { type: 'array', description: 'proof for requested storage-data', items: { type: 'object', required: ['key', 'proof', 'value'], properties: { key: { type: 'string', description: 'the storage key', pattern: '^0x[0-9a-fA-F]+$' }, proof: { type: 'array', description: 'the serialized merkle-noodes beginning with the root-node ( storageHash )', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, value: { type: 'string', description: 'the stored value', pattern: '^0x[0-9a-fA-F]+$' } } } } } } }, txIndex: { type: 'integer', description: 'the transactionIndex within the block', example: 4 }, signatures: { type: 'array', description: 'requested signatures', items: { description: 'Verified ECDSA Signature. Signatures are a pair (r, s). Where r is computed as the X coordinate of a point R, modulo the curve order n.', type: 'object', required: ['r', 's', 'v', 'msgHash', 'block', 'blockHash'], properties: { address: { type: 'string', description: 'the address of the signing node', format: 'address', example: '0x6C1a01C2aB554930A937B0a2E8105fB47946c679' }, block: { type: 'number', description: 'the blocknumber', example: 3123874 }, blockHash: { type: 'string', description: 'the hash of the block', example: '0x6C1a01C2aB554930A937B0a212346037E8105fB47946c679', format: 'bytes32' }, msgHash: { type: 'string', description: 'hash of the message', format: 'bytes32', example: '0x9C1a01C2aB554930A937B0a212346037E8105fB47946AB5D' }, r: { type: 'string', description: 'Positive non-zero Integer signature.r', format: 'hex', example: '0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1f' }, s: { type: 'string', description: 'Positive non-zero Integer signature.s', format: 'hex', example: '0x6d17b34aeaf95fee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda' }, v: { type: 'integer', description: 'Calculated curve point, or identity element O.', format: 'hex', example: 28 } } } } } }, lastNodeList: { description: 'the blocknumber for the last block updating the nodelist. If the client has a smaller blocknumber he should update the nodeList.', type: 'number', example: 326478 }, lastValidatorChange: { description: 'the blocknumber of gthe last change of the validatorList', type: 'number' }, currentBlock: { description: 'the current blocknumber.', type: 'number', example: 320126478 } } }, in3Node: { description: 'a configuration of a in3-server.', type: 'object', required: ['address', 'url', 'deposit', 'chainIds'], properties: { index: { description: 'the index within the contract', type: 'integer', example: 13 }, address: { description: 'the address of the node, which is the public address it iis signing with.', type: 'string', format: 'address', example: '0x6C1a01C2aB554930A937B0a2E8105fB47946c679' }, timeout: { description: 'the time (in seconds) until an owner is able to receive his deposit back after he unregisters himself', type: 'integer', example: 3600 }, url: { description: 'the endpoint to post to', type: 'string', example: 'https://in3.slock.it' }, chainIds: { description: 'the list of supported chains', example: ['0x1'], type: 'array', items: { type: 'string', format: 'hex' } }, deposit: { description: 'the deposit of the node in wei', type: 'integer', example: 12350000 }, capacity: { description: 'the capacity of the node.', type: 'integer', example: 100 }, props: { description: 'the properties of the node.', type: 'integer', example: 3 } } } } }, AuraValidatoryProof: { type: 'object', description: 'a Object holding proofs for validator logs. The key is the blockNumber as hex', required: ['logIndex', 'block', 'txIndex', 'proof'], properties: { logIndex: { description: 'the transaction log index', type: 'number' }, block: { description: 'the serialized blockheader', type: 'string', example: '0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b' }, txIndex: { type: 'integer', description: 'the transactionIndex within the block' }, proof: { type: 'array', description: 'the merkleProof', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, finalityBlocks: { type: 'array', description: 'the serialized blockheader as hex, required in case of finality asked', example: ['0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b'] } } }, LogProof: { type: 'object', description: 'a Object holding proofs for event logs. The key is the blockNumber as hex', additionalProperties: { type: 'object', required: ['block', 'receipts'], properties: { number: { description: 'the blockNumber', type: 'number' }, block: { description: 'the serialized blockheader', type: 'string', example: '0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b' }, allReceipts: { description: 'temp. list of all receipts, which is not included in the final proof', type: 'array' }, receipts: { description: 'the map of existing receipts with the txHash as key', type: 'object', additionalProperties: { type: 'object', required: ['txIndex', 'proof'], properties: { txHash: { type: 'string', description: 'the transactionHash' }, txIndex: { type: 'integer', description: 'the transactionIndex within the block' }, txProof: { type: 'array', description: 'the merkleProof', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, proof: { type: 'array', description: 'the merkleProof', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } } } } } } } }, Proof: { type: 'object', description: 'the Proof-data as part of the in3-section', required: ['type'], properties: { type: { description: 'the type of the proof', type: 'string', enum: ['transactionProof', 'receiptProof', 'blockProof', 'accountProof', 'callProof', 'logProof'], example: 'accountProof' }, block: { type: 'string', description: 'the serialized blockheader as hex, required in most proofs', example: '0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b' }, finalityBlocks: { type: 'array', description: 'the serialized blockheader as hex, required in case of finality asked', example: ['0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b'] }, transactions: { type: 'array', description: 'the list of transactions of the block', example: [] }, uncles: { type: 'array', description: 'the list of uncle-headers of the block', example: [] }, merkleProof: { type: 'array', description: 'the serialized merle-noodes beginning with the root-node', exmaple: ['0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b', '0x01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1', '0xcf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbd'], items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, merkleProofPrev: { type: 'array', description: 'the serialized merkle-noodes beginning with the root-node of the previous entry (only for full proof of receipts)', exmaple: ['0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b', '0x01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1', '0xcf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbd'], items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, txProof: { type: 'array', description: 'the serialized merkle-nodes beginning with the root-node in order to prrof the transactionIndex', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, logProof: { description: 'a Object holding proofs for event logs. The key is the blockNumber as hex', type: 'object', additionalProperties: { type: 'object', required: ['block', 'receipts'], properties: { number: { description: 'the blockNumber', type: 'number' }, block: { description: 'the serialized blockheader', type: 'string', example: '0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b' }, allReceipts: { description: 'temp. list of all receipts, which is not included in the final proof', type: 'array' }, receipts: { description: 'the map of existing receipts with the txHash as key', type: 'object', additionalProperties: { type: 'object', required: ['txIndex', 'proof'], properties: { txHash: { type: 'string', description: 'the transactionHash' }, txIndex: { type: 'integer', description: 'the transactionIndex within the block' }, txProof: { type: 'array', description: 'the merkleProof', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, proof: { type: 'array', description: 'the merkleProof', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } } } } } } } }, accounts: { type: 'object', description: 'a map of addresses and their AccountProof', additionalProperties: { type: 'object', description: 'the Proof-for a single Account', required: ['accountProof', 'address', 'balance', 'codeHash', 'nonce', 'storageHash', 'storageProof'], properties: { accountProof: { type: 'array', description: 'the serialized merle-noodes beginning with the root-node', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, address: { type: 'string', description: 'the address of this account', pattern: '^0x[0-9a-fA-F]+$' }, balance: { type: 'string', description: 'the balance of this account as hex', pattern: '^0x[0-9a-fA-F]+$' }, codeHash: { type: 'string', description: 'the codeHash of this account as hex', pattern: '^0x[0-9a-fA-F]+$' }, code: { type: 'string', description: 'the code of this account as hex ( if required)', pattern: '^0x[0-9a-fA-F]+$' }, nonce: { type: 'string', description: 'the nonce of this account as hex', pattern: '^0x[0-9a-fA-F]+$' }, storageHash: { type: 'string', description: 'the storageHash of this account as hex', pattern: '^0x[0-9a-fA-F]+$' }, storageProof: { type: 'array', description: 'proof for requested storage-data', items: { type: 'object', required: ['key', 'proof', 'value'], properties: { key: { type: 'string', description: 'the storage key', pattern: '^0x[0-9a-fA-F]+$' }, proof: { type: 'array', description: 'the serialized merkle-noodes beginning with the root-node ( storageHash )', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, value: { type: 'string', description: 'the stored value', pattern: '^0x[0-9a-fA-F]+$' } } } } } } }, txIndex: { type: 'integer', description: 'the transactionIndex within the block', example: 4 }, signatures: { type: 'array', description: 'requested signatures', items: { description: 'Verified ECDSA Signature. Signatures are a pair (r, s). Where r is computed as the X coordinate of a point R, modulo the curve order n.', type: 'object', required: ['r', 's', 'v', 'msgHash', 'block', 'blockHash'], properties: { address: { type: 'string', description: 'the address of the signing node', format: 'address', example: '0x6C1a01C2aB554930A937B0a2E8105fB47946c679' }, block: { type: 'number', description: 'the blocknumber', example: 3123874 }, blockHash: { type: 'string', description: 'the hash of the block', example: '0x6C1a01C2aB554930A937B0a212346037E8105fB47946c679', format: 'bytes32' }, msgHash: { type: 'string', description: 'hash of the message', format: 'bytes32', example: '0x9C1a01C2aB554930A937B0a212346037E8105fB47946AB5D' }, r: { type: 'string', description: 'Positive non-zero Integer signature.r', format: 'hex', example: '0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1f' }, s: { type: 'string', description: 'Positive non-zero Integer signature.s', format: 'hex', example: '0x6d17b34aeaf95fee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda' }, v: { type: 'integer', description: 'Calculated curve point, or identity element O.', format: 'hex', example: 28 } } } } } }, AccountProof: { type: 'object', description: 'the Proof-for a single Account', required: ['accountProof', 'address', 'balance', 'codeHash', 'nonce', 'storageHash', 'storageProof'], properties: { accountProof: { type: 'array', description: 'the serialized merle-noodes beginning with the root-node', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, address: { type: 'string', description: 'the address of this account', pattern: '^0x[0-9a-fA-F]+$' }, balance: { type: 'string', description: 'the balance of this account as hex', pattern: '^0x[0-9a-fA-F]+$' }, codeHash: { type: 'string', description: 'the codeHash of this account as hex', pattern: '^0x[0-9a-fA-F]+$' }, code: { type: 'string', description: 'the code of this account as hex ( if required)', pattern: '^0x[0-9a-fA-F]+$' }, nonce: { type: 'string', description: 'the nonce of this account as hex', pattern: '^0x[0-9a-fA-F]+$' }, storageHash: { type: 'string', description: 'the storageHash of this account as hex', pattern: '^0x[0-9a-fA-F]+$' }, storageProof: { type: 'array', description: 'proof for requested storage-data', items: { type: 'object', required: ['key', 'proof', 'value'], properties: { key: { type: 'string', description: 'the storage key', pattern: '^0x[0-9a-fA-F]+$' }, proof: { type: 'array', description: 'the serialized merkle-noodes beginning with the root-node ( storageHash )', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, value: { type: 'string', description: 'the stored value', pattern: '^0x[0-9a-fA-F]+$' } } } } } }, ServerList: { type: 'object', description: 'a List of nodes', required: ['nodes'], properties: { lastBlockNumber: { type: 'integer', description: 'last Block number' }, nodes: { type: 'array', description: 'the list of nodes', items: { description: 'a configuration of a in3-server.', type: 'object', required: ['address', 'url', 'deposit', 'chainIds'], properties: { index: { description: 'the index within the contract', type: 'integer', example: 13 }, address: { description: 'the address of the node, which is the public address it iis signing with.', type: 'string', format: 'address', example: '0x6C1a01C2aB554930A937B0a2E8105fB47946c679' }, timeout: { description: 'the time (in seconds) until an owner is able to receive his deposit back after he unregisters himself', type: 'integer', example: 3600 }, url: { description: 'the endpoint to post to', type: 'string', example: 'https://in3.slock.it' }, chainIds: { description: 'the list of supported chains', example: ['0x1'], type: 'array', items: { type: 'string', format: 'hex' } }, deposit: { description: 'the deposit of the node in wei', type: 'integer', example: 12350000 }, capacity: { description: 'the capacity of the node.', type: 'integer', example: 100 }, props: { description: 'the properties of the node.', type: 'integer', example: 3 } } } }, contract: { type: 'string', description: 'IN3 Registry', pattern: '^0x[0-9a-fA-F]+$' }, totalServers: { type: 'integer', description: 'number of servers' }, proof: { type: 'object', description: 'the Proof-data as part of the in3-section', required: ['type'], properties: { type: { description: 'the type of the proof', type: 'string', enum: ['transactionProof', 'receiptProof', 'blockProof', 'accountProof', 'callProof', 'logProof'], example: 'accountProof' }, block: { type: 'string', description: 'the serialized blockheader as hex, required in most proofs', example: '0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b' }, finalityBlocks: { type: 'array', description: 'the serialized blockheader as hex, required in case of finality asked', example: ['0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b'] }, transactions: { type: 'array', description: 'the list of transactions of the block', example: [] }, uncles: { type: 'array', description: 'the list of uncle-headers of the block', example: [] }, merkleProof: { type: 'array', description: 'the serialized merle-noodes beginning with the root-node', exmaple: ['0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b', '0x01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1', '0xcf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbd'], items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, merkleProofPrev: { type: 'array', description: 'the serialized merkle-noodes beginning with the root-node of the previous entry (only for full proof of receipts)', exmaple: ['0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b', '0x01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1', '0xcf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbd'], items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, txProof: { type: 'array', description: 'the serialized merkle-nodes beginning with the root-node in order to prrof the transactionIndex', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, logProof: { description: 'a Object holding proofs for event logs. The key is the blockNumber as hex', type: 'object', additionalProperties: { type: 'object', required: ['block', 'receipts'], properties: { number: { description: 'the blockNumber', type: 'number' }, block: { description: 'the serialized blockheader', type: 'string', example: '0x72804cfa0179d648ccbe6a65b01a6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b86d8f42c92bbda6463a8f1ebb14f3aff6b19cb91acf2b8ec1ffee98c0437b4ac839d8a2ece1b18166da704b' }, allReceipts: { description: 'temp. list of all receipts, which is not included in the final proof', type: 'array' }, receipts: { description: 'the map of existing receipts with the txHash as key', type: 'object', additionalProperties: { type: 'object', required: ['txIndex', 'proof'], properties: { txHash: { type: 'string', description: 'the transactionHash' }, txIndex: { type: 'integer', description: 'the transactionIndex within the block' }, txProof: { type: 'array', description: 'the merkleProof', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, proof: { type: 'array', description: 'the merkleProof', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } } } } } } } }, accounts: { type: 'object', description: 'a map of addresses and their AccountProof', additionalProperties: { type: 'object', description: 'the Proof-for a single Account', required: ['accountProof', 'address', 'balance', 'codeHash', 'nonce', 'storageHash', 'storageProof'], properties: { accountProof: { type: 'array', description: 'the serialized merle-noodes beginning with the root-node', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, address: { type: 'string', description: 'the address of this account', pattern: '^0x[0-9a-fA-F]+$' }, balance: { type: 'string', description: 'the balance of this account as hex', pattern: '^0x[0-9a-fA-F]+$' }, codeHash: { type: 'string', description: 'the codeHash of this account as hex', pattern: '^0x[0-9a-fA-F]+$' }, code: { type: 'string', description: 'the code of this account as hex ( if required)', pattern: '^0x[0-9a-fA-F]+$' }, nonce: { type: 'string', description: 'the nonce of this account as hex', pattern: '^0x[0-9a-fA-F]+$' }, storageHash: { type: 'string', description: 'the storageHash of this account as hex', pattern: '^0x[0-9a-fA-F]+$' }, storageProof: { type: 'array', description: 'proof for requested storage-data', items: { type: 'object', required: ['key', 'proof', 'value'], properties: { key: { type: 'string', description: 'the storage key', pattern: '^0x[0-9a-fA-F]+$' }, proof: { type: 'array', description: 'the serialized merkle-noodes beginning with the root-node ( storageHash )', items: { type: 'string', pattern: '^0x[0-9a-fA-F]+$' } }, value: { type: 'string', description: 'the stored value', pattern: '^0x[0-9a-fA-F]+$' } } } } } } }, txIndex: { type: 'integer', description: 'the transactionIndex within the block', example: 4 }, signatures: { type: 'array', description: 'requested signatures', items: { description: 'Verified ECDSA Signature. Signatures are a pair (r, s). Where r is computed as the X coordinate of a point R, modulo the curve order n.', type: 'object', required: ['r', 's', 'v', 'msgHash', 'block', 'blockHash'], properties: { address: { type: 'string', description: 'the address of the signing node', format: 'address', example: '0x6C1a01C2aB554