eth: correct tracer initialization in BlockchainConfig (#32107)
Some checks failed
/ Linux Build (push) Has been cancelled
/ Linux Build (arm) (push) Has been cancelled
/ Docker Image (push) Has been cancelled

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.
This commit is contained in:
Stéphane Duchesneau 2025-06-27 18:56:20 -04:00 committed by GitHub
parent aa1de05720
commit 663fa7b496
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -221,9 +221,6 @@ func New(stack *node.Node, config *ethconfig.Config) (*Ethereum, error) {
} }
} }
var ( var (
vmConfig = vm.Config{
EnablePreimageRecording: config.EnablePreimageRecording,
}
options = &core.BlockChainConfig{ options = &core.BlockChainConfig{
TrieCleanLimit: config.TrieCleanCache, TrieCleanLimit: config.TrieCleanCache,
NoPrefetch: config.NoPrefetch, NoPrefetch: config.NoPrefetch,
@ -236,7 +233,9 @@ func New(stack *node.Node, config *ethconfig.Config) (*Ethereum, error) {
StateScheme: scheme, StateScheme: scheme,
ChainHistoryMode: config.HistoryMode, ChainHistoryMode: config.HistoryMode,
TxLookupLimit: int64(min(config.TransactionHistory, math.MaxInt64)), 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 { if err != nil {
return nil, fmt.Errorf("failed to create tracer %s: %v", config.VMTrace, err) 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. // Override the chain config with provided settings.
var overrides core.ChainOverrides var overrides core.ChainOverrides