forks: Add fork-specific, non-inherited class variables #366
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🗒️ Description
Introduces fork-specific variables that are not inherited by subclass forks, containing the following variables:
transition_tool_name
: The name that the transition tool (evm t8n
) expects for this fork.blockchain_test_network_name
: Thenetwork
value that must be included in theBlockchainTest
fixture format for this fork.solc_name
: The name that the solidity compiler (solc
) expects for this fork.This is very useful to name forks differently than the transition tool actually expects (e.g. when we rename
Merge
toParis
, the transition tool will still expectMerge
as the fork to execute the tests).This was achieved by using the
__init_subclass__
special method in theBaseFork
class, with the class variables as parameters, and then, when defining the fork subclass, the parameters are passed when sub-classing the parent fork:Can be converted to:
And will still behave exactly the same to the transition tool (and to the output of the
BlockchainTest
format).🔗 Related Issues
None
✅ Checklist
mkdocs serve
locally and verified the auto-generated docs for new tests in the Test Case Reference are correctly formatted.