diff --git a/src/ethereum_test_fixtures/base.py b/src/ethereum_test_fixtures/base.py index 39395375f9..05e83ff62e 100644 --- a/src/ethereum_test_fixtures/base.py +++ b/src/ethereum_test_fixtures/base.py @@ -23,8 +23,6 @@ class BaseFixture(CamelModel): output_file_extension: ClassVar[str] = ".json" description: ClassVar[str] = "Unknown fixture format; it has not been set." - is_verifiable: ClassVar[bool] = False - @classmethod def output_base_dir_name(cls) -> str: """ diff --git a/src/ethereum_test_fixtures/blockchain.py b/src/ethereum_test_fixtures/blockchain.py index 555c0c7634..389ae83464 100644 --- a/src/ethereum_test_fixtures/blockchain.py +++ b/src/ethereum_test_fixtures/blockchain.py @@ -481,8 +481,6 @@ class FixtureCommon(BaseFixture): Base blockchain test fixture model. """ - is_verifiable: ClassVar[bool] = True - fork: str = Field(..., alias="network") genesis: FixtureHeader = Field(..., alias="genesisBlockHeader") pre: Alloc diff --git a/src/ethereum_test_fixtures/collector.py b/src/ethereum_test_fixtures/collector.py index 6bcdbd23c3..24542223fb 100644 --- a/src/ethereum_test_fixtures/collector.py +++ b/src/ethereum_test_fixtures/collector.py @@ -172,7 +172,7 @@ def verify_fixture_files(self, evm_fixture_verification: FixtureVerifier) -> Non """ for fixture_path, name_fixture_dict in self.all_fixtures.items(): for fixture_name, fixture in name_fixture_dict.items(): - if fixture.is_verifiable: + if evm_fixture_verification.is_verifiable(fixture.__class__): info = self.json_path_to_test_item[fixture_path] verify_fixtures_dump_dir = self._get_verify_fixtures_dump_dir(info) evm_fixture_verification.verify_fixture( diff --git a/src/ethereum_test_fixtures/state.py b/src/ethereum_test_fixtures/state.py index cb1348c335..7b2cbc57e2 100644 --- a/src/ethereum_test_fixtures/state.py +++ b/src/ethereum_test_fixtures/state.py @@ -110,8 +110,6 @@ class Fixture(BaseFixture): fixture_format_name: ClassVar[str] = "state_test" description: ClassVar[str] = "Tests that generate a state test fixture." - is_verifiable: ClassVar[bool] = True - env: FixtureEnvironment pre: Alloc transaction: FixtureTransaction diff --git a/src/ethereum_test_fixtures/verify.py b/src/ethereum_test_fixtures/verify.py index ea9dcd0aea..234834d9ba 100644 --- a/src/ethereum_test_fixtures/verify.py +++ b/src/ethereum_test_fixtures/verify.py @@ -13,6 +13,15 @@ class FixtureVerifier(ABC): Abstract class for verifying Ethereum test fixtures. """ + def is_verifiable( + self, + fixture_format: FixtureFormat, + ) -> bool: + """ + Returns whether the fixture format is verifiable by this verifier. + """ + return False + @abstractmethod def verify_fixture( self, diff --git a/src/evm_transition_tool/geth.py b/src/evm_transition_tool/geth.py index db02722cea..700d3a43d5 100644 --- a/src/evm_transition_tool/geth.py +++ b/src/evm_transition_tool/geth.py @@ -68,6 +68,15 @@ def get_blocktest_help(self) -> str: raise Exception(f"Unexpected exception calling evm tool: {e}.") return result.stdout + def is_verifiable( + self, + fixture_format: FixtureFormat, + ) -> bool: + """ + Returns whether the fixture format is verifiable by this Geth's evm tool. + """ + return fixture_format in {StateFixture, BlockchainFixture} + def verify_fixture( self, fixture_format: FixtureFormat,