mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-19 10:22:23 +00:00
refactor tracing codes (#675)
* update rollup/tracing/tracing.go * rename * fix
This commit is contained in:
parent
badcd0c432
commit
b078aca5f6
3 changed files with 24 additions and 24 deletions
|
|
@ -59,7 +59,7 @@ func NewBlockValidator(config *params.ChainConfig, blockchain *BlockChain, engin
|
|||
}
|
||||
|
||||
type tracerWrapper interface {
|
||||
CreateTraceEnvAndGetBlockTrace(*params.ChainConfig, ChainContext, consensus.Engine, ethdb.Database, *state.StateDB, *types.Block, *types.Block, bool) (*types.BlockTrace, error)
|
||||
CreateTraceEnvAndGetBlockTrace(*params.ChainConfig, ChainContext, consensus.Engine, ethdb.Database, *state.StateDB, *types.Header, *types.Block, bool) (*types.BlockTrace, error)
|
||||
}
|
||||
|
||||
func (v *BlockValidator) SetupTracerAndCircuitCapacityChecker(tracer tracerWrapper) {
|
||||
|
|
@ -324,7 +324,7 @@ func (v *BlockValidator) createTraceEnvAndGetBlockTrace(block *types.Block) (*ty
|
|||
return nil, err
|
||||
}
|
||||
|
||||
return v.tracer.CreateTraceEnvAndGetBlockTrace(v.config, v.bc, v.engine, v.bc.db, statedb, parent, block, true)
|
||||
return v.tracer.CreateTraceEnvAndGetBlockTrace(v.config, v.bc, v.engine, v.bc.db, statedb, parent.Header(), block, true)
|
||||
}
|
||||
|
||||
func (v *BlockValidator) validateCircuitRowConsumption(block *types.Block) (*types.RowConsumption, error) {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ type TraceBlock interface {
|
|||
}
|
||||
|
||||
type scrollTracerWrapper interface {
|
||||
CreateTraceEnvAndGetBlockTrace(*params.ChainConfig, core.ChainContext, consensus.Engine, ethdb.Database, *state.StateDB, *types.Block, *types.Block, bool) (*types.BlockTrace, error)
|
||||
CreateTraceEnvAndGetBlockTrace(*params.ChainConfig, core.ChainContext, consensus.Engine, ethdb.Database, *state.StateDB, *types.Header, *types.Block, bool) (*types.BlockTrace, error)
|
||||
}
|
||||
|
||||
// GetBlockTraceByNumberOrHash replays the block and returns the structured BlockTrace by hash or number.
|
||||
|
|
@ -108,5 +108,5 @@ func (api *API) createTraceEnvAndGetBlockTrace(ctx context.Context, config *Trac
|
|||
defer release()
|
||||
|
||||
chaindb := api.backend.ChainDb()
|
||||
return api.scrollTracerWrapper.CreateTraceEnvAndGetBlockTrace(api.backend.ChainConfig(), api.chainContext(ctx), api.backend.Engine(), chaindb, statedb, parent, block, true)
|
||||
return api.scrollTracerWrapper.CreateTraceEnvAndGetBlockTrace(api.backend.ChainConfig(), api.chainContext(ctx), api.backend.Engine(), chaindb, statedb, parent.Header(), block, true)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,8 +36,8 @@ func NewTracerWrapper() *TracerWrapper {
|
|||
}
|
||||
|
||||
// CreateTraceEnvAndGetBlockTrace wraps the whole block tracing logic for a block
|
||||
func (tw *TracerWrapper) CreateTraceEnvAndGetBlockTrace(chainConfig *params.ChainConfig, chainContext core.ChainContext, engine consensus.Engine, chaindb ethdb.Database, statedb *state.StateDB, parent *types.Block, block *types.Block, commitAfterApply bool) (*types.BlockTrace, error) {
|
||||
traceEnv, err := CreateTraceEnv(chainConfig, chainContext, engine, chaindb, statedb, parent, block, commitAfterApply)
|
||||
func (tw *TracerWrapper) CreateTraceEnvAndGetBlockTrace(chainConfig *params.ChainConfig, chainContext core.ChainContext, engine consensus.Engine, chaindb ethdb.Database, statedb *state.StateDB, parentHeader *types.Header, block *types.Block, finaliseStateAfterApply bool) (*types.BlockTrace, error) {
|
||||
traceEnv, err := CreateTraceEnv(chainConfig, chainContext, engine, chaindb, statedb, parentHeader, block, finaliseStateAfterApply)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
@ -47,7 +47,7 @@ func (tw *TracerWrapper) CreateTraceEnvAndGetBlockTrace(chainConfig *params.Chai
|
|||
|
||||
type TraceEnv struct {
|
||||
logConfig *logger.Config
|
||||
commitAfterApply bool
|
||||
finaliseStateAfterApply bool
|
||||
chainConfig *params.ChainConfig
|
||||
|
||||
coinbase common.Address
|
||||
|
|
@ -88,10 +88,10 @@ type txTraceTask struct {
|
|||
index int
|
||||
}
|
||||
|
||||
func CreateTraceEnvHelper(chainConfig *params.ChainConfig, logConfig *logger.Config, blockCtx vm.BlockContext, startL1QueueIndex uint64, coinbase common.Address, statedb *state.StateDB, rootBefore common.Hash, block *types.Block, commitAfterApply bool) *TraceEnv {
|
||||
func CreateTraceEnvHelper(chainConfig *params.ChainConfig, logConfig *logger.Config, blockCtx vm.BlockContext, startL1QueueIndex uint64, coinbase common.Address, statedb *state.StateDB, rootBefore common.Hash, block *types.Block, finaliseStateAfterApply bool) *TraceEnv {
|
||||
return &TraceEnv{
|
||||
logConfig: logConfig,
|
||||
commitAfterApply: commitAfterApply,
|
||||
finaliseStateAfterApply: finaliseStateAfterApply,
|
||||
chainConfig: chainConfig,
|
||||
coinbase: coinbase,
|
||||
signer: types.MakeSigner(chainConfig, block.Number(), block.Time()),
|
||||
|
|
@ -110,7 +110,7 @@ func CreateTraceEnvHelper(chainConfig *params.ChainConfig, logConfig *logger.Con
|
|||
}
|
||||
}
|
||||
|
||||
func CreateTraceEnv(chainConfig *params.ChainConfig, chainContext core.ChainContext, engine consensus.Engine, chaindb ethdb.Database, statedb *state.StateDB, parent *types.Block, block *types.Block, commitAfterApply bool) (*TraceEnv, error) {
|
||||
func CreateTraceEnv(chainConfig *params.ChainConfig, chainContext core.ChainContext, engine consensus.Engine, chaindb ethdb.Database, statedb *state.StateDB, parentHeader *types.Header, block *types.Block, finaliseStateAfterApply bool) (*TraceEnv, error) {
|
||||
var coinbase common.Address
|
||||
|
||||
var err error
|
||||
|
|
@ -134,10 +134,10 @@ func CreateTraceEnv(chainConfig *params.ChainConfig, chainContext core.ChainCont
|
|||
// block `C`.
|
||||
// `ReadFirstQueueIndexNotInL1Block(B)` will return the correct value
|
||||
// `10` on follower nodes.
|
||||
startL1QueueIndex := rawdb.ReadFirstQueueIndexNotInL2Block(chaindb, parent.Hash())
|
||||
startL1QueueIndex := rawdb.ReadFirstQueueIndexNotInL2Block(chaindb, parentHeader.Hash())
|
||||
if startL1QueueIndex == nil {
|
||||
log.Error("missing FirstQueueIndexNotInL2Block for block during trace call", "number", parent.NumberU64(), "hash", parent.Hash())
|
||||
return nil, fmt.Errorf("missing FirstQueueIndexNotInL2Block for block during trace call: hash=%v, parentHash=%vv", block.Hash(), parent.Hash())
|
||||
log.Error("missing FirstQueueIndexNotInL2Block for block during trace call", "number", parentHeader.Number.Uint64(), "hash", parentHeader.Hash())
|
||||
return nil, fmt.Errorf("missing FirstQueueIndexNotInL2Block for block during trace call: hash=%v, parentHash=%vv", block.Hash(), parentHeader.Hash())
|
||||
}
|
||||
env := CreateTraceEnvHelper(
|
||||
chainConfig,
|
||||
|
|
@ -150,9 +150,9 @@ func CreateTraceEnv(chainConfig *params.ChainConfig, chainContext core.ChainCont
|
|||
*startL1QueueIndex,
|
||||
coinbase,
|
||||
statedb,
|
||||
parent.Root(),
|
||||
parentHeader.Root,
|
||||
block,
|
||||
commitAfterApply,
|
||||
finaliseStateAfterApply,
|
||||
)
|
||||
|
||||
key := coinbase.String()
|
||||
|
|
@ -222,7 +222,7 @@ func (env *TraceEnv) GetBlockTrace(block *types.Block) (*types.BlockTrace, error
|
|||
failed = err
|
||||
break
|
||||
}
|
||||
if env.commitAfterApply {
|
||||
if env.finaliseStateAfterApply {
|
||||
env.state.Finalise(vmenv.ChainConfig().IsEIP158(block.Number()))
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue