From afd09afd03871f9c66231a92bba706f4c491b877 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 24 Feb 2025 16:41:06 +0800 Subject: [PATCH] feat(miner): use `[]*ethapi.RPCTransaction` in RPC response body (#391) --- miner/taiko_miner.go | 3 ++- miner/taiko_worker.go | 12 +++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/miner/taiko_miner.go b/miner/taiko_miner.go index 4bc09792a2..7656acdb8c 100644 --- a/miner/taiko_miner.go +++ b/miner/taiko_miner.go @@ -6,12 +6,13 @@ import ( "github.com/ethereum/go-ethereum/beacon/engine" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/core/types" + "github.com/ethereum/go-ethereum/internal/ethapi" ) // PreBuiltTxList is a pre-built transaction list based on the latest chain state, // with estimated gas used / bytes. type PreBuiltTxList struct { - TxList types.Transactions + TxList []*ethapi.RPCTransaction EstimatedGasUsed uint64 BytesLength uint64 } diff --git a/miner/taiko_worker.go b/miner/taiko_worker.go index bdf766cba3..a3233723f8 100644 --- a/miner/taiko_worker.go +++ b/miner/taiko_worker.go @@ -15,6 +15,7 @@ import ( "github.com/ethereum/go-ethereum/core/txpool" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/core/vm" + "github.com/ethereum/go-ethereum/internal/ethapi" "github.com/ethereum/go-ethereum/log" "github.com/ethereum/go-ethereum/params" "github.com/ethereum/go-ethereum/rlp" @@ -93,7 +94,7 @@ func (w *Miner) buildTransactionsLists( } return lastTransaction, &PreBuiltTxList{ - TxList: env.txs, + TxList: w.toRPCTransactions(env.txs), EstimatedGasUsed: env.header.GasLimit - env.gasPool.Gas(), BytesLength: uint64(len(b)), }, nil @@ -338,6 +339,15 @@ loop: return lastTransaction } +// toRPCTransactions converts the given transactions to RPC transactions. +func (w *Miner) toRPCTransactions(txs types.Transactions) []*ethapi.RPCTransaction { + var rpcTxs []*ethapi.RPCTransaction + for _, tx := range txs { + rpcTxs = append(rpcTxs, ethapi.NewRPCPendingTransaction(tx, nil, w.chainConfig)) + } + return rpcTxs +} + // encodeAndCompressTxList encodes and compresses the given transactions list. func encodeAndCompressTxList(txs types.Transactions) ([]byte, error) { b, err := rlp.EncodeToBytes(txs)