Skip to content

Commit

Permalink
Define electra types and apis (#105)
Browse files Browse the repository at this point in the history
* Define types and apis

* Add examples

* address comment from @ralexstokes and @nflaig

* Update submodule commit
  • Loading branch information
ensi321 authored Oct 10, 2024
1 parent 91e2916 commit 5cb324e
Show file tree
Hide file tree
Showing 7 changed files with 329 additions and 3 deletions.
7 changes: 6 additions & 1 deletion apis/builder/blinded_blocks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,16 @@ post:
- $ref: "../../builder-oapi.yaml#/components/schemas/Bellatrix.SignedBlindedBeaconBlock"
- $ref: "../../builder-oapi.yaml#/components/schemas/Capella.SignedBlindedBeaconBlock"
- $ref: "../../builder-oapi.yaml#/components/schemas/Deneb.SignedBlindedBeaconBlock"
- $ref: "../../builder-oapi.yaml#/components/schemas/Electra.SignedBlindedBeaconBlock"
examples:
bellatrix:
$ref: "../../builder-oapi.yaml#/components/examples/Bellatrix.SignedBlindedBeaconBlock"
capella:
$ref: "../../builder-oapi.yaml#/components/examples/Capella.SignedBlindedBeaconBlock"
deneb:
$ref: "../../builder-oapi.yaml#/components/examples/Deneb.SignedBlindedBeaconBlock"
electra:
$ref: "../../builder-oapi.yaml#/components/examples/Electra.SignedBlindedBeaconBlock"

responses:
"200":
Expand All @@ -50,7 +53,7 @@ post:
properties:
version:
type: string
enum: [ bellatrix, capella, deneb ]
enum: [ bellatrix, capella, deneb, electra ]
example: "bellatrix"
data:
anyOf:
Expand All @@ -64,6 +67,8 @@ post:
$ref: "../../builder-oapi.yaml#/components/examples/Capella.ExecutionPayload"
deneb:
$ref: "../../builder-oapi.yaml#/components/examples/Deneb.ExecutionPayloadAndBlobsBundle"
electra:
$ref: "../../builder-oapi.yaml#/components/examples/Deneb.ExecutionPayloadAndBlobsBundle"
"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 @@ -44,20 +44,23 @@ get:
properties:
version:
type: string
enum: [ bellatrix, capella, deneb ]
enum: [ bellatrix, capella, deneb, electra ]
example: "bellatrix"
data:
anyOf:
- $ref: "../../builder-oapi.yaml#/components/schemas/Bellatrix.SignedBuilderBid"
- $ref: "../../builder-oapi.yaml#/components/schemas/Capella.SignedBuilderBid"
- $ref: "../../builder-oapi.yaml#/components/schemas/Deneb.SignedBuilderBid"
- $ref: "../../builder-oapi.yaml#/components/schemas/Electra.SignedBuilderBid"
examples:
bellatrix:
$ref: "../../builder-oapi.yaml#/components/examples/Bellatrix.SignedBuilderBid"
capella:
$ref: "../../builder-oapi.yaml#/components/examples/Capella.SignedBuilderBid"
deneb:
$ref: "../../builder-oapi.yaml#/components/examples/Deneb.SignedBuilderBid"
electra:
$ref: "../../builder-oapi.yaml#/components/examples/Electra.SignedBuilderBid"
"204":
description: No header is available.
"400":
Expand Down
2 changes: 1 addition & 1 deletion beacon-apis
Submodule beacon-apis updated 69 files
+13 −0 .github/changes-template.md
+7 −7 .github/workflows/deploy.yaml
+13 −8 .github/workflows/main.yml
+51 −0 .github/workflows/pre-release.yaml
+42 −31 .github/workflows/release.yaml
+10 −4 .github/workflows/spellcheck.yml
+53 −22 CHANGES.md
+17 −10 README.md
+14 −0 apis/beacon/blob_sidecars/blob_sidecars.yaml
+61 −0 apis/beacon/blocks/attestations.v2.yaml
+1 −0 apis/beacon/blocks/attestations.yaml
+5 −2 apis/beacon/blocks/blinded_block.yaml
+3 −2 apis/beacon/blocks/blinded_blocks.v2.yaml
+4 −2 apis/beacon/blocks/blinded_blocks.yaml
+5 −3 apis/beacon/blocks/block.v2.yaml
+0 −56 apis/beacon/blocks/block.yaml
+3 −2 apis/beacon/blocks/blocks.v2.yaml
+4 −2 apis/beacon/blocks/blocks.yaml
+3 −1 apis/beacon/deposit_snapshot.yaml
+4 −9 apis/beacon/light_client/bootstrap.yaml
+4 −9 apis/beacon/light_client/finality_update.yaml
+4 −9 apis/beacon/light_client/optimistic_update.yaml
+7 −10 apis/beacon/light_client/updates.yaml
+96 −0 apis/beacon/pool/attestations.v2.yaml
+2 −0 apis/beacon/pool/attestations.yaml
+69 −0 apis/beacon/pool/attester_slashings.v2.yaml
+2 −0 apis/beacon/pool/attester_slashings.yaml
+0 −0 apis/beacon/pool/voluntary_exits.yaml
+0 −1 apis/beacon/rewards/attestations.yaml
+0 −1 apis/beacon/rewards/blocks.yaml
+0 −1 apis/beacon/rewards/sync_committee.yaml
+5 −2 apis/beacon/states/validator_balances.yaml
+71 −0 apis/beacon/states/validator_identities.yaml
+2 −0 apis/builder/states/expected_withdrawals.yaml
+5 −2 apis/debug/state.v2.yaml
+8 −2 apis/eventstream/index.yaml
+1 −1 apis/node/health.yaml
+33 −0 apis/validator/aggregate_and_proofs.v2.yaml
+1 −0 apis/validator/aggregate_and_proofs.yaml
+59 −0 apis/validator/aggregate_attestation.v2.yaml
+1 −0 apis/validator/aggregate_attestation.yaml
+6 −10 apis/validator/blinded_block.yaml
+6 −10 apis/validator/block.v2.yaml
+11 −15 apis/validator/block.v3.yaml
+1 −3 apis/validator/register_validator.yaml
+3 −0 apis/validator/sync_committee_contribution.yaml
+68 −10 beacon-node-oapi.yaml
+1 −3 index.html
+12 −0 params/index.yaml
+16 −2 types/api.yaml
+7 −23 types/attestation.yaml
+16 −0 types/attestation_data.yaml
+4 −4 types/deneb/block.yaml
+2 −2 types/deneb/execution_payload.yaml
+64 −0 types/deneb/light_client.yaml
+35 −0 types/electra/attestation.yaml
+10 −0 types/electra/attester_slashing.yaml
+108 −0 types/electra/block.yaml
+24 −0 types/electra/block_contents.yaml
+27 −0 types/electra/consolidation.yaml
+40 −0 types/electra/deposit.yaml
+21 −0 types/electra/execution_requests.yaml
+75 −0 types/electra/light_client.yaml
+121 −0 types/electra/state.yaml
+29 −0 types/electra/validator.yaml
+30 −0 types/electra/withdrawal.yaml
+25 −2 types/http.yaml
+3 −3 types/primitive.yaml
+1 −0 wordlist.txt
8 changes: 8 additions & 0 deletions builder-oapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,10 @@ components:
$ref: "./types/deneb/execution_payload_and_blobs_bundle.yaml#/Deneb/ExecutionPayloadAndBlobsBundle"
SignedValidatorRegistration:
$ref: "./beacon-apis/types/registration.yaml#/SignedValidatorRegistration"
Electra.SignedBlindedBeaconBlock:
$ref: "./beacon-apis/types/electra/block.yaml#/Electra/SignedBlindedBeaconBlock"
Electra.SignedBuilderBid:
$ref: "./types/electra/bid.yaml#/Electra/SignedBuilderBid"

responses:
InternalError:
Expand All @@ -101,3 +105,7 @@ components:
$ref: "./examples/deneb/execution_payload_and_blobs_bundle.json"
Deneb.SignedBuilderBid:
$ref: "./examples/deneb/signed_builder_bid.json"
Electra.SignedBlindedBeaconBlock:
$ref: "./examples/electra/signed_blinded_beacon_block.json"
Electra.SignedBuilderBid:
$ref: "./examples/electra/signed_builder_bid.json"
220 changes: 220 additions & 0 deletions examples/electra/signed_blinded_beacon_block.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,220 @@
{
"value": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body": {
"randao_reveal": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"eth1_data": {
"deposit_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"deposit_count": "1",
"block_hash": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"graffiti": "0xdeadbeefc0ffeedeadbeefc0ffeedeadbeefc0ffeedeadbeefc0ffeedeadbeef",
"proposer_slashings": [
{
"signed_header_1": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
},
"signed_header_2": {
"message": {
"slot": "1",
"proposer_index": "1",
"parent_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"state_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"body_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
],
"attester_slashings": [
{
"attestation_1": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
},
"attestation_2": {
"attesting_indices": [
"1"
],
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
}
],
"attestations": [
{
"aggregation_bits": "0x01",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"data": {
"slot": "1",
"index": "1",
"beacon_block_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"source": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"target": {
"epoch": "1",
"root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
}
}
}
],
"deposits": [
{
"proof": [
"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",
"withdrawal_credentials": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"amount": "1",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
],
"voluntary_exits": [
{
"message": {
"epoch": "1",
"validator_index": "1"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
],
"sync_aggregate": {
"sync_committee_bits": "0x01",
"sync_committee_signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
},
"execution_payload_header": {
"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",
"blob_gas_used": "1",
"excess_blob_gas": "1",
"block_hash": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"transactions_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"withdrawals_root": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2"
},
"bls_to_execution_changes": [
{
"message": {
"validator_index": "1",
"from_bls_pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
"to_execution_address": "0xabcf8e0d4e9587369b2301d0790347320302cc09"
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
],
"blob_kzg_commitments": [
"0xa94170080872584e54a1cf092d845703b13907f2e6b3b1c0ad573b910530499e3bcd48c6378846b80d2bfa58c81cf3d5"
],
"execution_requests": {
"deposits": [
{
"pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
"withdrawal_credentials": "0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884560367e8208d920f2",
"amount": "1",
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505",
"index": "1",
}
],
"withdrawals": [
{
"source_address": "0xabcf8e0d4e9587369b2301d0790347320302cc09",
"validator_pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
"amount": "1",
}
],
"consolidations": [
{
"source_address": "0xabcf8e0d4e9587369b2301d0790347320302cc09",
"source_pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
"target_pubkey": "0x93247f2209abcacf57b75a51dafae777f9dd38bc7053d1af526f220a7489a6d3a2753e5f3e8b1cfe39b56f43611df74a",
}
]
}
}
},
"signature": "0x1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505cc411d61252fb6cb3fa0017b679f8bb2305b26a285fa2737f175668d0dff91cc1b66ac1fb663c9bc59509846d6ec05345bd908eda73e670af888da41af171505"
}
}
Loading

0 comments on commit 5cb324e

Please sign in to comment.