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 (
|
||||
"context"
|
||||
"errors"
|
||||
|
||||
"github.com/ethereum/go-ethereum/eth/tracers"
|
||||
"github.com/ethereum/go-ethereum/rpc"
|
||||
|
|
@ -20,16 +21,25 @@ var defaultTraceConfig = &traceConfig{
|
|||
Tracer: "callTracer",
|
||||
}
|
||||
|
||||
func (api *filterAPI) Block(ctx context.Context, blockNr rpc.BlockNumber, cfg *traceConfig) ([]*traceResult, error) {
|
||||
blknum := uint64(blockNr.Int64())
|
||||
if blockNr == rpc.LatestBlockNumber {
|
||||
blknum = api.filter.latest.Load()
|
||||
func (api *filterAPI) isSupportedTracer(tracer string) bool {
|
||||
_, ok := api.filter.tracer.Tracers()[tracer]
|
||||
return ok
|
||||
}
|
||||
|
||||
func (api *filterAPI) Block(ctx context.Context, blockNr rpc.BlockNumber, cfg *traceConfig) ([]*traceResult, error) {
|
||||
tracer := defaultTraceConfig.Tracer
|
||||
if cfg != nil {
|
||||
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)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue