From 5c101bba03fd3b28afbd8372d33549acca39b5b3 Mon Sep 17 00:00:00 2001 From: Jared Wasinger Date: Wed, 6 May 2026 12:51:10 -0400 Subject: [PATCH] try fix --- core/state/database.go | 2 +- core/state/reader.go | 9 +++++++++ core/state/reader_eip_7928.go | 5 +++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/core/state/database.go b/core/state/database.go index 7c85d39a05..5628fb211c 100644 --- a/core/state/database.go +++ b/core/state/database.go @@ -251,7 +251,7 @@ func (db *CachingDB) ReaderEIP7928(stateRoot common.Hash, accessList map[common. // Construct the state reader with background prefetching pr := newPrefetchStateReader(r, accessList, threads) - return newReader(db.codedb.Reader(), pr), nil + return newReaderWithPrefetch(db.codedb.Reader(), pr, pr), nil } // OpenTrie opens the main account trie at a specific root hash. diff --git a/core/state/reader.go b/core/state/reader.go index 4f3aa63667..692536350d 100644 --- a/core/state/reader.go +++ b/core/state/reader.go @@ -529,6 +529,7 @@ func (r *stateReaderWithStats) GetStateStats() StateReaderStats { type reader struct { ContractCodeReader StateReader + PrefetcherMetricer } // newReader constructs a reader with the supplied code reader and state reader. @@ -539,6 +540,14 @@ func newReader(codeReader ContractCodeReader, stateReader StateReader) *reader { } } +func newReaderWithPrefetch(codeReader ContractCodeReader, stateReader StateReader, metricer PrefetcherMetricer) *reader { + return &reader{ + ContractCodeReader: codeReader, + StateReader: stateReader, + PrefetcherMetricer: metricer, + } +} + // GetCodeStats returns the statistics of code access. func (r *reader) GetCodeStats() ContractCodeReaderStats { if stater, ok := r.ContractCodeReader.(ContractCodeReaderStater); ok { diff --git a/core/state/reader_eip_7928.go b/core/state/reader_eip_7928.go index 2212c7ac15..bdd0ecf09f 100644 --- a/core/state/reader_eip_7928.go +++ b/core/state/reader_eip_7928.go @@ -139,6 +139,11 @@ func newPrefetchStateReaderInternal(reader StateReader, tasks []*fetchTask, nThr return r } +func (r *prefetchStateReader) Metrics() PrefetchMetrics { + // TODO (jwasinger) actually implement this + return PrefetchMetrics{} +} + func (r *prefetchStateReader) Close() { r.closeOnce.Do(func() { close(r.term)