Skip to content
Open
Show file tree
Hide file tree
Changes from 156 commits
Commits
Show all changes
166 commits
Select commit Hold shift + click to select a range
c87e016
Added PendingPartialWithdrawal Type
rezzmah Apr 9, 2025
d5fd3a9
Update registry.go
rezzmah Apr 9, 2025
2247067
changed collections type
rezzmah Apr 9, 2025
5d1dbb2
Update kvstore.go
rezzmah Apr 9, 2025
2569062
Removed PendingPartialWithdrawalsIndexPrefixHumanReadable
rezzmah Apr 9, 2025
0e14405
Remove pointer receivers for PendingPartialWithdrawals
rezzmah Apr 9, 2025
f631021
lint
rezzmah Apr 9, 2025
b67bff1
pointer fixes
rezzmah Apr 9, 2025
93402b2
BeaconState Versionable
rezzmah Apr 10, 2025
81ce973
Extended beaconstate ssz
rezzmah Apr 10, 2025
3b5cf86
Tests passing
rezzmah Apr 10, 2025
0e31880
Removed Generic from BeaconState proof tests
rezzmah Apr 10, 2025
14f157d
Unskip passing test
rezzmah Apr 10, 2025
db26e82
Remove unusued interface
rezzmah Apr 10, 2025
22160ee
Extend tests
rezzmah Apr 10, 2025
21e4cd5
Merge branch 'main' into pectra-pending-partial-withdrawals
calbera Apr 10, 2025
518a075
cleanup test
rezzmah Apr 10, 2025
6e92161
Update state.go
rezzmah Apr 10, 2025
c33b6a3
wip
calbera Apr 10, 2025
ea1a1ba
Merge branch 'main' of github.com:berachain/beacon-kit into pectra-pe…
calbera Apr 10, 2025
c713596
Merge branch 'pectra-pending-partial-withdrawals' of github.com:berac…
calbera Apr 10, 2025
50ca610
update the beacon state schema
calbera Apr 10, 2025
338078d
rename
calbera Apr 10, 2025
0501368
Merge branch 'main' into pectra-pending-partial-withdrawals
Apr 11, 2025
5408ce4
Merge branch 'pectra-pending-partial-withdrawals' of github.com:berac…
calbera Apr 11, 2025
8d27308
Merge branch 'main' into pectra-pending-partial-withdrawals
rezzmah Apr 11, 2025
f9cda7b
Update proposer_pubkey_test.go
rezzmah Apr 11, 2025
e2aadf6
lint
calbera Apr 11, 2025
02b5bdb
Merge branch 'pectra-pending-partial-withdrawals' of github.com:berac…
calbera Apr 11, 2025
fcbd2b6
Add test case
rezzmah Apr 11, 2025
adc1767
deneb & electra gIndexes
calbera Apr 11, 2025
ad30466
Merge branch 'pectra-pending-partial-withdrawals' into pppw-gindexes
calbera Apr 11, 2025
c238e00
Added tests for pending partial withdrawals registry
rezzmah Apr 11, 2025
a76d330
lint issues
rezzmah Apr 11, 2025
cd036bb
Merge branch 'pectra-pending-partial-withdrawals' into pppw-gindexes
calbera Apr 14, 2025
cc76136
revert test file changes
calbera Apr 14, 2025
d8a4bbe
proof test cases
calbera Apr 14, 2025
1a4e609
Merge branch 'pectra-pending-partial-withdrawals' of github.com:berac…
calbera Apr 14, 2025
8502cb5
proof testcases
calbera Apr 14, 2025
6982ae3
undo
calbera Apr 14, 2025
4e9f73d
nits
calbera Apr 14, 2025
bba8dd0
nit line breaks + comments
calbera Apr 14, 2025
0dd7339
nit
calbera Apr 14, 2025
ed26af8
nit comment
calbera Apr 14, 2025
548a1b3
comments
calbera Apr 14, 2025
6c14e67
nit comment fix
calbera Apr 14, 2025
e1cb183
nit comment fix
calbera Apr 14, 2025
93fc6a8
more
calbera Apr 15, 2025
cf13f5b
undo
calbera Apr 15, 2025
ba74d9a
lint
calbera Apr 15, 2025
403eff9
Remove requireEqualOrAfterVersion
rezzmah Apr 15, 2025
ebab40a
Merge branch 'pectra-pending-partial-withdrawals' into pppw-gindexes
rezzmah Apr 15, 2025
332351c
Merge branch 'pppw-gindexes' into fork-struct-upgrade
rezzmah Apr 15, 2025
881a19c
Update state_processor_forks.go
rezzmah Apr 15, 2025
231c5fc
ssz test contract
calbera Apr 15, 2025
307df9f
Merge branch 'pppw-gindexes' of github.com:berachain/beacon-kit into …
calbera Apr 15, 2025
b830a0a
proof e2etests
calbera Apr 15, 2025
59cc5a9
lint
calbera Apr 15, 2025
65da730
Merge branch 'pppw-gindexes' of github.com:berachain/beacon-kit into …
calbera Apr 15, 2025
1d48aac
fix usage of ProcessSlots in node-api
calbera Apr 15, 2025
93fc7c4
Remove version.Genesis()
rezzmah Apr 15, 2025
5a9f0cb
Added GenesisForkVersion
rezzmah Apr 16, 2025
e5c5645
try verifying in test
calbera Apr 16, 2025
3718d69
Extend test cases
rezzmah Apr 16, 2025
d7e7429
fixed
calbera Apr 16, 2025
ef1870a
build
calbera Apr 16, 2025
f2ebaed
fix tests
rezzmah Apr 16, 2025
fb981d0
Fix more tests
rezzmah Apr 16, 2025
89c7fb5
updated e2e proof test
calbera Apr 16, 2025
3dec95d
lint
calbera Apr 16, 2025
d183ff7
TestFullLifecycle_WithoutRequests_IsSuccessful working
rezzmah Apr 16, 2025
d1485b8
lint
calbera Apr 16, 2025
e96c699
temp: silence other e2e tests
calbera Apr 16, 2025
4ae80e6
Merge branch 'fork-struct-upgrade' into fork-struct-upgrade-2
rezzmah Apr 16, 2025
46ec9d6
Update state_processor_genesis.go
rezzmah Apr 16, 2025
dc6a01a
Update mainnet_spec.toml
rezzmah Apr 16, 2025
471006d
bug in error message
rezzmah Apr 16, 2025
c20ea57
lint
calbera Apr 16, 2025
6aa080d
lint errors
rezzmah Apr 16, 2025
fe29b81
Merge branch 'fork-struct-upgrade' into fork-struct-upgrade-2
rezzmah Apr 16, 2025
2fa3875
nit
calbera Apr 16, 2025
afe2e2a
nit fix test
calbera Apr 16, 2025
f9d9d36
Merge branch 'fork-struct-upgrade-2' of github.com:berachain/beacon-k…
rezzmah Apr 16, 2025
1018cbc
version name
calbera Apr 16, 2025
3cc7e8f
try deneb for proof
calbera Apr 16, 2025
abda3c9
Set genesistime to 0 in simulation test chain spec
rezzmah Apr 16, 2025
6d6b7b6
cleanup temp
calbera Apr 16, 2025
17b3ba1
Merge branch 'pppw-gindexes' of github.com:berachain/beacon-kit into …
calbera Apr 16, 2025
3de0ee1
Merge branch 'fork-struct-upgrade' of github.com:berachain/beacon-kit…
calbera Apr 16, 2025
bdc627d
Added todo
rezzmah Apr 16, 2025
2f7f5c0
unneeded
calbera Apr 16, 2025
b76f6e8
Merge branch 'fork-struct-upgrade' of github.com:berachain/beacon-kit…
calbera Apr 16, 2025
fc472a9
Merge branch 'fork-struct-upgrade-2' of github.com:berachain/beacon-k…
rezzmah Apr 16, 2025
54c71ee
Update state_processor.go
rezzmah Apr 16, 2025
bc067a1
correct order of calls
calbera Apr 16, 2025
4ab35a6
make start working
rezzmah Apr 16, 2025
02f26e8
Merge branch 'fork-struct-upgrade' into fork-struct-upgrade-2
rezzmah Apr 16, 2025
ac8748f
comment and lint
rezzmah Apr 16, 2025
3f86628
Update e2e_proofs_test.go
rezzmah Apr 16, 2025
d2505d8
use timestamp for log
calbera Apr 16, 2025
76ef672
lint
calbera Apr 16, 2025
1d7a661
Merge branch 'fork-struct-upgrade' into fork-struct-upgrade-2
rezzmah Apr 16, 2025
c7f5905
Update state_processor_genesis.go
rezzmah Apr 16, 2025
d2a5afd
try e2e fix
calbera Apr 16, 2025
f3f3039
Merge branch 'fork-struct-upgrade' into fork-struct-upgrade-2
rezzmah Apr 16, 2025
6a0a198
Reword error message
rezzmah Apr 16, 2025
08d2b2c
nit comments
calbera Apr 16, 2025
5f590fb
Refactor default genesis
rezzmah Apr 16, 2025
2890e24
Merge branch 'fork-struct-upgrade-2' of github.com:berachain/beacon-k…
rezzmah Apr 16, 2025
655d57f
Remove confusing comment
rezzmah Apr 16, 2025
03278e1
noting the versioned ExecPayloadHeader
calbera Apr 16, 2025
3d67001
Merge branch 'main' of github.com:berachain/beacon-kit into pppw-gind…
calbera Apr 16, 2025
e4bc6ae
Merge branch 'pppw-gindexes' of github.com:berachain/beacon-kit into …
calbera Apr 16, 2025
8eb730d
Merge branch 'fork-struct-upgrade' into fork-struct-upgrade-2
calbera Apr 16, 2025
af0175e
fix merge conflict
calbera Apr 16, 2025
ecaffa2
Merge branch 'fork-struct-upgrade' into fork-struct-upgrade-2
calbera Apr 16, 2025
08d456b
Merge branch 'main' into pppw-gindexes
calbera Apr 16, 2025
731d47b
fix build
calbera Apr 16, 2025
15fc448
Merge branch 'pppw-gindexes' into fork-struct-upgrade
calbera Apr 16, 2025
e99164c
Merge branch 'fork-struct-upgrade' into fork-struct-upgrade-2
calbera Apr 16, 2025
17018b3
Merge branch 'main' of github.com:berachain/beacon-kit into fork-stru…
calbera Apr 17, 2025
36fa646
fix logger only once
calbera Apr 17, 2025
b0eeb6f
Merge branch 'fork-struct-upgrade' into fork-struct-upgrade-2
calbera Apr 17, 2025
ca60bc3
fix merge commit
calbera Apr 17, 2025
b8a2c86
logging all versions
calbera Apr 17, 2025
c30b8c6
log all fork versions
calbera Apr 17, 2025
0f2bc1b
cleanup
calbera Apr 17, 2025
03cebc4
Merge branch 'fork-struct-upgrade' of github.com:berachain/beacon-kit…
calbera Apr 17, 2025
6408e42
address comments
calbera Apr 17, 2025
445d373
lint
calbera Apr 17, 2025
dad1f38
remove genesis special casing for 4/n
calbera Apr 17, 2025
862fd1c
Merge branch 'fork-struct-upgrade' of github.com:berachain/beacon-kit…
calbera Apr 17, 2025
79d6a3e
re work
calbera Apr 17, 2025
26ce0d0
clean up genesis time chain spec
calbera Apr 17, 2025
c4fc149
try appease nilaway
calbera Apr 17, 2025
ec81f25
try appease nilaway 2
calbera Apr 17, 2025
21d9b30
Address comments more
calbera Apr 17, 2025
36f81f9
Merge branch 'fork-struct-upgrade' into fork-struct-upgrade-2
rezzmah Apr 18, 2025
502b4a2
nilaway pls
rezzmah Apr 18, 2025
85700fb
Address lint issues
rezzmah Apr 18, 2025
b576b46
Merge branch 'main' into fork-struct-upgrade-2
abi87 Apr 21, 2025
1f5bcaf
Merge branch 'main' into fork-struct-upgrade-2
calbera Apr 21, 2025
621ff2e
nit comment abt genesis case
calbera Apr 22, 2025
c8d30fe
pr comments
rezzmah Apr 22, 2025
cb3c0a8
PR comment
rezzmah Apr 22, 2025
a98e73b
Separate buildNextBlock into diff lines and remove .idea from make lint
rezzmah Apr 22, 2025
4c2a6f0
Remove //nolint:paralleltest // uses envars and add t.Parallel
rezzmah Apr 22, 2025
8f5a3ab
chore(types): remove ExecutionPayloadHeader version
calbera Apr 23, 2025
2559d0c
Merge branch 'fork-struct-upgrade-2' of github.com:berachain/beacon-k…
calbera Apr 23, 2025
be5e663
lint
calbera Apr 23, 2025
3bbe8ec
Merge branch 'main' of github.com:berachain/beacon-kit into remove-ep…
calbera Apr 23, 2025
b26b045
fix build
calbera Apr 23, 2025
372f2d8
Update storage/beacondb/eth1.go
calbera Apr 23, 2025
a57628d
nit comment
calbera Apr 23, 2025
80c5be9
Merge branch 'remove-eph-version' of github.com:berachain/beacon-kit …
calbera Apr 23, 2025
f19e6f1
Merge branch 'main' into remove-eph-version
calbera Apr 23, 2025
9e2bc46
nit
calbera Apr 23, 2025
4e1f0ea
Merge branch 'remove-eph-version' of github.com:berachain/beacon-kit …
calbera Apr 23, 2025
8079ade
Merge branch 'main' of github.com:berachain/beacon-kit into remove-ep…
calbera Apr 25, 2025
4401e1c
gosec
calbera Apr 25, 2025
eb41aef
gosec part 2
calbera Apr 25, 2025
2fa18fd
Merge branch 'main' of github.com:berachain/beacon-kit into remove-ep…
calbera Apr 25, 2025
c87f96c
Merge branch 'main' of github.com:berachain/beacon-kit into remove-ep…
calbera Apr 25, 2025
bd11764
Merge branch 'main' of github.com:berachain/beacon-kit into remove-ep…
calbera May 6, 2025
f3da4a6
Merge branch 'main' into remove-eph-version
abi87 May 7, 2025
e98b23e
Merge branch 'main' into remove-eph-version
abi87 May 8, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cli/commands/genesis/genesis.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ func Commands(
cmd.AddCommand(
AddGenesisDepositCmd(csc),
CollectGenesisDepositsCmd(),
AddExecutionPayloadCmd(csc),
AddExecutionPayloadCmd(),
GetGenesisValidatorRootCmd(csc),
SetDepositStorageCmd(csc),
)
Expand Down
128 changes: 42 additions & 86 deletions cli/commands/genesis/payload.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,7 @@ package genesis

import (
"fmt"
"unsafe"

servertypes "github.com/berachain/beacon-kit/cli/commands/server/types"
"github.com/berachain/beacon-kit/cli/context"
"github.com/berachain/beacon-kit/consensus-types/types"
engineprimitives "github.com/berachain/beacon-kit/engine-primitives/engine-primitives"
Expand All @@ -34,172 +32,130 @@ import (
"github.com/berachain/beacon-kit/primitives/constants"
"github.com/berachain/beacon-kit/primitives/encoding/json"
"github.com/berachain/beacon-kit/primitives/math"
"github.com/berachain/beacon-kit/primitives/version"
cmtcfg "github.com/cometbft/cometbft/config"
"github.com/cosmos/cosmos-sdk/x/genutil"
genutiltypes "github.com/cosmos/cosmos-sdk/x/genutil/types"
"github.com/spf13/afero"
"github.com/spf13/cobra"
)

func AddExecutionPayloadCmd(chainSpecCreator servertypes.ChainSpecCreator) *cobra.Command {
func AddExecutionPayloadCmd() *cobra.Command {
cmd := &cobra.Command{
Use: "execution-payload [eth/genesis/file.json]",
Short: "adds the eth1 genesis execution payload to the genesis file",
Args: cobra.ExactArgs(1),
RunE: func(cmd *cobra.Command, args []string) error {
// Read the genesis file.
elGenesisPath := args[0]
config := context.GetConfigFromCmd(cmd)
v := context.GetViperFromCmd(cmd)
chainSpec, err := chainSpecCreator(v)
if err != nil {
return err
}
return AddExecutionPayload(chainSpec, elGenesisPath, config)
return AddExecutionPayload(args[0], context.GetConfigFromCmd(cmd))
},
}

return cmd
}

func AddExecutionPayload(chainSpec ChainSpec, elGenesisPath string, config *cmtcfg.Config) error {
func AddExecutionPayload(elGenesisPath string, config *cmtcfg.Config) error {
genesisBz, err := afero.ReadFile(afero.NewOsFs(), elGenesisPath)
if err != nil {
return errors.Wrap(err, "failed to read eth1 genesis file")
}

// Unmarshal the genesis file.
// Unmarshal the EL genesis file.
ethGenesis := &gethprimitives.Genesis{}
if err = ethGenesis.UnmarshalJSON(genesisBz); err != nil {
return errors.Wrap(err, "failed to unmarshal eth1 genesis")
}
genesisBlock := ethGenesis.ToBlock()

// Create the execution payload.
// Create the executable data from the EL genesis file.
payload := gethprimitives.BlockToExecutableData(
genesisBlock,
nil,
nil,
nil,
).ExecutionPayload

appGenesis, err := genutiltypes.AppGenesisFromFile(
config.GenesisFile(),
)
appGenesis, err := genutiltypes.AppGenesisFromFile(config.GenesisFile())
if err != nil {
return errors.Wrap(err, "failed to read genesis doc from file")
}

// create the app state
appGenesisState, err := genutiltypes.GenesisStateFromAppGenesis(
appGenesis,
)
// Create the app state.
appGenesisState, err := genutiltypes.GenesisStateFromAppGenesis(appGenesis)
if err != nil {
return err
}

genesisInfo := &types.Genesis{}

if err = json.Unmarshal(
appGenesisState["beacon"], genesisInfo,
); err != nil {
if err = json.Unmarshal(appGenesisState["beacon"], genesisInfo); err != nil {
return errors.Wrap(err, "failed to unmarshal beacon state")
}
// Inject the execution payload.
eph, err := executableDataToExecutionPayloadHeader(
chainSpec.GenesisForkVersion(),
payload,
chainSpec.MaxWithdrawalsPerPayload(),
)

// Inject the execution payload from the executable data.
eph, err := executableDataToExecutionPayloadHeader(payload)
if err != nil {
return errors.Wrap(err, "failed to convert executable data to execution payload header")
}
if eph == nil {
return errors.New("failed to get execution payload header")
}
genesisInfo.ExecutionPayloadHeader = eph

appGenesisState["beacon"], err = json.Marshal(genesisInfo)
if err != nil {
if appGenesisState["beacon"], err = json.Marshal(genesisInfo); err != nil {
return errors.Wrap(err, "failed to marshal beacon state")
}

if appGenesis.AppState, err = json.MarshalIndent(
appGenesisState, "", " ",
); err != nil {
if appGenesis.AppState, err = json.MarshalIndent(appGenesisState, "", " "); err != nil {
return err
}

return genutil.ExportGenesisFile(appGenesis, config.GenesisFile())
}

// Converts the eth executable data type to the beacon execution payload header
// interface.
// Converts the eth executable data type to the beacon execution payload header.
func executableDataToExecutionPayloadHeader(
forkVersion common.Version,
data *gethprimitives.ExecutableData,
// todo: re-enable when codec supports.
_ uint64,
) (*types.ExecutionPayloadHeader, error) {
eph := &types.ExecutionPayloadHeader{}

// We do not support fork versions before Deneb and after Electra.
if version.IsAfter(forkVersion, version.Electra()) ||
version.IsBefore(forkVersion, version.Deneb()) {
return nil, types.ErrForkVersionNotSupported
Comment on lines -147 to -150
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

noting that as neither the geth ExecutableData nor the bkit ExecutionPayloadHeader objects are versioned, it doesn't make sense for the CLI command to be opinionated to versions

}

withdrawals := make(
engineprimitives.Withdrawals,
len(data.Withdrawals),
)
eph := &types.ExecutionPayloadHeader{
ParentHash: common.ExecutionHash(data.ParentHash),
FeeRecipient: common.ExecutionAddress(data.FeeRecipient),
StateRoot: common.Bytes32(data.StateRoot),
ReceiptsRoot: common.Bytes32(data.ReceiptsRoot),
LogsBloom: [256]byte(data.LogsBloom),
Random: common.Bytes32(data.Random),
Number: math.U64(data.Number),
GasLimit: math.U64(data.GasLimit),
GasUsed: math.U64(data.GasUsed),
Timestamp: math.U64(data.Timestamp),
ExtraData: data.ExtraData,
BlockHash: common.ExecutionHash(data.BlockHash),
TransactionsRoot: engineprimitives.Transactions(data.Transactions).HashTreeRoot(),
}

withdrawals := make(engineprimitives.Withdrawals, len(data.Withdrawals))
for i, withdrawal := range data.Withdrawals {
// #nosec:G103 // primitives.Withdrawals is data.Withdrawals with
// hard
// types.
withdrawals[i] = (*engineprimitives.Withdrawal)(
unsafe.Pointer(withdrawal),
)
withdrawals[i] = &engineprimitives.Withdrawal{
Index: math.U64(withdrawal.Index),
Validator: math.ValidatorIndex(withdrawal.Validator),
Address: common.ExecutionAddress(withdrawal.Address),
Amount: math.Gwei(withdrawal.Amount),
}
}
eph.WithdrawalsRoot = withdrawals.HashTreeRoot()

if len(data.ExtraData) > constants.ExtraDataLength {
data.ExtraData = data.ExtraData[:constants.ExtraDataLength]
}
eph.ExtraData = data.ExtraData

var blobGasUsed uint64
if data.BlobGasUsed != nil {
blobGasUsed = *data.BlobGasUsed
eph.BlobGasUsed = math.U64(*data.BlobGasUsed)
}

var excessBlobGas uint64
if data.ExcessBlobGas != nil {
excessBlobGas = *data.ExcessBlobGas
eph.ExcessBlobGas = math.U64(*data.ExcessBlobGas)
}

baseFeePerGas, err := math.NewU256FromBigInt(data.BaseFeePerGas)
if err != nil {
return nil, fmt.Errorf("failed baseFeePerGas conversion: %w", err)
}

eph.Versionable = types.NewVersionable(forkVersion)
eph.ParentHash = common.ExecutionHash(data.ParentHash)
eph.FeeRecipient = common.ExecutionAddress(data.FeeRecipient)
eph.StateRoot = common.Bytes32(data.StateRoot)
eph.ReceiptsRoot = common.Bytes32(data.ReceiptsRoot)
eph.LogsBloom = [256]byte(data.LogsBloom)
eph.Random = common.Bytes32(data.Random)
eph.Number = math.U64(data.Number)
eph.GasLimit = math.U64(data.GasLimit)
eph.GasUsed = math.U64(data.GasUsed)
eph.Timestamp = math.U64(data.Timestamp)
eph.ExtraData = data.ExtraData
eph.BaseFeePerGas = baseFeePerGas
eph.BlockHash = common.ExecutionHash(data.BlockHash)
eph.TransactionsRoot = engineprimitives.Transactions(data.Transactions).HashTreeRoot()
eph.WithdrawalsRoot = withdrawals.HashTreeRoot()
eph.BlobGasUsed = math.U64(blobGasUsed)
eph.ExcessBlobGas = math.U64(excessBlobGas)

return eph, nil
}
2 changes: 1 addition & 1 deletion cli/utils/genesis/root_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ func TestCompareGenesisCmdWithStateProcessor(t *testing.T) {

// genesis validators root from StateProcessor
sp, st, _, _, _, _ := statetransition.SetupTestState(t, cs)
genPayloadHeader := types.NewEmptyExecutionPayloadHeaderWithVersion(cs.GenesisForkVersion())
genPayloadHeader := types.NewEmptyExecutionPayloadHeader()

_, err = sp.InitializeBeaconStateFromEth1(
st,
Expand Down
7 changes: 2 additions & 5 deletions consensus-types/types/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,9 @@ var (
ErrDepositMessage = errors.New("invalid deposit message")

// ErrInvalidWithdrawalCredentials is an error for when the.
ErrInvalidWithdrawalCredentials = errors.New(
"invalid withdrawal credentials",
)
ErrInvalidWithdrawalCredentials = errors.New("invalid withdrawal credentials")

// ErrForkVersionNotSupported is an error for when the fork
// version is not supported.
// ErrForkVersionNotSupported is an error for when the fork version is not supported.
ErrForkVersionNotSupported = errors.New("fork version not supported")

// ErrNilValue is an error for when a getter returns nil on a value
Expand Down
7 changes: 3 additions & 4 deletions consensus-types/types/genesis.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ func (g *Genesis) UnmarshalJSON(
return err
}

payloadHeader := NewEmptyExecutionPayloadHeaderWithVersion(g2.ForkVersion)
payloadHeader := NewEmptyExecutionPayloadHeader()
if err := json.Unmarshal(g2.ExecutionPayloadHeader, payloadHeader); err != nil {
return err
}
Expand All @@ -95,7 +95,7 @@ func (g *Genesis) UnmarshalJSON(

// DefaultGenesis returns the default genesis.
func DefaultGenesis(v common.Version) *Genesis {
defaultHeader, err := DefaultGenesisExecutionPayloadHeader(v)
defaultHeader, err := DefaultGenesisExecutionPayloadHeader()
if err != nil {
panic(err)
}
Expand All @@ -108,7 +108,7 @@ func DefaultGenesis(v common.Version) *Genesis {
}

// DefaultGenesisExecutionPayloadHeader returns a default ExecutionPayloadHeader.
func DefaultGenesisExecutionPayloadHeader(v common.Version) (*ExecutionPayloadHeader, error) {
func DefaultGenesisExecutionPayloadHeader() (*ExecutionPayloadHeader, error) {
stateRoot, err := bytes.ToBytes32(
hex.MustToBytes(
"0x12965ab9cbe2d2203f61d23636eb7e998f167cb79d02e452f532535641e35bcc",
Expand All @@ -135,7 +135,6 @@ func DefaultGenesisExecutionPayloadHeader(v common.Version) (*ExecutionPayloadHe
}

return &ExecutionPayloadHeader{
Versionable: NewVersionable(v),
ParentHash: common.ExecutionHash{},
FeeRecipient: common.ExecutionAddress{},
StateRoot: stateRoot,
Expand Down
8 changes: 3 additions & 5 deletions consensus-types/types/genesis_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,9 @@ func TestDefaultGenesis(t *testing.T) {

func TestDefaultGenesisExecutionPayloadHeader(t *testing.T) {
t.Parallel()
runForAllSupportedVersions(t, func(t *testing.T, v common.Version) {
header, err := types.DefaultGenesisExecutionPayloadHeader(v)
require.NoError(t, err)
require.NotNil(t, header)
})
header, err := types.DefaultGenesisExecutionPayloadHeader()
require.NoError(t, err)
require.NotNil(t, header)
}

func TestGenesisGetForkVersion(t *testing.T) {
Expand Down
3 changes: 1 addition & 2 deletions consensus-types/types/payload.go
Original file line number Diff line number Diff line change
Expand Up @@ -577,7 +577,6 @@ func (p *ExecutionPayload) ToHeader() (*ExecutionPayloadHeader, error) {
switch p.GetForkVersion() {
case version.Deneb(), version.Deneb1(), version.Electra():
return &ExecutionPayloadHeader{
Versionable: p.Versionable,
ParentHash: p.GetParentHash(),
FeeRecipient: p.GetFeeRecipient(),
StateRoot: p.GetStateRoot(),
Expand All @@ -597,6 +596,6 @@ func (p *ExecutionPayload) ToHeader() (*ExecutionPayloadHeader, error) {
ExcessBlobGas: p.GetExcessBlobGas(),
}, nil
default:
return nil, errors.New("unknown fork version")
return nil, ErrForkVersionNotSupported
}
}
18 changes: 4 additions & 14 deletions consensus-types/types/payload_header.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,22 +36,12 @@ const ExecutionPayloadHeaderStaticSize uint32 = 584

// Compile-time assertions to ensure ExecutionPayloadHeader implements necessary interfaces.
var (
_ ssz.DynamicObject = (*ExecutionPayloadHeader)(nil)
_ constraints.SSZVersionedMarshallableRootable = (*ExecutionPayloadHeader)(nil)
_ ssz.DynamicObject = (*ExecutionPayloadHeader)(nil)
_ constraints.SSZMarshallableRootable = (*ExecutionPayloadHeader)(nil)
)

// ExecutionPayloadHeader represents the payload header of an execution block.
type ExecutionPayloadHeader struct {
// NOTE: This version is not required but left in for backwards compatibility.
//
// A recommended alternative to `GetForkVersion()` on this struct would be to use the chain
// spec's `ActiveForkVersionForTimestamp()` on the value of `GetTimestamp()`.
//
// This version should still be set to the correct value to avoid potential inconsistencies.
constraints.Versionable

// Contents
//
// ParentHash is the hash of the parent block.
ParentHash common.ExecutionHash `json:"parentHash"`
// FeeRecipient is the address of the fee recipient.
Expand Down Expand Up @@ -88,9 +78,9 @@ type ExecutionPayloadHeader struct {
ExcessBlobGas math.U64 `json:"excessBlobGas"`
}

func NewEmptyExecutionPayloadHeaderWithVersion(version common.Version) *ExecutionPayloadHeader {
// NewEmptyExecutionPayloadHeader creates a new empty ExecutionPayloadHeader.
func NewEmptyExecutionPayloadHeader() *ExecutionPayloadHeader {
return &ExecutionPayloadHeader{
Versionable: NewVersionable(version),
BaseFeePerGas: &math.U256{},
}
}
Expand Down
Loading
Loading