@@ -3,7 +3,6 @@ package builder
33import (
44 "bytes"
55 "encoding/json"
6- "fmt"
76 "html/template"
87 "math/big"
98 "net/http"
@@ -17,7 +16,6 @@ import (
1716 "github.com/ethereum/go-ethereum/core/beacon"
1817 "github.com/ethereum/go-ethereum/core/types"
1918 "github.com/ethereum/go-ethereum/log"
20- "github.com/ethereum/go-ethereum/trie"
2119 "github.com/gorilla/mux"
2220
2321 "github.com/flashbots/go-boost-utils/bls"
@@ -358,7 +356,7 @@ func (b *Backend) newSealedBlock(data *beacon.ExecutableDataV1, block *types.Blo
358356 log .Info ("newSealedBlock" , "data" , string (dataJson ))
359357 }
360358 payload := executableDataToExecutionPayload (data )
361- payloadHeader , err := payloadToPayloadHeader (payload )
359+ payloadHeader , err := payloadToPayloadHeader (payload , data )
362360 if err != nil {
363361 log .Error ("could not convert payload to header" , "err" , err )
364362 return
@@ -371,23 +369,13 @@ func (b *Backend) newSealedBlock(data *beacon.ExecutableDataV1, block *types.Blo
371369 b .bestDataLock .Unlock ()
372370}
373371
374- func decodeTransactions (enc []hexutil.Bytes ) ([]* types.Transaction , error ) {
375- var txs = make ([]* types.Transaction , len (enc ))
376- for i , encTx := range enc {
377- var tx types.Transaction
378- if err := tx .UnmarshalBinary (encTx ); err != nil {
379- return nil , fmt .Errorf ("invalid transaction %d: %v" , i , err )
380- }
381- txs [i ] = & tx
382- }
383- return txs , nil
384- }
385-
386- func payloadToPayloadHeader (p * boostTypes.ExecutionPayload ) (* boostTypes.ExecutionPayloadHeader , error ) {
387- txs , err := decodeTransactions (p .Transactions )
372+ func payloadToPayloadHeader (p * boostTypes.ExecutionPayload , data * beacon.ExecutableDataV1 ) (* boostTypes.ExecutionPayloadHeader , error ) {
373+ txs := boostTypes.Transactions {data .Transactions }
374+ txroot , err := txs .HashTreeRoot ()
388375 if err != nil {
389376 return nil , err
390377 }
378+
391379 return & boostTypes.ExecutionPayloadHeader {
392380 ParentHash : p .ParentHash ,
393381 FeeRecipient : p .FeeRecipient ,
@@ -399,10 +387,10 @@ func payloadToPayloadHeader(p *boostTypes.ExecutionPayload) (*boostTypes.Executi
399387 GasLimit : p .GasLimit ,
400388 GasUsed : p .GasUsed ,
401389 Timestamp : p .Timestamp ,
402- ExtraData : [] byte ( p .ExtraData ) ,
390+ ExtraData : data .ExtraData ,
403391 BaseFeePerGas : p .BaseFeePerGas ,
404392 BlockHash : p .BlockHash ,
405- TransactionsRoot : [32 ]byte (types . DeriveSha ( types . Transactions ( txs ), trie . NewStackTrie ( nil )) ),
393+ TransactionsRoot : [32 ]byte (txroot ),
406394 }, nil
407395}
408396
0 commit comments