Skip to content

Conversation

ARR4N
Copy link
Collaborator

@ARR4N ARR4N commented Sep 27, 2025

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.

@ARR4N ARR4N self-assigned this Sep 27, 2025
@ARR4N ARR4N force-pushed the arr4n/temporary-extras branch from 23e3053 to 3cf1438 Compare September 27, 2025 19:16
@ARR4N ARR4N requested a review from a team September 29, 2025 09:10
@ARR4N ARR4N marked this pull request as ready for review September 29, 2025 09:10
Copy link

@ceyonur ceyonur left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

overall lgtm, just few questions

@ARR4N ARR4N requested a review from ceyonur October 1, 2025 09:31
Copy link

@ceyonur ceyonur left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm!

@ARR4N ARR4N merged commit 35926db into main Oct 2, 2025
12 checks passed
@ARR4N ARR4N deleted the arr4n/temporary-extras branch October 2, 2025 16:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants