@@ -3,7 +3,6 @@ package builder
3
3
import (
4
4
"bytes"
5
5
"encoding/json"
6
- "fmt"
7
6
"html/template"
8
7
"math/big"
9
8
"net/http"
@@ -17,7 +16,6 @@ import (
17
16
"github.com/ethereum/go-ethereum/core/beacon"
18
17
"github.com/ethereum/go-ethereum/core/types"
19
18
"github.com/ethereum/go-ethereum/log"
20
- "github.com/ethereum/go-ethereum/trie"
21
19
"github.com/gorilla/mux"
22
20
23
21
"github.com/flashbots/go-boost-utils/bls"
@@ -358,7 +356,7 @@ func (b *Backend) newSealedBlock(data *beacon.ExecutableDataV1, block *types.Blo
358
356
log .Info ("newSealedBlock" , "data" , string (dataJson ))
359
357
}
360
358
payload := executableDataToExecutionPayload (data )
361
- payloadHeader , err := payloadToPayloadHeader (payload )
359
+ payloadHeader , err := payloadToPayloadHeader (payload , data )
362
360
if err != nil {
363
361
log .Error ("could not convert payload to header" , "err" , err )
364
362
return
@@ -371,23 +369,13 @@ func (b *Backend) newSealedBlock(data *beacon.ExecutableDataV1, block *types.Blo
371
369
b .bestDataLock .Unlock ()
372
370
}
373
371
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 ()
388
375
if err != nil {
389
376
return nil , err
390
377
}
378
+
391
379
return & boostTypes.ExecutionPayloadHeader {
392
380
ParentHash : p .ParentHash ,
393
381
FeeRecipient : p .FeeRecipient ,
@@ -399,10 +387,10 @@ func payloadToPayloadHeader(p *boostTypes.ExecutionPayload) (*boostTypes.Executi
399
387
GasLimit : p .GasLimit ,
400
388
GasUsed : p .GasUsed ,
401
389
Timestamp : p .Timestamp ,
402
- ExtraData : [] byte ( p .ExtraData ) ,
390
+ ExtraData : data .ExtraData ,
403
391
BaseFeePerGas : p .BaseFeePerGas ,
404
392
BlockHash : p .BlockHash ,
405
- TransactionsRoot : [32 ]byte (types . DeriveSha ( types . Transactions ( txs ), trie . NewStackTrie ( nil )) ),
393
+ TransactionsRoot : [32 ]byte (txroot ),
406
394
}, nil
407
395
}
408
396
0 commit comments