diff --git a/eth/api_pre_exec.go b/eth/api_pre_exec.go index 14236c8a1f..41c3e54f5e 100644 --- a/eth/api_pre_exec.go +++ b/eth/api_pre_exec.go @@ -2,12 +2,7 @@ package eth import ( "context" - "errors" "fmt" - "hash" - "math/big" - "time" - "github.com/DeBankDeFi/eth/txtrace" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/hexutil" @@ -19,6 +14,8 @@ import ( "github.com/ethereum/go-ethereum/internal/ethapi" "github.com/ethereum/go-ethereum/rpc" "golang.org/x/crypto/sha3" + "hash" + "math/big" ) type helpHash struct { @@ -144,7 +141,7 @@ func (api *PreExecAPI) GetLogs(ctx context.Context, origin *PreExecTx) (*types.R func (api *PreExecAPI) TraceTransaction(ctx context.Context, origin *PreExecTx, config *tracers.TraceConfig) (interface{}, error) { var ( bc = api.e.blockchain - tracer vm.Tracer + tracer vm.EVMLogger err error ) d, err := api.prepareData(ctx, origin) @@ -154,38 +151,7 @@ func (api *PreExecAPI) TraceTransaction(ctx context.Context, origin *PreExecTx, txContext := core.NewEVMTxContext(d.msg) txIndex := 0 - switch { - case config != nil && config.Tracer != nil: - // Define a meaningful timeout of a single transaction trace - timeout := 5 * time.Second - if config.Timeout != nil { - if timeout, err = time.ParseDuration(*config.Timeout); err != nil { - return nil, err - } - } - // Constuct the JavaScript tracer to execute with - if tracer, err = tracers.New(*config.Tracer, &tracers.Context{ - BlockHash: d.block.Hash(), - TxIndex: txIndex, - TxHash: d.tx.Hash(), - }); err != nil { - return nil, err - } - // Handle timeouts and RPC cancellations - deadlineCtx, cancel := context.WithTimeout(ctx, timeout) - defer cancel() - go func() { - <-deadlineCtx.Done() - if deadlineCtx.Err() == context.DeadlineExceeded { - tracer.(*tracers.Tracer).Stop(errors.New("execution timeout")) - } - }() - case config == nil: - fallthrough - default: - // Constuct the txtrace.StructLogger tracer to execute with - tracer = txtrace.NewTraceStructLogger(nil) - } + tracer = txtrace.NewTraceStructLogger(nil) // Run the transaction with tracing enabled. vmenv := vm.NewEVM(core.NewEVMBlockContext(d.header, bc, nil), txContext, d.stateDb, bc.Config(), vm.Config{Debug: true, Tracer: tracer}) vmenv.Context.BaseFee = big.NewInt(0) @@ -226,8 +192,6 @@ func (api *PreExecAPI) TraceTransaction(ctx context.Context, origin *PreExecTx, ReturnValue: returnVal, StructLogs: ethapi.FormatLogs(tracer.StructLogs()), }, nil - case *tracers.Tracer: - return tracer.GetResult() case *txtrace.StructLogger: tracer.Finalize() return tracer.GetResult(), nil diff --git a/go.mod b/go.mod index 822457a340..65c7e1e7c3 100644 --- a/go.mod +++ b/go.mod @@ -4,7 +4,7 @@ go 1.15 require ( github.com/Azure/azure-storage-blob-go v0.7.0 - github.com/DeBankDeFi/eth v1.10.11-rc1 + github.com/DeBankDeFi/eth v1.10.13 github.com/VictoriaMetrics/fastcache v1.6.0 github.com/aws/aws-sdk-go-v2 v1.2.0 github.com/aws/aws-sdk-go-v2/config v1.1.1 diff --git a/go.sum b/go.sum index 944752a89c..2c15d9b0af 100644 --- a/go.sum +++ b/go.sum @@ -42,8 +42,8 @@ github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbt github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= -github.com/DeBankDeFi/eth v1.10.11-rc1 h1:HNxI0ii9eglgSEd1p0ldjqIMhMXhqkZoTAMntPcBmxA= -github.com/DeBankDeFi/eth v1.10.11-rc1/go.mod h1:tWpXw739iAtlmcDoNeZR5m8SVB+1llD0EDq4WvAZOJ4= +github.com/DeBankDeFi/eth v1.10.13 h1:dTh8d8zgRroqgPuYp+vA32UhgkBMkXVYpgFAiuo9SBk= +github.com/DeBankDeFi/eth v1.10.13/go.mod h1:IjNH3VkwCk+No8I3lvMniNL+i/NNnGcZCQcc9S/UyHs= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6 h1:fLjPD/aNc3UIOA6tDi6QXUemppXK3P9BI7mr2hd6gx8= github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= @@ -134,7 +134,7 @@ github.com/edsrzf/mmap-go v1.0.0 h1:CEBF7HpRnUCSJgGUb5h1Gm7e3VkmVDrR8lvWVLtrOFw= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/ethereum/go-ethereum v1.10.11/go.mod h1:W3yfrFyL9C1pHcwY5hmRHVDaorTiQxhYBkKyu5mEDHw= +github.com/ethereum/go-ethereum v1.10.13/go.mod h1:W3yfrFyL9C1pHcwY5hmRHVDaorTiQxhYBkKyu5mEDHw= github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fjl/memsize v0.0.0-20190710130421-bcb5799ab5e5 h1:FtmdgXiUlNeRsoNMFlKLDt+S+6hbjVMEW6RGQ7aUf7c=