mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-30 16:43:46 +00:00
merge_v_1_10_13
This commit is contained in:
parent
b7e0a713a0
commit
d47ae5c46f
3 changed files with 8 additions and 44 deletions
|
|
@ -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
2
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
|
||||
|
|
|
|||
6
go.sum
6
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=
|
||||
|
|
|
|||
Loading…
Reference in a new issue