Skip to content
This repository was archived by the owner on Jul 5, 2024. It is now read-only.

Commit 2c582b5

Browse files
committed
fix the panic error from geth-utils
1 parent b9f5be9 commit 2c582b5

File tree

1 file changed

+72
-1
lines changed

1 file changed

+72
-1
lines changed

geth-utils/gethutil/trace.go

Lines changed: 72 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ func Trace(config TraceConfig) ([]*ExecutionResult, error) {
251251
tracer := logger.NewStructLogger(config.LoggerConfig)
252252
evm := vm.NewEVM(blockCtx, vm.TxContext{GasPrice: big.NewInt(0)}, stateDB, &chainConfig, vm.Config{Tracer: tracer.Hooks(), NoBaseFee: true})
253253

254-
tx = *types.NewTransaction(message.Nonce, *message.To, message.Value, message.GasLimit, message.GasPrice, message.Data)
254+
tx = *types.NewTx(ToTxData(message, chainConfig.ChainID))
255255
stateDB.SetTxContext(tx.Hash(), i)
256256

257257
_, err = core.ApplyTransactionWithEVM(&message, &chainConfig, new(core.GasPool).AddGas(message.GasLimit), stateDB, blockCtx.BlockNumber, common.Hash{}, &tx, &usedGas, evm)
@@ -271,3 +271,74 @@ func Trace(config TraceConfig) ([]*ExecutionResult, error) {
271271

272272
return executionResults, nil
273273
}
274+
275+
func ToTxData(message core.Message, ChainID *big.Int) types.TxData {
276+
var data types.TxData
277+
switch {
278+
case message.BlobHashes != nil:
279+
al := types.AccessList{}
280+
if message.AccessList != nil {
281+
al = message.AccessList
282+
}
283+
data = &types.BlobTx{
284+
To: *message.To,
285+
ChainID: uint256.MustFromBig((*big.Int)(ChainID)),
286+
Nonce: message.Nonce,
287+
Gas: message.GasLimit,
288+
GasFeeCap: uint256.MustFromBig((*big.Int)(message.GasFeeCap)),
289+
GasTipCap: uint256.MustFromBig((*big.Int)(message.GasTipCap)),
290+
Value: uint256.MustFromBig((*big.Int)(message.Value)),
291+
Data: message.Data,
292+
AccessList: al,
293+
BlobHashes: message.BlobHashes,
294+
BlobFeeCap: uint256.MustFromBig((*big.Int)(message.BlobGasFeeCap)),
295+
}
296+
// if message.Blobs != nil {
297+
// data.(*types.BlobTx).Sidecar = &types.BlobTxSidecar{
298+
// Blobs: message.Blobs,
299+
// Commitments: message.Commitments,
300+
// Proofs: message.Proofs,
301+
// }
302+
// }
303+
304+
case message.GasFeeCap != nil:
305+
al := types.AccessList{}
306+
if message.AccessList != nil {
307+
al = message.AccessList
308+
}
309+
data = &types.DynamicFeeTx{
310+
To: message.To,
311+
ChainID: (*big.Int)(ChainID),
312+
Nonce: message.Nonce,
313+
Gas: message.GasLimit,
314+
GasFeeCap: message.GasFeeCap,
315+
GasTipCap: message.GasTipCap,
316+
Value: message.Value,
317+
Data: message.Data,
318+
AccessList: al,
319+
}
320+
321+
case message.AccessList != nil:
322+
data = &types.AccessListTx{
323+
To: message.To,
324+
ChainID: ChainID,
325+
Nonce: message.Nonce,
326+
Gas: message.GasLimit,
327+
GasPrice: message.GasPrice,
328+
Value: message.Value,
329+
Data: message.Data,
330+
AccessList: message.AccessList,
331+
}
332+
333+
default:
334+
data = &types.LegacyTx{
335+
To: message.To,
336+
Nonce: message.Nonce,
337+
Gas: message.GasLimit,
338+
GasPrice: message.GasPrice,
339+
Value: message.Value,
340+
Data: message.Data,
341+
}
342+
}
343+
return data
344+
}

0 commit comments

Comments
 (0)