@@ -60,26 +60,27 @@ type payloadAttributesMarshaling struct {
6060
6161// ExecutableData is the data necessary to execute an EL payload.
6262type ExecutableData struct {
63- ParentHash common.Hash `json:"parentHash" gencodec:"required"`
64- FeeRecipient common.Address `json:"feeRecipient" gencodec:"required"`
65- StateRoot common.Hash `json:"stateRoot" gencodec:"required"`
66- ReceiptsRoot common.Hash `json:"receiptsRoot" gencodec:"required"`
67- LogsBloom []byte `json:"logsBloom" gencodec:"required"`
68- Random common.Hash `json:"prevRandao" gencodec:"required"`
69- Number uint64 `json:"blockNumber" gencodec:"required"`
70- GasLimit uint64 `json:"gasLimit" gencodec:"required"`
71- GasUsed uint64 `json:"gasUsed" gencodec:"required"`
72- Timestamp uint64 `json:"timestamp" gencodec:"required"`
73- ExtraData []byte `json:"extraData" gencodec:"required"`
74- BaseFeePerGas * big.Int `json:"baseFeePerGas" gencodec:"required"`
75- BlockHash common.Hash `json:"blockHash" gencodec:"required"`
76- Transactions [][]byte `json:"transactions" gencodec:"required"`
77- Withdrawals []* types.Withdrawal `json:"withdrawals"`
78- BlobGasUsed * uint64 `json:"blobGasUsed"`
79- ExcessBlobGas * uint64 `json:"excessBlobGas"`
80- Deposits types.Deposits `json:"depositRequests"`
81- WithdrawalRequests types.WithdrawalRequests `json:"withdrawalRequests"`
82- ExecutionWitness * types.ExecutionWitness `json:"executionWitness,omitempty"`
63+ ParentHash common.Hash `json:"parentHash" gencodec:"required"`
64+ FeeRecipient common.Address `json:"feeRecipient" gencodec:"required"`
65+ StateRoot common.Hash `json:"stateRoot" gencodec:"required"`
66+ ReceiptsRoot common.Hash `json:"receiptsRoot" gencodec:"required"`
67+ LogsBloom []byte `json:"logsBloom" gencodec:"required"`
68+ Random common.Hash `json:"prevRandao" gencodec:"required"`
69+ Number uint64 `json:"blockNumber" gencodec:"required"`
70+ GasLimit uint64 `json:"gasLimit" gencodec:"required"`
71+ GasUsed uint64 `json:"gasUsed" gencodec:"required"`
72+ Timestamp uint64 `json:"timestamp" gencodec:"required"`
73+ ExtraData []byte `json:"extraData" gencodec:"required"`
74+ BaseFeePerGas * big.Int `json:"baseFeePerGas" gencodec:"required"`
75+ BlockHash common.Hash `json:"blockHash" gencodec:"required"`
76+ Transactions [][]byte `json:"transactions" gencodec:"required"`
77+ Withdrawals []* types.Withdrawal `json:"withdrawals"`
78+ BlobGasUsed * uint64 `json:"blobGasUsed"`
79+ ExcessBlobGas * uint64 `json:"excessBlobGas"`
80+ Deposits types.Deposits `json:"depositRequests"`
81+ WithdrawalRequests types.WithdrawalRequests `json:"withdrawalRequests"`
82+ ConsolidationRequests types.ConsolidationRequests `json:"consolidationRequests"`
83+ ExecutionWitness * types.ExecutionWitness `json:"executionWitness,omitempty"`
8384}
8485
8586// JSON type overrides for executableData.
@@ -252,6 +253,9 @@ func ExecutableDataToBlock(data ExecutableData, versionedHashes []common.Hash, b
252253 requests = append (requests , types .NewRequest (w ))
253254 }
254255 }
256+ if data .ConsolidationRequests != nil {
257+ requests = append (requests , data .ConsolidationRequests .Requests ()... )
258+ }
255259 if requests != nil {
256260 h := types .DeriveSha (requests , trie .NewStackTrie (nil ))
257261 requestsHash = & h
@@ -335,23 +339,27 @@ func setRequests(requests types.Requests, data *ExecutableData) {
335339 // we should return an empty slice instead of nil.
336340 data .Deposits = make (types.Deposits , 0 )
337341 data .WithdrawalRequests = make (types.WithdrawalRequests , 0 )
342+ data .ConsolidationRequests = make (types.ConsolidationRequests , 0 )
338343 }
339344 for _ , r := range requests {
340345 switch v := r .Inner ().(type ) {
341346 case * types.Deposit :
342347 data .Deposits = append (data .Deposits , v )
343348 case * types.WithdrawalRequest :
344349 data .WithdrawalRequests = append (data .WithdrawalRequests , v )
350+ case * types.ConsolidationRequest :
351+ data .ConsolidationRequests = append (data .ConsolidationRequests , v )
345352 }
346353 }
347354}
348355
349356// ExecutionPayloadBody is used in the response to GetPayloadBodiesByHash and GetPayloadBodiesByRange
350357type ExecutionPayloadBody struct {
351- TransactionData []hexutil.Bytes `json:"transactions"`
352- Withdrawals []* types.Withdrawal `json:"withdrawals"`
353- Deposits types.Deposits `json:"depositRequests"`
354- WithdrawalRequests types.WithdrawalRequests `json:"withdrawalRequests"`
358+ TransactionData []hexutil.Bytes `json:"transactions"`
359+ Withdrawals []* types.Withdrawal `json:"withdrawals"`
360+ Deposits types.Deposits `json:"depositRequests"`
361+ WithdrawalRequests types.WithdrawalRequests `json:"withdrawalRequests"`
362+ ConsolidationRequests types.ConsolidationRequests `json:"consolidationRequests"`
355363}
356364
357365// Client identifiers to support ClientVersionV1.
0 commit comments