Skip to content

Commit 83a1963

Browse files
committed
wip commit before rebase
1 parent f0b2a30 commit 83a1963

File tree

1 file changed

+39
-6
lines changed

1 file changed

+39
-6
lines changed

eth/tracers/api.go

Lines changed: 39 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ func (api *API) traceChain(start, end *types.Block, config *TraceConfig, closed
262262
log.Warn("invalid trace configuration", "err", err)
263263
return nil
264264
}
265-
env := envFromTraceConfig(api, config.Config)
265+
env := envFromTraceConfig(api, config)
266266

267267
instantiateTracer := func(ctx *Context) (*Tracer, error) {
268268
return api.instantiateTracer(config, ctx)
@@ -426,7 +426,7 @@ func (api *API) traceBlockCustomTracer(ctx context.Context, block *types.Block,
426426
instantiateTracer := func(ctx *Context) (*Tracer, error) {
427427
return api.instantiateTracer(config, ctx)
428428
}
429-
env := envFromTraceConfig(api, config.Config)
429+
env := envFromTraceConfig(api, config)
430430
opt, err := traceExecOpt(config)
431431
if err != nil {
432432
return nil, err
@@ -487,7 +487,7 @@ func (api *API) TraceBadBlock(ctx context.Context, hash common.Hash, config *Tra
487487
}
488488

489489
// TODO: investigate whether the canon field has different treatment when tracing bad blocks
490-
env := envFromTraceConfig(api, config.Config)
490+
env := envFromTraceConfig(api, config)
491491
opt, err := traceExecOpt(config)
492492
if err != nil {
493493
return nil, err
@@ -593,7 +593,33 @@ type traceEnv struct {
593593
chainConfig *params.ChainConfig
594594
}
595595

596-
func envFromTraceConfig(api *API, config *logger.Config) *traceEnv {
596+
func envFromStdConfig(api *API, config *StdTraceConfig) *traceEnv {
597+
if config == nil {
598+
return &traceEnv{
599+
canon: true,
600+
chainConfig: api.backend.ChainConfig(),
601+
}
602+
}
603+
return envFromLoggerConfig(api, &config.Config)
604+
}
605+
606+
func envFromTraceConfig(api *API, config *TraceConfig) *traceEnv {
607+
if config == nil {
608+
return &traceEnv{
609+
canon: true,
610+
chainConfig: api.backend.ChainConfig(),
611+
}
612+
}
613+
return envFromLoggerConfig(api, config.Config)
614+
}
615+
616+
func envFromLoggerConfig(api *API, config *logger.Config) *traceEnv {
617+
if config == nil {
618+
return &traceEnv{
619+
canon: true,
620+
chainConfig: api.backend.ChainConfig(),
621+
}
622+
}
597623
chainConfig := api.backend.ChainConfig()
598624
var canon bool
599625
if config.Overrides != nil {
@@ -825,6 +851,12 @@ func (api *API) standardTraceTxToFile(ctx context.Context, block *types.Block, t
825851
return dumps, nil
826852
}
827853

854+
func traceCallExecOpt(config *TraceCallConfig) (*traceExecOptions, error) {
855+
if config == nil {
856+
return traceExecOpt(nil)
857+
}
858+
return traceExecOpt(&config.TraceConfig)
859+
}
828860
func traceExecOpt(config *TraceConfig) (*traceExecOptions, error) {
829861
opt := &traceExecOptions{
830862
defaultTraceTimeout,
@@ -872,7 +904,8 @@ func (api *API) standardTraceBlockToFile(ctx context.Context, block *types.Block
872904
return nil, errors.New("genesis is not traceable")
873905
}
874906

875-
env := envFromTraceConfig(api, &config.Config)
907+
env := envFromStdConfig(api, config)
908+
876909
var signer = types.MakeSigner(api.backend.ChainConfig(), block.Number(), block.Time())
877910
if config != nil && config.TxHash != (common.Hash{}) {
878911
idx, ok := indexOf(block, config.TxHash)
@@ -1041,7 +1074,7 @@ func (api *API) TraceCall(ctx context.Context, args ethapi.TransactionArgs, bloc
10411074
}
10421075
// try to recompute the state
10431076

1044-
opt, err := traceExecOpt(&config.TraceConfig)
1077+
opt, err := traceCallExecOpt(config)
10451078
if err != nil {
10461079
return nil, err
10471080
}

0 commit comments

Comments
 (0)