cmd/evm: try to consolidate evm output switches

This commit is contained in:
Martin Holst Swende 2024-12-03 09:45:22 +01:00
parent f0e7382f38
commit 9e3ddadf2f
No known key found for this signature in database
GPG key ID: 683B438C05A5DDF0
5 changed files with 12 additions and 24 deletions

View file

@ -97,7 +97,6 @@ func Transition(ctx *cli.Context) error {
DisableStack: ctx.Bool(TraceDisableStackFlag.Name), DisableStack: ctx.Bool(TraceDisableStackFlag.Name),
EnableMemory: ctx.Bool(TraceEnableMemoryFlag.Name), EnableMemory: ctx.Bool(TraceEnableMemoryFlag.Name),
EnableReturnData: ctx.Bool(TraceEnableReturnDataFlag.Name), EnableReturnData: ctx.Bool(TraceEnableReturnDataFlag.Name),
Debug: true,
} }
getTracer = func(txIndex int, txHash common.Hash, _ *params.ChainConfig) (*tracers.Tracer, io.WriteCloser, error) { getTracer = func(txIndex int, txHash common.Hash, _ *params.ChainConfig) (*tracers.Tracer, io.WriteCloser, error) {
traceFile, err := os.Create(filepath.Join(baseDir, fmt.Sprintf("trace-%d-%v.jsonl", txIndex, txHash.String()))) traceFile, err := os.Create(filepath.Join(baseDir, fmt.Sprintf("trace-%d-%v.jsonl", txIndex, txHash.String())))

View file

@ -243,6 +243,9 @@ func tracerFromFlags(ctx *cli.Context) *tracing.Hooks {
return logger.NewStreamingStructLogger(config, os.Stderr).Hooks() return logger.NewStreamingStructLogger(config, os.Stderr).Hooks()
case ctx.Bool(TraceFlag.Name) && ctx.String(TraceFormatFlag.Name) == "json": case ctx.Bool(TraceFlag.Name) && ctx.String(TraceFormatFlag.Name) == "json":
return logger.NewJSONLogger(config, os.Stderr) return logger.NewJSONLogger(config, os.Stderr)
case ctx.Bool(TraceFlag.Name) &&
(ctx.String(TraceFormatFlag.Name) == "md" || ctx.String(TraceFormatFlag.Name) == "markdown"):
return logger.NewMarkdownLogger(config, os.Stderr).Hooks()
case ctx.Bool(MachineFlag.Name): case ctx.Bool(MachineFlag.Name):
return logger.NewJSONLogger(config, os.Stderr) return logger.NewJSONLogger(config, os.Stderr)
case ctx.Bool(DebugFlag.Name): case ctx.Bool(DebugFlag.Name):

View file

@ -39,7 +39,6 @@ import (
"github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/core/types"
"github.com/ethereum/go-ethereum/core/vm" "github.com/ethereum/go-ethereum/core/vm"
"github.com/ethereum/go-ethereum/core/vm/runtime" "github.com/ethereum/go-ethereum/core/vm/runtime"
"github.com/ethereum/go-ethereum/eth/tracers/logger"
"github.com/ethereum/go-ethereum/internal/flags" "github.com/ethereum/go-ethereum/internal/flags"
"github.com/ethereum/go-ethereum/params" "github.com/ethereum/go-ethereum/params"
"github.com/ethereum/go-ethereum/triedb" "github.com/ethereum/go-ethereum/triedb"
@ -66,6 +65,7 @@ var runCommand = &cli.Command{
SenderFlag, SenderFlag,
ValueFlag, ValueFlag,
StatDumpFlag, StatDumpFlag,
DumpFlag,
}, traceFlags), }, traceFlags),
} }
@ -197,13 +197,6 @@ func timedExec(bench bool, execFunc func() ([]byte, uint64, error)) ([]byte, exe
} }
func runCmd(ctx *cli.Context) error { func runCmd(ctx *cli.Context) error {
logconfig := &logger.Config{
EnableMemory: !ctx.Bool(TraceDisableMemoryFlag.Name),
DisableStack: ctx.Bool(TraceDisableStackFlag.Name),
DisableStorage: ctx.Bool(TraceDisableStorageFlag.Name),
EnableReturnData: !ctx.Bool(TraceDisableReturnDataFlag.Name),
Debug: ctx.Bool(DebugFlag.Name),
}
var ( var (
tracer *tracing.Hooks tracer *tracing.Hooks
@ -215,12 +208,7 @@ func runCmd(ctx *cli.Context) error {
blobHashes []common.Hash // TODO (MariusVanDerWijden) implement blob hashes in state tests blobHashes []common.Hash // TODO (MariusVanDerWijden) implement blob hashes in state tests
blobBaseFee = new(big.Int) // TODO (MariusVanDerWijden) implement blob fee in state tests blobBaseFee = new(big.Int) // TODO (MariusVanDerWijden) implement blob fee in state tests
) )
if ctx.Bool(MachineFlag.Name) { tracer = tracerFromFlags(ctx)
tracer = logger.NewJSONLogger(logconfig, os.Stdout)
} else if ctx.Bool(DebugFlag.Name) {
tracer = logger.NewStreamingStructLogger(logconfig, os.Stderr).Hooks()
}
initialGas := ctx.Uint64(GasFlag.Name) initialGas := ctx.Uint64(GasFlag.Name)
genesisConfig := new(core.Genesis) genesisConfig := new(core.Genesis)
genesisConfig.GasLimit = initialGas genesisConfig.GasLimit = initialGas

View file

@ -758,7 +758,6 @@ func (api *API) standardTraceBlockToFile(ctx context.Context, block *types.Block
logConfig = config.Config logConfig = config.Config
txHash = config.TxHash txHash = config.TxHash
} }
logConfig.Debug = true
// Execute transaction, either tracing all or just the requested one // Execute transaction, either tracing all or just the requested one
var ( var (

View file

@ -45,9 +45,7 @@ type Config struct {
DisableStack bool // disable stack capture DisableStack bool // disable stack capture
DisableStorage bool // disable storage capture DisableStorage bool // disable storage capture
EnableReturnData bool // enable return data capture EnableReturnData bool // enable return data capture
Debug bool // print output during capture end
Limit int // maximum size of output, but zero means unlimited Limit int // maximum size of output, but zero means unlimited
// Chain overrides, can be used to execute a trace using future fork rules // Chain overrides, can be used to execute a trace using future fork rules
Overrides *params.ChainConfig `json:"overrides,omitempty"` Overrides *params.ChainConfig `json:"overrides,omitempty"`
} }
@ -324,12 +322,13 @@ func (l *StructLogger) OnExit(depth int, output []byte, gasUsed uint64, err erro
} }
l.output = output l.output = output
l.err = err l.err = err
if l.cfg.Debug { // TODO @holiman, should we output the per-scope output?
fmt.Printf("%#x\n", output) //if l.cfg.Debug {
if err != nil { // fmt.Printf("%#x\n", output)
fmt.Printf(" error: %v\n", err) // if err != nil {
} // fmt.Printf(" error: %v\n", err)
} // }
//}
} }
func (l *StructLogger) GetResult() (json.RawMessage, error) { func (l *StructLogger) GetResult() (json.RawMessage, error) {