diff --git a/beacon/engine/types.go b/beacon/engine/types.go index 9d820ac772..d4c7be02fe 100644 --- a/beacon/engine/types.go +++ b/beacon/engine/types.go @@ -440,7 +440,7 @@ type ExecutionPayloadBody struct { // ExecutionPayloadBodyV2 extends ExecutionPayloadBody with the block access list. type ExecutionPayloadBodyV2 struct { ExecutionPayloadBody - BlockAccessList *bal.BlockAccessList `json:"blockAccessList"` + BlockAccessList *hexutil.Bytes `json:"blockAccessList"` } // Client identifiers to support ClientVersionV1. diff --git a/eth/catalyst/api.go b/eth/catalyst/api.go index 46f8cc98fc..7b4130c190 100644 --- a/eth/catalyst/api.go +++ b/eth/catalyst/api.go @@ -1320,9 +1320,15 @@ func getBodyV2(block *types.Block) *engine.ExecutionPayloadBodyV2 { if body == nil { return nil } + var blockAccessList *hexutil.Bytes + if accessList := block.AccessList(); accessList != nil { + encoded, _ := rlp.EncodeToBytes(accessList) + data := hexutil.Bytes(encoded) + blockAccessList = &data + } return &engine.ExecutionPayloadBodyV2{ ExecutionPayloadBody: *body, - BlockAccessList: block.AccessList(), + BlockAccessList: blockAccessList, } } diff --git a/eth/catalyst/api_test.go b/eth/catalyst/api_test.go index c4298b25ab..90074316a8 100644 --- a/eth/catalyst/api_test.go +++ b/eth/catalyst/api_test.go @@ -1594,7 +1594,7 @@ func TestGetPayloadBodyV2BlockAccessList(t *testing.T) { name: "retained empty BAL", header: &types.Header{BlockAccessListHash: &emptyHash}, accessList: &empty, - want: "[]", + want: `"0xc0"`, }, { name: "pruned BAL",