@@ -16,15 +16,18 @@ use axum::{
1616} ;
1717use 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} ;
2729use cb_pbs:: MAX_SIZE_SUBMIT_BLOCK_RESPONSE ;
30+ use lh_types:: KzgProof ;
2831use tokio:: net:: TcpListener ;
2932use tracing:: debug;
3033use 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 }
0 commit comments