Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Electra block and state objects from CL spec #469

Merged
merged 4 commits into from
Sep 23, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
2 changes: 1 addition & 1 deletion apis/beacon/blob_sidecars/blob_sidecars.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ get:
properties:
version:
type: string
enum: [phase0, altair, bellatrix, capella, deneb]
enum: [phase0, altair, bellatrix, capella, deneb, electra]
example: "deneb"
execution_optimistic:
$ref: "../../../beacon-node-oapi.yaml#/components/schemas/ExecutionOptimistic"
Expand Down
3 changes: 2 additions & 1 deletion apis/beacon/blocks/blinded_block.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ get:
properties:
version:
type: string
enum: [phase0, altair, bellatrix, capella, deneb]
enum: [phase0, altair, bellatrix, capella, deneb, electra]
example: "phase0"
execution_optimistic:
$ref: "../../../beacon-node-oapi.yaml#/components/schemas/ExecutionOptimistic"
Expand All @@ -39,6 +39,7 @@ get:
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Bellatrix.SignedBlindedBeaconBlock"
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Capella.SignedBlindedBeaconBlock"
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Deneb.SignedBlindedBeaconBlock"
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Electra.SignedBlindedBeaconBlock"
application/octet-stream:
schema:
description: "SSZ serialized block bytes. Use Accept header to choose this response type"
Expand Down
1 change: 1 addition & 0 deletions apis/beacon/blocks/blinded_blocks.v2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ post:
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Bellatrix.SignedBlindedBeaconBlock"
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Capella.SignedBlindedBeaconBlock"
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Deneb.SignedBlindedBeaconBlock"
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Electra.SignedBlindedBeaconBlock"
application/octet-stream:
schema:
description: "SSZ serialized block bytes. Use content type header to indicate that SSZ data is contained in the request body."
Expand Down
1 change: 1 addition & 0 deletions apis/beacon/blocks/blinded_blocks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ post:
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Bellatrix.SignedBlindedBeaconBlock"
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Capella.SignedBlindedBeaconBlock"
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Deneb.SignedBlindedBeaconBlock"
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Electra.SignedBlindedBeaconBlock"
application/octet-stream:
schema:
description: "SSZ serialized block bytes. Use content type header to indicate that SSZ data is contained in the request body."
Expand Down
3 changes: 2 additions & 1 deletion apis/beacon/blocks/block.v2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ get:
properties:
version:
type: string
enum: [phase0, altair, bellatrix, capella, deneb]
enum: [phase0, altair, bellatrix, capella, deneb, electra]
example: "phase0"
execution_optimistic:
$ref: "../../../beacon-node-oapi.yaml#/components/schemas/ExecutionOptimistic"
Expand All @@ -39,6 +39,7 @@ get:
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Bellatrix.SignedBeaconBlock"
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Capella.SignedBeaconBlock"
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Deneb.SignedBeaconBlock"
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Electra.SignedBeaconBlock"
application/octet-stream:
schema:

Expand Down
1 change: 1 addition & 0 deletions apis/beacon/blocks/blocks.v2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ post:
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Bellatrix.SignedBeaconBlock"
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Capella.SignedBeaconBlock"
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Deneb.SignedBlockContents"
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Electra.SignedBlockContents"
application/octet-stream:
schema:
description: "SSZ serialized block bytes. Use content type header to indicate that SSZ data is contained in the request body."
Expand Down
1 change: 1 addition & 0 deletions apis/beacon/blocks/blocks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ post:
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Bellatrix.SignedBeaconBlock"
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Capella.SignedBeaconBlock"
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Deneb.SignedBlockContents"
- $ref: "../../../beacon-node-oapi.yaml#/components/schemas/Electra.SignedBlockContents"
application/octet-stream:
schema:
description: "SSZ serialized block bytes. Use content type header to indicate that SSZ data is contained in the request body."
Expand Down
3 changes: 2 additions & 1 deletion apis/debug/state.v2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ get:
properties:
version:
type: string
enum: [ phase0, altair, bellatrix, capella, deneb ]
enum: [phase0, altair, bellatrix, capella, deneb, electra]
example: "phase0"
execution_optimistic:
$ref: "../../beacon-node-oapi.yaml#/components/schemas/ExecutionOptimistic"
Expand All @@ -39,6 +39,7 @@ get:
- $ref: "../../beacon-node-oapi.yaml#/components/schemas/Bellatrix.BeaconState"
- $ref: "../../beacon-node-oapi.yaml#/components/schemas/Capella.BeaconState"
- $ref: "../../beacon-node-oapi.yaml#/components/schemas/Deneb.BeaconState"
- $ref: "../../beacon-node-oapi.yaml#/components/schemas/Electra.BeaconState"
application/octet-stream:
schema:
description: "SSZ serialized state bytes. Use Accept header to choose this response type"
Expand Down
3 changes: 2 additions & 1 deletion apis/validator/blinded_block.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ get:
properties:
version:
type: string
enum: [ phase0, altair, bellatrix, capella, deneb ]
enum: [phase0, altair, bellatrix, capella, deneb, electra]
example: "bellatrix"
data:
anyOf:
Expand All @@ -58,6 +58,7 @@ get:
- $ref: "../../beacon-node-oapi.yaml#/components/schemas/Bellatrix.BlindedBeaconBlock"
- $ref: "../../beacon-node-oapi.yaml#/components/schemas/Capella.BlindedBeaconBlock"
- $ref: "../../beacon-node-oapi.yaml#/components/schemas/Deneb.BlindedBeaconBlock"
- $ref: "../../beacon-node-oapi.yaml#/components/schemas/Electra.BlindedBeaconBlock"
application/octet-stream:
schema:
description: "SSZ serialized block bytes. Use Accept header to choose this response type, version string is sent in header `Eth-Consensus-Version`."
Expand Down
3 changes: 2 additions & 1 deletion apis/validator/block.v2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ get:
properties:
version:
type: string
enum: [ phase0, altair, bellatrix, capella, deneb ]
enum: [phase0, altair, bellatrix, capella, deneb, electra]
example: "phase0"
data:
anyOf:
Expand All @@ -55,6 +55,7 @@ get:
- $ref: "../../beacon-node-oapi.yaml#/components/schemas/Bellatrix.BeaconBlock"
- $ref: "../../beacon-node-oapi.yaml#/components/schemas/Capella.BeaconBlock"
- $ref: "../../beacon-node-oapi.yaml#/components/schemas/Deneb.BlockContents"
- $ref: "../../beacon-node-oapi.yaml#/components/schemas/Electra.BlockContents"
application/octet-stream:
schema:
description: "SSZ serialized block bytes. Use Accept header to choose this response type, version string is sent in header `Eth-Consensus-Version`."
Expand Down
4 changes: 3 additions & 1 deletion apis/validator/block.v3.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ get:
properties:
version:
type: string
enum: [ phase0, altair, bellatrix, capella, deneb ]
enum: [phase0, altair, bellatrix, capella, deneb, electra]
example: "phase0"
execution_payload_blinded:
type: boolean
Expand All @@ -111,6 +111,8 @@ get:
- $ref: "../../beacon-node-oapi.yaml#/components/schemas/Capella.BlindedBeaconBlock"
- $ref: "../../beacon-node-oapi.yaml#/components/schemas/Deneb.BlockContents"
- $ref: "../../beacon-node-oapi.yaml#/components/schemas/Deneb.BlindedBeaconBlock"
- $ref: "../../beacon-node-oapi.yaml#/components/schemas/Electra.BlockContents"
rolfyone marked this conversation as resolved.
Show resolved Hide resolved
- $ref: "../../beacon-node-oapi.yaml#/components/schemas/Electra.BlindedBeaconBlock"
application/octet-stream:
schema:
description: "SSZ serialized block or blinded block bytes. Use Accept header to choose this response type, version string is sent in header `Eth-Consensus-Version` and block type in `Eth-Blinded-Payload`."
Expand Down
12 changes: 12 additions & 0 deletions beacon-node-oapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -381,6 +381,18 @@ components:
$ref: './types/primitive.yaml#/Blob'
Deneb.BlobSidecars:
$ref: './types/deneb/blob_sidecar.yaml#/Deneb/BlobSidecars'
Electra.BeaconState:
$ref: './types/electra/state.yaml#/Electra/BeaconState'
Electra.BlockContents:
$ref: './types/electra/block_contents.yaml#/Electra/BlockContents'
Electra.SignedBeaconBlock:
$ref: './types/electra/block.yaml#/Electra/SignedBeaconBlock'
Electra.SignedBlockContents:
$ref: './types/electra/block_contents.yaml#/Electra/SignedBlockContents'
Electra.BlindedBeaconBlock:
$ref: './types/electra/block.yaml#/Electra/BlindedBeaconBlock'
Electra.SignedBlindedBeaconBlock:
$ref: './types/electra/block.yaml#/Electra/SignedBlindedBeaconBlock'
Electra.Attestation:
$ref: './types/electra/attestation.yaml#/Electra/Attestation'
Electra.AttesterSlashing:
Expand Down
104 changes: 104 additions & 0 deletions types/electra/block.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
Electra:
BeaconBlockBodyCommon:
# An abstract object to collect the common fields between the BeaconBlockBody and the BlindedBeaconBlockBody objects
type: object
description: "The [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec."
required: [randao_reveal, eth1_data, graffiti, proposer_slashings, attester_slashings, attestations, deposits, voluntary_exits, sync_aggregate, bls_to_execution_changes, blob_kzg_commitments]
properties:
randao_reveal:
allOf:
- $ref: "../primitive.yaml#/Signature"
- description: "The RANDAO reveal value provided by the validator."
eth1_data:
$ref: "../eth1.yaml#/Eth1Data"
graffiti:
$ref: "../primitive.yaml#/Graffiti"
proposer_slashings:
type: array
items:
$ref: "../proposer_slashing.yaml#/ProposerSlashing"
attester_slashings:
type: array
items:
$ref: "./attester_slashing.yaml#/Electra/AttesterSlashing"
attestations:
type: array
items:
$ref: "./attestation.yaml#/Electra/Attestation"
deposits:
type: array
items:
$ref: "../deposit.yaml#/Deposit"
voluntary_exits:
type: array
items:
$ref: "../voluntary_exit.yaml#/SignedVoluntaryExit"
sync_aggregate:
$ref: "../altair/sync_aggregate.yaml#/Altair/SyncAggregate"
bls_to_execution_changes:
type: array
items:
$ref: "../bls_to_execution_change.yaml#/SignedBLSToExecutionChange"
blob_kzg_commitments:
type: array
items:
$ref: "../primitive.yaml#/KZGCommitment"

BeaconBlockBody:
allOf:
- $ref: "#/Electra/BeaconBlockBodyCommon"
- type: object
required: [execution_payload]
properties:
execution_payload:
$ref: "./execution_payload.yaml#/Electra/ExecutionPayload"

BeaconBlock:
description: "The [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblock) object from the CL Electra spec."
nflaig marked this conversation as resolved.
Show resolved Hide resolved
allOf:
- $ref: "../altair/block.yaml#/Altair/BeaconBlockCommon"
- type: object
required: [body]
properties:
body:
$ref: "#/Electra/BeaconBlockBody"

SignedBeaconBlock:
type: object
description: "The [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#signedbeaconblock) object envelope from the CL Electra spec."
required: [message, signature]
properties:
message:
$ref: "#/Electra/BeaconBlock"
signature:
$ref: "../primitive.yaml#/Signature"

BlindedBeaconBlockBody:
description: "A variant of the [`BeaconBlockBody`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblockbody) object from the CL Electra spec, which contains a transactions root rather than a full transactions list."
allOf:
- $ref: "#/Electra/BeaconBlockBodyCommon"
- type: object
required: [execution_payload_header]
properties:
execution_payload_header:
$ref: "./execution_payload.yaml#/Electra/ExecutionPayloadHeader"

BlindedBeaconBlock:
description: "A variant of the [`BeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#beaconblock) object from the CL Electra spec, which contains a `BlindedBeaconBlockBody` rather than a `BeaconBlockBody`."
allOf:
- $ref: "../altair/block.yaml#/Altair/BeaconBlockCommon"
- type: object
required: [body]
properties:
body:
$ref: "#/Electra/BlindedBeaconBlockBody"

SignedBlindedBeaconBlock:
type: object
description: "A variant of the [`SignedBeaconBlock`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#signedbeaconblock) object envelope from the CL Electra spec, which contains a `BlindedBeaconBlock` rather than a `BeaconBlock`."
required: [message, signature]
properties:
message:
$ref: "#/Electra/BlindedBeaconBlock"
signature:
$ref: "../primitive.yaml#/Signature"
24 changes: 24 additions & 0 deletions types/electra/block_contents.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
Electra:
BlockContents:
type: object
description: "The required object for block production according to the Electra CL spec."
required: [block, kzg_proofs, blobs]
properties:
block:
$ref: "./block.yaml#/Electra/BeaconBlock"
kzg_proofs:
$ref: "../deneb/block_contents.yaml#/Deneb/KZGProofs"
blobs:
$ref: "../deneb/block_contents.yaml#/Deneb/Blobs"

SignedBlockContents:
type: object
description: "The required signed components of block production according to the Electra CL spec."
required: [signed_block, kzg_proofs, blobs]
properties:
signed_block:
$ref: "./block.yaml#/Electra/SignedBeaconBlock"
kzg_proofs:
$ref: "../deneb/block_contents.yaml#/Deneb/KZGProofs"
blobs:
$ref: "../deneb/block_contents.yaml#/Deneb/Blobs"
27 changes: 27 additions & 0 deletions types/electra/consolidation.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
Electra:
ConsolidationRequest:
type: object
description: "The [`ConsolidationRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#consolidationrequest) object from the CL Electra spec."
required: [source_address, source_pubkey, target_pubkey]
properties:
source_address:
$ref: "../primitive.yaml#/ExecutionAddress"
description: "Execution address which sent the request."
source_pubkey:
$ref: "../primitive.yaml#/Pubkey"
description: "BLS public key of validator to consolidate from."
target_pubkey:
$ref: "../primitive.yaml#/Pubkey"
description: "BLS public key of validator to consolidate to."

PendingConsolidation:
type: object
description: "The [`PendingConsolidation`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#pendingconsolidation) object from the CL Electra spec."
required: [source_index, target_index]
properties:
source_index:
$ref: "../primitive.yaml#/Uint64"
description: "Index of validator to consolidate from."
target_index:
$ref: "../primitive.yaml#/Uint64"
description: "Index of validator to consolidate to."
32 changes: 32 additions & 0 deletions types/electra/deposit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
Electra:
DepositRequest:
type: object
description: "The [`DepositRequest`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#depositrequest) object from the CL Electra spec."
required: [pubkey, withdrawal_credentials, amount, signature, index]
properties:
pubkey:
$ref: "../primitive.yaml#/Pubkey"
description: "BLS public key of validator."
withdrawal_credentials:
$ref: "../primitive.yaml#/Root"
description: "The withdrawal credentials."
amount:
$ref: "../primitive.yaml#/Gwei"
description: "The value to be deposited (gwei)."
signature:
$ref: "../primitive.yaml#/Signature"
index:
$ref: "../primitive.yaml#/Uint64"
description: "The index of the deposit request."

PendingBalanceDeposit:
type: object
description: "The [`PendingBalanceDeposit`](https://github.com/ethereum/consensus-specs/blob/v1.5.0-alpha.5/specs/electra/beacon-chain.md#pendingbalancedeposit) object from the CL Electra spec."
required: [index, amount]
properties:
index:
$ref: "../primitive.yaml#/Uint64"
description: "Index of validator in validator registry."
amount:
$ref: "../primitive.yaml#/Gwei"
description: "The value to be deposited (gwei)."
Loading