go-ethereum/core/state
Arran Schlosberg 3a754099bf
feat: state.SnapshotTree interface for drop-in replacement (#77)
## Why this should be merged

Allows for a drop-in replacement of `snapshot.Tree` (i.e. one that uses
block hashes instead of state roots). This is intended as a temporary
solution while we investigate having the state root affected by the
block hash to remove path ambiguity.

## How this works

Introduction of:
1. `state.SnapshotTree` interface to match methods required on
`snapshot.Tree` as used by `state.StateDB`; and
2. `stateconf` package for variadic options plumbed by
`StateDB.Commit()` through to `SnapshotTree.Update()`.

Although variadic (to maintain function call-signature compatibility)
only the `stateconf.WithUpdatePayload(any)` is expected to be used.
Recipients of the options can access the payload with
`stateconf.ExtractUpdatePayload()`.

## How this was tested

Unit test demonstrating propagation of `stateconf.UpdateOption` payload.
2024-11-26 17:22:13 +00:00
..
pruner [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
snapshot feat: state.SnapshotTree interface for drop-in replacement (#77) 2024-11-26 17:22:13 +00:00
access_list.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
database.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
dump.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
iterator.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
iterator_test.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
journal.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
metrics.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
state.libevm.go Merge branch 'auto-rename-module_source-2bd6bd01d2e8561dd7fc21b631f4a34ac16627a1_workflow-c1fc594f020d23958b641a4e5a856b6e52c49d3bece94b95594864db16c1b0fc-main' into arr4n/rename-module 2024-10-17 13:07:28 +11:00
state.libevm_test.go Merge branch 'auto-rename-module_source-2bd6bd01d2e8561dd7fc21b631f4a34ac16627a1_workflow-c1fc594f020d23958b641a4e5a856b6e52c49d3bece94b95594864db16c1b0fc-main' into arr4n/rename-module 2024-10-17 13:07:28 +11:00
state_object.go fix: state.stateObject.empty() with extra payload (#62) 2024-10-28 11:34:19 -07:00
state_object.libevm_test.go fix: state.stateObject.empty() with extra payload (#62) 2024-10-28 11:34:19 -07:00
state_object_test.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
state_test.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
statedb.go feat: state.SnapshotTree interface for drop-in replacement (#77) 2024-11-26 17:22:13 +00:00
statedb.libevm.go feat: state.SnapshotTree interface for drop-in replacement (#77) 2024-11-26 17:22:13 +00:00
statedb.libevm_test.go feat: state.SnapshotTree interface for drop-in replacement (#77) 2024-11-26 17:22:13 +00:00
statedb_fuzz_test.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
statedb_test.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
sync.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
sync_test.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
transient_storage.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
trie_prefetcher.go feat(core/state): async trie prefetching (#76) 2024-11-26 08:01:47 -08:00
trie_prefetcher.libevm.go feat(core/state): async trie prefetching (#76) 2024-11-26 08:01:47 -08:00
trie_prefetcher.libevm_test.go feat(core/state): async trie prefetching (#76) 2024-11-26 08:01:47 -08:00
trie_prefetcher_test.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00