Merge branch 'gloas-move-commitments-to-bid' into unstable

This commit is contained in:
Eitan Seri- Levi
2026-02-02 20:09:01 -08:00
12 changed files with 53 additions and 31 deletions

View File

@@ -167,7 +167,7 @@ pub struct BeaconBlockBody<E: EthSpec, Payload: AbstractExecPayload<E> = FullPay
#[superstruct(only(Electra, Fulu))]
pub execution_requests: ExecutionRequests<E>,
#[superstruct(only(Gloas))]
pub signed_execution_payload_bid: SignedExecutionPayloadBid,
pub signed_execution_payload_bid: SignedExecutionPayloadBid<E>,
#[superstruct(only(Gloas))]
pub payload_attestations: VariableList<PayloadAttestation<E>, E::MaxPayloadAttestations>,
#[superstruct(only(Base, Altair, Gloas))]

View File

@@ -1,5 +1,6 @@
use crate::kzg_ext::KzgCommitments;
use crate::test_utils::TestRandom;
use crate::{Address, ExecutionBlockHash, ForkName, Hash256, SignedRoot, Slot};
use crate::{Address, EthSpec, ExecutionBlockHash, ForkName, Hash256, SignedRoot, Slot};
use context_deserialize::context_deserialize;
use educe::Educe;
use serde::{Deserialize, Serialize};
@@ -10,11 +11,16 @@ use tree_hash_derive::TreeHash;
#[derive(
Default, Debug, Clone, Serialize, Encode, Decode, Deserialize, TreeHash, Educe, TestRandom,
)]
#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
#[cfg_attr(
feature = "arbitrary",
derive(arbitrary::Arbitrary),
arbitrary(bound = "E: EthSpec")
)]
#[educe(PartialEq, Hash)]
#[serde(bound = "E: EthSpec")]
#[context_deserialize(ForkName)]
// https://github.com/ethereum/consensus-specs/blob/master/specs/gloas/beacon-chain.md#executionpayloadbid
pub struct ExecutionPayloadBid {
pub struct ExecutionPayloadBid<E: EthSpec> {
pub parent_block_hash: ExecutionBlockHash,
pub parent_block_root: Hash256,
pub block_hash: ExecutionBlockHash,
@@ -30,14 +36,15 @@ pub struct ExecutionPayloadBid {
pub value: u64,
#[serde(with = "serde_utils::quoted_u64")]
pub execution_payment: u64,
pub blob_kzg_commitments_root: Hash256,
pub blob_kzg_commitments: KzgCommitments<E>,
}
impl SignedRoot for ExecutionPayloadBid {}
impl<E: EthSpec> SignedRoot for ExecutionPayloadBid<E> {}
#[cfg(test)]
mod tests {
use super::*;
use crate::MainnetEthSpec;
ssz_and_tree_hash_tests!(ExecutionPayloadBid);
ssz_and_tree_hash_tests!(ExecutionPayloadBid<MainnetEthSpec>);
}

View File

@@ -1,8 +1,6 @@
use crate::execution::{ExecutionPayloadGloas, ExecutionRequests};
use crate::test_utils::TestRandom;
use crate::{
EthSpec, ExecutionPayloadGloas, ExecutionRequests, ForkName, Hash256, KzgCommitments,
SignedRoot, Slot,
};
use crate::{EthSpec, ForkName, Hash256, SignedRoot, Slot};
use context_deserialize::context_deserialize;
use educe::Educe;
use serde::{Deserialize, Serialize};
@@ -21,7 +19,6 @@ pub struct ExecutionPayloadEnvelope<E: EthSpec> {
pub builder_index: u64,
pub beacon_block_root: Hash256,
pub slot: Slot,
pub blob_kzg_commitments: KzgCommitments<E>,
pub state_root: Hash256,
}

View File

@@ -1,5 +1,6 @@
use crate::execution::ExecutionPayloadBid;
use crate::test_utils::TestRandom;
use crate::{ExecutionPayloadBid, ForkName};
use crate::{EthSpec, ForkName};
use bls::Signature;
use context_deserialize::context_deserialize;
use educe::Educe;
@@ -9,16 +10,21 @@ use test_random_derive::TestRandom;
use tree_hash_derive::TreeHash;
#[derive(TestRandom, TreeHash, Debug, Clone, Encode, Decode, Serialize, Deserialize, Educe)]
#[cfg_attr(feature = "arbitrary", derive(arbitrary::Arbitrary))]
#[cfg_attr(
feature = "arbitrary",
derive(arbitrary::Arbitrary),
arbitrary(bound = "E: EthSpec")
)]
#[educe(PartialEq, Hash)]
#[serde(bound = "E: EthSpec")]
#[context_deserialize(ForkName)]
// https://github.com/ethereum/consensus-specs/blob/master/specs/gloas/beacon-chain.md#signedexecutionpayloadbid
pub struct SignedExecutionPayloadBid {
pub message: ExecutionPayloadBid,
pub struct SignedExecutionPayloadBid<E: EthSpec> {
pub message: ExecutionPayloadBid<E>,
pub signature: Signature,
}
impl SignedExecutionPayloadBid {
impl<E: EthSpec> SignedExecutionPayloadBid<E> {
pub fn empty() -> Self {
Self {
message: ExecutionPayloadBid::default(),
@@ -30,6 +36,7 @@ impl SignedExecutionPayloadBid {
#[cfg(test)]
mod tests {
use super::*;
use crate::MainnetEthSpec;
ssz_and_tree_hash_tests!(SignedExecutionPayloadBid);
ssz_and_tree_hash_tests!(SignedExecutionPayloadBid<MainnetEthSpec>);
}

View File

@@ -547,7 +547,7 @@ where
pub latest_execution_payload_header: ExecutionPayloadHeaderFulu<E>,
#[superstruct(only(Gloas))]
#[metastruct(exclude_from(tree_lists))]
pub latest_execution_payload_bid: ExecutionPayloadBid,
pub latest_execution_payload_bid: ExecutionPayloadBid<E>,
#[superstruct(only(Capella, Deneb, Electra, Fulu, Gloas), partial_getter(copy))]
#[serde(with = "serde_utils::quoted_u64")]
#[metastruct(exclude_from(tree_lists))]