From aae2ea53df07032e747f61cfd9a05b0c0e969abd Mon Sep 17 00:00:00 2001 From: Nazarii Denha Date: Fri, 10 Feb 2023 08:13:46 +0100 Subject: [PATCH] feat: include fee vault address in trace api result (#208) * include fee vault address in trace api result * use fee vault instead of coinbase if exists * retrigger checks * Update api_blocktrace_test.go --------- Co-authored-by: maskpp Co-authored-by: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> --- eth/tracers/api_blocktrace.go | 12 +++++++++--- eth/tracers/api_blocktrace_test.go | 13 +++++++++---- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/eth/tracers/api_blocktrace.go b/eth/tracers/api_blocktrace.go index e26f6e0c01..0eed2d0d13 100644 --- a/eth/tracers/api_blocktrace.go +++ b/eth/tracers/api_blocktrace.go @@ -94,9 +94,14 @@ func (api *API) createTraceEnv(ctx context.Context, config *TraceConfig, block * } // get coinbase - coinbase, err := api.backend.Engine().Author(block.Header()) - if err != nil { - return nil, err + var coinbase common.Address + if api.backend.ChainConfig().FeeVaultAddress != nil { + coinbase = *api.backend.ChainConfig().FeeVaultAddress + } else { + coinbase, err = api.backend.Engine().Author(block.Header()) + if err != nil { + return nil, err + } } env := &traceEnv{ @@ -127,6 +132,7 @@ func (api *API) createTraceEnv(ctx context.Context, config *TraceConfig, block * } env.Proofs[key] = wrappedProof } + return env, nil } diff --git a/eth/tracers/api_blocktrace_test.go b/eth/tracers/api_blocktrace_test.go index 85532b6076..beb0e6435b 100644 --- a/eth/tracers/api_blocktrace_test.go +++ b/eth/tracers/api_blocktrace_test.go @@ -180,10 +180,15 @@ func checkStructLogs(t *testing.T, expect []*txTraceResult, actual []*types.Exec } func checkCoinbase(t *testing.T, b *testBackend, wrapper *types.AccountWrapper) { - header, err := b.HeaderByNumber(context.Background(), 1) - assert.NoError(t, err) - coinbase, err := b.engine.Author(header) - assert.NoError(t, err) + var coinbase common.Address + if b.chainConfig.FeeVaultAddress != nil { + coinbase = *b.chainConfig.FeeVaultAddress + } else { + header, err := b.HeaderByNumber(context.Background(), 1) + assert.NoError(t, err) + coinbase, err = b.engine.Author(header) + assert.NoError(t, err) + } assert.Equal(t, true, coinbase.String() == wrapper.Address.String()) }