go-ethereum/core/state
rayoo b70d9a4b8e
Some checks failed
/ Linux Build (push) Has been cancelled
/ Linux Build (arm) (push) Has been cancelled
/ Keeper Build (push) Has been cancelled
/ Windows Build (push) Has been cancelled
/ Docker Image (push) Has been cancelled
core/state,core/types/bal: copy stateReadList in StateDB.Copy
The stateReadList field introduced by #34776 to track the state access
footprint for EIP-7928 was not propagated by StateDB.Copy. Every other
per-transaction field that lives alongside it (accessList,
transientStorage, journal, witness, accessEvents) is copied explicitly,
so this field was simply missed.

After Copy the copy's stateReadList is nil while the original keeps its
entries, so the nil-safe guards on StateAccessList.AddAccount / AddState
silently drop every access recorded on the copy. For any post-Amsterdam
code path that copies a prepared state and keeps reading from the copy,
the BAL footprint becomes incomplete.

Add a Copy method on bal.StateAccessList and invoke it from
StateDB.Copy, matching the pattern used for accessList and accessEvents.

---------

Co-authored-by: jwasinger <j-wasinger@hotmail.com>
2026-04-24 17:30:03 +02:00
..
pruner all: improve ETA calculation across all progress indicators (#32521) 2025-09-01 13:47:02 +08:00
snapshot crypto/keccak: vendor in golang.org/x/crypto/sha3 (#33323) 2026-02-03 14:55:27 -07:00
access_events.go trie, go.mod: remove all references to go-verkle and go-ipa (#33461) 2025-12-30 20:44:04 +08:00
access_events_test.go trie, go.mod: remove all references to go-verkle and go-ipa (#33461) 2025-12-30 20:44:04 +08:00
access_list.go core/state: improve accessList copy (#33024) 2025-10-26 16:13:59 +08:00
database.go core/state: export StateUpdate struct (#34724) 2026-04-20 17:12:10 +02:00
database_code.go core, miner, tests: introduce codedb and simplify cachingDB (#33816) 2026-03-10 08:29:21 +01:00
database_history.go core/state: export StateUpdate struct (#34724) 2026-04-20 17:12:10 +02:00
database_iterator.go core/state: export StateUpdate struct (#34724) 2026-04-20 17:12:10 +02:00
database_iterator_test.go core/state: export StateUpdate struct (#34724) 2026-04-20 17:12:10 +02:00
database_mpt.go core/state: export StateUpdate struct (#34724) 2026-04-20 17:12:10 +02:00
database_ubt.go core/state: export StateUpdate struct (#34724) 2026-04-20 17:12:10 +02:00
dump.go core/state: export StateUpdate struct (#34724) 2026-04-20 17:12:10 +02:00
iterator.go core, miner, tests: introduce codedb and simplify cachingDB (#33816) 2026-03-10 08:29:21 +01:00
iterator_test.go core/state: state reader abstraction (#29761) 2024-09-05 13:10:47 +03:00
journal.go core: miner: reduce allocations in block building (#33375) 2026-02-03 08:19:16 +01:00
metrics.go core/rawdb,state: add preimage miss metric (#31295) 2025-03-07 11:23:19 +01:00
reader.go core/state: separate trie reader to mptReader and ubtReader (#34763) 2026-04-20 15:04:42 +02:00
reader_stater.go core, miner, tests: introduce codedb and simplify cachingDB (#33816) 2026-03-10 08:29:21 +01:00
state_object.go core: track the state access footprint (#34776) 2026-04-22 13:42:49 +08:00
state_object_test.go core/state: using testing.B.Loop (#32658) 2025-09-19 16:57:43 -06:00
state_sizer.go core/state: export StateUpdate struct (#34724) 2026-04-20 17:12:10 +02:00
state_sizer_test.go core/state: export StateUpdate struct (#34724) 2026-04-20 17:12:10 +02:00
state_test.go core, consensus/beacon: defer trie resolution (#31725) 2025-06-25 09:42:11 +08:00
statedb.go core/state,core/types/bal: copy stateReadList in StateDB.Copy 2026-04-24 17:30:03 +02:00
statedb_fuzz_test.go core/state: export StateUpdate struct (#34724) 2026-04-20 17:12:10 +02:00
statedb_hooked.go core: track the state access footprint (#34776) 2026-04-22 13:42:49 +08:00
statedb_hooked_test.go core: invoke selfdestruct tracer hooks during finalisation (#32919) 2026-01-16 15:10:08 -07:00
statedb_test.go core/state: handle *bintrie.BinaryTrie in mustCopyTrie (#34758) 2026-04-18 18:47:22 +02:00
stateupdate.go core/state: export StateUpdate struct (#34724) 2026-04-20 17:12:10 +02:00
sync.go core,eth,internal: fix typo (#29024) 2024-02-20 19:42:48 +08:00
sync_test.go core, miner, tests: introduce codedb and simplify cachingDB (#33816) 2026-03-10 08:29:21 +01:00
transient_storage.go core/state: optimize transient storage (#33695) 2026-04-14 15:39:42 +02:00
trie_prefetcher.go cmd, core, trie, triedb: split CachingDB into merkle + binary dbs. (#34700) 2026-04-17 08:55:54 +08:00
trie_prefetcher_test.go cmd, core, trie, triedb: split CachingDB into merkle + binary dbs. (#34700) 2026-04-17 08:55:54 +08:00