diff --git a/23.9.0-RC1/eth1/web3signer.yaml b/23.9.0-RC1/eth1/web3signer.yaml new file mode 100644 index 000000000..49a3d6d1b --- /dev/null +++ b/23.9.0-RC1/eth1/web3signer.yaml @@ -0,0 +1,158 @@ +openapi: 3.0.0 +info: + title: 'Web3Signer ETH1 API' + description: 'Sign ETH1 Artifacts' + version: '23.9.0-RC1' + license: + name: 'Apache 2.0' + url: 'http://www.apache.org/licenses/LICENSE-2.0.html' + +servers: + - url: / + - url: http://localhost:9000/ + +paths: + /api/v1/eth1/sign/{identifier}: + post: + tags: + - 'Signing' + summary: 'Signs data for ETH1 SECP256K1 public key' + description: 'Signs data for the ETH1 SECP256K1 public key specified as part of the URL and returns the signature' + operationId: 'ETH1_SIGN' + parameters: + - name: 'identifier' + in: 'path' + required: true + description: 'Key for which data to sign' + schema: + type: 'string' + requestBody: + required: true + content: + application/json: + schema: + type: object + properties: + data: + type: string + required: + - data + additionalProperties: + type: string + example: + data: 0x48656c6c6f2c20776f726c6421 + + responses: + '200': + description: 'hex encoded string of signature' + content: + text/plain; charset=utf-8: + schema: + type: string + example: '0xb3baa751d0a9132cfe93e4e3d5ff9075111100e3789dca219ade5a24d27e19d16b3353149da1833e9b691bb38634e8dc04469be7032132906c927d7e1a49b414730612877bc6b2810c8f202daf793d1ab0d6b5cb21d52f9e52e883859887a5d9' + '404': + description: 'Public Key not found' + '400': + description: 'Bad request format' + '500': + description: 'Internal Web3Signer server error' + + /api/v1/eth1/publicKeys: + get: + tags: + - 'Public Key' + summary: 'List of available ETH1 SECP256K1 Public Keys' + description: 'Returns the ETH1 SECP256K1 public keys for the private keys that have been loaded into Web3Signer' + operationId: 'ETH1_LIST' + responses: + '200': + description: 'list of public keys' + content: + application/json: + schema: + type: array + items: + type: string + '400': + description: 'Bad request format' + '500': + description: 'Internal Web3Signer server error' + + /reload: + post: + tags: + - 'Reload Signer Keys' + summary: 'Reload signer keys asynchronously' + description: 'Reload signer keys asynchronously' + operationId: 'RELOAD' + responses: + '200': + description: 'Call is successful' + '500': + description: 'Internal Web3Signer server error' + + /upcheck: + get: + tags: + - 'Server Status' + summary: 'Server Status' + description: 'Web3Signer server status' + operationId: 'UPCHECK' + responses: + '200': + description: 'OK' + content: + text/plain; charset=utf-8: + schema: + type: string + example: 'OK' + '500': + description: 'Internal Web3Signer server error' + + /healthcheck: + get: + tags: + - 'Server Health Status' + summary: 'Server Health Status' + description: 'Web3Signer server health status' + operationId: 'HEALTHCHECK' + responses: + '200': + description: 'System is healthy' + content: + application/json: + schema: + "$ref": "#/components/schemas/HealthCheck" + '503': + description: 'At least one procedure is unhealthy' + content: + application/json: + schema: + "$ref": "#/components/schemas/HealthCheck" + +components: + schemas: + HealthCheck: + type: object + properties: + status: + type: string + description: 'health status' + checks: + type: array + description: 'list of status checks' + items: + properties: + id: + type: string + description: 'status id' + status: + type: string + description: 'health status' + outcome: + type: string + description: 'the overall outcome of health check' + +externalDocs: + description: 'Web3Signer User Documentation' + url: 'https://docs.web3signer.consensys.net/' diff --git a/23.9.0-RC1/eth2/keymanager/paths/keystores.yaml b/23.9.0-RC1/eth2/keymanager/paths/keystores.yaml new file mode 100644 index 000000000..eb1959ef0 --- /dev/null +++ b/23.9.0-RC1/eth2/keymanager/paths/keystores.yaml @@ -0,0 +1,187 @@ +get: + operationId: KEYMANAGER_LIST + summary: List Keys. + description: | + List all validating pubkeys known to and decrypted by this keymanager binary + security: + - bearerAuth: [] + tags: + - Keymanager + responses: + "200": + description: Success response + content: + application/json: + schema: + title: ListKeysResponse + type: object + required: [data] + properties: + data: + type: array + items: + type: object + required: [validating_pubkey] + properties: + validating_pubkey: + $ref: "../schemas.yaml#/components/schemas/Pubkey" + derivation_path: + type: string + description: The derivation path (if present in the imported keystore). + example: "m/12381/3600/0/0/0" + readonly: + type: boolean + description: The key associated with this pubkey cannot be deleted from the API + "401": + $ref: "../schemas.yaml#/components/responses/Unauthorized" + "403": + $ref: "../schemas.yaml#/components/responses/Forbidden" + "500": + $ref: "../schemas.yaml#/components/responses/InternalError" + +post: + operationId: KEYMANAGER_IMPORT + summary: Import Keystores. + description: | + Import keystores generated by the Eth2.0 deposit CLI tooling. `passwords[i]` must unlock `keystores[i]`. + + Users SHOULD send slashing_protection data associated with the imported pubkeys. MUST follow the format defined in + EIP-3076: Slashing Protection Interchange Format. + security: + - bearerAuth: [] + tags: + - Keymanager + requestBody: + content: + application/json: + schema: + type: object + required: [keystores, passwords] + properties: + keystores: + type: array + description: JSON-encoded keystore files generated with the Launchpad. + items: + $ref: "../schemas.yaml#/components/schemas/Keystore" + passwords: + type: array + description: Passwords to unlock imported keystore files. `passwords[i]` must unlock `keystores[i]`. + items: + type: string + example: "ABCDEFGH01234567ABCDEFGH01234567" + slashing_protection: + $ref: "../schemas.yaml#/components/schemas/SlashingProtectionData" + responses: + "200": + description: Success response + content: + application/json: + schema: + title: ImportKeystoresResponse + type: object + required: [data] + properties: + data: + type: array + description: Status result of each `request.keystores` with same length and order of `request.keystores` + items: + type: object + required: [status] + properties: + status: + type: string + description: | + - imported: Keystore successfully decrypted and imported to keymanager permanent storage + - duplicate: Keystore's pubkey is already known to the keymanager + - error: Any other status different to the above: decrypting error, I/O errors, etc. + enum: + - imported + - duplicate + - error + example: imported + message: + type: string + description: error message if status == error + "400": + $ref: "../schemas.yaml#/components/responses/BadRequest" + "401": + $ref: "../schemas.yaml#/components/responses/Unauthorized" + "403": + $ref: "../schemas.yaml#/components/responses/Forbidden" + "500": + $ref: "../schemas.yaml#/components/responses/InternalError" + +delete: + operationId: KEYMANAGER_DELETE + summary: Delete Keys. + description: | + DELETE must delete all keys from `request.pubkeys` that are known to the keymanager and exist in its + persistent storage. Additionally, DELETE must fetch the slashing protection data for the requested keys from + persistent storage, which must be retained (and not deleted) after the response has been sent. Therefore in the + case of two identical delete requests being made, both will have access to slashing protection data. + + In a single atomic sequential operation the keymanager must: + 1. Guarantee that key(s) can not produce any more signature; only then + 2. Delete key(s) and serialize its associated slashing protection data + + DELETE should never return a 404 response, even if all pubkeys from request.pubkeys have no extant keystores + nor slashing protection data. + security: + - bearerAuth: [] + tags: + - Keymanager + requestBody: + content: + application/json: + schema: + type: object + required: [pubkeys] + properties: + pubkeys: + type: array + description: List of public keys to delete. + items: + $ref: "../schemas.yaml#/components/schemas/Pubkey" + responses: + "200": + description: Success response + content: + application/json: + schema: + title: DeleteKeysResponse + type: object + required: [data, slashing_protection] + properties: + data: + type: array + description: Deletion status of all keys in `request.pubkeys` in the same order. + items: + type: object + required: [status] + properties: + status: + type: string + description: | + - deleted: key was active and removed + - not_active: slashing protection data returned but key was not active + - not_found: key was not found to be removed, and no slashing data can be returned + - error: unexpected condition meant the key could not be removed (the key was actually found, but we couldn't stop using it) - this would be a sign that making it active elsewhere would almost certainly cause you headaches / slashing conditions etc. + enum: + - deleted + - not_active + - not_found + - error + example: deleted + message: + type: string + description: error message if status == error + slashing_protection: + $ref: "../schemas.yaml#/components/schemas/SlashingProtectionData" + "400": + $ref: "../schemas.yaml#/components/responses/BadRequest" + "401": + $ref: "../schemas.yaml#/components/responses/Unauthorized" + "403": + $ref: "../schemas.yaml#/components/responses/Forbidden" + "500": + $ref: "../schemas.yaml#/components/responses/InternalError" diff --git a/23.9.0-RC1/eth2/keymanager/schemas.yaml b/23.9.0-RC1/eth2/keymanager/schemas.yaml new file mode 100644 index 000000000..43d4f083b --- /dev/null +++ b/23.9.0-RC1/eth2/keymanager/schemas.yaml @@ -0,0 +1,65 @@ +components: + securitySchemes: + bearerAuth: + type: http + scheme: bearer + bearerFormat: JWT + + schemas: + Pubkey: + type: string + pattern: "^0x[a-fA-F0-9]{96}$" + description: | + The validator's BLS public key, uniquely identifying them. _48-bytes, hex encoded with 0x prefix, case insensitive._ + example: "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a" + + Keystore: + type: string + description: | + JSON serialized representation of a single keystore in EIP-2335: BLS12-381 Keystore format. + example: '{"version":4,"uuid":"9f75a3fa-1e5a-49f9-be3d-f5a19779c6fa","path":"m/12381/3600/0/0/0","pubkey":"0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a","crypto":{"kdf":{"function":"pbkdf2","params":{"dklen":32,"c":262144,"prf":"hmac-sha256","salt":"8ff8f22ef522a40f99c6ce07fdcfc1db489d54dfbc6ec35613edf5d836fa1407"},"message":""},"checksum":{"function":"sha256","params":{},"message":"9678a69833d2576e3461dd5fa80f6ac73935ae30d69d07659a709b3cd3eddbe3"},"cipher":{"function":"aes-128-ctr","params":{"iv":"31b69f0ac97261e44141b26aa0da693f"},"message":"e8228bafec4fcbaca3b827e586daad381d53339155b034e5eaae676b715ab05e"}}}' + + SlashingProtectionData: + type: string + description: | + JSON serialized representation of the slash protection data in format defined in EIP-3076: Slashing Protection Interchange Format. + example: '{"metadata":{"interchange_format_version":"5","genesis_validators_root":"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"},"data":[{"pubkey":"0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a","signed_blocks":[],"signed_attestations":[]}]}' + + ErrorResponse: + type: object + required: [message] + properties: + message: + description: "Detailed error message" + type: string + example: "description of the error that occurred" + + responses: + BadRequest: + description: "Bad request. Request was malformed and could not be processed" + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + + Unauthorized: + description: "Unauthorized, no token is found" + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + + Forbidden: + description: "Forbidden, a token is found but is invalid" + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + + InternalError: + description: "Internal server error. The server encountered an unexpected error indicative of + a serious fault in the system, or a bug." + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" \ No newline at end of file diff --git a/23.9.0-RC1/eth2/signing/paths/healthcheck.yaml b/23.9.0-RC1/eth2/signing/paths/healthcheck.yaml new file mode 100644 index 000000000..ca90d2b95 --- /dev/null +++ b/23.9.0-RC1/eth2/signing/paths/healthcheck.yaml @@ -0,0 +1,20 @@ +get: + tags: + - 'Server Health Status' + summary: 'Server Health Status' + description: | + Checks the Web3Signer server health status. Confirms if Web3Signer is healthy. Not used by validator clients. + operationId: 'HEALTHCHECK' + responses: + '200': + description: 'System is healthy' + content: + application/json: + schema: + "$ref": "../schemas.yaml#/components/schemas/HealthCheck" + '503': + description: 'At least one procedure is unhealthy' + content: + application/json: + schema: + "$ref": "../schemas.yaml#/components/schemas/HealthCheck" \ No newline at end of file diff --git a/23.9.0-RC1/eth2/signing/paths/public_keys.yaml b/23.9.0-RC1/eth2/signing/paths/public_keys.yaml new file mode 100644 index 000000000..965a400d1 --- /dev/null +++ b/23.9.0-RC1/eth2/signing/paths/public_keys.yaml @@ -0,0 +1,20 @@ +get: + tags: + - 'Public Key' + summary: 'List of available ETH2 BLS Public Keys' + description: 'Returns a hex-encoded list of ETH2 BLS public keys for the private keys that have been loaded into Web3Signer.' + operationId: 'ETH2_LIST' + responses: + '200': + description: 'list of public keys' + content: + application/json: + schema: + type: array + items: + type: string + example: '0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a' + '400': + description: 'Bad request format' + '500': + description: 'Internal Web3Signer server error' \ No newline at end of file diff --git a/23.9.0-RC1/eth2/signing/paths/reload.yaml b/23.9.0-RC1/eth2/signing/paths/reload.yaml new file mode 100644 index 000000000..f8a3c1815 --- /dev/null +++ b/23.9.0-RC1/eth2/signing/paths/reload.yaml @@ -0,0 +1,13 @@ +post: + tags: + - 'Reload Signer Keys' + summary: 'Reload signer keys asynchronously' + description: | + Reloads signer keys asynchronously. This is used after adding new keys to a current set of validators. + The call reloads the keys and makes Web3signer aware of the change. Not used by validator clients. + operationId: 'RELOAD' + responses: + '200': + description: 'Call is successful' + '500': + description: 'Internal Web3Signer server error' \ No newline at end of file diff --git a/23.9.0-RC1/eth2/signing/paths/sign.yaml b/23.9.0-RC1/eth2/signing/paths/sign.yaml new file mode 100644 index 000000000..48f24da35 --- /dev/null +++ b/23.9.0-RC1/eth2/signing/paths/sign.yaml @@ -0,0 +1,600 @@ +post: + tags: + - 'Signing' + summary: 'Signs data for ETH2 BLS public key' + description: 'Signs data for the ETH2 BLS public key specified as part of the URL and returns the signature' + operationId: 'ETH2_SIGN' + parameters: + - name: 'identifier' + in: 'path' + required: true + description: 'BLS public key in hex format for which data to sign' + schema: + type: 'string' + example: '0x989d34725a2bfc3f15105f3f5fc8741f436c25ee1ee4f948e425d6bcb8c56bce6e06c269635b7e985a7ffa639e2409bf' + requestBody: + required: true + content: + application/json: + schema: + oneOf: + - $ref: '../schemas.yaml#/components/schemas/AggregationSlotSigning' + - $ref: '../schemas.yaml#/components/schemas/AggregateAndProofSigning' + - $ref: '../schemas.yaml#/components/schemas/AttestationSigning' + - $ref: '../schemas.yaml#/components/schemas/BlockSigning' + - $ref: '../schemas.yaml#/components/schemas/BeaconBlockSigning' + - $ref: '../schemas.yaml#/components/schemas/DepositSigning' + - $ref: '../schemas.yaml#/components/schemas/RandaoRevealSigning' + - $ref: '../schemas.yaml#/components/schemas/VoluntaryExitSigning' + - $ref: '../schemas.yaml#/components/schemas/SyncCommitteeMessageSigning' + - $ref: '../schemas.yaml#/components/schemas/SyncCommitteeSelectionProofSigning' + - $ref: '../schemas.yaml#/components/schemas/SyncCommitteeContributionAndProofSigning' + - $ref: '../schemas.yaml#/components/schemas/ValidatorRegistrationSigning' + discriminator: + propertyName: type + mapping: + AGGREGATION_SLOT: '../schemas.yaml#/components/schemas/AggregationSlotSigning' + AGGREGATE_AND_PROOF: '../schemas.yaml#/components/schemas/AggregateAndProofSigning' + ATTESTATION: '../schemas.yaml#/components/schemas/AttestationSigning' + BLOCK: '../schemas.yaml#/components/schemas/BlockSigning' + BLOCK_V2: '../schemas.yaml#/components/schemas/BeaconBlockSigning' + DEPOSIT: '../schemas.yaml#/components/schemas/DepositSigning' + RANDAO_REVEAL: '../schemas.yaml#/components/schemas/RandaoRevealSigning' + VOLUNTARY_EXIT: '../schemas.yaml#/components/schemas/VoluntaryExitSigning' + SYNC_COMMITTEE_MESSAGE: '../schemas.yaml#/components/schemas/SyncCommitteeMessageSigning' + SYNC_COMMITTEE_SELECTION_PROOF: '../schemas.yaml#/components/schemas/SyncCommitteeSelectionProofSigning' + SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF: '../schemas.yaml#/components/schemas/SyncCommitteeContributionAndProofSigning' + VALIDATOR_REGISTRATION: '../schemas.yaml#/components/schemas/ValidatorRegistrationSigning' + examples: + BLOCK_V2 (CAPELLA): + value: + type: "BLOCK_V2" + signingRoot: "0xaa2e0c465c1a45d7b6637fcce4ad6ceb71fc12064b548078d619a411f0de8adc" + fork_info: + fork: + previous_version: "0x00000001" + current_version: "0x00000001" + epoch: "1" + genesis_validators_root: "0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673" + beacon_block: + version: "CAPELLA" + block_header: + slot: "0" + proposer_index: "4666673844721362956" + parent_root: "0x367cbd40ac7318427aadb97345a91fa2e965daf3158d7f1846f1306305f41bef" + state_root: "0xfd18cf40cc907a739be483f1ca0ee23ad65cdd3df23205eabc6d660a75d1f54e" + body_root: "0xa759d8029a69d4fdd8b3996086e9722983977e4efc1f12f4098ea3d93e868a6b" + BLOCK_V2 (BELLATRIX): + value: + type: "BLOCK_V2" + signingRoot: "0x26d0ee0b6c2261cd6010112a024de4f3d2e1e9844d11d60b057fac344c745464" + fork_info: + fork: + previous_version: "0x00000001" + current_version: "0x00000001" + epoch: "1" + genesis_validators_root: "0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673" + beacon_block: + version: "BELLATRIX" + block_header: + slot: "0" + proposer_index: "4666673844721362956" + parent_root: "0x367cbd40ac7318427aadb97345a91fa2e965daf3158d7f1846f1306305f41bef" + state_root: "0xfd18cf40cc907a739be483f1ca0ee23ad65cdd3df23205eabc6d660a75d1f54e" + body_root: "0xe74b0fc13f19ae2077403afa03fdc155484f22d05d93eb084473951bb3a8d1ae" + BLOCK_V2 (ALTAIR): + value: + type: "BLOCK_V2" + signingRoot: "0xcd9b9a5884d4ba2a42d19570421f0625e9841e905fcca363c371ea311dd923bc" + fork_info: + fork: + previous_version: "0x00000001" + current_version: "0x00000001" + epoch: "1" + genesis_validators_root: "0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673" + beacon_block: + version: "ALTAIR" + block: + slot: "0" + proposer_index: "4666673844721362956" + parent_root: "0x367cbd40ac7318427aadb97345a91fa2e965daf3158d7f1846f1306305f41bef" + state_root: "0xfd18cf40cc907a739be483f1ca0ee23ad65cdd3df23205eabc6d660a75d1f54e" + body: + randao_reveal: "0x9005ed0936f527d416609285b355fe6b9610d730c18b9d2f4942ba7d0eb95ba304ff46b6a2fb86f0c756bf09274db8e11399b7642f9fc5ae50b5bd9c1d87654277a19bfc3df78d36da16f44a48630d9550774a4ca9f3a5b55bbf33345ad2ec71" + eth1_data: + deposit_root: "0x6fdfab408c56b6105a76eff5c0435d09fc6ed7a938e7f946cf74fbbb9416428f" + deposit_count: "4658411424342975020" + block_hash: "0x499db7404cbff78670f0209f1932346fef68d985cb55a8d27472742bdf54d379" + graffiti: "0x0000000000000000000000000000000000000000000000000000000000000000" + proposer_slashings: + - signed_header_1: + message: + slot: "4661716390776343276" + proposer_index: "4600574485989226763" + parent_root: "0x32a7d23faa44fc04cc23dc3b560a55ade3deb2c393e9de2e6d20bdad2416c39b" + state_root: "0xf943e43fcb615e36ec5aa6b9db6f1746d0d5b50d708f6400e39cf25495f39cfb" + body_root: "0x0c65de3f6bad3d7be19d0de5aff82b13d6d8b49f26588dba111e361d6f545486" + signature: "0xb520c40e02457e0d3d61ebba3b04912f7db82a9a74132fedf190d94b32738dc62744644455959b4b4dc7aaf1e54064fa0f4aefe30696b7ed758c921d266402360e9abc003374800cd2aa6ffaa0c11a5cbfb3798b1816bac7be1e0c67c3305483" + signed_header_2: + message: + slot: "4661716390776343276" + proposer_index: "4600574485989226763" + parent_root: "0x7e2bbb3f2a737918a12f79e9a52da7e1fceaae0b6c0c82172425cbce8d99a0c6" + state_root: "0x45c8cc3f4a90db49c16643672a93697ae9e1b15549b207e99aa10076fe767a26" + body_root: "0x58e9c63feadbba8eb6a9aa92fd1b7e47efe4b0e7ff7a30a3c822443ed8d731b1" + signature: "0xa01cb4e18fb43a400024b67cd091680b8412ea66ed4a0d41f7ee611a87476d153e18879e22a5dbc98df9ea4ecd016c1801f1ee9411e103383c73c06cb5331b8377ef8f2f4ab67a4975135a59d9121279f9d979625d78f339f71aaaec565911b1" + attester_slashings: + - attestation_1: + attesting_indices: + - "4585702132744102314" + - "4590659586689121994" + - "4589007099177470570" + data: + slot: "4580744678799082634" + index: "4579092195582398506" + beacon_block_root: "0xded09d3f4aedd5706b7e7dc2c7d90de31bfaa9e5fcf74dba08ab1cb8d17d357c" + source: + epoch: "533461240" + root: "0xed7436400b3f287283b1005a48f4f70e79abc311779529d2628c4161a3a79565" + target: + epoch: "538462976" + root: "0xc7324240cba769e8982b3203a1e2ce746ca5c5ed0a04d85d078abad0efe52650" + signature: "0xab7a632a4707b1f8280944e479d239726caec1c6a73e8cc29eb98aa9cbeaa97d4c4921bdb8cd977f07a172062b8143be0d2db585dd2e8356897ae04f59234c800f2a6a2607a9491de5c57a92fbd8ad6e3f5e525618a1481b1f1446623e8765fc" + attestation_2: + attesting_indices: + - "4585702132744102314" + - "4590659586689121994" + - "4589007099177470570" + data: + slot: "4620404293179370891" + index: "4618751809962686763" + beacon_block_root: "0x14b72a404bd6e6fb6d37cfb0f00521a985b1c135e4267b46be8ec8f15869047b" + source: + epoch: "538078227" + root: "0x867d07400b9c22992dc93ab5e53a9c77abc3bba12adb6fa3d1955da376ae50bb" + target: + epoch: "536923980" + root: "0x603b1340cb04640f42436c5e3e2973dd9ebdbd7dbd491e2f7593d612c2ece1a5" + signature: "0xa32991816eb9f297553b4732309a4cdba7b33287264611715b0ab3319bca19e581da6e2659912a4e0e94aafc01c488e30ffc96ed14e2a726b9d3c618405ee0bf54bf6ae7f2097465cb27ab8132ec24eb93d3c9159475304082f7f0e452b93b65" + attestations: + - aggregation_bits: "0xfa79cdb89d0d51c5cdd001b7425c6d726750a9d5f89ade6ed9890ce3a706140c399a5e10c90a819094b65322dac7501f7c75471e69d4567358d8ca75f7c1b3133ebecf006b369a1f36efc5f2b706d5922ff98c58a1825a53a864376658f816600cf021cea843d4396502bb9c74d1510afe26036f89f783b4f5c7bacb6649c46f217a6af835f312d6fa253d2bbc83c07993f4f10de2ed2d952689379dbe4f794c1a1055a6b364d68e038deec9667f576b3b9eca5fcadd6298f181e1edb876efc3d0975ae14ae9a0ad2f1836d4c3f1080a96d8ab7c43b34bb2eda895ff66be698b363cfa4be33da3ec94a1a7a90672fd12c4a59916bb937e78476e4f08e4f4031001" + data: + slot: "4605531939934246443" + index: "4610489389584298827" + beacon_block_root: "0xbfe0f53feb7ec0670c92703760d5d9debdccb8574d35ead15a1928fc05d1765b" + source: + epoch: "529421377" + root: "0x95c9163fa9b8e5a07382c4a8ca24e64fab3f93035e00f87325462db67031aff2" + target: + epoch: "529806126" + root: "0x6f87223f6921271789fcf5512313bdb59e3995dff16ea6ffca43a625bb6f40dd" + signature: "0x8f8d16b39e14569aab1b712e5c19ed51afe3600a6b017e8ab432f43a02ee720a733c33ef087d2f3653a9701e8d8a836301655b9195c0373b775c88ba1368e5d55354a70a3096bd26dee29dddbe7a4820e2b1653e84122beacbc01af7d93e6bdc" + - aggregation_bits: "0x4ac567b296efbf7cf3209e87096a7a1a50fd523400113f917f6584a5a306f06b2d8da9ae858d47ff2594010089838efe41f19a78d9aae27c2ffde26f278b8681db9d091eb72e7cab3e449dfccd46a270693e1f88f197324e57bfd45573315cf9fb60d770937b32f7c0c6ce1581ec51e6b60f71acfde304dc917f2e0aa7872038b7d9140d15f7927c23a0490a74c2b0aca2773fed9217067e4444f9ca93874e4ff8407111c3efdb138b97c6d4957b6a70ec1debb283e3d0eb1cfef068adcffbf057d20fdc339eae03f0fa2613abdde8158a7fc40c3cfd1117eb6f8c4ae21d6b2ab4b57ae9a8653a34451aee6418c0c3609dc937293f5f5b346a7ab1a0d144185101" + data: + slot: "4544390030852162633" + index: "4542737547635478505" + beacon_block_root: "0x1bb1ed3e09ca0083285797d894e275ebd7548c015a7d158b66ce053068d7b2bd" + source: + epoch: "527690007" + root: "0xf56ef93ec93242f93dd1c881ecd04c51ca4e8eddeeebc3160acc7e9fb41544a8" + target: + epoch: "528074756" + root: "0x6735d63e89f87d96fd623486e205c81ff060884934a0b8731dd31351d25a90e8" + signature: "0x90309dd491ae6ed51917dc305a3d4ae68d0a0d4792c7eb59c193bd03605bd94e61cab37502de0ad3e6162bc02427bba80a798b3670d5de82a854094016cc298b265371345c0e3ac49fd44bbb9ba0d4fcea0c1a80cecb60e93921d907e8c48120" + - aggregation_bits: "0xe8c9759f0840f980ae956b15fc383d992e7d4420d12ba5bf32f669f446ac6fa388e20e5ce96e9266dd98840179d2cde3cabd9a8bafab5dec9c2e89f7f78c989e690548603984803b80c82d7b76443194576a1ce49da5cfe56f56e83b745fb01b5f18ccc86d88f5a22d927e64ff0b8e880893abcddec45b268531c4a0697537dae643a24b1a36432f37d42962553bd39af71f37e0429b81470c11316aa39db074aa3f1df4124e7cb203debed60b885ffb9b27e46a1434e81bbd56566632d0729c0822ac415cbb67f25973667d88e58df9c2f058a0ae7f118c98cc448453b6fbe590363bd17ed62c2f808df61f2a9e593235eeb56db74b9dd15980189a5271468301" + data: + slot: "4529517677607038185" + index: "4574134745932346122" + beacon_block_root: "0x64b8743faafef0521f5350f290979d7e470fa3e3f8746bd14933f531ca233947" + source: + epoch: "532884117" + root: "0x3d76803f6a6732c935cd819be98574e43a09a5bf8ce3195ded306ea11562ca31" + target: + epoch: "531729870" + root: "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672" + signature: "0x8c40f51a99fce6ebb9a4db5e80d715fff319e7ae523e46afb5d03c000d427e23c7a39e77e2af53851706283c8ca91d680997cb459386fbdff52c4d0ecf498e173717a838a792b210bdffaf476538628584a133899bf30dd5ce7056463b8cd683" + deposits: + - proof: + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + data: + pubkey: "0xb1f8f6e731dbf6b4e3265fb857c7190adbfc7e6cc95ce2e8bda72be8b6ea3459f862310a2484c3b0ee33b30920f18c1d" + withdrawal_credentials: "0xfcc0453faa5beb79c96a8a4d2dde41e779279b73abbab1a2b73c11749d2af49c" + amount: "32000000000" + signature: "0xb594382214f5bdd375de66c45e1c61a526c7b73fb166c72433bbd9c2a7ad6881244e61cc6427e0206a50b762a129d8830e8708c55761d61ce9e3b19c1bee13bc55daa13bdb07118efdbf57a588b8a64e6392d14f935e53b68933e3355b35acdb" + voluntary_exits: + - message: + epoch: "4562567354825622634" + validator_index: "4564219838042306762" + signature: "0xb86aecf4e9673e9ac774883f03c46c2cfe59320e441abfc2e2bbaeda2193f58c57a3aec0ae63ba17d3b1cb81bd548689004773c1867cf047e1a2d5c3c51973fca33040cae49bee51bf4d2e23786f51dc5672bff5e9df8f7bc5fadae6be5c146e" + sync_aggregate: + sync_committee_bits: "0x01000000" + sync_committee_signature: "0x919ee45cc18456f6e85da6bc21c2e40f44f9a887932c73ea9ad354f88e56d4ec0a8c396ed143082c8e31d697b877a2a215d2966d91c7beb156bf7ab5777e210012f70dcd5f7657808a82cba51e194be994f917150ebdb9e5c57476f1edb47206" + BLOCK_V2 (PHASE 0): + value: + type: "BLOCK_V2" + signingRoot: "0x23181cd23aa0ce5aed8628d4efc404e173ac4b72943ddb0e60129b4884aa8a4f" + fork_info: + fork: + previous_version: "0x00000001" + current_version: "0x00000001" + epoch: "1" + genesis_validators_root: "0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673" + beacon_block: + version: "PHASE0" + block: + slot: "0" + proposer_index: "4666673844721362956" + parent_root: "0x367cbd40ac7318427aadb97345a91fa2e965daf3158d7f1846f1306305f41bef" + state_root: "0xfd18cf40cc907a739be483f1ca0ee23ad65cdd3df23205eabc6d660a75d1f54e" + body: + randao_reveal: "0x9005ed0936f527d416609285b355fe6b9610d730c18b9d2f4942ba7d0eb95ba304ff46b6a2fb86f0c756bf09274db8e11399b7642f9fc5ae50b5bd9c1d87654277a19bfc3df78d36da16f44a48630d9550774a4ca9f3a5b55bbf33345ad2ec71" + eth1_data: + deposit_root: "0x6fdfab408c56b6105a76eff5c0435d09fc6ed7a938e7f946cf74fbbb9416428f" + deposit_count: "4658411424342975020" + block_hash: "0x499db7404cbff78670f0209f1932346fef68d985cb55a8d27472742bdf54d379" + graffiti: "0x0000000000000000000000000000000000000000000000000000000000000000" + proposer_slashings: + - signed_header_1: + message: + slot: "4661716390776343276" + proposer_index: "4600574485989226763" + parent_root: "0x32a7d23faa44fc04cc23dc3b560a55ade3deb2c393e9de2e6d20bdad2416c39b" + state_root: "0xf943e43fcb615e36ec5aa6b9db6f1746d0d5b50d708f6400e39cf25495f39cfb" + body_root: "0x0c65de3f6bad3d7be19d0de5aff82b13d6d8b49f26588dba111e361d6f545486" + signature: "0xb520c40e02457e0d3d61ebba3b04912f7db82a9a74132fedf190d94b32738dc62744644455959b4b4dc7aaf1e54064fa0f4aefe30696b7ed758c921d266402360e9abc003374800cd2aa6ffaa0c11a5cbfb3798b1816bac7be1e0c67c3305483" + signed_header_2: + message: + slot: "4661716390776343276" + proposer_index: "4600574485989226763" + parent_root: "0x7e2bbb3f2a737918a12f79e9a52da7e1fceaae0b6c0c82172425cbce8d99a0c6" + state_root: "0x45c8cc3f4a90db49c16643672a93697ae9e1b15549b207e99aa10076fe767a26" + body_root: "0x58e9c63feadbba8eb6a9aa92fd1b7e47efe4b0e7ff7a30a3c822443ed8d731b1" + signature: "0xa01cb4e18fb43a400024b67cd091680b8412ea66ed4a0d41f7ee611a87476d153e18879e22a5dbc98df9ea4ecd016c1801f1ee9411e103383c73c06cb5331b8377ef8f2f4ab67a4975135a59d9121279f9d979625d78f339f71aaaec565911b1" + attester_slashings: + - attestation_1: + attesting_indices: + - "4585702132744102314" + - "4590659586689121994" + - "4589007099177470570" + data: + slot: "4580744678799082634" + index: "4579092195582398506" + beacon_block_root: "0xded09d3f4aedd5706b7e7dc2c7d90de31bfaa9e5fcf74dba08ab1cb8d17d357c" + source: + epoch: "533461240" + root: "0xed7436400b3f287283b1005a48f4f70e79abc311779529d2628c4161a3a79565" + target: + epoch: "538462976" + root: "0xc7324240cba769e8982b3203a1e2ce746ca5c5ed0a04d85d078abad0efe52650" + signature: "0xab7a632a4707b1f8280944e479d239726caec1c6a73e8cc29eb98aa9cbeaa97d4c4921bdb8cd977f07a172062b8143be0d2db585dd2e8356897ae04f59234c800f2a6a2607a9491de5c57a92fbd8ad6e3f5e525618a1481b1f1446623e8765fc" + attestation_2: + attesting_indices: + - "4585702132744102314" + - "4590659586689121994" + - "4589007099177470570" + data: + slot: "4620404293179370891" + index: "4618751809962686763" + beacon_block_root: "0x14b72a404bd6e6fb6d37cfb0f00521a985b1c135e4267b46be8ec8f15869047b" + source: + epoch: "538078227" + root: "0x867d07400b9c22992dc93ab5e53a9c77abc3bba12adb6fa3d1955da376ae50bb" + target: + epoch: "536923980" + root: "0x603b1340cb04640f42436c5e3e2973dd9ebdbd7dbd491e2f7593d612c2ece1a5" + signature: "0xa32991816eb9f297553b4732309a4cdba7b33287264611715b0ab3319bca19e581da6e2659912a4e0e94aafc01c488e30ffc96ed14e2a726b9d3c618405ee0bf54bf6ae7f2097465cb27ab8132ec24eb93d3c9159475304082f7f0e452b93b65" + attestations: + - aggregation_bits: "0xfa79cdb89d0d51c5cdd001b7425c6d726750a9d5f89ade6ed9890ce3a706140c399a5e10c90a819094b65322dac7501f7c75471e69d4567358d8ca75f7c1b3133ebecf006b369a1f36efc5f2b706d5922ff98c58a1825a53a864376658f816600cf021cea843d4396502bb9c74d1510afe26036f89f783b4f5c7bacb6649c46f217a6af835f312d6fa253d2bbc83c07993f4f10de2ed2d952689379dbe4f794c1a1055a6b364d68e038deec9667f576b3b9eca5fcadd6298f181e1edb876efc3d0975ae14ae9a0ad2f1836d4c3f1080a96d8ab7c43b34bb2eda895ff66be698b363cfa4be33da3ec94a1a7a90672fd12c4a59916bb937e78476e4f08e4f4031001" + data: + slot: "4605531939934246443" + index: "4610489389584298827" + beacon_block_root: "0xbfe0f53feb7ec0670c92703760d5d9debdccb8574d35ead15a1928fc05d1765b" + source: + epoch: "529421377" + root: "0x95c9163fa9b8e5a07382c4a8ca24e64fab3f93035e00f87325462db67031aff2" + target: + epoch: "529806126" + root: "0x6f87223f6921271789fcf5512313bdb59e3995dff16ea6ffca43a625bb6f40dd" + signature: "0x8f8d16b39e14569aab1b712e5c19ed51afe3600a6b017e8ab432f43a02ee720a733c33ef087d2f3653a9701e8d8a836301655b9195c0373b775c88ba1368e5d55354a70a3096bd26dee29dddbe7a4820e2b1653e84122beacbc01af7d93e6bdc" + - aggregation_bits: "0x4ac567b296efbf7cf3209e87096a7a1a50fd523400113f917f6584a5a306f06b2d8da9ae858d47ff2594010089838efe41f19a78d9aae27c2ffde26f278b8681db9d091eb72e7cab3e449dfccd46a270693e1f88f197324e57bfd45573315cf9fb60d770937b32f7c0c6ce1581ec51e6b60f71acfde304dc917f2e0aa7872038b7d9140d15f7927c23a0490a74c2b0aca2773fed9217067e4444f9ca93874e4ff8407111c3efdb138b97c6d4957b6a70ec1debb283e3d0eb1cfef068adcffbf057d20fdc339eae03f0fa2613abdde8158a7fc40c3cfd1117eb6f8c4ae21d6b2ab4b57ae9a8653a34451aee6418c0c3609dc937293f5f5b346a7ab1a0d144185101" + data: + slot: "4544390030852162633" + index: "4542737547635478505" + beacon_block_root: "0x1bb1ed3e09ca0083285797d894e275ebd7548c015a7d158b66ce053068d7b2bd" + source: + epoch: "527690007" + root: "0xf56ef93ec93242f93dd1c881ecd04c51ca4e8eddeeebc3160acc7e9fb41544a8" + target: + epoch: "528074756" + root: "0x6735d63e89f87d96fd623486e205c81ff060884934a0b8731dd31351d25a90e8" + signature: "0x90309dd491ae6ed51917dc305a3d4ae68d0a0d4792c7eb59c193bd03605bd94e61cab37502de0ad3e6162bc02427bba80a798b3670d5de82a854094016cc298b265371345c0e3ac49fd44bbb9ba0d4fcea0c1a80cecb60e93921d907e8c48120" + - aggregation_bits: "0xe8c9759f0840f980ae956b15fc383d992e7d4420d12ba5bf32f669f446ac6fa388e20e5ce96e9266dd98840179d2cde3cabd9a8bafab5dec9c2e89f7f78c989e690548603984803b80c82d7b76443194576a1ce49da5cfe56f56e83b745fb01b5f18ccc86d88f5a22d927e64ff0b8e880893abcddec45b268531c4a0697537dae643a24b1a36432f37d42962553bd39af71f37e0429b81470c11316aa39db074aa3f1df4124e7cb203debed60b885ffb9b27e46a1434e81bbd56566632d0729c0822ac415cbb67f25973667d88e58df9c2f058a0ae7f118c98cc448453b6fbe590363bd17ed62c2f808df61f2a9e593235eeb56db74b9dd15980189a5271468301" + data: + slot: "4529517677607038185" + index: "4574134745932346122" + beacon_block_root: "0x64b8743faafef0521f5350f290979d7e470fa3e3f8746bd14933f531ca233947" + source: + epoch: "532884117" + root: "0x3d76803f6a6732c935cd819be98574e43a09a5bf8ce3195ded306ea11562ca31" + target: + epoch: "531729870" + root: "0xb03c5d3f2a2d6e66f45eed9fdfbaefb2601b9f2bd2970eba0038035333a71672" + signature: "0x8c40f51a99fce6ebb9a4db5e80d715fff319e7ae523e46afb5d03c000d427e23c7a39e77e2af53851706283c8ca91d680997cb459386fbdff52c4d0ecf498e173717a838a792b210bdffaf476538628584a133899bf30dd5ce7056463b8cd683" + deposits: + - proof: + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + - "0x8afa683fea95afdc0ad91e4937a9c6185315a1076506bd45a4357cc27fe5a75c" + data: + pubkey: "0xb1f8f6e731dbf6b4e3265fb857c7190adbfc7e6cc95ce2e8bda72be8b6ea3459f862310a2484c3b0ee33b30920f18c1d" + withdrawal_credentials: "0xfcc0453faa5beb79c96a8a4d2dde41e779279b73abbab1a2b73c11749d2af49c" + amount: "32000000000" + signature: "0xb594382214f5bdd375de66c45e1c61a526c7b73fb166c72433bbd9c2a7ad6881244e61cc6427e0206a50b762a129d8830e8708c55761d61ce9e3b19c1bee13bc55daa13bdb07118efdbf57a588b8a64e6392d14f935e53b68933e3355b35acdb" + voluntary_exits: + - message: + epoch: "4562567354825622634" + validator_index: "4564219838042306762" + signature: "0xb86aecf4e9673e9ac774883f03c46c2cfe59320e441abfc2e2bbaeda2193f58c57a3aec0ae63ba17d3b1cb81bd548689004773c1867cf047e1a2d5c3c51973fca33040cae49bee51bf4d2e23786f51dc5672bff5e9df8f7bc5fadae6be5c146e" + BLOCK (DEPRECATED): + value: + type: BLOCK + signingRoot: '0xf6ab1a0a4a712f544f99b53cb8c2c2625859a134fb5c9f1b2cb96e13dd88bd62' + forkInfo: + fork: + previousVersion: '0x00000001' + currentVersion: '0x00000001' + epoch: 1 + genesisValidatorsRoot: '0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673' + block: + slot: 0 + proposerIndex: 5 + parentRoot: '0xb2eedb01adbd02c828d5eec09b4c70cbba12ffffba525ebf48aca33028e8ad89' + stateRoot: '0x0000000000000000000000000000000000000000000000000000000000000000' + body: + randaoReveal: '0xa686652aed2617da83adebb8a0eceea24bb0d2ccec9cd691a902087f90db16aa5c7b03172a35e874e07e3b60c5b2435c0586b72b08dfe5aee0ed6e5a2922b956aa88ad0235b36dfaa4d2255dfeb7bed60578d982061a72c7549becab19b3c12f' + eth1Data: + depositRoot: '0x6a0f9d6cb0868daa22c365563bb113b05f7568ef9ee65fdfeb49a319eaf708cf' + depositCount: 8 + blockHash: '0x4242424242424242424242424242424242424242424242424242424242424242' + graffiti: '0x74656b752f76302e31322e31302d6465762d6338316361363235000000000000' + proposerSlashings: [ ] + attesterSlashings: [ ] + attestations: [ ] + deposits: [ ] + voluntaryExits: [ ] + ATTESTATION: + value: + type: "ATTESTATION" + signingRoot: "0x548c9a015f4c96cb8b1ddbbdfca85846f85bf9f344a434c140f378cdfb5341f0" + fork_info: + fork: + previous_version: "0x00000001" + current_version: "0x00000001" + epoch: "1" + genesis_validators_root: "0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673" + attestation: + slot: "32" + index: "0" + beacon_block_root: "0xb2eedb01adbd02c828d5eec09b4c70cbba12ffffba525ebf48aca33028e8ad89" + source: + epoch: "0" + root: "0x0000000000000000000000000000000000000000000000000000000000000000" + target: + epoch: "0" + root: "0xb2eedb01adbd02c828d5eec09b4c70cbba12ffffba525ebf48aca33028e8ad89" + + AGGREGATION_SLOT: + value: + type: 'AGGREGATION_SLOT' + signingRoot: '0x1fb90dd6e8b2670e6949347bc4eaacd37f9b6cc6e42c559973e362c800e853b9' + forkInfo: + fork: + previousVersion: '0x00000001' + currentVersion: '0x00000001' + epoch: 1 + genesisValidatorsRoot: '0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673' + aggregationSlot: + slot: 119 + AGGREGATE_AND_PROOF: + value: + type: "AGGREGATE_AND_PROOF" + signingRoot: "0x8d777156899cb02e0e66217afd832886239752a59a393218f6c603bcf615b4f8" + fork_info: + fork: + previous_version: "0x00000001" + current_version: "0x00000001" + epoch: "1" + genesis_validators_root: "0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673" + aggregate_and_proof: + aggregator_index: "1" + aggregate: + aggregation_bits: "0x00000101" + data: + slot: "0" + index: "0" + beacon_block_root: "0x100814c335d0ced5014cfa9d2e375e6d9b4e197381f8ce8af0473200fdc917fd" + source: + epoch: "0" + root: "0x0000000000000000000000000000000000000000000000000000000000000000" + target: + epoch: "0" + root: "0x100814c335d0ced5014cfa9d2e375e6d9b4e197381f8ce8af0473200fdc917fd" + signature: "0xa627242e4a5853708f4ebf923960fb8192f93f2233cd347e05239d86dd9fb66b721ceec1baeae6647f498c9126074f1101a87854d674b6eebc220fd8c3d8405bdfd8e286b707975d9e00a56ec6cbbf762f23607d490f0bbb16c3e0e483d51875" + selection_proof: "0xa63f73a03f1f42b1fd0a988b614d511eb346d0a91c809694ef76df5ae021f0f144d64e612d735bc8820950cf6f7f84cd0ae194bfe3d4242fe79688f83462e3f69d9d33de71aab0721b7dab9d6960875e5fdfd26b171a75fb51af822043820c47" + + RANDAO_REVEAL: + value: + type: "RANDAO_REVEAL" + signingRoot: "0x3d047c51a8b03630781dc4c5519c17f7de87174246ff2deed0f195c6c775f91e" + fork_info: + fork: + previous_version: "0x00000001" + current_version: "0x00000001" + epoch: "1" + genesis_validators_root: "0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673" + randao_reveal: + epoch: "3" + + VOLUNTARY_EXIT: + value: + type: "VOLUNTARY_EXIT" + signingRoot: "0x38e9f1cfe7926ce5366b633b7fc7113129025737394002d2637faaeefc56913d" + fork_info: + fork: + previous_version: "0x00000001" + current_version: "0x00000001" + epoch: "1" + genesis_validators_root: "0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673" + voluntary_exit: + epoch: "119" + validator_index: "0" + + SYNC_COMMITTEE_MESSAGE: + value: + type: "SYNC_COMMITTEE_MESSAGE" + signingRoot: "0xa6f60df2817ea5b52eed1fefebbad746ef64c6249fc05c90c9e0f520cc75bb95" + fork_info: + fork: + previous_version: "0x00000001" + current_version: "0x00000001" + epoch: "1" + genesis_validators_root: "0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673" + sync_committee_message: + beacon_block_root: "0x235bc3400c2839fd856a524871200bd5e362db615fc4565e1870ed9a2a936464" + slot: "0" + + SYNC_COMMITTEE_SELECTION_PROOF: + value: + type: "SYNC_COMMITTEE_SELECTION_PROOF" + signingRoot: "0x50d85c783ab27c1eb3f3efa914b91cb93ffd677137b15c27ba5bb548306e6963" + fork_info: + fork: + previous_version: "0x00000001" + current_version: "0x00000001" + epoch: "1" + genesis_validators_root: "0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673" + sync_aggregator_selection_data: + slot: "0" + subcommittee_index: "0" + + SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF: + value: + type: "SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF" + signingRoot: "0xae94702468b584a3b1c422bc1b39cc523d9175ba3b9ac1cccb699c00507cc1a5" + fork_info: + fork: + previous_version: "0x00000001" + current_version: "0x00000001" + epoch: "1" + genesis_validators_root: "0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673" + contribution_and_proof: + aggregator_index: "11" + selection_proof: "0x8f5c34de9e22ceaa7e8d165fc0553b32f02188539e89e2cc91e2eb9077645986550d872ee3403204ae5d554eae3cac12124e18d2324bccc814775316aaef352abc0450812b3ca9fde96ecafa911b3b8bfddca8db4027f08e29c22a9c370ad933" + contribution: + slot: "0" + beacon_block_root: "0x235bc3400c2839fd856a524871200bd5e362db615fc4565e1870ed9a2a936464" + subcommittee_index: "1" + aggregation_bits: "0x24" + signature: "0x9005ed0936f527d416609285b355fe6b9610d730c18b9d2f4942ba7d0eb95ba304ff46b6a2fb86f0c756bf09274db8e11399b7642f9fc5ae50b5bd9c1d87654277a19bfc3df78d36da16f44a48630d9550774a4ca9f3a5b55bbf33345ad2ec71" + + VALIDATOR_REGISTRATION: + value: + type: "VALIDATOR_REGISTRATION" + signingRoot: "0xe4d2b3dd1e23807b90af0b1768cc7de12d4353320adb486f1bdaeed6b67009ea" + validator_registration: + fee_recipient: "0x6fdfab408c56b6105a76eff5c0435d09fc6ed7a9" + gas_limit: "4658411424342975020" + timestamp: "4663368873993027404" + pubkey: "0x8f82597c919c056571a05dfe83e6a7d32acf9ad8931be04d11384e95468cd68b40129864ae12745f774654bbac09b057" + + DEPOSIT: + value: + type: "DEPOSIT" + signingRoot: "0x3a49cdd70862ee95fed10e7494a8caa16af1be2f53612fc74dad27260bb2d711" + deposit: + pubkey: "0x8f82597c919c056571a05dfe83e6a7d32acf9ad8931be04d11384e95468cd68b40129864ae12745f774654bbac09b057" + withdrawal_credentials: "0x39722cbbf8b91a4b9045c5e6175f1001eac32f7fcd5eccda5c6e62fc4e638508" + amount: "32" + genesis_fork_version: "0x00000001" + + responses: + '200': + description: 'hex encoded string of signature' + content: + application/json: + schema: + $ref: '../schemas.yaml#/components/schemas/SigningResponse' + text/plain: + schema: + type: string + example: '0xb3baa751d0a9132cfe93e4e3d5ff9075111100e3789dca219ade5a24d27e19d16b3353149da1833e9b691bb38634e8dc04469be7032132906c927d7e1a49b414730612877bc6b2810c8f202daf793d1ab0d6b5cb21d52f9e52e883859887a5d9' + '412': + description: 'Signing operation failed due to slashing protection rules' + '404': + description: 'Public Key not found' + '400': + description: 'Bad request format' + '500': + description: 'Internal Web3Signer server error' \ No newline at end of file diff --git a/23.9.0-RC1/eth2/signing/paths/upcheck.yaml b/23.9.0-RC1/eth2/signing/paths/upcheck.yaml new file mode 100644 index 000000000..4cfeb0860 --- /dev/null +++ b/23.9.0-RC1/eth2/signing/paths/upcheck.yaml @@ -0,0 +1,17 @@ +get: + tags: + - 'Server Status' + summary: 'Server Status' + description: | + Checks the Web3Signer server status. Confirms if Web3Signer is connected and running. Not used by validator clients. + operationId: 'UPCHECK' + responses: + '200': + description: 'OK' + content: + text/plain; charset=utf-8: + schema: + type: string + example: 'OK' + '500': + description: 'Internal Web3Signer server error' \ No newline at end of file diff --git a/23.9.0-RC1/eth2/signing/schemas.yaml b/23.9.0-RC1/eth2/signing/schemas.yaml new file mode 100644 index 000000000..6cb8b97ca --- /dev/null +++ b/23.9.0-RC1/eth2/signing/schemas.yaml @@ -0,0 +1,622 @@ +components: + schemas: + Signing: + type: "object" + properties: + fork_info: + type: object + properties: + fork: + $ref: '#/components/schemas/Fork' + description: Fork information + genesis_validators_root: + type: "string" + description: Genesis Validators Root in hex string format. + example: '0x04700007fabc8282644aed6d1c7c9e21d38a03a0c4ba193f3afe428824b3a673' + required: + - fork + - genesis_validators_root + signingRoot: + type: "string" + description: 'signing root for optional verification if field present' + example: '0xaa2e0c465c1a45d7b6637fcce4ad6ceb71fc12064b548078d619a411f0de8adc' + required: + - fork_info + SigningResponse: + type: "object" + properties: + signature: + type: "string" + description: "Hex encoded string of signature" + example: '0xb3baa751d0a9132cfe93e4e3d5ff9075111100e3789dca219ade5a24d27e19d16b3353149da1833e9b691bb38634e8dc04469be7032132906c927d7e1a49b414730612877bc6b2810c8f202daf793d1ab0d6b5cb21d52f9e52e883859887a5d9' + AggregationSlotSigning: + allOf: + - $ref: '#/components/schemas/Signing' + - type: "object" + properties: + type: + type: "string" + description: Signing Request type + example: 'AGGREGATION_SLOT' + aggregation_slot: + type: "object" + properties: + slot: + type: string + format: "uint64" + required: + - type + - aggregation_slot + AggregateAndProofSigning: + allOf: + - $ref: '#/components/schemas/Signing' + - type: object + properties: + type: + type: "string" + description: Signing Request type + example: 'AGGREGATE_AND_PROOF' + aggregate_and_proof: + $ref: "#/components/schemas/AggregateAndProof" + required: + - type + - aggregate_and_proof + AttestationSigning: + allOf: + - $ref: '#/components/schemas/Signing' + - type: object + properties: + type: + type: "string" + description: Signing Request type + example: 'ATTESTATION' + attestation: + $ref: "#/components/schemas/AttestationData" + required: + - type + - attestation + BlockSigning: + description: '** DEPRECATED ** See BeaconBlockSigning.' + allOf: + - $ref: '#/components/schemas/Signing' + - type: object + properties: + type: + type: "string" + description: Signing Request type + example: 'BLOCK' + block: + $ref: "#/components/schemas/BeaconBlock" + required: + - type + - block + DepositSigning: + type: object + properties: + type: + type: "string" + description: 'Signing Request type' + example: 'DEPOSIT' + signingRoot: + description: 'signing root for optional verification if field present' + type: "string" + deposit: + type: object + properties: + pubkey: + type: "string" + withdrawal_credentials: + type: "string" + amount: + type: "string" + genesis_fork_version: + type: "string" + description: Bytes4 hexadecimal + required: + - type + - deposit + RandaoRevealSigning: + allOf: + - $ref: '#/components/schemas/Signing' + - type: object + properties: + type: + type: "string" + description: Signing Request type + example: 'RANDAO_REVEAL' + randao_reveal: + $ref: "#/components/schemas/RandaoReveal" + required: + - type + - randao_reveal + VoluntaryExitSigning: + allOf: + - $ref: '#/components/schemas/Signing' + - type: object + properties: + type: + type: "string" + description: Signing Request type + example: 'VOLUNTARY_EXIT' + voluntary_exit: + $ref: "#/components/schemas/VoluntaryExit" + required: + - type + - voluntary_exit + SyncCommitteeMessageSigning: + allOf: + - $ref: '#/components/schemas/Signing' + - type: object + properties: + type: + type: "string" + description: Signing Request type + example: 'SYNC_COMMITTEE_MESSAGE' + sync_committee_message: + $ref: "#/components/schemas/SyncCommitteeMessage" + required: + - type + - sync_committee_message + SyncCommitteeSelectionProofSigning: + allOf: + - $ref: '#/components/schemas/Signing' + - type: object + properties: + type: + type: "string" + description: Signing Request type + example: 'SYNC_COMMITTEE_SELECTION_PROOF' + sync_aggregator_selection_data: + $ref: "#/components/schemas/SyncAggregatorSelectionData" + required: + - type + - sync_aggregator_selection_data + SyncCommitteeContributionAndProofSigning: + allOf: + - $ref: '#/components/schemas/Signing' + - type: object + properties: + type: + type: "string" + description: Signing Request type + example: 'SYNC_COMMITTEE_CONTRIBUTION_AND_PROOF' + contribution_and_proof: + $ref: "#/components/schemas/ContributionAndProof" + required: + - type + - contribution_and_proof + ValidatorRegistrationSigning: + allOf: + - type: object + properties: + type: + type: "string" + description: Signing Request type + example: 'VALIDATOR_REGISTRATION' + signingRoot: + description: 'signing root for optional verification if field present' + type: "string" + validator_registration: + "$ref": "#/components/schemas/ValidatorRegistration" + required: + - type + - validator_registration + RandaoReveal: + type: "object" + properties: + epoch: + type: string + format: "uint64" + AttestationData: + type: "object" + properties: + slot: + type: "string" + format: "uint64" + index: + type: "string" + format: "uint64" + beacon_block_root: + type: "string" + source: + $ref: "#/components/schemas/Checkpoint" + target: + $ref: "#/components/schemas/Checkpoint" + Checkpoint: + type: "object" + properties: + epoch: + type: "string" + root: + type: "string" + Fork: + type: "object" + properties: + previous_version: + pattern: "^0x[a-fA-F0-9]{8}$" + type: "string" + description: 'Previous version of fork' + example: '0x00000001' + current_version: + pattern: "^0x[a-fA-F0-9]{8}$" + type: "string" + description: 'Current version of fork' + example: '0x00000001' + epoch: + type: "string" + description: 'Epoch value in String format' + format: "uint64" + example: '1' + BeaconBlock: + type: "object" + properties: + slot: + type: "string" + format: "uint64" + proposer_index: + type: "string" + format: "uint64" + parent_root: + type: "string" + state_root: + type: "string" + body: + $ref: "#/components/schemas/BeaconBlockBody" + BeaconBlockBody: + type: "object" + properties: + randao_reveal: + type: "string" + eth1_data: + "$ref": "#/components/schemas/Eth1Data" + graffiti: + type: "string" + description: "Bytes32 hexadecimal" + proposer_slashings: + type: "array" + items: + $ref: "#/components/schemas/ProposerSlashing" + attester_slashings: + type: "array" + items: + $ref: "#/components/schemas/AttesterSlashing" + attestations: + type: "array" + items: + $ref: "#/components/schemas/Attestation" + deposits: + type: "array" + items: + $ref: "#/components/schemas/Deposit" + voluntary_exits: + type: "array" + items: + $ref: "#/components/schemas/SignedVoluntaryExit" + Eth1Data: + type: "object" + properties: + deposit_root: + type: "string" + deposit_count: + type: "string" + format: "uint64" + block_hash: + type: "string" + ProposerSlashing: + type: "object" + properties: + signed_header_1: + "$ref": "#/components/schemas/SignedBeaconBlockHeader" + signed_header_2: + "$ref": "#/components/schemas/SignedBeaconBlockHeader" + AttesterSlashing: + type: "object" + properties: + attestation_1: + "$ref": "#/components/schemas/IndexedAttestation" + attestation_2: + "$ref": "#/components/schemas/IndexedAttestation" + Attestation: + type: "object" + properties: + aggregation_bits: + type: "string" + data: + $ref: "#/components/schemas/AttestationData" + signature: + type: "string" + Deposit: + type: "object" + properties: + proof: + type: "array" + items: + type: "string" + data: + $ref: "#/components/schemas/DepositData" + SignedVoluntaryExit: + type: "object" + properties: + message: + $ref: "#/components/schemas/VoluntaryExit" + signature: + type: "string" + SignedBeaconBlockHeader: + type: "object" + properties: + message: + $ref: "#/components/schemas/BeaconBlockHeader" + signature: + type: "string" + IndexedAttestation: + type: object + properties: + attesting_indices: + type: array + items: + type: string + format: uint64 + data: + "$ref": "#/components/schemas/AttestationData" + signature: + type: string + DepositData: + type: "object" + properties: + pubkey: + type: "string" + withdrawal_credentials: + type: "string" + amount: + type: "string" + signature: + type: "string" + VoluntaryExit: + type: object + properties: + epoch: + type: string + format: uint64 + validator_index: + type: string + format: uint64 + BeaconBlockHeader: + type: object + properties: + slot: + type: string + format: uint64 + proposer_index: + type: string + format: uint64 + parent_root: + type: string + description: Bytes32 hexadecimal + state_root: + type: string + description: Bytes32 hexadecimal + body_root: + type: string + description: Bytes32 hexadecimal + AggregateAndProof: + type: object + properties: + aggregator_index: + type: string + format: uint64 + aggregate: + "$ref": "#/components/schemas/Attestation" + selection_proof: + type: string + description: Bytes96 hexadecimal + SyncCommitteeMessage: + type: object + properties: + beacon_block_root: + type: string + description: Bytes32 hexadecimal + slot: + type: string + format: uint64 + SyncAggregatorSelectionData: + type: object + properties: + slot: + type: string + format: uint64 + subcommittee_index: + type: string + format: uint64 + ContributionAndProof: + type: object + properties: + aggregator_index: + type: string + format: uint64 + selection_proof: + type: string + description: Bytes96 hexadecimal + contribution: + "$ref": "#/components/schemas/SyncCommitteeContribution" + SyncCommitteeContribution: + type: object + properties: + slot: + type: string + format: uint64 + beacon_block_root: + type: string + description: Bytes32 hexadecimal + subcommittee_index: + type: string + format: uint64 + aggregation_bits: + type: string + description: SSZ hexadecimal + signature: + type: string + description: Bytes96 hexadecimal + ValidatorRegistration: + type: object + properties: + fee_recipient: + type: string + description: Bytes20 hexadecimal + gas_limit: + type: string + format: uint64 + timestamp: + type: string + format: uint64 + pubkey: + type: string + BeaconBlockSigning: + allOf: + - $ref: '#/components/schemas/Signing' + - $ref: '#/components/schemas/BeaconBlockRequest' + - type: object + properties: + type: + type: "string" + description: Signing Request type + example: 'BLOCK_V2' + BeaconBlockRequest: + type: object + properties: + beacon_block: + oneOf: + - $ref: '#/components/schemas/BlockRequestPhase0' + - $ref: '#/components/schemas/BlockRequestAltair' + - $ref: '#/components/schemas/BlockRequestBellatrix' + - $ref: '#/components/schemas/BlockRequestCapella' + - $ref: '#/components/schemas/BlockRequestDeneb' + discriminator: + propertyName: version + mapping: + PHASE0: '#/components/schemas/BlockRequestPhase0' + ALTAIR: '#/components/schemas/BlockRequestAltair' + BELLATRIX: '#/components/schemas/BlockRequestBellatrix' + CAPELLA: '#/components/schemas/BlockRequestCapella' + DENEB: '#/components/schemas/BlockRequestDeneb' + required: + - beacon_block + BlockRequestPhase0: + type: object + properties: + version: + type: string + enum: + - PHASE0 + description: 'version to identify block request type.' + block: + $ref: "#/components/schemas/BeaconBlock" + required: + - version + - block + BlockRequestAltair: + type: object + properties: + version: + type: string + enum: + - ALTAIR + description: 'version to identify block request type.' + block: + $ref: "#/components/schemas/BeaconBlockAltair" + required: + - version + - block + BlockRequestBellatrix: + type: object + properties: + version: + type: string + enum: + - BELLATRIX + description: 'version to identify block request type.' + block_header: + $ref: "#/components/schemas/BeaconBlockHeader" + required: + - version + - block_header + BlockRequestCapella: + type: object + properties: + version: + type: string + enum: + - CAPELLA + description: 'version to identify block request type.' + block_header: + $ref: "#/components/schemas/BeaconBlockHeader" + required: + - version + - block_header + BlockRequestDeneb: + type: object + properties: + version: + type: string + enum: + - DENEB + description: 'version to identify block request type.' + block_header: + $ref: "#/components/schemas/BeaconBlockHeader" + required: + - version + - block_header + BeaconBlockAltair: + type: "object" + properties: + slot: + type: "string" + format: "uint64" + proposer_index: + type: "string" + format: "uint64" + parent_root: + type: "string" + state_root: + type: "string" + body: + $ref: "#/components/schemas/BeaconBlockBodyAltair" + BeaconBlockBodyAltair: + allOf: + - $ref: "#/components/schemas/BeaconBlockBody" + - type: object + properties: + sync_aggregate: + $ref: "#/components/schemas/SyncAggregate" + SyncAggregate: + type: object + properties: + sync_committee_bits: + type: string + description: SSZ hexadecimal + sync_committee_signature: + type: string + description: Bytes96 hexadecimal + HealthCheck: + type: object + properties: + status: + type: string + description: 'health status' + checks: + type: array + description: 'list of status checks' + items: + properties: + id: + type: string + description: 'status id' + status: + type: string + description: 'health status' + outcome: + type: string + description: 'the overall outcome of health check' + +externalDocs: + description: 'Web3Signer User Documentation' + url: 'https://docs.web3signer.consensys.net/' diff --git a/23.9.0-RC1/eth2/web3signer.yaml b/23.9.0-RC1/eth2/web3signer.yaml new file mode 100644 index 000000000..f046d67ad --- /dev/null +++ b/23.9.0-RC1/eth2/web3signer.yaml @@ -0,0 +1,30 @@ +openapi: 3.0.3 +info: + title: 'Web3Signer ETH2 Api' + description: 'Sign Eth2 Artifacts' + version: '23.9.0-RC1' + license: + name: 'Apache 2.0' + url: 'http://www.apache.org/licenses/LICENSE-2.0.html' + +servers: + - url: / + - url: http://localhost:9000/ + +paths: + /api/v1/eth2/sign/{identifier}: + $ref: './signing/paths/sign.yaml' + /api/v1/eth2/publicKeys: + $ref: './signing/paths/public_keys.yaml' + /reload: + $ref: './signing/paths/reload.yaml' + /upcheck: + $ref: './signing/paths/upcheck.yaml' + /healthcheck: + $ref: './signing/paths/healthcheck.yaml' + /eth/v1/keystores: + $ref: './keymanager/paths/keystores.yaml' + +externalDocs: + description: 'Web3Signer User Documentation' + url: 'https://docs.web3signer.consensys.net/' diff --git a/23.9.0-RC1/filecoin/web3signer.yaml b/23.9.0-RC1/filecoin/web3signer.yaml new file mode 100644 index 000000000..2b146748d --- /dev/null +++ b/23.9.0-RC1/filecoin/web3signer.yaml @@ -0,0 +1,90 @@ +openapi: 3.0.0 +info: + title: 'Web3Signer Filecoin' + description: 'Upcheck' + version: '23.9.0-RC1' + license: + name: 'Apache 2.0' + url: 'http://www.apache.org/licenses/LICENSE-2.0.html' + +servers: + - url: / + - url: http://localhost:9000/ + +paths: + /reload: + post: + tags: + - 'Reload Signer Keys' + summary: 'Reload signer keys asynchronously' + description: 'Reload signer keys asynchronously' + operationId: 'RELOAD' + responses: + '200': + description: 'Call is successful' + '500': + description: 'Internal Web3Signer server error' + /upcheck: + get: + tags: + - 'Server Status' + summary: 'Server Status' + description: 'Web3Signer server status' + operationId: 'UPCHECK' + responses: + '200': + description: 'OK' + content: + text/plain; charset=utf-8: + schema: + type: string + example: 'OK' + '500': + description: 'Internal Web3Signer server error' + /healthcheck: + get: + tags: + - 'Server Health Status' + summary: 'Server Health Status' + description: 'Web3Signer server health status' + operationId: 'HEALTHCHECK' + responses: + '200': + description: 'System is healthy' + content: + application/json: + schema: + "$ref": "#/components/schemas/HealthCheck" + '503': + description: 'At least one procedure is unhealthy' + content: + application/json: + schema: + "$ref": "#/components/schemas/HealthCheck" + +components: + schemas: + HealthCheck: + type: object + properties: + status: + type: string + description: 'health status' + checks: + type: array + description: 'list of status checks' + items: + properties: + id: + type: string + description: 'status id' + status: + type: string + description: 'health status' + outcome: + type: string + description: 'the overall outcome of health check' + +externalDocs: + description: 'Web3Signer User Documentation' + url: 'https://docs.web3signer.consensys.net/' diff --git a/latest/eth1/web3signer.yaml b/latest/eth1/web3signer.yaml index 4f92c1e30..49a3d6d1b 100644 --- a/latest/eth1/web3signer.yaml +++ b/latest/eth1/web3signer.yaml @@ -2,7 +2,7 @@ openapi: 3.0.0 info: title: 'Web3Signer ETH1 API' description: 'Sign ETH1 Artifacts' - version: '23.8.1+12-g01b08f43' + version: '23.9.0-RC1' license: name: 'Apache 2.0' url: 'http://www.apache.org/licenses/LICENSE-2.0.html' diff --git a/latest/eth2/web3signer.yaml b/latest/eth2/web3signer.yaml index c01967930..f046d67ad 100644 --- a/latest/eth2/web3signer.yaml +++ b/latest/eth2/web3signer.yaml @@ -2,7 +2,7 @@ openapi: 3.0.3 info: title: 'Web3Signer ETH2 Api' description: 'Sign Eth2 Artifacts' - version: '23.8.1+12-g01b08f43' + version: '23.9.0-RC1' license: name: 'Apache 2.0' url: 'http://www.apache.org/licenses/LICENSE-2.0.html' diff --git a/latest/filecoin/web3signer.yaml b/latest/filecoin/web3signer.yaml index 4f8763b3a..2b146748d 100644 --- a/latest/filecoin/web3signer.yaml +++ b/latest/filecoin/web3signer.yaml @@ -2,7 +2,7 @@ openapi: 3.0.0 info: title: 'Web3Signer Filecoin' description: 'Upcheck' - version: '23.8.1+12-g01b08f43' + version: '23.9.0-RC1' license: name: 'Apache 2.0' url: 'http://www.apache.org/licenses/LICENSE-2.0.html' diff --git a/versions.json b/versions.json index 1afe924fb..ddd5dc309 100644 --- a/versions.json +++ b/versions.json @@ -4,8 +4,8 @@ "source": "master" }, "stable": { - "spec": "23.8.1", - "source": "23.8.1" + "spec": "23.9.0-RC1", + "source": "23.9.0-RC1" }, "0.1.0": { "spec": "0.1.0", @@ -146,5 +146,9 @@ "23.8.1": { "spec": "23.8.1", "source": "23.8.1" + }, + "23.9.0-RC1": { + "spec": "23.9.0-RC1", + "source": "23.9.0-RC1" } } \ No newline at end of file