go-ethereum/params
Arran Schlosberg 35926db4d6
feat: temporary extras (#234)
## Why this should be merged

Registration of extras requires runtime enforcement of payload types. In
production, only a single set of types can be registered and any
attempts at re-registration will panic (by design). Although this makes
production usage safe, it doesn't allow downstream consumers (e.g. data
indexers) to use extras from different chains (e.g. `coreth` _and_
`subnet-evm`) at the same time.

## How this works

1. The `libevm/register.AtMostOnce` type can now be overridden
temporarily.
2. `params`, `core/types`, `core/vm`, and `state` packages introduce
`WithTempRegisteredExtras()` functions.
3. `libevm/temporary.WithRegisteredExtras()` provides "atomic" override
of all extras.

In all cases, the scope of the override is limited to the life of a
single function call.

## How this was tested

Relative to numbered list above:

1. Unit test of new and existing functionality.
2. Integration tests of both packages, demonstrating both payload and
behavioural override.
2025-10-02 17:42:26 +01:00
..
forks eth/catalyst: add timestamp checks to fcu and new payload and improve param checks (#28230) 2024-01-23 16:02:08 +01:00
bootnodes.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
config.go params: print time value instead of pointer in ConfigCompatError (#29514) 2025-06-10 15:08:38 +01:00
config.libevm.go feat: temporary extras (#234) 2025-10-02 17:42:26 +01:00
config.libevm_test.go feat: temporary extras (#234) 2025-10-02 17:42:26 +01:00
config_test.go params: print time value instead of pointer in ConfigCompatError (#29514) 2025-06-10 15:08:38 +01:00
dao.go [AUTO] rename Go module + update internal import paths 2024-10-17 01:49:47 +00:00
denomination.go build: upgrade to go 1.19 (#25726) 2022-09-10 13:25:40 +02:00
example.libevm_test.go refactor!: consolidate params and types payload access (#84) 2024-12-09 18:32:15 +00:00
hooks.libevm.go feat!: disambiguate EVM-semantic and raw caller/self addresses for precompiles (#211) 2025-08-07 23:48:32 +01:00
hooks.libevm_test.go refactor!: consolidate params and types payload access (#84) 2024-12-09 18:32:15 +00:00
json.libevm.go chore: placate goheader (#195) 2025-06-23 15:25:18 +00:00
json.libevm_test.go chore: placate goheader (#195) 2025-06-23 15:25:18 +00:00
network_params.go les: historical data garbage collection (#19570) 2020-07-13 11:02:54 +02:00
protocol_params.go core/vm: implement EIP-7951 - precompile for secp256r1 (#31991) 2025-08-13 16:39:36 -04:00
version.go params: release Geth v1.13.14 2024-02-27 13:50:30 +02:00
version.libevm.go chore: placate goheader (#195) 2025-06-23 15:25:18 +00:00
version.libevm_test.go chore: placate goheader (#195) 2025-06-23 15:25:18 +00:00