Skip to content

Commit 54016ef

Browse files
committed
fix test
1 parent efef826 commit 54016ef

File tree

6 files changed

+69
-36
lines changed

6 files changed

+69
-36
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/common/src/pbs/types/mod.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,23 @@ pub type PayloadAndBlobs = lh_eth2::types::ExecutionPayloadAndBlobs<MainnetEthSp
2323
pub type SubmitBlindedBlockResponse = lh_types::ForkVersionedResponse<PayloadAndBlobs>;
2424

2525
pub type ExecutionPayloadHeader = lh_types::ExecutionPayloadHeader<MainnetEthSpec>;
26+
pub type ExecutionPayloadHeaderElectra = lh_types::ExecutionPayloadHeaderElectra<MainnetEthSpec>;
27+
pub type ExecutionPayloadHeaderFulu = lh_types::ExecutionPayloadHeaderFulu<MainnetEthSpec>;
2628
pub type ExecutionPayloadHeaderRef<'a> = lh_types::ExecutionPayloadHeaderRef<'a, MainnetEthSpec>;
2729
pub type ExecutionPayload = lh_types::ExecutionPayload<MainnetEthSpec>;
2830
pub type ExecutionPayloadElectra = lh_types::ExecutionPayloadElectra<MainnetEthSpec>;
2931
pub type ExecutionPayloadFulu = lh_types::ExecutionPayloadFulu<MainnetEthSpec>;
3032
pub type SignedBuilderBid = lh_types::builder_bid::SignedBuilderBid<MainnetEthSpec>;
33+
pub type BuilderBid = lh_types::builder_bid::BuilderBid<MainnetEthSpec>;
34+
pub type BuilderBidElectra = lh_types::builder_bid::BuilderBidElectra<MainnetEthSpec>;
3135

3236
/// Response object of GET
3337
/// `/eth/v1/builder/header/{slot}/{parent_hash}/{pubkey}`
3438
pub type GetHeaderResponse = lh_types::ForkVersionedResponse<SignedBuilderBid>;
3539

36-
pub use lh_types::ForkVersionedResponse;
40+
pub use lh_types::{ForkName, ForkVersionedResponse};
41+
42+
pub type ExecutionRequests = lh_types::execution_requests::ExecutionRequests<MainnetEthSpec>;
3743

3844
/// Response params of GET
3945
/// `/eth/v1/builder/header/{slot}/{parent_hash}/{pubkey}`

tests/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ cb-common.workspace = true
1111
cb-pbs.workspace = true
1212
cb-signer.workspace = true
1313
eyre.workspace = true
14+
lh_types.workspace = true
1415
reqwest.workspace = true
1516
serde_json.workspace = true
1617
tempfile.workspace = true

tests/src/mock_relay.rs

Lines changed: 42 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,18 @@ use axum::{
1616
};
1717
use cb_common::{
1818
pbs::{
19-
BUILDER_V1_API_PATH, BUILDER_V2_API_PATH, BlindedBeaconBlock, GET_HEADER_PATH,
20-
GET_STATUS_PATH, GetHeaderParams, GetHeaderResponse, REGISTER_VALIDATOR_PATH,
21-
SUBMIT_BLOCK_PATH, SignedBlindedBeaconBlock, SubmitBlindedBlockResponse,
19+
BUILDER_V1_API_PATH, BUILDER_V2_API_PATH, BlobsBundle, BuilderBid, BuilderBidElectra,
20+
ExecutionPayloadElectra, ExecutionPayloadHeaderElectra, ExecutionRequests, ForkName,
21+
GET_HEADER_PATH, GET_STATUS_PATH, GetHeaderParams, GetHeaderResponse, GetPyloadInfo,
22+
PayloadAndBlobs, REGISTER_VALIDATOR_PATH, SUBMIT_BLOCK_PATH, SignedBlindedBeaconBlock,
23+
SignedBuilderBid, SubmitBlindedBlockResponse,
2224
},
2325
signature::sign_builder_root,
2426
types::{BlsSecretKey, Chain},
25-
utils::timestamp_of_slot_start_sec,
27+
utils::{TestRandomSeed, timestamp_of_slot_start_sec},
2628
};
2729
use cb_pbs::MAX_SIZE_SUBMIT_BLOCK_RESPONSE;
30+
use lh_types::KzgProof;
2831
use tokio::net::TcpListener;
2932
use tracing::debug;
3033
use tree_hash::TreeHash;
@@ -110,25 +113,32 @@ async fn handle_get_header(
110113
) -> Response {
111114
state.received_get_header.fetch_add(1, Ordering::Relaxed);
112115

113-
let mut message = ExecutionPayloadHeaderMessageElectra {
114-
header: Default::default(),
115-
blob_kzg_commitments: Default::default(),
116-
execution_requests: ExecutionRequests::default(),
117-
value: Default::default(),
118-
pubkey: state.signer.public_key(),
116+
let mut header = ExecutionPayloadHeaderElectra {
117+
parent_hash: parent_hash.into(),
118+
block_hash: Default::default(),
119+
timestamp: timestamp_of_slot_start_sec(0, state.chain),
120+
..ExecutionPayloadHeaderElectra::test_random()
119121
};
120122

121-
message.header.parent_hash = parent_hash;
122-
message.header.block_hash.0[0] = 1;
123-
message.value = U256::from(10);
124-
message.pubkey = state.signer.public_key();
125-
message.header.timestamp = timestamp_of_slot_start_sec(0, state.chain);
123+
header.block_hash.0[0] = 1;
124+
125+
let message = BuilderBid::Electra(BuilderBidElectra {
126+
header,
127+
blob_kzg_commitments: Default::default(),
128+
execution_requests: ExecutionRequests::default(),
129+
value: U256::from(10),
130+
pubkey: state.signer.public_key().into(),
131+
});
126132

127133
let object_root = message.tree_hash_root();
128134
let signature = sign_builder_root(state.chain, &state.signer, object_root);
129-
let response = SignedExecutionPayloadHeader { message, signature };
135+
let response = SignedBuilderBid { message, signature };
130136

131-
let response = GetHeaderResponse::Electra(response);
137+
let response = GetHeaderResponse {
138+
version: ForkName::Electra,
139+
data: response,
140+
metadata: Default::default(),
141+
};
132142
(StatusCode::OK, Json(response)).into_response()
133143
}
134144

@@ -159,16 +169,24 @@ async fn handle_submit_block_v1(
159169
if state.large_body() {
160170
(StatusCode::OK, Json(vec![1u8; 1 + MAX_SIZE_SUBMIT_BLOCK_RESPONSE])).into_response()
161171
} else {
162-
let VersionedResponse::Electra(mut response) = SubmitBlindedBlockResponse::default();
163-
response.execution_payload.block_hash = submit_block.block_hash();
172+
let mut execution_payload = ExecutionPayloadElectra::test_random();
173+
execution_payload.block_hash = submit_block.block_hash().into();
174+
175+
let mut blobs_bundle = BlobsBundle::default();
164176

165-
let BlindedBeaconBlock::Electra(body) = submit_block.message;
177+
blobs_bundle.blobs.push(Default::default()).unwrap();
178+
blobs_bundle.commitments =
179+
submit_block.as_electra().unwrap().message.body.blob_kzg_commitments.clone();
180+
blobs_bundle.proofs.push(KzgProof([0; 48])).unwrap();
166181

167-
response.blobs_bundle.blobs.push(Default::default()).unwrap();
168-
response.blobs_bundle.commitments = body.body.blob_kzg_commitments;
169-
response.blobs_bundle.proofs.push(KzgProof([0; 48])).unwrap();
182+
let response =
183+
PayloadAndBlobs { execution_payload: execution_payload.into(), blobs_bundle };
170184

171-
let response = VersionedResponse::Electra(response);
185+
let response = SubmitBlindedBlockResponse {
186+
version: ForkName::Electra,
187+
metadata: Default::default(),
188+
data: response,
189+
};
172190

173191
(StatusCode::OK, Json(response)).into_response()
174192
}

tests/tests/pbs_get_header.rs

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@ use std::{sync::Arc, time::Duration};
22

33
use alloy::primitives::{B256, U256};
44
use cb_common::{
5-
pbs::GetHeaderResponse, signature::sign_builder_root, signer::random_secret, types::Chain,
5+
pbs::GetHeaderResponse,
6+
signature::sign_builder_root,
7+
signer::random_secret,
8+
types::{BlsPublicKeyBytes, Chain},
69
utils::timestamp_of_slot_start_sec,
710
};
811
use cb_pbs::{DefaultBuilderApi, PbsService, PbsState};
@@ -12,6 +15,7 @@ use cb_tests::{
1215
utils::{generate_mock_relay, get_pbs_static_config, setup_test_env, to_pbs_config},
1316
};
1417
use eyre::Result;
18+
use lh_types::ForkName;
1519
use reqwest::StatusCode;
1620
use tracing::info;
1721
use tree_hash::TreeHash;
@@ -45,17 +49,17 @@ async fn test_get_header() -> Result<()> {
4549
assert_eq!(res.status(), StatusCode::OK);
4650

4751
let res = serde_json::from_slice::<GetHeaderResponse>(&res.bytes().await?)?;
48-
let GetHeaderResponse::Electra(res) = res;
4952

5053
assert_eq!(mock_state.received_get_header(), 1);
51-
assert_eq!(res.message.header.block_hash.0[0], 1);
52-
assert_eq!(res.message.header.parent_hash, B256::ZERO);
53-
assert_eq!(res.message.value, U256::from(10));
54-
assert_eq!(res.message.pubkey, mock_state.signer.public_key());
55-
assert_eq!(res.message.header.timestamp, timestamp_of_slot_start_sec(0, chain));
54+
assert_eq!(res.version, ForkName::Electra);
55+
assert_eq!(res.data.message.header().block_hash().0[0], 1);
56+
assert_eq!(res.data.message.header().parent_hash().0, B256::ZERO);
57+
assert_eq!(*res.data.message.value(), U256::from(10));
58+
assert_eq!(*res.data.message.pubkey(), BlsPublicKeyBytes::from(mock_state.signer.public_key()));
59+
assert_eq!(res.data.message.header().timestamp(), timestamp_of_slot_start_sec(0, chain));
5660
assert_eq!(
57-
res.signature,
58-
sign_builder_root(chain, &mock_state.signer, res.message.tree_hash_root())
61+
res.data.signature,
62+
sign_builder_root(chain, &mock_state.signer, res.data.message.tree_hash_root())
5963
);
6064
Ok(())
6165
}

tests/tests/pbs_post_blinded_blocks.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::{sync::Arc, time::Duration};
22

33
use cb_common::{
4-
pbs::{BuilderApiVersion, SubmitBlindedBlockResponse},
4+
pbs::{BuilderApiVersion, GetPyloadInfo, SubmitBlindedBlockResponse},
55
signer::random_secret,
66
types::Chain,
77
};
@@ -23,7 +23,10 @@ async fn test_submit_block_v1() -> Result<()> {
2323
let signed_blinded_block = load_test_signed_blinded_block();
2424

2525
let response_body = serde_json::from_slice::<SubmitBlindedBlockResponse>(&res.bytes().await?)?;
26-
assert_eq!(response_body.block_hash(), signed_blinded_block.block_hash());
26+
assert_eq!(
27+
response_body.data.execution_payload.block_hash(),
28+
signed_blinded_block.block_hash().into()
29+
);
2730
Ok(())
2831
}
2932

0 commit comments

Comments
 (0)