Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ buildscript {
}

plugins {
id 'com.diffplug.spotless' version '7.0.2'
id 'com.diffplug.spotless' version '7.0.3'
id 'com.github.ben-manes.versions' version '0.52.0'
id 'com.github.jk1.dependency-license-report' version '2.9'
id 'io.spring.dependency-management' version '1.1.7'
Expand Down Expand Up @@ -249,6 +249,9 @@ allprojects {
check('BannedMethod', net.ltgt.gradle.errorprone.CheckSeverity.OFF)
check('ExperimentalCliOptionMustBeCorrectlyDisplayed', net.ltgt.gradle.errorprone.CheckSeverity.OFF)

// ignore PatternMatchingInstanceof for now
check("PatternMatchingInstanceof", net.ltgt.gradle.errorprone.CheckSeverity.OFF)

// These are experimental checks that we want enabled
check('ClassName', net.ltgt.gradle.errorprone.CheckSeverity.WARN)
check('DeduplicateConstants', net.ltgt.gradle.errorprone.CheckSeverity.WARN)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"tags" : [ "Beacon" ],
"operationId" : "getBlobSidecars",
"summary" : "Get blob sidecars",
"description" : "Retrieves blob sidecars for a given block id.\n Depending on `Accept` header it can be returned either as json or as bytes serialized by SSZ.\n If the `indices` parameter is specified, only the blob sidecars with the specified indices will be returned. There are no guarantees\n for the returned blob sidecars in terms of ordering.",
"description" : "Retrieves blob sidecars for a given block id.\n Depending on `Accept` header it can be returned either as json or as bytes serialized by SSZ.\n If the `indices` parameter is specified, only the blob sidecars with the specified indices will be returned. There are no guarantees\n for the returned blob sidecars in terms of ordering.\n",
"parameters" : [ {
"name" : "block_id",
"required" : true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"tags" : [ "Beacon", "Validator Required Api" ],
"operationId" : "submitPoolSyncCommitteeSignatures",
"summary" : "Submit sync committee signatures to node",
"description" : "Submits sync committee message objects to the node.\n\nSync committee messages are not present in phase0, but are required for Altair networks.\n\nIf a sync committee message is validated successfully the node MUST publish that sync committee message on all applicable subnets.\n\nIf one or more sync committee messages fail validation the node MUST return a 400 error with details of which sync committee messages have failed, and why.",
"description" : "Submits sync committee message objects to the node.\n\nSync committee messages are not present in phase0, but are required for Altair networks.\n\nIf a sync committee message is validated successfully the node MUST publish that sync committee message on all applicable subnets.\n\nIf one or more sync committee messages fail validation the node MUST return a 400 error with details of which sync committee messages have failed, and why.\n",
"requestBody" : {
"content" : {
"application/json" : {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"tags" : [ "Validator", "Validator Required Api" ],
"operationId" : "prepareBeaconProposer",
"summary" : "Provide beacon node with proposals for the given validators.",
"description" : "Prepares the beacon node for potential proposers by supplying information required when proposing blocks for the given validators. The information supplied for each validator index is considered persistent until overwritten by new information for the given validator index, or until the beacon node restarts.\n\nNote that because the information is not persistent across beacon node restarts it is recommended that either the beacon node is monitored for restarts or this information is refreshed by resending this request periodically (for example, each epoch).\n\nAlso note that requests containing currently inactive or unknown validator indices will be accepted, as they may become active at a later epoch.",
"description" : "Prepares the beacon node for potential proposers by supplying information required when proposing blocks for the given validators. The information supplied for each validator index is considered persistent until overwritten by new information for the given validator index, or until the beacon node restarts.\n\nNote that because the information is not persistent across beacon node restarts it is recommended that either the beacon node is monitored for restarts or this information is refreshed by resending this request periodically (for example, each epoch).\n\nAlso note that requests containing currently inactive or unknown validator indices will be accepted, as they may become active at a later epoch.\n",
"requestBody" : {
"content" : {
"application/json" : {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"tags" : [ "Validator", "Validator Required Api" ],
"operationId" : "prepareSyncCommitteeSubnets",
"summary" : "Subscribe to sync committee subnets",
"description" : "Subscribe to a number of sync committee subnets\n\nSync committees are not present in phase0, but are required for Altair networks.\n\nSubscribing to sync committee subnets is an action performed by VC to enable network participation in Altair networks, and only required if the VC has an active validator in an active sync committee.",
"description" : "Subscribe to a number of sync committee subnets\n\nSync committees are not present in phase0, but are required for Altair networks.\n\nSubscribing to sync committee subnets is an action performed by VC to enable network participation in Altair networks, and only required if the VC has an active validator in an active sync committee.\n",
"requestBody" : {
"content" : {
"application/json" : {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
"tags" : [ "Beacon", "Validator Required Api", "Experimental" ],
"operationId" : "submitPoolAttestationsV2",
"summary" : "Submit Attestation objects to node",
"description" : "Submits Attestation objects to the node. Each attestation in the request body is processed individually.\nIf an attestation is validated successfully, the node MUST publish that attestation on the appropriate subnet.\nIf one or more attestations fail validation, the node MUST return a 400 error with details of which attestations have failed, and why.",
"description" : "Submits Attestation objects to the node. Each attestation in the request body is processed individually.\nIf an attestation is validated successfully, the node MUST publish that attestation on the appropriate subnet.\nIf one or more attestations fail validation, the node MUST return a 400 error with details of which attestations have failed, and why.\n",
"parameters" : [ {
"name" : "Eth-Consensus-Version",
"required" : true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"tags" : [ "Validator", "Validator Required Api" ],
"operationId" : "getAggregatedAttestationV2",
"summary" : "Get aggregated attestation",
"description" : "Aggregates all attestations matching given attestation data root, slot and committee index.\nA 503 error must be returned if the block identified by the response\n`beacon_block_root` is optimistic (i.e. the aggregated attestation attests\nto a block that has not been fully verified by an execution engine).\nA 404 error must be returned if no attestation is available for the requested\n`attestation_data_root`.",
"description" : "Aggregates all attestations matching given attestation data root, slot and committee index.\nA 503 error must be returned if the block identified by the response\n`beacon_block_root` is optimistic (i.e. the aggregated attestation attests\nto a block that has not been fully verified by an execution engine).\nA 404 error must be returned if no attestation is available for the requested\n`attestation_data_root`.\n",
"parameters" : [ {
"name" : "attestation_data_root",
"required" : true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"tags" : [ "Validator", "Validator Required Api" ],
"operationId" : "produceBlockV3",
"summary" : "Produce a new block, without signature.",
"description" : "Requests a beacon node to produce a valid block, which can then be signed by a validator. The\nreturned block may be blinded or unblinded, depending on the current state of the network as\ndecided by the execution and beacon nodes.\nThe beacon node must return an unblinded block if it obtains the execution payload from its\npaired execution node. It must only return a blinded block if it obtains the execution payload\nheader from an MEV relay.\nMetadata in the response indicates the type of block produced, and the supported types of block\nwill be added to as forks progress.",
"description" : "Requests a beacon node to produce a valid block, which can then be signed by a validator. The\nreturned block may be blinded or unblinded, depending on the current state of the network as\ndecided by the execution and beacon nodes.\nThe beacon node must return an unblinded block if it obtains the execution payload from its\npaired execution node. It must only return a blinded block if it obtains the execution payload\nheader from an MEV relay.\nMetadata in the response indicates the type of block produced, and the supported types of block\nwill be added to as forks progress.\n",
"parameters" : [ {
"name" : "slot",
"required" : true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,12 @@ private static EndpointMetadata createEndpointMetadata(final SchemaDefinitionCac
.operationId("getBlobSidecars")
.summary("Get blob sidecars")
.description(
"Retrieves blob sidecars for a given block id.\n"
+ " Depending on `Accept` header it can be returned either as json or as bytes serialized by SSZ.\n"
+ " If the `indices` parameter is specified, only the blob sidecars with the specified indices will be returned. There are no guarantees\n"
+ " for the returned blob sidecars in terms of ordering.")
"""
Retrieves blob sidecars for a given block id.
Depending on `Accept` header it can be returned either as json or as bytes serialized by SSZ.
If the `indices` parameter is specified, only the blob sidecars with the specified indices will be returned. There are no guarantees
for the returned blob sidecars in terms of ordering.
""")
.tags(TAG_BEACON)
.pathParam(PARAMETER_BLOCK_ID)
.queryListParam(BLOB_INDICES_PARAMETER)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,15 @@ public PostSyncCommittees(final ValidatorDataProvider provider) {
.operationId("submitPoolSyncCommitteeSignatures")
.summary("Submit sync committee signatures to node")
.description(
"Submits sync committee message objects to the node.\n\n"
+ "Sync committee messages are not present in phase0, but are required for Altair networks.\n\n"
+ "If a sync committee message is validated successfully the node MUST publish that sync committee message on all applicable subnets.\n\n"
+ "If one or more sync committee messages fail validation the node MUST return a 400 error with details of which sync committee messages have failed, and why.")
"""
Submits sync committee message objects to the node.

Sync committee messages are not present in phase0, but are required for Altair networks.

If a sync committee message is validated successfully the node MUST publish that sync committee message on all applicable subnets.

If one or more sync committee messages fail validation the node MUST return a 400 error with details of which sync committee messages have failed, and why.
""")
.tags(TAG_BEACON, TAG_VALIDATOR_REQUIRED)
.requestBodyType(
DeserializableTypeDefinition.listOf(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,13 @@ public GetState(
.operationId("getState")
.summary("Get state")
.description(
"Returns full BeaconState object for given state_id.\n\n"
+ "Use Accept header to select `application/octet-stream` if SSZ response type is required.\n\n"
+ "__NOTE__: Only phase0 beacon state will be returned in JSON, use `/eth/v2/beacon/states/{state_id}` for altair.")
"""
Returns full BeaconState object for given state_id.

Use Accept header to select `application/octet-stream` if SSZ response type is required.

__NOTE__: Only phase0 beacon state will be returned in JSON, use `/eth/v2/beacon/states/{state_id}` for altair.
""")
.tags(TAG_DEBUG)
.pathParam(PARAMETER_STATE_ID)
.response(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,13 @@ private static EndpointMetadata createMetadata() {
.operationId("prepareBeaconProposer")
.summary("Provide beacon node with proposals for the given validators.")
.description(
"Prepares the beacon node for potential proposers by supplying information required when proposing blocks for the given validators. The information supplied for each validator index is considered persistent until overwritten by new information for the given validator index, or until the beacon node restarts.\n\n"
+ "Note that because the information is not persistent across beacon node restarts it is recommended that either the beacon node is monitored for restarts or this information is refreshed by resending this request periodically (for example, each epoch).\n\n"
+ "Also note that requests containing currently inactive or unknown validator indices will be accepted, as they may become active at a later epoch.")
"""
Prepares the beacon node for potential proposers by supplying information required when proposing blocks for the given validators. The information supplied for each validator index is considered persistent until overwritten by new information for the given validator index, or until the beacon node restarts.

Note that because the information is not persistent across beacon node restarts it is recommended that either the beacon node is monitored for restarts or this information is refreshed by resending this request periodically (for example, each epoch).

Also note that requests containing currently inactive or unknown validator indices will be accepted, as they may become active at a later epoch.
""")
.tags(TAG_VALIDATOR, TAG_VALIDATOR_REQUIRED)
.requestBodyType(DeserializableTypeDefinition.listOf(BeaconPreparableProposer.SSZ_DATA))
.response(SC_OK, "Preparation information has been received.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,11 @@ public PostSubscribeToBeaconCommitteeSubnet(final ValidatorDataProvider provider
.operationId("prepareBeaconCommitteeSubnet")
.summary("Signal beacon node to prepare for a committee subnet")
.description(
"After Beacon node receives this request, search using discv5 for peers related to this subnet and replace current peers with those ones if necessary If validator is_aggregator, beacon node must:\n"
+ "- announce subnet topic subscription on gossipsub\n"
+ "- aggregate attestations received on that subnet\n")
"""
After Beacon node receives this request, search using discv5 for peers related to this subnet and replace current peers with those ones if necessary If validator is_aggregator, beacon node must:
- announce subnet topic subscription on gossipsub
- aggregate attestations received on that subnet
""")
.tags(TAG_VALIDATOR, TAG_VALIDATOR_REQUIRED)
.requestBodyType(
DeserializableTypeDefinition.listOf(CommitteeSubscriptionData.SSZ_DATA))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,13 @@ public PostSyncCommitteeSubscriptions(final ValidatorDataProvider validatorDataP
.operationId("prepareSyncCommitteeSubnets")
.summary("Subscribe to sync committee subnets")
.description(
"Subscribe to a number of sync committee subnets\n\n"
+ "Sync committees are not present in phase0, but are required for Altair networks.\n\n"
+ "Subscribing to sync committee subnets is an action performed by VC to enable network participation in Altair networks, and only required if the VC has an active validator in an active sync committee.")
"""
Subscribe to a number of sync committee subnets

Sync committees are not present in phase0, but are required for Altair networks.

Subscribing to sync committee subnets is an action performed by VC to enable network participation in Altair networks, and only required if the VC has an active validator in an active sync committee.
""")
.tags(TAG_VALIDATOR, TAG_VALIDATOR_REQUIRED)
.requestBodyType(DeserializableTypeDefinition.listOf(SYNC_COMMITTEE_SUBSCRIPTION))
.response(SC_OK, "Successful response")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,9 +116,11 @@ private static EndpointMetadata createMetadata(
.operationId("submitPoolAttestationsV2")
.summary("Submit Attestation objects to node")
.description(
"Submits Attestation objects to the node. Each attestation in the request body is processed individually.\n"
+ "If an attestation is validated successfully, the node MUST publish that attestation on the appropriate subnet.\n"
+ "If one or more attestations fail validation, the node MUST return a 400 error with details of which attestations have failed, and why.")
"""
Submits Attestation objects to the node. Each attestation in the request body is processed individually.
If an attestation is validated successfully, the node MUST publish that attestation on the appropriate subnet.
If one or more attestations fail validation, the node MUST return a 400 error with details of which attestations have failed, and why.
""")
.tags(TAG_BEACON, TAG_VALIDATOR_REQUIRED, TAG_EXPERIMENTAL)
.requestBodyType(
SerializableTypeDefinition.listOf(attestationSchemaDefinition), attestationBodySelector)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,14 @@ public GetAggregateAttestationV2(
.operationId("getAggregatedAttestationV2")
.summary("Get aggregated attestation")
.description(
"Aggregates all attestations matching given attestation data root, slot and committee index.\n"
+ "A 503 error must be returned if the block identified by the response\n"
+ "`beacon_block_root` is optimistic (i.e. the aggregated attestation attests\n"
+ "to a block that has not been fully verified by an execution engine).\n"
+ "A 404 error must be returned if no attestation is available for the requested\n"
+ "`attestation_data_root`.")
"""
Aggregates all attestations matching given attestation data root, slot and committee index.
A 503 error must be returned if the block identified by the response
`beacon_block_root` is optimistic (i.e. the aggregated attestation attests
to a block that has not been fully verified by an execution engine).
A 404 error must be returned if no attestation is available for the requested
`attestation_data_root`.
""")
.tags(TAG_VALIDATOR, TAG_VALIDATOR_REQUIRED)
.queryParamRequired(ATTESTATION_DATA_ROOT_PARAMETER)
.queryParamRequired(SLOT_PARAMETER)
Expand Down
Loading