go-ethereum/eth
Arran Schlosberg 464de82910
feat: state-key transformation w/ override (#205)
## Why this should be merged

`ava-labs/coreth` has a partitioned state-address space, achieved by
setting or clearing a specific bit in the hash used to key the space.
This change allows such behaviour to be achieved with pure `libevm`
instead of the `StateDB` wrapping that `coreth` currently uses.

## How this works

Introduction of `state.StateDBHooks` interface, including a
`TransformStateKey()` method that allows for arbitrary change of state
key. If registered, this hook will be honoured by
`StateDB.{Get,GetCommitted,State}Key()` methods unless they receive a
`stateconf.SkipStateKeyTransformation` option.

## How this was tested

Unit test of `SetState() -> GetState() + GetCommittedState()` round trip
with and without options to skip.
2025-07-22 13:08:53 -04:00
..
catalyst refactor!(core/types): Block method WithBody(Body) signature (#110) 2025-02-11 14:29:34 +00:00
downloader refactor!(core/types): Block method WithBody(Body) signature (#110) 2025-02-11 14:29:34 +00:00
ethconfig [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
fetcher refactor!(core/types): Block method WithBody(Body) signature (#110) 2025-02-11 14:29:34 +00:00
filters [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
gasestimator [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
gasprice eth/gasprice: add query limit for FeeHistory to defend DDOS attack (#29644) 2025-06-10 15:08:39 +01:00
protocols [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
tracers feat: state-key transformation w/ override (#205) 2025-07-22 13:08:53 -04:00
api.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
api_admin.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
api_backend.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
api_debug.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
api_debug_test.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
api_miner.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
backend.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
bloombits.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
handler.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
handler_eth.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
handler_eth_test.go refactor!(core/types): Block method WithBody(Body) signature (#110) 2025-02-11 14:29:34 +00:00
handler_snap.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
handler_test.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
peer.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
peerset.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
state_accessor.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