@@ -22,6 +22,7 @@ import (
2222 "errors"
2323 "fmt"
2424
25+ "github.com/erigontech/erigon/cl/clparams"
2526 "github.com/erigontech/erigon/common"
2627 "github.com/erigontech/erigon/common/hexutil"
2728 "github.com/erigontech/erigon/execution/types"
@@ -32,25 +33,26 @@ import (
3233
3334// ExecutionPayload represents an execution payload (aka block)
3435type ExecutionPayload struct {
35- ParentHash common.Hash `json:"parentHash" gencodec:"required"`
36- FeeRecipient common.Address `json:"feeRecipient" gencodec:"required"`
37- StateRoot common.Hash `json:"stateRoot" gencodec:"required"`
38- ReceiptsRoot common.Hash `json:"receiptsRoot" gencodec:"required"`
39- LogsBloom hexutil.Bytes `json:"logsBloom" gencodec:"required"`
40- PrevRandao common.Hash `json:"prevRandao" gencodec:"required"`
41- BlockNumber hexutil.Uint64 `json:"blockNumber" gencodec:"required"`
42- GasLimit hexutil.Uint64 `json:"gasLimit" gencodec:"required"`
43- GasUsed hexutil.Uint64 `json:"gasUsed" gencodec:"required"`
44- Timestamp hexutil.Uint64 `json:"timestamp" gencodec:"required"`
45- ExtraData hexutil.Bytes `json:"extraData" gencodec:"required"`
46- BaseFeePerGas * hexutil.Big `json:"baseFeePerGas" gencodec:"required"`
47- BlockHash common.Hash `json:"blockHash" gencodec:"required"`
48- Transactions []hexutil.Bytes `json:"transactions" gencodec:"required"`
49- Withdrawals []* types.Withdrawal `json:"withdrawals"`
50- BlobGasUsed * hexutil.Uint64 `json:"blobGasUsed"`
51- ExcessBlobGas * hexutil.Uint64 `json:"excessBlobGas"`
52- SlotNumber * hexutil.Uint64 `json:"slotNumber,omitempty"`
53- BlockAccessList hexutil.Bytes `json:"blockAccessList,omitempty"`
36+ ParentHash common.Hash `json:"parentHash" gencodec:"required"`
37+ FeeRecipient common.Address `json:"feeRecipient" gencodec:"required"`
38+ StateRoot common.Hash `json:"stateRoot" gencodec:"required"`
39+ ReceiptsRoot common.Hash `json:"receiptsRoot" gencodec:"required"`
40+ LogsBloom hexutil.Bytes `json:"logsBloom" gencodec:"required"`
41+ PrevRandao common.Hash `json:"prevRandao" gencodec:"required"`
42+ BlockNumber hexutil.Uint64 `json:"blockNumber" gencodec:"required"`
43+ GasLimit hexutil.Uint64 `json:"gasLimit" gencodec:"required"`
44+ GasUsed hexutil.Uint64 `json:"gasUsed" gencodec:"required"`
45+ Timestamp hexutil.Uint64 `json:"timestamp" gencodec:"required"`
46+ ExtraData hexutil.Bytes `json:"extraData" gencodec:"required"`
47+ BaseFeePerGas * hexutil.Big `json:"baseFeePerGas" gencodec:"required"`
48+ BlockHash common.Hash `json:"blockHash" gencodec:"required"`
49+ Transactions []hexutil.Bytes `json:"transactions" gencodec:"required"`
50+ Withdrawals []* types.Withdrawal `json:"withdrawals"`
51+ BlobGasUsed * hexutil.Uint64 `json:"blobGasUsed"`
52+ ExcessBlobGas * hexutil.Uint64 `json:"excessBlobGas"`
53+ SlotNumber * hexutil.Uint64 `json:"slotNumber,omitempty"`
54+ BlockAccessList hexutil.Bytes `json:"blockAccessList,omitempty"`
55+ SSZVersion clparams.StateVersion `json:"-"`
5456}
5557
5658// PayloadAttributes represent the attributes required to start assembling a payload
@@ -62,12 +64,13 @@ type ForkChoiceState struct {
6264
6365// PayloadAttributes represent the attributes required to start assembling a payload
6466type PayloadAttributes struct {
65- Timestamp hexutil.Uint64 `json:"timestamp" gencodec:"required"`
66- PrevRandao common.Hash `json:"prevRandao" gencodec:"required"`
67- SuggestedFeeRecipient common.Address `json:"suggestedFeeRecipient" gencodec:"required"`
68- Withdrawals []* types.Withdrawal `json:"withdrawals"`
69- ParentBeaconBlockRoot * common.Hash `json:"parentBeaconBlockRoot"`
70- SlotNumber * hexutil.Uint64 `json:"slotNumber"`
67+ Timestamp hexutil.Uint64 `json:"timestamp" gencodec:"required"`
68+ PrevRandao common.Hash `json:"prevRandao" gencodec:"required"`
69+ SuggestedFeeRecipient common.Address `json:"suggestedFeeRecipient" gencodec:"required"`
70+ Withdrawals []* types.Withdrawal `json:"withdrawals"`
71+ ParentBeaconBlockRoot * common.Hash `json:"parentBeaconBlockRoot"`
72+ SlotNumber * hexutil.Uint64 `json:"slotNumber"`
73+ SSZVersion clparams.StateVersion `json:"-"`
7174}
7275
7376// TransitionConfiguration represents the correct configurations of the CL and the EL
@@ -81,9 +84,10 @@ type TransitionConfiguration struct {
8184// It covers both BlobsBundleV1 (https://github.com/ethereum/execution-apis/blob/main/src/engine/cancun.md#blobsbundlev1)
8285// and BlobsBundleV2 (https://github.com/ethereum/execution-apis/blob/main/src/engine/osaka.md#blobsbundlev2)
8386type BlobsBundle struct {
84- Commitments []hexutil.Bytes `json:"commitments" gencodec:"required"`
85- Proofs []hexutil.Bytes `json:"proofs" gencodec:"required"`
86- Blobs []hexutil.Bytes `json:"blobs" gencodec:"required"`
87+ Commitments []hexutil.Bytes `json:"commitments" gencodec:"required"`
88+ Proofs []hexutil.Bytes `json:"proofs" gencodec:"required"`
89+ Blobs []hexutil.Bytes `json:"blobs" gencodec:"required"`
90+ SSZVersion clparams.StateVersion `json:"-"`
8791}
8892
8993// BlobsBundleFromTransactions builds a BlobsBundle by extracting blobs,
0 commit comments