mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-19 02:12:23 +00:00
check given tracer
Signed-off-by: jsvisa <delweng@gmail.com>
This commit is contained in:
parent
1aac054d9a
commit
b759f84cf9
1 changed files with 15 additions and 5 deletions
|
|
@ -2,6 +2,7 @@ package live
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"errors"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/eth/tracers"
|
"github.com/ethereum/go-ethereum/eth/tracers"
|
||||||
"github.com/ethereum/go-ethereum/rpc"
|
"github.com/ethereum/go-ethereum/rpc"
|
||||||
|
|
@ -20,16 +21,25 @@ var defaultTraceConfig = &traceConfig{
|
||||||
Tracer: "callTracer",
|
Tracer: "callTracer",
|
||||||
}
|
}
|
||||||
|
|
||||||
func (api *filterAPI) Block(ctx context.Context, blockNr rpc.BlockNumber, cfg *traceConfig) ([]*traceResult, error) {
|
func (api *filterAPI) isSupportedTracer(tracer string) bool {
|
||||||
blknum := uint64(blockNr.Int64())
|
_, ok := api.filter.tracer.Tracers()[tracer]
|
||||||
if blockNr == rpc.LatestBlockNumber {
|
return ok
|
||||||
blknum = api.filter.latest.Load()
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
func (api *filterAPI) Block(ctx context.Context, blockNr rpc.BlockNumber, cfg *traceConfig) ([]*traceResult, error) {
|
||||||
tracer := defaultTraceConfig.Tracer
|
tracer := defaultTraceConfig.Tracer
|
||||||
if cfg != nil {
|
if cfg != nil {
|
||||||
tracer = cfg.Tracer
|
tracer = cfg.Tracer
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !api.isSupportedTracer(tracer) {
|
||||||
|
return nil, errors.New("tracer not found")
|
||||||
|
}
|
||||||
|
|
||||||
|
blknum := uint64(blockNr.Int64())
|
||||||
|
if blockNr == rpc.LatestBlockNumber {
|
||||||
|
blknum = api.filter.latest.Load()
|
||||||
|
}
|
||||||
|
|
||||||
return api.filter.readBlockTraces(ctx, tracer, blknum)
|
return api.filter.readBlockTraces(ctx, tracer, blknum)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue