From 663fa7b49603442ba897d79c77ad912ebf2950fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Duchesneau?= Date: Fri, 27 Jun 2025 18:56:20 -0400 Subject: [PATCH] eth: correct tracer initialization in BlockchainConfig (#32107) core.BlockChainConfig.VmConfig is not a pointer, so setting the Tracer on the `vmConfig` object after it was passed to options does *not* apply it to options.VmConfig This fixes the issue by setting the value directly inside the `options` object and removing the confusing `vmConfig` variable to prevent further mistakes. --- eth/backend.go | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/eth/backend.go b/eth/backend.go index 8f2b803c86..f7105ab79c 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -221,9 +221,6 @@ func New(stack *node.Node, config *ethconfig.Config) (*Ethereum, error) { } } var ( - vmConfig = vm.Config{ - EnablePreimageRecording: config.EnablePreimageRecording, - } options = &core.BlockChainConfig{ TrieCleanLimit: config.TrieCleanCache, NoPrefetch: config.NoPrefetch, @@ -236,7 +233,9 @@ func New(stack *node.Node, config *ethconfig.Config) (*Ethereum, error) { StateScheme: scheme, ChainHistoryMode: config.HistoryMode, TxLookupLimit: int64(min(config.TransactionHistory, math.MaxInt64)), - VmConfig: vmConfig, + VmConfig: vm.Config{ + EnablePreimageRecording: config.EnablePreimageRecording, + }, } ) @@ -249,7 +248,7 @@ func New(stack *node.Node, config *ethconfig.Config) (*Ethereum, error) { if err != nil { return nil, fmt.Errorf("failed to create tracer %s: %v", config.VMTrace, err) } - vmConfig.Tracer = t + options.VmConfig.Tracer = t } // Override the chain config with provided settings. var overrides core.ChainOverrides