|
|
@ -204,7 +204,7 @@ func (api *PrivateDebugAPI) traceChain(ctx context.Context, start, end *types.Bl |
|
|
|
if err != nil { |
|
|
|
if err != nil { |
|
|
|
// If the starting state is missing, allow some number of blocks to be reexecuted
|
|
|
|
// If the starting state is missing, allow some number of blocks to be reexecuted
|
|
|
|
reexec := defaultTraceReexec |
|
|
|
reexec := defaultTraceReexec |
|
|
|
if config.Reexec != nil { |
|
|
|
if config != nil && config.Reexec != nil { |
|
|
|
reexec = *config.Reexec |
|
|
|
reexec = *config.Reexec |
|
|
|
} |
|
|
|
} |
|
|
|
// Find the most recent block that has the state available
|
|
|
|
// Find the most recent block that has the state available
|
|
|
@ -465,7 +465,7 @@ func (api *PrivateDebugAPI) traceBlock(ctx context.Context, block *types.Block, |
|
|
|
return nil, fmt.Errorf("parent %x not found", block.ParentHash()) |
|
|
|
return nil, fmt.Errorf("parent %x not found", block.ParentHash()) |
|
|
|
} |
|
|
|
} |
|
|
|
reexec := defaultTraceReexec |
|
|
|
reexec := defaultTraceReexec |
|
|
|
if config.Reexec != nil { |
|
|
|
if config != nil && config.Reexec != nil { |
|
|
|
reexec = *config.Reexec |
|
|
|
reexec = *config.Reexec |
|
|
|
} |
|
|
|
} |
|
|
|
statedb, err := api.computeStateDB(parent, reexec) |
|
|
|
statedb, err := api.computeStateDB(parent, reexec) |
|
|
@ -619,7 +619,7 @@ func (api *PrivateDebugAPI) TraceTransaction(ctx context.Context, hash common.Ha |
|
|
|
return nil, fmt.Errorf("transaction %x not found", hash) |
|
|
|
return nil, fmt.Errorf("transaction %x not found", hash) |
|
|
|
} |
|
|
|
} |
|
|
|
reexec := defaultTraceReexec |
|
|
|
reexec := defaultTraceReexec |
|
|
|
if config.Reexec != nil { |
|
|
|
if config != nil && config.Reexec != nil { |
|
|
|
reexec = *config.Reexec |
|
|
|
reexec = *config.Reexec |
|
|
|
} |
|
|
|
} |
|
|
|
msg, vmctx, statedb, err := api.computeTxEnv(blockHash, int(index), reexec) |
|
|
|
msg, vmctx, statedb, err := api.computeTxEnv(blockHash, int(index), reexec) |
|
|
|