mirror of
https://github.com/sigp/lighthouse.git
synced 2026-05-31 05:07:12 +00:00
Use SignedExecutionPayloadBid directly in pending payload cache
- Replace the `PendingPayloadBid` projection (slot + blob_kzg_commitments) with `Arc<SignedExecutionPayloadBid<E>>`. Cloning becomes a cheap Arc bump and the bid carries enough context for future bid<->envelope cross-checks. Add a `signed_payload_bid_from_block` helper. - `PendingColumn` switches from a pre-sized `Vec<Option<_>>` to a sparse `HashMap<usize, _>`; the `new_with_capacity(num_blobs)` constructor is gone since callers no longer need to know the blob count up front. - `PendingComponents::merge_data_columns` takes a slice instead of an owning iterator (it only borrows + clones cells). - Store `block_root` in `PendingComponents` so `make_available` and `get_cached_data_columns` no longer require it as an argument (the arg was misnamed `block_hash` in `make_available`). - Rename `PendingComponents::empty` -> `new`; it is the only constructor.
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
use beacon_chain::blob_verification::GossipVerifiedBlob;
|
||||
use beacon_chain::data_column_verification::GossipVerifiedDataColumn;
|
||||
use beacon_chain::pending_payload_cache::PendingPayloadBid;
|
||||
use beacon_chain::test_utils::{
|
||||
BeaconChainHarness, fork_name_from_env, generate_data_column_sidecars_from_block, test_spec,
|
||||
};
|
||||
@@ -12,8 +11,8 @@ use types::data::FixedBlobSidecarList;
|
||||
use types::test_utils::TestRandom;
|
||||
use types::{
|
||||
BlobSidecar, DataColumnSidecar, DataColumnSidecarFulu, DataColumnSidecarGloas, Domain, EthSpec,
|
||||
KzgCommitments, MinimalEthSpec, PayloadAttestationData, PayloadAttestationMessage, SignedRoot,
|
||||
Slot,
|
||||
MinimalEthSpec, PayloadAttestationData, PayloadAttestationMessage, SignedExecutionPayloadBid,
|
||||
SignedRoot, Slot,
|
||||
};
|
||||
|
||||
type E = MinimalEthSpec;
|
||||
@@ -88,13 +87,12 @@ async fn data_column_sidecar_event_on_process_gossip_data_column() {
|
||||
random_sidecar.index = harness.chain.sampling_columns_for_epoch(epoch)[0];
|
||||
|
||||
// For gloas, the bid must be known, e.g. in the pending payload cache
|
||||
harness.chain.pending_payload_cache.init_pending_bid(
|
||||
random_sidecar.beacon_block_root,
|
||||
PendingPayloadBid {
|
||||
slot: Slot::new(10),
|
||||
blob_kzg_commitments: KzgCommitments::<E>::empty(),
|
||||
},
|
||||
);
|
||||
let mut bid = SignedExecutionPayloadBid::<E>::empty();
|
||||
bid.message.slot = Slot::new(10);
|
||||
harness
|
||||
.chain
|
||||
.pending_payload_cache
|
||||
.init_pending_bid(random_sidecar.beacon_block_root, Arc::new(bid));
|
||||
|
||||
DataColumnSidecar::Gloas(random_sidecar)
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user