diff --git a/cmd/evm/internal/t8ntool/flags.go b/cmd/evm/internal/t8ntool/flags.go index 4e6428bbef..c30624ee22 100644 --- a/cmd/evm/internal/t8ntool/flags.go +++ b/cmd/evm/internal/t8ntool/flags.go @@ -34,6 +34,10 @@ var ( Name: "trace.tracer", Usage: "Tracer name", } + TraceTracerConfigFlag = &cli.StringFlag{ + Name: "trace.tracer.config", + Usage: "The config of trace.tracer, in JSON encoded format", + } TraceDisableMemoryFlag = &cli.BoolFlag{ Name: "trace.nomemory", Value: true, diff --git a/cmd/evm/internal/t8ntool/transition.go b/cmd/evm/internal/t8ntool/transition.go index 9013687943..4c995bd973 100644 --- a/cmd/evm/internal/t8ntool/transition.go +++ b/cmd/evm/internal/t8ntool/transition.go @@ -125,10 +125,13 @@ func Transition(ctx *cli.Context) error { } if ctx.Bool(TraceFlag.Name) { if ctx.IsSet(TraceTracerFlag.Name) { - config := &tracers.TraceConfig{} - tracer, err := tracers.DefaultDirectory.New(ctx.String(TraceTracerFlag.Name), nil, config.TracerConfig) + var config json.RawMessage + if ctx.IsSet(TraceTracerConfigFlag.Name) { + config = []byte(ctx.String(TraceTracerConfigFlag.Name)) + } + tracer, err := tracers.DefaultDirectory.New(ctx.String(TraceTracerFlag.Name), nil, config) if err != nil { - return NewError(ErrorConfig, fmt.Errorf("%w unknown value of --%s", err, TraceTracerFlag)) + return NewError(ErrorConfig, fmt.Errorf("can't instantiate a trace instance: %w", err)) } getTracer = func(txIndex int, txHash common.Hash) (*traceWriter, error) { diff --git a/cmd/evm/main.go b/cmd/evm/main.go index 8a1c886990..f82b2d1e44 100644 --- a/cmd/evm/main.go +++ b/cmd/evm/main.go @@ -148,6 +148,7 @@ var stateTransitionCommand = &cli.Command{ Flags: []cli.Flag{ t8ntool.TraceFlag, t8ntool.TraceTracerFlag, + t8ntool.TraceTracerConfigFlag, t8ntool.TraceDisableMemoryFlag, t8ntool.TraceEnableMemoryFlag, t8ntool.TraceDisableStackFlag,