merge_v_1_10_13

This commit is contained in:
linhaiyang 2021-12-06 10:06:54 +08:00
parent b7e0a713a0
commit d47ae5c46f
3 changed files with 8 additions and 44 deletions

View file

@ -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

2
go.mod
View file

@ -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

6
go.sum
View file

@ -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=