Skip to content

Commit

Permalink
Add and update types for Capella (#60)
Browse files Browse the repository at this point in the history
* Add and update types for Capella

* Fix schema validation by adding discriminator to response

* Add builder api types for Capella

* Fix incorrect comments

* Regenerate builder.md TOC

* Update beacon block examples to be more realistic

* Fix bid schema field ordering

Co-authored-by: Alex Stokes <[email protected]>

* Fix capella bid field ordering

* Restructure spec files

* Add consensus version header to submitBlindedBlock request

* Revert "Fix schema validation by adding discriminator to response"

This reverts commit 702791c.

* Fix validator spec heading

Co-authored-by: Alex Stokes <[email protected]>

* Update beacon API submodule to latest

---------

Co-authored-by: Alex Stokes <[email protected]>
  • Loading branch information
jimmygchen and ralexstokes authored Feb 6, 2023
1 parent 540bcca commit a1787c6
Show file tree
Hide file tree
Showing 15 changed files with 397 additions and 15 deletions.
15 changes: 14 additions & 1 deletion apis/builder/blinded_blocks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@ post:
`ExecutionPayloadHeader`, it must error.
tags:
- Builder
parameters:
- in: header
schema:
$ref: '../../beacon-apis/beacon-node-oapi.yaml#/components/schemas/ConsensusVersion'
required: false
name: Eth-Consensus-Version
description: "Version of the block being submitted"
requestBody:
description: A `SignedBlindedBeaconBlock`.
required: true
Expand All @@ -19,9 +26,12 @@ post:
schema:
oneOf:
- $ref: "../../builder-oapi.yaml#/components/schemas/Bellatrix.SignedBlindedBeaconBlock"
- $ref: "../../builder-oapi.yaml#/components/schemas/Capella.SignedBlindedBeaconBlock"
examples:
bellatrix:
$ref: "../../builder-oapi.yaml#/components/examples/Bellatrix.SignedBlindedBeaconBlock"
capella:
$ref: "../../builder-oapi.yaml#/components/examples/Capella.SignedBlindedBeaconBlock"

responses:
"200":
Expand All @@ -34,14 +44,17 @@ post:
properties:
version:
type: string
enum: [ bellatrix ]
enum: [ bellatrix, capella ]
example: "bellatrix"
data:
oneOf:
- $ref: "../../builder-oapi.yaml#/components/schemas/Bellatrix.ExecutionPayload"
- $ref: "../../builder-oapi.yaml#/components/schemas/Capella.ExecutionPayload"
examples:
bellatrix:
$ref: "../../builder-oapi.yaml#/components/examples/Bellatrix.ExecutionPayload"
capella:
$ref: "../../builder-oapi.yaml#/components/examples/Capella.ExecutionPayload"
"400":
description: Error response.
content:
Expand Down
5 changes: 4 additions & 1 deletion apis/builder/header.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,14 +50,17 @@ get:
properties:
version:
type: string
enum: [ bellatrix ]
enum: [ bellatrix, capella ]
example: "bellatrix"
data:
oneOf:
- $ref: "../../builder-oapi.yaml#/components/schemas/Bellatrix.SignedBuilderBid"
- $ref: "../../builder-oapi.yaml#/components/schemas/Capella.SignedBuilderBid"
examples:
bellatrix:
$ref: "../../builder-oapi.yaml#/components/examples/Bellatrix.SignedBuilderBid"
capella:
$ref: "../../builder-oapi.yaml#/components/examples/Capella.SignedBuilderBid"
"204":
description: No header is available.
"400":
Expand Down
2 changes: 1 addition & 1 deletion beacon-apis
Submodule beacon-apis updated 96 files
+34 −1 .github/workflows/deploy.yaml
+2 −3 .github/workflows/main.yml
+1 −0 .gitignore
+8 −0 .redocly.yml
+0 −41 .spectral.yml
+51 −0 CHANGES.md
+5 −5 README.md
+11 −11 apis/beacon/blocks/attestations.yaml
+64 −0 apis/beacon/blocks/blinded_block.yaml
+7 −5 apis/beacon/blocks/blinded_blocks.yaml
+13 −12 apis/beacon/blocks/block.v2.yaml
+8 −10 apis/beacon/blocks/block.yaml
+14 −10 apis/beacon/blocks/blocks.yaml
+10 −10 apis/beacon/blocks/header.yaml
+7 −6 apis/beacon/blocks/headers.yaml
+10 −10 apis/beacon/blocks/root.yaml
+34 −0 apis/beacon/deposit_snapshot.yaml
+4 −5 apis/beacon/genesis.yaml
+65 −0 apis/beacon/light_client/bootstrap.yaml
+51 −0 apis/beacon/light_client/finality_update.yaml
+51 −0 apis/beacon/light_client/optimistic_update.yaml
+96 −0 apis/beacon/light_client/updates.yaml
+4 −5 apis/beacon/pool/attestations.yaml
+4 −5 apis/beacon/pool/attester_slashings.yaml
+48 −0 apis/beacon/pool/bls_to_execution_changes.yaml
+4 −5 apis/beacon/pool/proposer_slashings.yaml
+4 −5 apis/beacon/pool/voluntary_exists.yaml
+67 −0 apis/beacon/rewards/attestations.yaml
+52 −0 apis/beacon/rewards/blocks.yaml
+62 −0 apis/beacon/rewards/sync_committee.yaml
+8 −9 apis/beacon/states/committee.yaml
+10 −10 apis/beacon/states/finality_checkpoints.yaml
+10 −10 apis/beacon/states/fork.yaml
+69 −0 apis/beacon/states/randao.yaml
+7 −7 apis/beacon/states/root.yaml
+8 −9 apis/beacon/states/sync_committees.yaml
+6 −5 apis/beacon/states/validator.yaml
+6 −5 apis/beacon/states/validator_balances.yaml
+11 −12 apis/beacon/states/validators.yaml
+6 −6 apis/config/spec.yaml
+31 −0 apis/debug/fork_choice.yaml
+12 −11 apis/debug/state.v2.yaml
+0 −51 apis/debug/state.yaml
+22 −5 apis/eventstream/index.yaml
+9 −0 apis/node/health.yaml
+8 −10 apis/node/peer.yaml
+4 −1 apis/node/syncing.yaml
+6 −1 apis/validator/aggregate_attestation.yaml
+6 −1 apis/validator/attestation_data.yaml
+43 −0 apis/validator/beacon_committee_selections.yaml
+14 −1 apis/validator/blinded_block.yaml
+11 −1 apis/validator/block.v2.yaml
+0 −56 apis/validator/block.yaml
+5 −6 apis/validator/duties/attester.yaml
+4 −5 apis/validator/duties/proposer.yaml
+4 −5 apis/validator/duties/sync.yaml
+64 −0 apis/validator/liveness.yaml
+2 −2 apis/validator/prepare_beacon_proposer.yaml
+4 −4 apis/validator/register_validator.yaml
+6 −1 apis/validator/sync_committee_contribution.yaml
+41 −0 apis/validator/sync_committee_selections.yaml
+93 −13 beacon-node-oapi.yaml
+2 −91 dist/swagger-ui-bundle.js
+1 −1 dist/swagger-ui-bundle.js.map
+2 −21 dist/swagger-ui-standalone-preset.js
+1 −1 dist/swagger-ui-standalone-preset.js.map
+2 −2 dist/swagger-ui.css
+1 −1 dist/swagger-ui.css.map
+1 −8 dist/swagger-ui.js
+1 −1 dist/swagger-ui.js.map
+7 −11 index.html
+9 −0 params/index.yaml
+1 −2 types/altair/block.yaml
+77 −0 types/altair/light_client.yaml
+18 −35 types/altair/state.yaml
+1 −3 types/altair/sync_aggregate.yaml
+21 −2 types/api.yaml
+2 −5 types/attestation.yaml
+3 −4 types/bellatrix/block.yaml
+19 −36 types/bellatrix/state.yaml
+1 −2 types/bellatrix/transactions.yaml
+1 −2 types/block.yaml
+23 −0 types/bls_to_execution_change.yaml
+97 −0 types/capella/block.yaml
+54 −0 types/capella/execution_payload.yaml
+67 −0 types/capella/light_client.yaml
+88 −0 types/capella/state.yaml
+6 −0 types/capella/withdrawals.yaml
+35 −0 types/fork_choice.yaml
+44 −0 types/http.yaml
+1 −1 types/p2p.yaml
+26 −0 types/primitive.yaml
+124 −0 types/rewards.yaml
+35 −0 types/selection.yaml
+19 −37 types/state.yaml
+15 −0 types/withdrawal.yaml
14 changes: 12 additions & 2 deletions builder-oapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,17 @@ components:
$ref: "./beacon-apis/types/bellatrix/execution_payload.yaml#/Bellatrix/ExecutionPayload"
Bellatrix.SignedBlindedBeaconBlock:
$ref: "./beacon-apis/types/bellatrix/block.yaml#/Bellatrix/SignedBlindedBeaconBlock"

Bellatrix.SignedBuilderBid:
$ref: "./types/bellatrix/bid.yaml#/Bellatrix/SignedBuilderBid"
Capella.ExecutionPayload:
$ref: "./beacon-apis/types/capella/execution_payload.yaml#/Capella/ExecutionPayload"
Capella.SignedBlindedBeaconBlock:
$ref: "./beacon-apis/types/capella/block.yaml#/Capella/SignedBlindedBeaconBlock"
Capella.SignedBuilderBid:
$ref: "./types/capella/bid.yaml#/Capella/SignedBuilderBid"
SignedValidatorRegistration:
$ref: "./beacon-apis/types/registration.yaml#/SignedValidatorRegistration"


responses:
InternalError:
$ref: "./types/http.yaml#/InternalError"
Expand All @@ -79,3 +83,9 @@ components:
$ref: "./examples/bellatrix/execution_payload.json"
Bellatrix.SignedBuilderBid:
$ref: "./examples/bellatrix/signed_builder_bid.json"
Capella.SignedBlindedBeaconBlock:
$ref: "./examples/capella/signed_blinded_beacon_block.json"
Capella.ExecutionPayload:
$ref: "./examples/capella/execution_payload.json"
Capella.SignedBuilderBid:
$ref: "./examples/capella/signed_builder_bid.json"
38 changes: 35 additions & 3 deletions examples/bellatrix/signed_blinded_beacon_block.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"deposit_count": "1",
"block_hash": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"graffiti": "0xdeadbeefc0ffee",
"graffiti": "0xdeadbeefc0ffeedeadbeefc0ffeedeadbeefc0ffeedeadbeefc0ffeedeadbeef",
"proposer_slashings": [
{
"signed_header_1": {
Expand Down Expand Up @@ -101,7 +101,39 @@
"deposits": [
{
"proof": [
"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
"0xeeffb6c21a01d3abf09cd6c56e5d48f5ea0fc3bb0de906e3beea3e73776329cb",
"0x601c3b24a99d023224d50811bed19449890febb719a31d09ac414c4632f3c0ba",
"0xbb5e485e0a366e16510de33731d71204ad2fe0f7c600861fc2ac4685212c34e3",
"0x0006964745296a3e6ebf3954a1541e73205f1eefaddfc48ca9dc856bf159bca2",
"0x2c6020f1f9712b89f59550aec05b7c23cb1b113762399c0ca5b8fdd2fa85ce57",
"0x1c15634783e1d9d2cb969da66fd72cafca5026191d911b83211318d183c5ea59",
"0xdfbdf99a1fde57899df1545be1f91bc8a8a9f46c4bac619e28e92aff276de41f",
"0xfe9b0f0c05fde6bd26ce63d394058844ad4451f70b6d2547f49c5c2a5c7891a1",
"0x165f84ee467d18dbafdb07275dc42fb988ab696b0a7ad94c52f4d7a27144b994",
"0x506d86582d252405b840018792cad2bf1259f1ef5aa5f887e13cb2f0094f51e1",
"0xecdbe5e5056b968aa726a08f1aa33f5d41540eed42f59ace020431cf38a5144e",
"0xc4498c5eb1feeb0b225a3f332bdf523dbc013a5b336a851fce1c055b4019a457",
"0xb7d05f875f140027ef5118a2247bbb84ce8f2f0f1123623085daf7960c329f5f",
"0x8a9b66ad79116c9fc6eed14bde76e8f486669e59b0b5bb0c60a6b3caea38b83d",
"0x267c5455e4806b5d0ad5573552d0162e0983595bac25dacd9078174a2766643a",
"0x27e0c6357985de4d6026d6da14f31e8bfe14524056fec69dc06d6f8a239344af",
"0xf8455aebc24849bea870fbcef1235e2d27c8fd27db24e26d30d0173f3b207874",
"0xaba01bf7fe57be4373f47ff8ea6adc4348fab087b69b2518ce630820f95f4150",
"0xd47152335d9460f2b6fb7aba05ced32a52e9f46659ccd3daa2059661d75a6308",
"0xf893e908917775b62bff23294dbbe3a1cd8e6cc1c35b4801887b646a6f81f17f",
"0xcddba7b592e3133393c16194fac7431abf2f5485ed711db282183c819e08ebaa",
"0x8a8d7fe3af8caa085a7639a832001457dfb9128a8061142ad0335629ff23ff9c",
"0xfeb3c337d7a51a6fbf00b9e34c52e1c9195c969bd4e7a0bfd51d5c5bed9c1167",
"0xe71f0aa83cc32edfbefa9f4d3e0174ca85182eec9f3a09f6a6c0df6377a510d7",
"0x31206fa80a50bb6abe29085058f16212212a60eec8f049fecb92d8c8e0a84bc0",
"0x21352bfecbeddde993839f614c3dac0a3ee37543f9b412b16199dc158e23b544",
"0x619e312724bb6d7c3153ed9de791d764a366b389af13c58bf8a8d90481a46765",
"0x7cdd2986268250628d0c10e385c58c6191e6fbe05191bcc04f133f2cea72c1c4",
"0x848930bd7ba8cac54661072113fb278869e07bb8587f91392933374d017bcbe1",
"0x8869ff2c22b28cc10510d9853292803328be4fb0e80495e8bb8d271f5b889636",
"0xb5fe28e79f1b850f8658246ce9b6a1e7b49fc06db7143e8fe0b4f2b0c5523a5c",
"0x985e929f70af28d0bdd1a90a808f977f597c7c778c489e98d3bd8910d31ac0f7",
"0xf7ed070000000000000000000000000000000000000000000000000000000000"
],
"data": {
"pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
Expand Down Expand Up @@ -144,4 +176,4 @@
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
}
31 changes: 31 additions & 0 deletions examples/capella/execution_payload.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"value": {
"version": "capella",
"data": {
"parent_hash": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"fee_recipient": "0xabcf8e0d4e9587369b2301d0790347320302cc09",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"receipts_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"logs_bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"prev_randao": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"block_number": "1",
"gas_limit": "1",
"gas_used": "1",
"timestamp": "1",
"extra_data": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"base_fee_per_gas": "1",
"block_hash": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"transactions": [
"0x02f878831469668303f51d843b9ac9f9843b9aca0082520894c93269b73096998db66be0441e836d873535cb9c8894a19041886f000080c001a031cc29234036afbf9a1fb9476b463367cb1f957ac0b919b69bbc798436e604aaa018c4e9c3914eb27aadd0b91e10b18655739fcf8c1fc398763a9f1beecb8ddc86"
],
"withdrawals": [
{
"index": "1",
"validator_index": "1",
"address": "0xabcf8e0d4e9587369b2301d0790347320302cc09",
"amount": "32000000000"
}
]
}
}
}
Loading

0 comments on commit a1787c6

Please sign in to comment.