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()) }