diff --git a/eth/tracers/native/native.go b/eth/tracers/native/native.go new file mode 100644 index 0000000000..2b2d673925 --- /dev/null +++ b/eth/tracers/native/native.go @@ -0,0 +1,18 @@ +package native + +import "github.com/ethereum/go-ethereum/core/vm" + +type Constructor func() vm.Tracer + +var tracers map[string]Constructor = make(map[string]Constructor) + +func Register(name string, fn Constructor) { + tracers[name] = fn +} + +func New(name string) (vm.Tracer, bool) { + if fn, ok := tracers[name]; ok { + return fn(), true + } + return nil, false +}