forked from cerc-io/laconicd-deprecated
evm: add ApplyNativeMessage (#557)
* add ApplyNativeMessage Closes #533 * fix lint * Update x/evm/types/tracer.go Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * Update x/evm/types/tracer.go Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> * no-op tracer Co-authored-by: Federico Kunze Küllmer <31522760+fedekunze@users.noreply.github.com> Co-authored-by: Federico Kunze <federico.kunze94@gmail.com>
This commit is contained in:
co-authored by
Federico Kunze Küllmer
Federico Kunze
parent
742b6d1300
commit
b59d9a23ea
+28
-1
@@ -4,7 +4,9 @@ import (
|
||||
"fmt"
|
||||
"math/big"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/ethereum/go-ethereum/common"
|
||||
"github.com/ethereum/go-ethereum/core"
|
||||
"github.com/ethereum/go-ethereum/core/vm"
|
||||
"github.com/ethereum/go-ethereum/params"
|
||||
@@ -36,7 +38,7 @@ func NewTracer(tracer string, msg core.Message, cfg *params.ChainConfig, height
|
||||
case TracerStruct:
|
||||
return vm.NewStructLogger(logCfg)
|
||||
default:
|
||||
return nil
|
||||
return NewNoOpTracer()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,3 +114,28 @@ func FormatLogs(logs []vm.StructLog) []StructLogRes {
|
||||
}
|
||||
return formatted
|
||||
}
|
||||
|
||||
var _ vm.Tracer = &NoOpTracer{}
|
||||
|
||||
// NoOpTracer is an empty implementation of vm.Tracer interface
|
||||
type NoOpTracer struct{}
|
||||
|
||||
// NewNoOpTracer creates a no-op vm.Tracer
|
||||
func NewNoOpTracer() *NoOpTracer {
|
||||
return &NoOpTracer{}
|
||||
}
|
||||
|
||||
// CaptureStart implements vm.Tracer interface
|
||||
func (dt NoOpTracer) CaptureStart(env *vm.EVM, from, to common.Address, create bool, input []byte, gas uint64, value *big.Int) {
|
||||
}
|
||||
|
||||
// CaptureState implements vm.Tracer interface
|
||||
func (dt NoOpTracer) CaptureState(env *vm.EVM, pc uint64, op vm.OpCode, gas, cost uint64, scope *vm.ScopeContext, rData []byte, depth int, err error) {
|
||||
}
|
||||
|
||||
// CaptureFault implements vm.Tracer interface
|
||||
func (dt NoOpTracer) CaptureFault(env *vm.EVM, pc uint64, op vm.OpCode, gas, cost uint64, scope *vm.ScopeContext, depth int, err error) {
|
||||
}
|
||||
|
||||
// CaptureEnd implements vm.Tracer interface
|
||||
func (dt NoOpTracer) CaptureEnd(output []byte, gasUsed uint64, t time.Duration, err error) {}
|
||||
|
||||
Reference in New Issue
Block a user