diff --git a/docs/getting_started/executing_tests_command_line.md b/docs/getting_started/executing_tests_command_line.md index 500cbbde562..78f520b8aa6 100644 --- a/docs/getting_started/executing_tests_command_line.md +++ b/docs/getting_started/executing_tests_command_line.md @@ -113,7 +113,7 @@ Output: ```console usage: fill [-h] [--evm-bin EVM_BIN] [--traces] [--solc-bin SOLC_BIN] [--filler-path FILLER_PATH] [--output OUTPUT] [--flat-output] - [--disable-hive] [--forks] [--fork FORK] [--from FROM] + [--enable-hive] [--forks] [--fork FORK] [--from FROM] [--until UNTIL] [--test-help] options: @@ -136,7 +136,7 @@ Arguments defining filler location and output: deleted. --flat-output Output each test case in the directory without the folder structure. - --disable-hive Output tests skipping hive-related properties. + --enable-hive Output test fixtures with the hive-specific properties. Arguments defining debug behavior: --t8n-dump-dir T8N_DUMP_DIR diff --git a/src/ethereum_test_tools/__init__.py b/src/ethereum_test_tools/__init__.py index 68a560b2b90..23edbc7f9f8 100644 --- a/src/ethereum_test_tools/__init__.py +++ b/src/ethereum_test_tools/__init__.py @@ -25,6 +25,7 @@ FixtureEngineNewPayload, Header, HistoryStorageAddress, + HiveFixture, JSONEncoder, Removable, Storage, @@ -77,6 +78,7 @@ "FixtureEngineNewPayload", "Header", "HistoryStorageAddress", + "HiveFixture", "Initcode", "JSONEncoder", "Opcode", diff --git a/src/ethereum_test_tools/common/__init__.py b/src/ethereum_test_tools/common/__init__.py index c1b55f43472..672616e190f 100644 --- a/src/ethereum_test_tools/common/__init__.py +++ b/src/ethereum_test_tools/common/__init__.py @@ -41,6 +41,7 @@ Hash, Header, HeaderNonce, + HiveFixture, JSONEncoder, Number, Removable, @@ -77,6 +78,7 @@ "Header", "HeaderNonce", "HistoryStorageAddress", + "HiveFixture", "JSONEncoder", "Number", "Removable", diff --git a/src/ethereum_test_tools/common/types.py b/src/ethereum_test_tools/common/types.py index 254a24add46..c2262ba88d0 100644 --- a/src/ethereum_test_tools/common/types.py +++ b/src/ethereum_test_tools/common/types.py @@ -2569,9 +2569,6 @@ class FixtureEngineNewPayload: to_json=True, ), ) - version: int = field( - json_encoder=JSONEncoder.Field(), - ) beacon_root: Optional[FixedSizeBytesConvertible] = field( default=None, json_encoder=JSONEncoder.Field( @@ -2579,6 +2576,14 @@ class FixtureEngineNewPayload: cast_type=Hash, ), ) + version: int = field( + json_encoder=JSONEncoder.Field(), + ) + valid: bool = field( + json_encoder=JSONEncoder.Field( + skip_string_convert=True, + ), + ) error_code: Optional[EngineAPIError] = field( default=None, json_encoder=JSONEncoder.Field( @@ -2594,6 +2599,7 @@ def from_fixture_header( header: FixtureHeader, transactions: List[Transaction], withdrawals: Optional[List[Withdrawal]], + valid: bool, error_code: Optional[EngineAPIError], ) -> Optional["FixtureEngineNewPayload"]: """ @@ -2611,6 +2617,7 @@ def from_fixture_header( withdrawals=withdrawals, ), version=new_payload_version, + valid=valid, error_code=error_code, ) @@ -2641,13 +2648,6 @@ class FixtureBlock: to_json=True, ), ) - new_payload: Optional[FixtureEngineNewPayload] = field( - default=None, - json_encoder=JSONEncoder.Field( - name="engineNewPayload", - to_json=True, - ), - ) expected_exception: Optional[str] = field( default=None, json_encoder=JSONEncoder.Field( @@ -2689,9 +2689,9 @@ class FixtureBlock: @dataclass(kw_only=True) -class Fixture: +class BaseFixture: """ - Cross-client compatible Ethereum test fixture. + Base Ethereum test fixture class. """ info: Dict[str, str] = field( @@ -2701,36 +2701,78 @@ class Fixture: to_json=True, ), ) - blocks: List[FixtureBlock] = field( + fork: str = field( json_encoder=JSONEncoder.Field( - name="blocks", - to_json=True, + name="network", ), ) - fcu_version: Optional[int] = field( + name: str = field( + default="", json_encoder=JSONEncoder.Field( - name="engineFcuVersion", + skip=True, ), ) - genesis: FixtureHeader = field( + _json: Dict[str, Any] | None = field( + default=None, json_encoder=JSONEncoder.Field( - name="genesisBlockHeader", - to_json=True, + skip=True, ), ) + + def __post_init__(self): + """ + Post init hook to convert to JSON after instantiation. + """ + self._json = to_json(self) + + def to_json(self) -> Dict[str, Any]: + """ + Convert to JSON. + """ + assert self._json is not None, "Fixture not initialized" + self._json["_info"] = self.info + return self._json + + def fill_info( + self, + t8n: TransitionTool, + ref_spec: ReferenceSpec | None, + ): + """ + Fill the info field for this fixture + """ + self.info["filling-transition-tool"] = t8n.version() + if ref_spec is not None: + ref_spec.write_info(self.info) + + +@dataclass(kw_only=True) +class Fixture(BaseFixture): + """ + Cross-client specific test fixture information. + """ + genesis_rlp: Bytes = field( json_encoder=JSONEncoder.Field( name="genesisRLP", ), ) - head: Hash = field( + genesis: FixtureHeader = field( json_encoder=JSONEncoder.Field( - name="lastblockhash", + name="genesisBlockHeader", + to_json=True, ), ) - fork: str = field( + blocks: Optional[List[FixtureBlock]] = field( + default=None, json_encoder=JSONEncoder.Field( - name="network", + name="blocks", + to_json=True, + ), + ) + head: Hash = field( + json_encoder=JSONEncoder.Field( + name="lastblockhash", ), ) pre_state: Mapping[str, Account] = field( @@ -2753,42 +2795,45 @@ class Fixture: name="sealEngine", ), ) - name: str = field( - default="", + + +@dataclass(kw_only=True) +class HiveFixture(BaseFixture): + """ + Hive specific test fixture information. + """ + + genesis: FixtureHeader = field( json_encoder=JSONEncoder.Field( - skip=True, + name="genesisBlockHeader", + to_json=True, ), ) - - _json: Dict[str, Any] | None = field( + payloads: Optional[List[Optional[FixtureEngineNewPayload]]] = field( default=None, json_encoder=JSONEncoder.Field( - skip=True, + name="engineNewPayloads", + to_json=True, + ), + ) + fcu_version: Optional[int] = field( + default=None, + json_encoder=JSONEncoder.Field( + name="engineFcuVersion", + ), + ) + pre_state: Mapping[str, Account] = field( + json_encoder=JSONEncoder.Field( + name="pre", + cast_type=Alloc, + to_json=True, + ), + ) + post_state: Optional[Mapping[str, Account]] = field( + default=None, + json_encoder=JSONEncoder.Field( + name="postState", + cast_type=Alloc, + to_json=True, ), ) - - def __post_init__(self): - """ - Post init hook to convert to JSON after instantiation. - """ - self._json = to_json(self) - - def to_json(self) -> Dict[str, Any]: - """ - Convert to JSON. - """ - assert self._json is not None, "Fixture not initialized" - self._json["_info"] = self.info - return self._json - - def fill_info( - self, - t8n: TransitionTool, - ref_spec: ReferenceSpec | None, - ): - """ - Fill the info field for this fixture - """ - self.info["filling-transition-tool"] = t8n.version() - if ref_spec is not None: - ref_spec.write_info(self.info) diff --git a/src/ethereum_test_tools/filling/fill.py b/src/ethereum_test_tools/filling/fill.py index b675d701a2c..7eb07a777b7 100644 --- a/src/ethereum_test_tools/filling/fill.py +++ b/src/ethereum_test_tools/filling/fill.py @@ -1,12 +1,12 @@ """ Filler object definitions. """ -from typing import List, Optional +from typing import List, Optional, Union from ethereum_test_forks import Fork from evm_transition_tool import TransitionTool -from ..common import Fixture, alloc_to_accounts +from ..common import Fixture, HiveFixture, alloc_to_accounts from ..reference_spec.reference_spec import ReferenceSpec from ..spec import BaseTest @@ -18,7 +18,7 @@ def fill_test( engine: str, spec: ReferenceSpec | None, eips: Optional[List[int]] = None, -) -> Fixture: +) -> Optional[Union[Fixture, HiveFixture]]: """ Fills fixtures for the specified fork. """ @@ -26,7 +26,7 @@ def fill_test( pre, genesis_rlp, genesis = test_spec.make_genesis(t8n, fork) - (blocks, head, alloc, fcu_version) = test_spec.make_blocks( + (blocks, payloads, head, alloc, fcu_version) = test_spec.make_blocks( t8n, genesis, pre, @@ -34,19 +34,37 @@ def fill_test( eips=eips, ) - fork_name = fork.name() - fixture = Fixture( - blocks=blocks, - genesis=genesis, - genesis_rlp=genesis_rlp, - head=head, - fork="+".join([fork_name] + [str(eip) for eip in eips]) if eips is not None else fork_name, - pre_state=pre, - post_state=alloc_to_accounts(alloc), - seal_engine=engine, - name=test_spec.tag, - fcu_version=fcu_version, + network_info = ( + "+".join([fork.name()] + [str(eip) for eip in eips]) if eips is not None else fork.name() ) + + fixture: Union[Fixture, HiveFixture] + if test_spec.base_test_config.enable_hive: + if fork.engine_new_payload_version() is not None: + fixture = HiveFixture( + payloads=payloads, + fcu_version=fcu_version, + genesis=genesis, + fork=network_info, + pre_state=pre, + post_state=alloc_to_accounts(alloc), + name=test_spec.tag, + ) + else: # pre Merge tests are not supported in Hive + # TODO: remove this logic. if hive enabled set --from to Merge + return None + else: + fixture = Fixture( + blocks=blocks, + genesis=genesis, + genesis_rlp=genesis_rlp, + head=head, + fork=network_info, + pre_state=pre, + post_state=alloc_to_accounts(alloc), + seal_engine=engine, + name=test_spec.tag, + ) fixture.fill_info(t8n, spec) return fixture diff --git a/src/ethereum_test_tools/spec/base_test.py b/src/ethereum_test_tools/spec/base_test.py index bbad9fa7ce6..92df2e51024 100644 --- a/src/ethereum_test_tools/spec/base_test.py +++ b/src/ethereum_test_tools/spec/base_test.py @@ -17,6 +17,7 @@ Bytes, Environment, FixtureBlock, + FixtureEngineNewPayload, FixtureHeader, Hash, Transaction, @@ -86,9 +87,9 @@ class BaseTestConfig: General configuration that all tests must support. """ - disable_hive: bool = False + enable_hive: bool = False """ - Disable any hive-related properties that the output could contain. + Enable any hive-related properties that the output could contain. """ @@ -127,7 +128,13 @@ def make_blocks( fork: Fork, chain_id: int = 1, eips: Optional[List[int]] = None, - ) -> Tuple[List[FixtureBlock], Hash, Dict[str, Any], Optional[int]]: + ) -> Tuple[ + Optional[List[FixtureBlock]], + Optional[List[Optional[FixtureEngineNewPayload]]], + Hash, + Dict[str, Any], + Optional[int], + ]: """ Generate the blockchain that must be executed sequentially during test. """ diff --git a/src/ethereum_test_tools/spec/blockchain_test.py b/src/ethereum_test_tools/spec/blockchain_test.py index 0ec70fceba7..67c79ff2563 100644 --- a/src/ethereum_test_tools/spec/blockchain_test.py +++ b/src/ethereum_test_tools/spec/blockchain_test.py @@ -51,6 +51,13 @@ def pytest_parameter_name(cls) -> str: """ return "blockchain_test" + @property + def hive_enabled(self) -> bool: + """ + Returns true if hive fixture generation is enabled, false otherwise. + """ + return self.base_test_config.enable_hive + def make_genesis( self, t8n: TransitionTool, @@ -114,7 +121,7 @@ def make_block( previous_head: Hash, chain_id=1, eips: Optional[List[int]] = None, - ) -> Tuple[FixtureBlock, Environment, Dict[str, Any], Hash]: + ) -> Tuple[FixtureBlock, Optional[FixtureEngineNewPayload], Environment, Dict[str, Any], Hash]: """ Produces a block based on the previous environment and allocation. If the block is an invalid block, the environment and allocation @@ -207,28 +214,30 @@ def make_block( withdrawals=env.withdrawals, ) - new_payload: FixtureEngineNewPayload | None = None - if not self.base_test_config.disable_hive: - new_payload = FixtureEngineNewPayload.from_fixture_header( + fixture_payload = ( + FixtureEngineNewPayload.from_fixture_header( fork=fork, header=header, transactions=txs, withdrawals=env.withdrawals, + valid=block.exception is None, error_code=block.engine_api_error_code, ) + if self.hive_enabled + else None + ) if block.exception is None: - # Return environment and allocation of the following block return ( FixtureBlock( rlp=rlp, - new_payload=new_payload, block_header=header, block_number=Number(header.number), txs=txs, ommers=[], withdrawals=env.withdrawals, ), + fixture_payload, env.apply_new_parent(header), next_alloc, header.hash, @@ -237,10 +246,10 @@ def make_block( return ( FixtureBlock( rlp=rlp, - new_payload=new_payload, - expected_exception=block.exception, block_number=Number(header.number), + expected_exception=block.exception, ), + fixture_payload, previous_env, previous_alloc, previous_head, @@ -251,6 +260,7 @@ def make_block( rlp=Bytes(block.rlp), expected_exception=block.exception, ), + None, previous_env, previous_alloc, previous_head, @@ -264,7 +274,13 @@ def make_blocks( fork: Fork, chain_id=1, eips: Optional[List[int]] = None, - ) -> Tuple[List[FixtureBlock], Hash, Dict[str, Any], Optional[int]]: + ) -> Tuple[ + Optional[List[FixtureBlock]], + Optional[List[Optional[FixtureEngineNewPayload]]], + Hash, + Dict[str, Any], + Optional[int], + ]: """ Create a block list from the blockchain test definition. Performs checks against the expected behavior of the test. @@ -272,13 +288,17 @@ def make_blocks( """ alloc = to_json(pre) env = Environment.from_parent_header(genesis) - blocks: List[FixtureBlock] = [] + fixture_blocks: List[FixtureBlock] | None = [] if not self.hive_enabled else None + + fixture_payloads: List[Optional[FixtureEngineNewPayload]] | None = ( + [] if self.hive_enabled else None + ) fcu_version: Optional[int] = None last_valid: Optional[FixtureHeader] = None head = genesis.hash if genesis.hash is not None else Hash(0) for block in self.blocks: - fixture_block, env, alloc, head = self.make_block( + fixture_block, fixture_payload, env, alloc, head = self.make_block( t8n=t8n, fork=fork, block=block, @@ -288,11 +308,14 @@ def make_blocks( chain_id=chain_id, eips=eips, ) - blocks.append(fixture_block) + if not self.hive_enabled and fixture_blocks is not None: + fixture_blocks.append(fixture_block) + if self.hive_enabled and fixture_payloads is not None: + fixture_payloads.append(fixture_payload) if block.exception is None: last_valid = fixture_block.block_header - if not self.base_test_config.disable_hive and last_valid is not None: + if self.hive_enabled and last_valid: fcu_version = fork.engine_forkchoice_updated_version( block_number=last_valid.number, timestamp=last_valid.timestamp, @@ -304,7 +327,13 @@ def make_blocks( print_traces(t8n.get_traces()) raise e - return (blocks, head, alloc, fcu_version) + return ( + fixture_blocks, + fixture_payloads, + head, + alloc, + fcu_version, + ) BlockchainTestSpec = Callable[[str], Generator[BlockchainTest, None, None]] diff --git a/src/ethereum_test_tools/spec/state_test.py b/src/ethereum_test_tools/spec/state_test.py index 9e7145ccc17..fd7972b4f89 100644 --- a/src/ethereum_test_tools/spec/state_test.py +++ b/src/ethereum_test_tools/spec/state_test.py @@ -127,7 +127,13 @@ def make_blocks( fork: Fork, chain_id=1, eips: Optional[List[int]] = None, - ) -> Tuple[List[FixtureBlock], Hash, Dict[str, Any], Optional[int]]: + ) -> Tuple[ + Optional[List[FixtureBlock]], + Optional[List[Optional[FixtureEngineNewPayload]]], + Hash, + Dict[str, Any], + Optional[int], + ]: """ Create a block from the state test definition. Performs checks against the expected behavior of the test. @@ -178,30 +184,31 @@ def make_blocks( withdrawals=env.withdrawals, ) - # Hive specific fields - new_payload: FixtureEngineNewPayload | None = None fcu_version: int | None = None - if not self.base_test_config.disable_hive: - new_payload = FixtureEngineNewPayload.from_fixture_header( + fixture_payload: FixtureEngineNewPayload | None = None + fixture_block: FixtureBlock | None = None + if self.base_test_config.enable_hive: + fcu_version = fork.engine_forkchoice_updated_version(header.number, header.timestamp) + fixture_payload = FixtureEngineNewPayload.from_fixture_header( fork=fork, header=header, transactions=txs, withdrawals=env.withdrawals, + valid=True, error_code=None, ) - fcu_version = fork.engine_forkchoice_updated_version(header.number, header.timestamp) + else: + fixture_block = FixtureBlock( + rlp=block, + block_header=header, + txs=txs, + ommers=[], + withdrawals=env.withdrawals, + ) return ( - [ - FixtureBlock( - rlp=block, - new_payload=new_payload, - block_header=header, - txs=txs, - ommers=[], - withdrawals=env.withdrawals, - ) - ], + [fixture_block] if fixture_block is not None else None, + [fixture_payload] if fixture_payload is not None else None, header.hash, alloc, fcu_version, diff --git a/src/ethereum_test_tools/tests/test_filler.py b/src/ethereum_test_tools/tests/test_filler.py index 6142ab917c4..cef80179c0a 100644 --- a/src/ethereum_test_tools/tests/test_filler.py +++ b/src/ethereum_test_tools/tests/test_filler.py @@ -9,17 +9,17 @@ import pytest from semver import Version -from ethereum_test_forks import Berlin, Fork, Istanbul, London +from ethereum_test_forks import Berlin, Fork, Istanbul, London, Merge, Shanghai from evm_transition_tool import GethTransitionTool from ..code import Yul from ..common import Account, Block, Environment, TestAddress, Transaction, to_json from ..filling import fill_test -from ..spec import BlockchainTest, StateTest +from ..spec import BaseTestConfig, BlockchainTest, StateTest from .conftest import SOLC_PADDING_VERSION -def remove_info(fixture_json: Dict[str, Any]): +def remove_info(fixture_json: Dict[str, Any]): # noqa: D103 for t in fixture_json: if "_info" in fixture_json[t]: del fixture_json[t]["_info"] @@ -50,7 +50,7 @@ def hash(request: pytest.FixtureRequest, solc_version: Version): ], indirect=["hash"], ) -def test_make_genesis(fork: Fork, hash: bytes): +def test_make_genesis(fork: Fork, hash: bytes): # noqa: D103 env = Environment() pre = { @@ -86,13 +86,15 @@ def test_make_genesis(fork: Fork, hash: bytes): @pytest.mark.parametrize( - "fork,expected_json_file", + "fork,enable_hive,expected_json_file", [ - (Istanbul, "chainid_istanbul_filled.json"), - (London, "chainid_london_filled.json"), + (Istanbul, False, "chainid_istanbul_filled.json"), + (London, False, "chainid_london_filled.json"), + (Merge, True, "chainid_merge_filled_hive.json"), + (Shanghai, True, "chainid_shanghai_filled_hive.json"), ], ) -def test_fill_state_test(fork: Fork, expected_json_file: str): +def test_fill_state_test(fork: Fork, expected_json_file: str, enable_hive: bool): """ Test `ethereum_test.filler.fill_fixtures` with `StateTest`. """ @@ -125,7 +127,14 @@ def test_fill_state_test(fork: Fork, expected_json_file: str): ), } - state_test = StateTest(env=env, pre=pre, post=post, txs=[tx], tag="my_chain_id_test") + state_test = StateTest( + env=env, + pre=pre, + post=post, + txs=[tx], + tag="my_chain_id_test", + base_test_config=BaseTestConfig(enable_hive=enable_hive), + ) t8n = GethTransitionTool() @@ -138,6 +147,7 @@ def test_fill_state_test(fork: Fork, expected_json_file: str): spec=None, ), } + with open( os.path.join( "src", @@ -148,13 +158,24 @@ def test_fill_state_test(fork: Fork, expected_json_file: str): ) ) as f: expected = json.load(f) + fixture_json = to_json(fixture) remove_info(fixture_json) + with open("gen.json", "w") as fr: + json.dump(fixture_json, fr, indent=4) assert fixture_json == expected -@pytest.mark.parametrize("fork", [London]) -def test_fill_london_blockchain_test_valid_txs(fork: Fork, solc_version: str): +@pytest.mark.parametrize( + "fork,enable_hive,expected_json_file", + [ + (London, False, "blockchain_london_valid_filled.json"), + (Shanghai, True, "blockchain_shanghai_valid_filled_hive.json"), + ], +) +def test_fill_blockchain_valid_txs( + fork: Fork, solc_version: str, enable_hive: bool, expected_json_file: str +): """ Test `ethereum_test.filler.fill_fixtures` with `BlockchainTest`. """ @@ -411,7 +432,8 @@ def test_fill_london_blockchain_test_valid_txs(fork: Fork, solc_version: str): post=post, blocks=blocks, genesis_environment=genesis_environment, - tag="fill_london_blockchain_test_valid_txs", + tag="my_blockchain_test_valid_txs", + base_test_config=BaseTestConfig(enable_hive=enable_hive), ) t8n = GethTransitionTool() @@ -432,7 +454,7 @@ def test_fill_london_blockchain_test_valid_txs(fork: Fork, solc_version: str): "ethereum_test_tools", "tests", "test_fixtures", - "blockchain_london_valid_filled.json", + expected_json_file, ) ) as f: expected = json.load(f) @@ -448,8 +470,16 @@ def test_fill_london_blockchain_test_valid_txs(fork: Fork, solc_version: str): assert fixture_json == expected -@pytest.mark.parametrize("fork", [London]) -def test_fill_london_blockchain_test_invalid_txs(fork: Fork, solc_version: str): +@pytest.mark.parametrize( + "fork,enable_hive,expected_json_file", + [ + (London, False, "blockchain_london_invalid_filled.json"), + (Shanghai, True, "blockchain_shanghai_invalid_filled_hive.json"), + ], +) +def test_fill_blockchain_invalid_txs( + fork: Fork, solc_version: str, enable_hive: bool, expected_json_file: str +): """ Test `ethereum_test.filler.fill_fixtures` with `BlockchainTest`. """ @@ -752,7 +782,7 @@ def test_fill_london_blockchain_test_invalid_txs(fork: Fork, solc_version: str): post=post, blocks=blocks, genesis_environment=genesis_environment, - tag="fill_london_blockchain_test_invalid_txs", + base_test_config=BaseTestConfig(enable_hive=enable_hive), ) t8n = GethTransitionTool() @@ -773,7 +803,7 @@ def test_fill_london_blockchain_test_invalid_txs(fork: Fork, solc_version: str): "ethereum_test_tools", "tests", "test_fixtures", - "blockchain_london_invalid_filled.json", + expected_json_file, ) ) as f: expected = json.load(f) diff --git a/src/ethereum_test_tools/tests/test_fixtures/blockchain_london_invalid_filled.json b/src/ethereum_test_tools/tests/test_fixtures/blockchain_london_invalid_filled.json index b53f6fb5344..c1979e392cf 100644 --- a/src/ethereum_test_tools/tests/test_fixtures/blockchain_london_invalid_filled.json +++ b/src/ethereum_test_tools/tests/test_fixtures/blockchain_london_invalid_filled.json @@ -1,6 +1,27 @@ { "solc=0.8.20": { "000/my_blockchain_test/London": { + "network": "London", + "genesisRLP": "0xf90200f901fba00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a089a5be1d3306f6f05b42678ef13ac3dbc37bef9a2a80862c21eb22eee29194c2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a000000000000000000000000000000000000000000000000000000000000000008800000000000000008203e8c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x89a5be1d3306f6f05b42678ef13ac3dbc37bef9a2a80862c21eb22eee29194c2", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x03e8", + "hash": "0x6241b4534da26b654ec5bb30d29b1d5202454af544b05828433354da7471957c" + }, "blocks": [ { "rlp": "0xf9026ef901fea06241b4534da26b654ec5bb30d29b1d5202454af544b05828433354da7471957ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d4934794ba5e000000000000000000000000000000000000a03eb2e72e8ed9a59768bb9ac05915b781a764f2582edcf111053fe6531e466613a0586f963eea0fb4726f0f91f895f2aa5d67bffb5207a529b40d781244a0c7017ba029b0562f7140574dd0d50dee8a271b22e1a0a7b78fca58f7c60370d8317ba2a9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a0000830155340c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000082036bf86ab86802f8650180018203e8830f424094cccccccccccccccccccccccccccccccccccccccc8001c080a03351b6993208fc7b03fd770c8c06440cfb0d75b29aafee0a4c64c8ba20a80e58a067817fdb3058e75c5d26e51a33d1e338346bc7d406e115447a4bb5f7ab01625bc0", @@ -29,12 +50,12 @@ "type": "0x02", "chainId": "0x01", "nonce": "0x00", + "maxPriorityFeePerGas": "0x01", + "maxFeePerGas": "0x03e8", + "gasLimit": "0x0f4240", "to": "0xcccccccccccccccccccccccccccccccccccccccc", "value": "0x00", "data": "0x01", - "gasLimit": "0x0f4240", - "maxFeePerGas": "0x03e8", - "maxPriorityFeePerGas": "0x01", "accessList": [], "v": "0x00", "r": "0x3351b6993208fc7b03fd770c8c06440cfb0d75b29aafee0a4c64c8ba20a80e58", @@ -71,12 +92,12 @@ "type": "0x02", "chainId": "0x01", "nonce": "0x01", + "maxPriorityFeePerGas": "0x0a", + "maxFeePerGas": "0x03e8", + "gasLimit": "0x0f4240", "to": "0xcccccccccccccccccccccccccccccccccccccccc", "value": "0x00", "data": "0x0201", - "gasLimit": "0x0f4240", - "maxPriorityFeePerGas": "0x0a", - "maxFeePerGas": "0x03e8", "accessList": [], "v": "0x00", "r": "0x6ea285a870a051df2b8c80c462b7d3517f984815e09c4748efc8548a40434050", @@ -87,12 +108,12 @@ "type": "0x02", "chainId": "0x01", "nonce": "0x02", + "maxPriorityFeePerGas": "0x64", + "maxFeePerGas": "0x03e8", + "gasLimit": "0x0f4240", "to": "0xcccccccccccccccccccccccccccccccccccccccd", "value": "0x00", "data": "0x0202", - "gasLimit": "0x0f4240", - "maxPriorityFeePerGas": "0x64", - "maxFeePerGas": "0x03e8", "accessList": [], "v": "0x00", "r": "0x218549e818b36b3823c3f11a65ab5c1e16f6886469c385503cc2f1af1f53825d", @@ -103,12 +124,12 @@ "type": "0x02", "chainId": "0x01", "nonce": "0x03", + "maxPriorityFeePerGas": "0x64", + "maxFeePerGas": "0x03e8", + "gasLimit": "0x0f4240", "to": "0xccccccccccccccccccccccccccccccccccccccce", "value": "0x00", "data": "0x0203", - "gasLimit": "0x0f4240", - "maxPriorityFeePerGas": "0x64", - "maxFeePerGas": "0x03e8", "accessList": [], "v": "0x01", "r": "0x339e9ed3f6342f2644e4cd33a775b7e62a8208a137dcf2e354c7473caa77782a", @@ -150,12 +171,12 @@ "type": "0x02", "chainId": "0x01", "nonce": "0x04", + "maxPriorityFeePerGas": "0x03e8", + "maxFeePerGas": "0x03e8", + "gasLimit": "0x0f4240", "to": "0xcccccccccccccccccccccccccccccccccccccccc", "value": "0x00", "data": "0x0301", - "gasLimit": "0x0f4240", - "maxPriorityFeePerGas": "0x03e8", - "maxFeePerGas": "0x03e8", "accessList": [], "v": "0x01", "r": "0x720e2870881f8b0e285b7ec02c169f1165847bcb5f36ea5f33f3db6079854f63", @@ -166,12 +187,12 @@ "type": "0x02", "chainId": "0x01", "nonce": "0x05", + "maxPriorityFeePerGas": "0x64", + "maxFeePerGas": "0x03e8", + "gasLimit": "0x0f4240", "to": "0xccccccccccccccccccccccccccccccccccccccce", "value": "0x00", "data": "0x0303", - "gasLimit": "0x0f4240", - "maxPriorityFeePerGas": "0x64", - "maxFeePerGas": "0x03e8", "accessList": [], "v": "0x00", "r": "0x9c8531a41f9281633470c5e12b6c72c8930409a6433f26bf7b394a703d18512e", @@ -182,12 +203,12 @@ "type": "0x02", "chainId": "0x01", "nonce": "0x06", + "maxPriorityFeePerGas": "0x0186a0", + "maxFeePerGas": "0x0186a0", + "gasLimit": "0x0f4240", "to": "0xcccccccccccccccccccccccccccccccccccccccd", "value": "0x00", "data": "0x0304", - "gasLimit": "0x0f4240", - "maxPriorityFeePerGas": "0x0186a0", - "maxFeePerGas": "0x0186a0", "accessList": [], "v": "0x01", "r": "0xc8b85e158b532a0e3b3b5848fad0f4d5c6807805a4ce65e8591de13a62f3ac6a", @@ -229,12 +250,12 @@ "type": "0x02", "chainId": "0x01", "nonce": "0x07", + "maxPriorityFeePerGas": "0x03e8", + "maxFeePerGas": "0x03e8", + "gasLimit": "0x0f4240", "to": "0xcccccccccccccccccccccccccccccccccccccccc", "value": "0x00", "data": "0x0401", - "gasLimit": "0x0f4240", - "maxPriorityFeePerGas": "0x03e8", - "maxFeePerGas": "0x03e8", "accessList": [], "v": "0x01", "r": "0x113c54f83e1b1e5c689ba86d288ec0ce2877f350b71821c4c7a3f7073b46602c", @@ -245,12 +266,12 @@ "type": "0x02", "chainId": "0x01", "nonce": "0x08", + "maxPriorityFeePerGas": "0x64", + "maxFeePerGas": "0x03e8", + "gasLimit": "0x0f4240", "to": "0xccccccccccccccccccccccccccccccccccccccce", "value": "0x00", "data": "0x0403", - "gasLimit": "0x0f4240", - "maxPriorityFeePerGas": "0x64", - "maxFeePerGas": "0x03e8", "accessList": [], "v": "0x00", "r": "0x8d7ec1116399aab6e1297b09302b291d73c5898a0338fb62a46c74b037d15a15", @@ -261,12 +282,12 @@ "type": "0x02", "chainId": "0x01", "nonce": "0x09", + "maxPriorityFeePerGas": "0x0186a0", + "maxFeePerGas": "0x0186a0", + "gasLimit": "0x0f4240", "to": "0xcccccccccccccccccccccccccccccccccccccccd", "value": "0x00", "data": "0x0404", - "gasLimit": "0x0f4240", - "maxPriorityFeePerGas": "0x0186a0", - "maxFeePerGas": "0x0186a0", "accessList": [], "v": "0x01", "r": "0x54bd3a30ee3c2182d92f30223adb53feb0f51d76970a2628d9479536ff3edfe9", @@ -277,37 +298,16 @@ "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x89a5be1d3306f6f05b42678ef13ac3dbc37bef9a2a80862c21eb22eee29194c2", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x03e8", - "hash": "0x6241b4534da26b654ec5bb30d29b1d5202454af544b05828433354da7471957c" - }, - "genesisRLP": "0xf90200f901fba00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a089a5be1d3306f6f05b42678ef13ac3dbc37bef9a2a80862c21eb22eee29194c2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a000000000000000000000000000000000000000000000000000000000000000008800000000000000008203e8c0c0", "lastblockhash": "0xf5e2f23d9a212edbb35a07bc9f582f4a632b694bd4ef8742de8ad6c6acacf72c", - "network": "London", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x01000000000000000000", - "code": "0x", + "0x000000000000000000000000000000000000c0de": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x60008060008073cccccccccccccccccccccccccccccccccccccccc5af450", "storage": {} }, - "0xd02d72e067e77158444ef2020ff2d325f929b363": { - "nonce": "0x01", + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x", "storage": {} @@ -324,17 +324,17 @@ "code": "0x60008060008073cccccccccccccccccccccccccccccccccccccccc5af450", "storage": {} }, - "0x000000000000000000000000000000000000c0de": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x60008060008073cccccccccccccccccccccccccccccccccccccccc5af450", - "storage": {} - }, "0xccccccccccccccccccccccccccccccccccccccce": { "nonce": "0x01", "balance": "0x020000000000", "code": "0x60008060008061100061c0de5af160008060008073cccccccccccccccccccccccccccccccccccccccc5af4905050", "storage": {} + }, + "0xd02d72e067e77158444ef2020ff2d325f929b363": { + "nonce": "0x01", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} } }, "postState": { @@ -429,6 +429,27 @@ }, "solc=padding_version": { "000/my_blockchain_test/London": { + "network": "London", + "genesisRLP": "0xf90200f901fba00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0de1557ffdf9765e61095937bf835742ca427008f33714bee743010ab2d1e0ba6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a000000000000000000000000000000000000000000000000000000000000000008800000000000000008203e8c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xde1557ffdf9765e61095937bf835742ca427008f33714bee743010ab2d1e0ba6", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x03e8", + "hash": "0xc552af8a2644e24df2f54d14aa70f207146dda49b746cc2e0af88e185f043d2e" + }, "blocks": [ { "rlp": "0xf9026ef901fea0c552af8a2644e24df2f54d14aa70f207146dda49b746cc2e0af88e185f043d2ea01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d4934794ba5e000000000000000000000000000000000000a06bbd44292c9016cf53472d8ef579a1805a9008b898c5f159248ed106532b667ba0586f963eea0fb4726f0f91f895f2aa5d67bffb5207a529b40d781244a0c7017ba029b0562f7140574dd0d50dee8a271b22e1a0a7b78fca58f7c60370d8317ba2a9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a0000830155340c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000082036bf86ab86802f8650180018203e8830f424094cccccccccccccccccccccccccccccccccccccccc8001c080a03351b6993208fc7b03fd770c8c06440cfb0d75b29aafee0a4c64c8ba20a80e58a067817fdb3058e75c5d26e51a33d1e338346bc7d406e115447a4bb5f7ab01625bc0", @@ -705,37 +726,16 @@ "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xde1557ffdf9765e61095937bf835742ca427008f33714bee743010ab2d1e0ba6", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x03e8", - "hash": "0xc552af8a2644e24df2f54d14aa70f207146dda49b746cc2e0af88e185f043d2e" - }, - "genesisRLP": "0xf90200f901fba00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0de1557ffdf9765e61095937bf835742ca427008f33714bee743010ab2d1e0ba6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a000000000000000000000000000000000000000000000000000000000000000008800000000000000008203e8c0c0", "lastblockhash": "0x0dab5a127f8e5ee8bd43b00f777830e470d932d1b99836639faaabce4c0629ed", - "network": "London", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x01000000000000000000", - "code": "0x", + "0x000000000000000000000000000000000000c0de": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x600080808073cccccccccccccccccccccccccccccccccccccccc5af400", "storage": {} }, - "0xd02d72e067e77158444ef2020ff2d325f929b363": { - "nonce": "0x01", + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x", "storage": {} @@ -752,17 +752,17 @@ "code": "0x600080808073cccccccccccccccccccccccccccccccccccccccc5af400", "storage": {} }, - "0x000000000000000000000000000000000000c0de": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x600080808073cccccccccccccccccccccccccccccccccccccccc5af400", - "storage": {} - }, "0xccccccccccccccccccccccccccccccccccccccce": { "nonce": "0x01", "balance": "0x020000000000", "code": "0x600080808061100061c0de5af150600080808073cccccccccccccccccccccccccccccccccccccccc5af400", "storage": {} + }, + "0xd02d72e067e77158444ef2020ff2d325f929b363": { + "nonce": "0x01", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} } }, "postState": { diff --git a/src/ethereum_test_tools/tests/test_fixtures/blockchain_london_valid_filled.json b/src/ethereum_test_tools/tests/test_fixtures/blockchain_london_valid_filled.json index 9a00326e255..8f2c0126ca1 100644 --- a/src/ethereum_test_tools/tests/test_fixtures/blockchain_london_valid_filled.json +++ b/src/ethereum_test_tools/tests/test_fixtures/blockchain_london_valid_filled.json @@ -1,6 +1,27 @@ { "solc=0.8.20": { "000/my_blockchain_test/London": { + "network": "London", + "genesisRLP": "0xf90200f901fba00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a089a5be1d3306f6f05b42678ef13ac3dbc37bef9a2a80862c21eb22eee29194c2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a000000000000000000000000000000000000000000000000000000000000000008800000000000000008203e8c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x89a5be1d3306f6f05b42678ef13ac3dbc37bef9a2a80862c21eb22eee29194c2", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x03e8", + "hash": "0x6241b4534da26b654ec5bb30d29b1d5202454af544b05828433354da7471957c" + }, "blocks": [ { "rlp": "0xf9026ef901fea06241b4534da26b654ec5bb30d29b1d5202454af544b05828433354da7471957ca01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d4934794ba5e000000000000000000000000000000000000a03eb2e72e8ed9a59768bb9ac05915b781a764f2582edcf111053fe6531e466613a0586f963eea0fb4726f0f91f895f2aa5d67bffb5207a529b40d781244a0c7017ba029b0562f7140574dd0d50dee8a271b22e1a0a7b78fca58f7c60370d8317ba2a9b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000188016345785d8a0000830155340c80a0000000000000000000000000000000000000000000000000000000000000000088000000000000000082036bf86ab86802f8650180018203e8830f424094cccccccccccccccccccccccccccccccccccccccc8001c080a03351b6993208fc7b03fd770c8c06440cfb0d75b29aafee0a4c64c8ba20a80e58a067817fdb3058e75c5d26e51a33d1e338346bc7d406e115447a4bb5f7ab01625bc0", @@ -29,12 +50,12 @@ "type": "0x02", "chainId": "0x01", "nonce": "0x00", + "maxPriorityFeePerGas": "0x01", + "maxFeePerGas": "0x03e8", + "gasLimit": "0x0f4240", "to": "0xcccccccccccccccccccccccccccccccccccccccc", "value": "0x00", "data": "0x01", - "gasLimit": "0x0f4240", - "maxPriorityFeePerGas": "0x01", - "maxFeePerGas": "0x03e8", "accessList": [], "v": "0x00", "r": "0x3351b6993208fc7b03fd770c8c06440cfb0d75b29aafee0a4c64c8ba20a80e58", @@ -71,12 +92,12 @@ "type": "0x02", "chainId": "0x01", "nonce": "0x01", + "maxPriorityFeePerGas": "0x0a", + "maxFeePerGas": "0x03e8", + "gasLimit": "0x0f4240", "to": "0xcccccccccccccccccccccccccccccccccccccccc", "value": "0x00", "data": "0x0201", - "gasLimit": "0x0f4240", - "maxPriorityFeePerGas": "0x0a", - "maxFeePerGas": "0x03e8", "accessList": [], "v": "0x00", "r": "0x6ea285a870a051df2b8c80c462b7d3517f984815e09c4748efc8548a40434050", @@ -87,12 +108,12 @@ "type": "0x02", "chainId": "0x01", "nonce": "0x02", + "maxPriorityFeePerGas": "0x64", + "maxFeePerGas": "0x03e8", + "gasLimit": "0x0f4240", "to": "0xcccccccccccccccccccccccccccccccccccccccd", "value": "0x00", "data": "0x0202", - "gasLimit": "0x0f4240", - "maxPriorityFeePerGas": "0x64", - "maxFeePerGas": "0x03e8", "accessList": [], "v": "0x00", "r": "0x218549e818b36b3823c3f11a65ab5c1e16f6886469c385503cc2f1af1f53825d", @@ -103,12 +124,12 @@ "type": "0x02", "chainId": "0x01", "nonce": "0x03", + "maxPriorityFeePerGas": "0x64", + "maxFeePerGas": "0x03e8", + "gasLimit": "0x0f4240", "to": "0xccccccccccccccccccccccccccccccccccccccce", "value": "0x00", "data": "0x0203", - "gasLimit": "0x0f4240", - "maxPriorityFeePerGas": "0x64", - "maxFeePerGas": "0x03e8", "accessList": [], "v": "0x01", "r": "0x339e9ed3f6342f2644e4cd33a775b7e62a8208a137dcf2e354c7473caa77782a", @@ -145,12 +166,12 @@ "type": "0x02", "chainId": "0x01", "nonce": "0x04", + "maxPriorityFeePerGas": "0x03e8", + "maxFeePerGas": "0x03e8", + "gasLimit": "0x0f4240", "to": "0xcccccccccccccccccccccccccccccccccccccccc", "value": "0x00", "data": "0x0301", - "gasLimit": "0x0f4240", - "maxPriorityFeePerGas": "0x03e8", - "maxFeePerGas": "0x03e8", "accessList": [], "v": "0x01", "r": "0x720e2870881f8b0e285b7ec02c169f1165847bcb5f36ea5f33f3db6079854f63", @@ -161,12 +182,12 @@ "type": "0x02", "chainId": "0x01", "nonce": "0x05", + "maxPriorityFeePerGas": "0x64", + "maxFeePerGas": "0x03e8", + "gasLimit": "0x0f4240", "to": "0xccccccccccccccccccccccccccccccccccccccce", "value": "0x00", "data": "0x0303", - "gasLimit": "0x0f4240", - "maxPriorityFeePerGas": "0x64", - "maxFeePerGas": "0x03e8", "accessList": [], "v": "0x00", "r": "0x9c8531a41f9281633470c5e12b6c72c8930409a6433f26bf7b394a703d18512e", @@ -177,12 +198,12 @@ "type": "0x02", "chainId": "0x01", "nonce": "0x06", + "maxPriorityFeePerGas": "0x0186a0", + "maxFeePerGas": "0x0186a0", + "gasLimit": "0x0f4240", "to": "0xcccccccccccccccccccccccccccccccccccccccd", "value": "0x00", "data": "0x0304", - "gasLimit": "0x0f4240", - "maxPriorityFeePerGas": "0x0186a0", - "maxFeePerGas": "0x0186a0", "accessList": [], "v": "0x01", "r": "0xc8b85e158b532a0e3b3b5848fad0f4d5c6807805a4ce65e8591de13a62f3ac6a", @@ -219,12 +240,12 @@ "type": "0x02", "chainId": "0x01", "nonce": "0x07", + "maxPriorityFeePerGas": "0x03e8", + "maxFeePerGas": "0x03e8", + "gasLimit": "0x0f4240", "to": "0xcccccccccccccccccccccccccccccccccccccccc", "value": "0x00", "data": "0x0401", - "gasLimit": "0x0f4240", - "maxPriorityFeePerGas": "0x03e8", - "maxFeePerGas": "0x03e8", "accessList": [], "v": "0x01", "r": "0x113c54f83e1b1e5c689ba86d288ec0ce2877f350b71821c4c7a3f7073b46602c", @@ -235,12 +256,12 @@ "type": "0x02", "chainId": "0x01", "nonce": "0x08", + "maxPriorityFeePerGas": "0x64", + "maxFeePerGas": "0x03e8", + "gasLimit": "0x0f4240", "to": "0xccccccccccccccccccccccccccccccccccccccce", "value": "0x00", "data": "0x0403", - "gasLimit": "0x0f4240", - "maxPriorityFeePerGas": "0x64", - "maxFeePerGas": "0x03e8", "accessList": [], "v": "0x00", "r": "0x8d7ec1116399aab6e1297b09302b291d73c5898a0338fb62a46c74b037d15a15", @@ -251,12 +272,12 @@ "type": "0x02", "chainId": "0x01", "nonce": "0x09", + "maxPriorityFeePerGas": "0x0186a0", + "maxFeePerGas": "0x0186a0", + "gasLimit": "0x0f4240", "to": "0xcccccccccccccccccccccccccccccccccccccccd", "value": "0x00", "data": "0x0404", - "gasLimit": "0x0f4240", - "maxPriorityFeePerGas": "0x0186a0", - "maxFeePerGas": "0x0186a0", "accessList": [], "v": "0x01", "r": "0x54bd3a30ee3c2182d92f30223adb53feb0f51d76970a2628d9479536ff3edfe9", @@ -267,37 +288,16 @@ "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0x89a5be1d3306f6f05b42678ef13ac3dbc37bef9a2a80862c21eb22eee29194c2", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x016345785d8a0000", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x03e8", - "hash": "0x6241b4534da26b654ec5bb30d29b1d5202454af544b05828433354da7471957c" - }, - "genesisRLP": "0xf90200f901fba00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a089a5be1d3306f6f05b42678ef13ac3dbc37bef9a2a80862c21eb22eee29194c2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008088016345785d8a0000808000a000000000000000000000000000000000000000000000000000000000000000008800000000000000008203e8c0c0", "lastblockhash": "0xf5e2f23d9a212edbb35a07bc9f582f4a632b694bd4ef8742de8ad6c6acacf72c", - "network": "London", "pre": { - "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { - "nonce": "0x00", - "balance": "0x01000000000000000000", - "code": "0x", + "0x000000000000000000000000000000000000c0de": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x60008060008073cccccccccccccccccccccccccccccccccccccccc5af450", "storage": {} }, - "0xd02d72e067e77158444ef2020ff2d325f929b363": { - "nonce": "0x01", + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", "balance": "0x01000000000000000000", "code": "0x", "storage": {} @@ -314,17 +314,17 @@ "code": "0x60008060008073cccccccccccccccccccccccccccccccccccccccc5af450", "storage": {} }, - "0x000000000000000000000000000000000000c0de": { - "nonce": "0x01", - "balance": "0x00", - "code": "0x60008060008073cccccccccccccccccccccccccccccccccccccccc5af450", - "storage": {} - }, "0xccccccccccccccccccccccccccccccccccccccce": { "nonce": "0x01", "balance": "0x020000000000", "code": "0x60008060008061100061c0de5af160008060008073cccccccccccccccccccccccccccccccccccccccc5af4905050", "storage": {} + }, + "0xd02d72e067e77158444ef2020ff2d325f929b363": { + "nonce": "0x01", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} } }, "postState": { diff --git a/src/ethereum_test_tools/tests/test_fixtures/blockchain_shanghai_invalid_filled_hive.json b/src/ethereum_test_tools/tests/test_fixtures/blockchain_shanghai_invalid_filled_hive.json new file mode 100644 index 00000000000..9405abc6b0b --- /dev/null +++ b/src/ethereum_test_tools/tests/test_fixtures/blockchain_shanghai_invalid_filled_hive.json @@ -0,0 +1,600 @@ +{ + "solc=0.8.20": { + "000/my_blockchain_test/Shanghai": { + "network": "Shanghai", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xba686b86cbe20f66e00f33c0a41d80d69f43bcc3322bfc5ed4905d7691886f73", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x03e8", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xee9490b3af4ef92610c3d55270c3d2cab510331f4b0fa0b3c2a805eee1c454b0" + }, + "engineNewPayloads": [ + { + "executionPayload": { + "parentHash": "0xee9490b3af4ef92610c3d55270c3d2cab510331f4b0fa0b3c2a805eee1c454b0", + "feeRecipient": "0xba5e000000000000000000000000000000000000", + "stateRoot": "0xfceb4d8747f80ac0f9acab704448018fe23c5577cea89a2877c3620f0763b807", + "receiptsRoot": "0x29b0562f7140574dd0d50dee8a271b22e1a0a7b78fca58f7c60370d8317ba2a9", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1", + "gasLimit": "0x16345785d8a0000", + "gasUsed": "0x15534", + "timestamp": "0xc", + "extraData": "0x", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x36b", + "blockHash": "0xef5d5d7782c5bd50ce1543fdd31dae7c4d079ebdffd330a6db5f777baf1b9b71", + "transactions": [ + "0x02f8650180018203e8830f424094cccccccccccccccccccccccccccccccccccccccc8001c080a03351b6993208fc7b03fd770c8c06440cfb0d75b29aafee0a4c64c8ba20a80e58a067817fdb3058e75c5d26e51a33d1e338346bc7d406e115447a4bb5f7ab01625b" + ], + "withdrawals": [] + }, + "valid": true, + "version": "2" + }, + { + "executionPayload": { + "parentHash": "0xef5d5d7782c5bd50ce1543fdd31dae7c4d079ebdffd330a6db5f777baf1b9b71", + "feeRecipient": "0xba5e000000000000000000000000000000000000", + "stateRoot": "0x7fda38fe964161eeed6c7e9fcf959794387c7e235f84e1eee887903b7e6de5e0", + "receiptsRoot": "0xabecd0c0c929d8339a0f55a2be4c3cdcb66f9de91de87109f351a7bd56a664e0", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x2", + "gasLimit": "0x16345785d8a0000", + "gasUsed": "0x53c3a", + "timestamp": "0x18", + "extraData": "0x", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x2fe", + "blockHash": "0xdcf29a42e8b62c9c73e07b087f52175f9bf9485ee26a05aa7c0ffb580a28a0ef", + "transactions": [ + "0x02f86701010a8203e8830f424094cccccccccccccccccccccccccccccccccccccccc80820201c080a06ea285a870a051df2b8c80c462b7d3517f984815e09c4748efc8548a40434050a052f635268c1b9e1538ac76b37cb69c7b897595744d6de2dda9507b6624d352d0", + "0x02f8670102648203e8830f424094cccccccccccccccccccccccccccccccccccccccd80820202c080a0218549e818b36b3823c3f11a65ab5c1e16f6886469c385503cc2f1af1f53825da058b082850f55fd61290a99add11b7af6356ac8d55fbe4d513f06bf648824a64d", + "0x02f8670103648203e8830f424094ccccccccccccccccccccccccccccccccccccccce80820203c001a0339e9ed3f6342f2644e4cd33a775b7e62a8208a137dcf2e354c7473caa77782aa074004c85b651c8ca9828aac28414997f3eff46edbba2bb606a545d95fd4c9b3a" + ], + "withdrawals": [] + }, + "valid": true, + "version": "2" + }, + { + "executionPayload": { + "parentHash": "0xdcf29a42e8b62c9c73e07b087f52175f9bf9485ee26a05aa7c0ffb580a28a0ef", + "feeRecipient": "0xba5e000000000000000000000000000000000000", + "stateRoot": "0xa50fd88fc2ee5cb861c1bf80806781dbf17b986a4956bb3ac906dfadb0c02b44", + "receiptsRoot": "0x976beb67b634171d419ef326220dfdda98074e3495940240a105e17643f0a4ef", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x3", + "gasLimit": "0x16345785d8a0000", + "gasUsed": "0x15544", + "timestamp": "0x24", + "extraData": "0x", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x29f", + "blockHash": "0x6504f75aa7b88dd9e059088d2db4d911934a5c0e3d076a48f6aeef9129df1472", + "transactions": [ + "0x02f86901048203e88203e8830f424094cccccccccccccccccccccccccccccccccccccccc80820301c001a0720e2870881f8b0e285b7ec02c169f1165847bcb5f36ea5f33f3db6079854f63a04448266b715d7d99acd1e31dcab50d7119faa620d44c69b3f64f97d636634169", + "0x02f86a0105830186a08203e8830f424094cccccccccccccccccccccccccccccccccccccccd80820302c080a06c7fb2be7e001a210d72480522b9ebecade52d721360ce5242e34a6c05a02715a01220e3cb7418cd6294443b38d05f5ed9f2967b182d25c784e11e7863454b8f9b" + ], + "withdrawals": [] + }, + "valid": false, + "version": "2" + }, + { + "executionPayload": { + "parentHash": "0xdcf29a42e8b62c9c73e07b087f52175f9bf9485ee26a05aa7c0ffb580a28a0ef", + "feeRecipient": "0xba5e000000000000000000000000000000000000", + "stateRoot": "0xa41f7c61262aa715762926c769792ba94d73f79e965cc6c029aab1d5e05aa7a5", + "receiptsRoot": "0x2b276cfe779f83fc50afea9262628cfe97b3175ce1822a1871aba93000cc5061", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x3", + "gasLimit": "0x16345785d8a0000", + "gasUsed": "0x53c3a", + "timestamp": "0x24", + "extraData": "0x", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x29f", + "blockHash": "0xcfaf5dbee8cd1127dab018f35b197c29c9746954dfabf535cb106e41f5310af8", + "transactions": [ + "0x02f86901048203e88203e8830f424094cccccccccccccccccccccccccccccccccccccccc80820301c001a0720e2870881f8b0e285b7ec02c169f1165847bcb5f36ea5f33f3db6079854f63a04448266b715d7d99acd1e31dcab50d7119faa620d44c69b3f64f97d636634169", + "0x02f8670105648203e8830f424094ccccccccccccccccccccccccccccccccccccccce80820303c080a09c8531a41f9281633470c5e12b6c72c8930409a6433f26bf7b394a703d18512ea07a0c6151fde75f10a7e4efdd17a21f1f25206559bd4b8cf7880e5bc30e1cfe33", + "0x02f86b0106830186a0830186a0830f424094cccccccccccccccccccccccccccccccccccccccd80820304c001a0c8b85e158b532a0e3b3b5848fad0f4d5c6807805a4ce65e8591de13a62f3ac6aa03e923eb1be030c3ca69623f31ad3a357368b1ccb7ee48ac8deec5cb5dc49cb0c" + ], + "withdrawals": [] + }, + "valid": true, + "version": "2" + }, + { + "executionPayload": { + "parentHash": "0xcfaf5dbee8cd1127dab018f35b197c29c9746954dfabf535cb106e41f5310af8", + "feeRecipient": "0xba5e000000000000000000000000000000000000", + "stateRoot": "0x6f432f2ec9284d7d2e251294558b9859771d075dc6ce01603ea52727a433078d", + "receiptsRoot": "0x976beb67b634171d419ef326220dfdda98074e3495940240a105e17643f0a4ef", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x4", + "gasLimit": "0x16345785d8a0000", + "gasUsed": "0x15544", + "timestamp": "0x30", + "extraData": "0x", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x24c", + "blockHash": "0xa8eec4a7460bdc0d813ab931562ca3a3b4e25c4482b9039003fdb293c3b05c96", + "transactions": [ + "0x02f86901078203e88203e8830f424094cccccccccccccccccccccccccccccccccccccccc80820401c001a0113c54f83e1b1e5c689ba86d288ec0ce2877f350b71821c4c7a3f7073b46602ca0548848e711b86ceeb657fd0a0bf44b792f6665ed18ec8a04f498471e811f8f97", + "0x02f86a0108830186a08203e8830f424094cccccccccccccccccccccccccccccccccccccccd80820402c001a0ebc8ad530ec3d510998aa2485763fcd1c6958c900c8d8ae6eaf86e1eddde8b23a0341e4a021f7b77da28d853c07d11253b92331ab640ad3f28f5d7b2cdbc7ceca7" + ], + "withdrawals": [] + }, + "valid": false, + "version": "2" + }, + { + "executionPayload": { + "parentHash": "0xcfaf5dbee8cd1127dab018f35b197c29c9746954dfabf535cb106e41f5310af8", + "feeRecipient": "0xba5e000000000000000000000000000000000000", + "stateRoot": "0x2abb36dc658a3d346d858b72dcc5f5f7defd9b6903c69a6bb9318ea866bd85df", + "receiptsRoot": "0x2b276cfe779f83fc50afea9262628cfe97b3175ce1822a1871aba93000cc5061", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x4", + "gasLimit": "0x16345785d8a0000", + "gasUsed": "0x53c3a", + "timestamp": "0x30", + "extraData": "0x", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x24c", + "blockHash": "0xfc75f11c05ec814a890141bef919bb7c20dd29245e37e9bcea66008dfde98526", + "transactions": [ + "0x02f86901078203e88203e8830f424094cccccccccccccccccccccccccccccccccccccccc80820401c001a0113c54f83e1b1e5c689ba86d288ec0ce2877f350b71821c4c7a3f7073b46602ca0548848e711b86ceeb657fd0a0bf44b792f6665ed18ec8a04f498471e811f8f97", + "0x02f8670108648203e8830f424094ccccccccccccccccccccccccccccccccccccccce80820403c080a08d7ec1116399aab6e1297b09302b291d73c5898a0338fb62a46c74b037d15a15a03cacc1a12eb47c261394443d490b8436f53a99d2109dac9ca5018cf531e6b29d", + "0x02f86b0109830186a0830186a0830f424094cccccccccccccccccccccccccccccccccccccccd80820404c001a054bd3a30ee3c2182d92f30223adb53feb0f51d76970a2628d9479536ff3edfe9a06f681aa0ad9362eeeafb981394526ca6425f3a24e1c7f44c413b68dd2e56e5d0" + ], + "withdrawals": [] + }, + "valid": true, + "version": "2" + } + ], + "engineFcuVersion": "2", + "pre": { + "0x000000000000000000000000000000000000c0de": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x5f805f8073cccccccccccccccccccccccccccccccccccccccc5af450", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x01", + "balance": "0x010000000000", + "code": "0x484355483a036110004301554761200043015500", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccd": { + "nonce": "0x01", + "balance": "0x020000000000", + "code": "0x5f805f8073cccccccccccccccccccccccccccccccccccccccc5af450", + "storage": {} + }, + "0xccccccccccccccccccccccccccccccccccccccce": { + "nonce": "0x01", + "balance": "0x020000000000", + "code": "0x5f805f8061100061c0de5af15f805f8073cccccccccccccccccccccccccccccccccccccccc5af4905050", + "storage": {} + }, + "0xd02d72e067e77158444ef2020ff2d325f929b363": { + "nonce": "0x01", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000000000000000000000000000000000000c0de": { + "nonce": "0x01", + "balance": "0x3000", + "code": "0x5f805f8073cccccccccccccccccccccccccccccccccccccccc5af450", + "storage": { + "0x02": "0x02fe", + "0x03": "0x029f", + "0x04": "0x024c", + "0x1002": "0x64", + "0x1003": "0x64", + "0x1004": "0x64", + "0x2002": "0x1000", + "0x2003": "0x2000", + "0x2004": "0x3000" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x0a", + "balance": "0xfffffffffba0b63da9", + "code": "0x", + "storage": {} + }, + "0xba5e000000000000000000000000000000000000": { + "nonce": "0x00", + "balance": "0x04315222d1", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x01", + "balance": "0x010000000000", + "code": "0x484355483a036110004301554761200043015500", + "storage": { + "0x01": "0x036b", + "0x02": "0x02fe", + "0x03": "0x029f", + "0x04": "0x024c", + "0x1001": "0x01", + "0x1002": "0x0a", + "0x1003": "0x0149", + "0x1004": "0x019c", + "0x2001": "0x010000000000", + "0x2002": "0x010000000000", + "0x2003": "0x010000000000", + "0x2004": "0x010000000000" + } + }, + "0xcccccccccccccccccccccccccccccccccccccccd": { + "nonce": "0x01", + "balance": "0x020000000000", + "code": "0x5f805f8073cccccccccccccccccccccccccccccccccccccccc5af450", + "storage": { + "0x02": "0x02fe", + "0x03": "0x029f", + "0x04": "0x024c", + "0x1002": "0x64", + "0x1003": "0x018401", + "0x1004": "0x018454", + "0x2002": "0x020000000000", + "0x2003": "0x020000000000", + "0x2004": "0x020000000000" + } + }, + "0xccccccccccccccccccccccccccccccccccccccce": { + "nonce": "0x01", + "balance": "0x01ffffffd000", + "code": "0x5f805f8061100061c0de5af15f805f8073cccccccccccccccccccccccccccccccccccccccc5af4905050", + "storage": { + "0x02": "0x02fe", + "0x03": "0x029f", + "0x04": "0x024c", + "0x1002": "0x64", + "0x1003": "0x64", + "0x1004": "0x64", + "0x2002": "0x01fffffff000", + "0x2003": "0x01ffffffe000", + "0x2004": "0x01ffffffd000" + } + }, + "0xd02d72e067e77158444ef2020ff2d325f929b363": { + "nonce": "0x01", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + } + } + }, + "solc=padding_version": { + "000/my_blockchain_test/Shanghai": { + "network": "Shanghai", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x44b459e04de1195475bf581bebb5ef8bb409cf38ce1146e0e60d60e5986bf871", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x03e8", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xdab34f5856809d953e1d5fa05c64f71f71438da0038b98a66b47d1f330e1f4f3" + }, + "engineNewPayloads": [ + { + "executionPayload": { + "parentHash": "0xdab34f5856809d953e1d5fa05c64f71f71438da0038b98a66b47d1f330e1f4f3", + "feeRecipient": "0xba5e000000000000000000000000000000000000", + "stateRoot": "0x5e6c56e26e40ffe7bf6a8593ce6623889fe2385a75d742e9a1f17ea03ba6ba99", + "receiptsRoot": "0x29b0562f7140574dd0d50dee8a271b22e1a0a7b78fca58f7c60370d8317ba2a9", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1", + "gasLimit": "0x16345785d8a0000", + "gasUsed": "0x15534", + "timestamp": "0xc", + "extraData": "0x", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x36b", + "blockHash": "0x8666ae70e0d1fc947f4e13022a3dcc042d9428a4c96fd2572cffc2f6279f3c9e", + "transactions": [ + "0x02f8650180018203e8830f424094cccccccccccccccccccccccccccccccccccccccc8001c080a03351b6993208fc7b03fd770c8c06440cfb0d75b29aafee0a4c64c8ba20a80e58a067817fdb3058e75c5d26e51a33d1e338346bc7d406e115447a4bb5f7ab01625b" + ], + "withdrawals": [] + }, + "valid": true, + "version": "2" + }, + { + "executionPayload": { + "parentHash": "0x8666ae70e0d1fc947f4e13022a3dcc042d9428a4c96fd2572cffc2f6279f3c9e", + "feeRecipient": "0xba5e000000000000000000000000000000000000", + "stateRoot": "0x54fdc3ec17732ae232d372e2a1e35e386ab4c08b2af95de853c7d2144d98516d", + "receiptsRoot": "0xbea3c90090e14495fed0113be1e981aa10850bfa1e994f4cc2bc0aada5fa1f5e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x2", + "gasLimit": "0x16345785d8a0000", + "gasUsed": "0x53c35", + "timestamp": "0x18", + "extraData": "0x", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x2fe", + "blockHash": "0x3959bb9eddd1d3b688753245f7e452cf881dd08e2cdd40bc6f35c55597a0fb40", + "transactions": [ + "0x02f86701010a8203e8830f424094cccccccccccccccccccccccccccccccccccccccc80820201c080a06ea285a870a051df2b8c80c462b7d3517f984815e09c4748efc8548a40434050a052f635268c1b9e1538ac76b37cb69c7b897595744d6de2dda9507b6624d352d0", + "0x02f8670102648203e8830f424094cccccccccccccccccccccccccccccccccccccccd80820202c080a0218549e818b36b3823c3f11a65ab5c1e16f6886469c385503cc2f1af1f53825da058b082850f55fd61290a99add11b7af6356ac8d55fbe4d513f06bf648824a64d", + "0x02f8670103648203e8830f424094ccccccccccccccccccccccccccccccccccccccce80820203c001a0339e9ed3f6342f2644e4cd33a775b7e62a8208a137dcf2e354c7473caa77782aa074004c85b651c8ca9828aac28414997f3eff46edbba2bb606a545d95fd4c9b3a" + ], + "withdrawals": [] + }, + "valid": true, + "version": "2" + }, + { + "executionPayload": { + "parentHash": "0x3959bb9eddd1d3b688753245f7e452cf881dd08e2cdd40bc6f35c55597a0fb40", + "feeRecipient": "0xba5e000000000000000000000000000000000000", + "stateRoot": "0xca8bbf62574cef39c1a04f3fcca690dbc4021a1079be8e084141ed47f80c7160", + "receiptsRoot": "0x976beb67b634171d419ef326220dfdda98074e3495940240a105e17643f0a4ef", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x3", + "gasLimit": "0x16345785d8a0000", + "gasUsed": "0x15544", + "timestamp": "0x24", + "extraData": "0x", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x29f", + "blockHash": "0xec8258ae1312e560e07e7d0fd208237e515c3e7d709f92fdc7a5b7316da25bdc", + "transactions": [ + "0x02f86901048203e88203e8830f424094cccccccccccccccccccccccccccccccccccccccc80820301c001a0720e2870881f8b0e285b7ec02c169f1165847bcb5f36ea5f33f3db6079854f63a04448266b715d7d99acd1e31dcab50d7119faa620d44c69b3f64f97d636634169", + "0x02f86a0105830186a08203e8830f424094cccccccccccccccccccccccccccccccccccccccd80820302c080a06c7fb2be7e001a210d72480522b9ebecade52d721360ce5242e34a6c05a02715a01220e3cb7418cd6294443b38d05f5ed9f2967b182d25c784e11e7863454b8f9b" + ], + "withdrawals": [] + }, + "valid": false, + "version": "2" + }, + { + "executionPayload": { + "parentHash": "0x3959bb9eddd1d3b688753245f7e452cf881dd08e2cdd40bc6f35c55597a0fb40", + "feeRecipient": "0xba5e000000000000000000000000000000000000", + "stateRoot": "0xdeab03fae811e52bb3adf96a3d6d84400bf72f37450e245a70488632169af968", + "receiptsRoot": "0x2fa0d45ad30c3b2adb11d0adc9c2890af19822c415abce6f98d87b66166b9897", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x3", + "gasLimit": "0x16345785d8a0000", + "gasUsed": "0x53c35", + "timestamp": "0x24", + "extraData": "0x", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x29f", + "blockHash": "0x85e4d9912e8ff49ff61f0b602d3db551a54bd35ab64f93e708b00ad685999e6f", + "transactions": [ + "0x02f86901048203e88203e8830f424094cccccccccccccccccccccccccccccccccccccccc80820301c001a0720e2870881f8b0e285b7ec02c169f1165847bcb5f36ea5f33f3db6079854f63a04448266b715d7d99acd1e31dcab50d7119faa620d44c69b3f64f97d636634169", + "0x02f8670105648203e8830f424094ccccccccccccccccccccccccccccccccccccccce80820303c080a09c8531a41f9281633470c5e12b6c72c8930409a6433f26bf7b394a703d18512ea07a0c6151fde75f10a7e4efdd17a21f1f25206559bd4b8cf7880e5bc30e1cfe33", + "0x02f86b0106830186a0830186a0830f424094cccccccccccccccccccccccccccccccccccccccd80820304c001a0c8b85e158b532a0e3b3b5848fad0f4d5c6807805a4ce65e8591de13a62f3ac6aa03e923eb1be030c3ca69623f31ad3a357368b1ccb7ee48ac8deec5cb5dc49cb0c" + ], + "withdrawals": [] + }, + "valid": true, + "version": "2" + }, + { + "executionPayload": { + "parentHash": "0x85e4d9912e8ff49ff61f0b602d3db551a54bd35ab64f93e708b00ad685999e6f", + "feeRecipient": "0xba5e000000000000000000000000000000000000", + "stateRoot": "0xf4a67ba5e7bf9b023a635f28cd3456a0fa6fe04c93b8969a146a45524adc7d38", + "receiptsRoot": "0x976beb67b634171d419ef326220dfdda98074e3495940240a105e17643f0a4ef", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x4", + "gasLimit": "0x16345785d8a0000", + "gasUsed": "0x15544", + "timestamp": "0x30", + "extraData": "0x", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x24c", + "blockHash": "0x30c73027954c5b8e8d633775e6cf4f1362fb15bf7d41be2424d757d2cc9d5219", + "transactions": [ + "0x02f86901078203e88203e8830f424094cccccccccccccccccccccccccccccccccccccccc80820401c001a0113c54f83e1b1e5c689ba86d288ec0ce2877f350b71821c4c7a3f7073b46602ca0548848e711b86ceeb657fd0a0bf44b792f6665ed18ec8a04f498471e811f8f97", + "0x02f86a0108830186a08203e8830f424094cccccccccccccccccccccccccccccccccccccccd80820402c001a0ebc8ad530ec3d510998aa2485763fcd1c6958c900c8d8ae6eaf86e1eddde8b23a0341e4a021f7b77da28d853c07d11253b92331ab640ad3f28f5d7b2cdbc7ceca7" + ], + "withdrawals": [] + }, + "valid": false, + "version": "2" + }, + { + "executionPayload": { + "parentHash": "0x85e4d9912e8ff49ff61f0b602d3db551a54bd35ab64f93e708b00ad685999e6f", + "feeRecipient": "0xba5e000000000000000000000000000000000000", + "stateRoot": "0xbd76d2b78a55dda5a1dfc2b89f25dedd1b28285b06b58e2edd5705178fc5e3b6", + "receiptsRoot": "0x2fa0d45ad30c3b2adb11d0adc9c2890af19822c415abce6f98d87b66166b9897", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x4", + "gasLimit": "0x16345785d8a0000", + "gasUsed": "0x53c35", + "timestamp": "0x30", + "extraData": "0x", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x24c", + "blockHash": "0x2c11f86ffa6571ad6c287e33baa3829280b13f39d6921a00f387796e863e42fc", + "transactions": [ + "0x02f86901078203e88203e8830f424094cccccccccccccccccccccccccccccccccccccccc80820401c001a0113c54f83e1b1e5c689ba86d288ec0ce2877f350b71821c4c7a3f7073b46602ca0548848e711b86ceeb657fd0a0bf44b792f6665ed18ec8a04f498471e811f8f97", + "0x02f8670108648203e8830f424094ccccccccccccccccccccccccccccccccccccccce80820403c080a08d7ec1116399aab6e1297b09302b291d73c5898a0338fb62a46c74b037d15a15a03cacc1a12eb47c261394443d490b8436f53a99d2109dac9ca5018cf531e6b29d", + "0x02f86b0109830186a0830186a0830f424094cccccccccccccccccccccccccccccccccccccccd80820404c001a054bd3a30ee3c2182d92f30223adb53feb0f51d76970a2628d9479536ff3edfe9a06f681aa0ad9362eeeafb981394526ca6425f3a24e1c7f44c413b68dd2e56e5d0" + ], + "withdrawals": [] + }, + "valid": true, + "version": "2" + } + ], + "engineFcuVersion": "2", + "pre": { + "0x000000000000000000000000000000000000c0de": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x5f80808073cccccccccccccccccccccccccccccccccccccccc5af400", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x01", + "balance": "0x010000000000", + "code": "0x484355483a036110004301554761200043015500", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccd": { + "nonce": "0x01", + "balance": "0x020000000000", + "code": "0x5f80808073cccccccccccccccccccccccccccccccccccccccc5af400", + "storage": {} + }, + "0xccccccccccccccccccccccccccccccccccccccce": { + "nonce": "0x01", + "balance": "0x020000000000", + "code": "0x5f80808061100061c0de5af1505f80808073cccccccccccccccccccccccccccccccccccccccc5af400", + "storage": {} + }, + "0xd02d72e067e77158444ef2020ff2d325f929b363": { + "nonce": "0x01", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000000000000000000000000000000000000c0de": { + "nonce": "0x01", + "balance": "0x3000", + "code": "0x5f80808073cccccccccccccccccccccccccccccccccccccccc5af400", + "storage": { + "0x02": "0x02fe", + "0x03": "0x029f", + "0x04": "0x024c", + "0x1002": "0x64", + "0x1003": "0x64", + "0x1004": "0x64", + "0x2002": "0x1000", + "0x2003": "0x2000", + "0x2004": "0x3000" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x0a", + "balance": "0xfffffffffba0b9729f", + "code": "0x", + "storage": {} + }, + "0xba5e000000000000000000000000000000000000": { + "nonce": "0x00", + "balance": "0x04314f1568", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x01", + "balance": "0x010000000000", + "code": "0x484355483a036110004301554761200043015500", + "storage": { + "0x01": "0x036b", + "0x02": "0x02fe", + "0x03": "0x029f", + "0x04": "0x024c", + "0x1001": "0x01", + "0x1002": "0x0a", + "0x1003": "0x0149", + "0x1004": "0x019c", + "0x2001": "0x010000000000", + "0x2002": "0x010000000000", + "0x2003": "0x010000000000", + "0x2004": "0x010000000000" + } + }, + "0xcccccccccccccccccccccccccccccccccccccccd": { + "nonce": "0x01", + "balance": "0x020000000000", + "code": "0x5f80808073cccccccccccccccccccccccccccccccccccccccc5af400", + "storage": { + "0x02": "0x02fe", + "0x03": "0x029f", + "0x04": "0x024c", + "0x1002": "0x64", + "0x1003": "0x018401", + "0x1004": "0x018454", + "0x2002": "0x020000000000", + "0x2003": "0x020000000000", + "0x2004": "0x020000000000" + } + }, + "0xccccccccccccccccccccccccccccccccccccccce": { + "nonce": "0x01", + "balance": "0x01ffffffd000", + "code": "0x5f80808061100061c0de5af1505f80808073cccccccccccccccccccccccccccccccccccccccc5af400", + "storage": { + "0x02": "0x02fe", + "0x03": "0x029f", + "0x04": "0x024c", + "0x1002": "0x64", + "0x1003": "0x64", + "0x1004": "0x64", + "0x2002": "0x01fffffff000", + "0x2003": "0x01ffffffe000", + "0x2004": "0x01ffffffd000" + } + }, + "0xd02d72e067e77158444ef2020ff2d325f929b363": { + "nonce": "0x01", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + } + } + } +} \ No newline at end of file diff --git a/src/ethereum_test_tools/tests/test_fixtures/blockchain_shanghai_valid_filled_hive.json b/src/ethereum_test_tools/tests/test_fixtures/blockchain_shanghai_valid_filled_hive.json new file mode 100644 index 00000000000..bd6225d20bb --- /dev/null +++ b/src/ethereum_test_tools/tests/test_fixtures/blockchain_shanghai_valid_filled_hive.json @@ -0,0 +1,504 @@ +{ + "solc=0.8.20": { + "000/my_blockchain_test/Shanghai": { + "network": "Shanghai", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xba686b86cbe20f66e00f33c0a41d80d69f43bcc3322bfc5ed4905d7691886f73", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x03e8", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xee9490b3af4ef92610c3d55270c3d2cab510331f4b0fa0b3c2a805eee1c454b0" + }, + "engineNewPayloads": [ + { + "executionPayload": { + "parentHash": "0xee9490b3af4ef92610c3d55270c3d2cab510331f4b0fa0b3c2a805eee1c454b0", + "feeRecipient": "0xba5e000000000000000000000000000000000000", + "stateRoot": "0xfceb4d8747f80ac0f9acab704448018fe23c5577cea89a2877c3620f0763b807", + "receiptsRoot": "0x29b0562f7140574dd0d50dee8a271b22e1a0a7b78fca58f7c60370d8317ba2a9", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1", + "gasLimit": "0x16345785d8a0000", + "gasUsed": "0x15534", + "timestamp": "0xc", + "extraData": "0x", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x36b", + "blockHash": "0xef5d5d7782c5bd50ce1543fdd31dae7c4d079ebdffd330a6db5f777baf1b9b71", + "transactions": [ + "0x02f8650180018203e8830f424094cccccccccccccccccccccccccccccccccccccccc8001c080a03351b6993208fc7b03fd770c8c06440cfb0d75b29aafee0a4c64c8ba20a80e58a067817fdb3058e75c5d26e51a33d1e338346bc7d406e115447a4bb5f7ab01625b" + ], + "withdrawals": [] + }, + "valid": true, + "version": "2" + }, + { + "executionPayload": { + "parentHash": "0xef5d5d7782c5bd50ce1543fdd31dae7c4d079ebdffd330a6db5f777baf1b9b71", + "feeRecipient": "0xba5e000000000000000000000000000000000000", + "stateRoot": "0x7fda38fe964161eeed6c7e9fcf959794387c7e235f84e1eee887903b7e6de5e0", + "receiptsRoot": "0xabecd0c0c929d8339a0f55a2be4c3cdcb66f9de91de87109f351a7bd56a664e0", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x2", + "gasLimit": "0x16345785d8a0000", + "gasUsed": "0x53c3a", + "timestamp": "0x18", + "extraData": "0x", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x2fe", + "blockHash": "0xdcf29a42e8b62c9c73e07b087f52175f9bf9485ee26a05aa7c0ffb580a28a0ef", + "transactions": [ + "0x02f86701010a8203e8830f424094cccccccccccccccccccccccccccccccccccccccc80820201c080a06ea285a870a051df2b8c80c462b7d3517f984815e09c4748efc8548a40434050a052f635268c1b9e1538ac76b37cb69c7b897595744d6de2dda9507b6624d352d0", + "0x02f8670102648203e8830f424094cccccccccccccccccccccccccccccccccccccccd80820202c080a0218549e818b36b3823c3f11a65ab5c1e16f6886469c385503cc2f1af1f53825da058b082850f55fd61290a99add11b7af6356ac8d55fbe4d513f06bf648824a64d", + "0x02f8670103648203e8830f424094ccccccccccccccccccccccccccccccccccccccce80820203c001a0339e9ed3f6342f2644e4cd33a775b7e62a8208a137dcf2e354c7473caa77782aa074004c85b651c8ca9828aac28414997f3eff46edbba2bb606a545d95fd4c9b3a" + ], + "withdrawals": [] + }, + "valid": true, + "version": "2" + }, + { + "executionPayload": { + "parentHash": "0xdcf29a42e8b62c9c73e07b087f52175f9bf9485ee26a05aa7c0ffb580a28a0ef", + "feeRecipient": "0xba5e000000000000000000000000000000000000", + "stateRoot": "0xa41f7c61262aa715762926c769792ba94d73f79e965cc6c029aab1d5e05aa7a5", + "receiptsRoot": "0x2b276cfe779f83fc50afea9262628cfe97b3175ce1822a1871aba93000cc5061", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x3", + "gasLimit": "0x16345785d8a0000", + "gasUsed": "0x53c3a", + "timestamp": "0x24", + "extraData": "0x", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x29f", + "blockHash": "0xcfaf5dbee8cd1127dab018f35b197c29c9746954dfabf535cb106e41f5310af8", + "transactions": [ + "0x02f86901048203e88203e8830f424094cccccccccccccccccccccccccccccccccccccccc80820301c001a0720e2870881f8b0e285b7ec02c169f1165847bcb5f36ea5f33f3db6079854f63a04448266b715d7d99acd1e31dcab50d7119faa620d44c69b3f64f97d636634169", + "0x02f8670105648203e8830f424094ccccccccccccccccccccccccccccccccccccccce80820303c080a09c8531a41f9281633470c5e12b6c72c8930409a6433f26bf7b394a703d18512ea07a0c6151fde75f10a7e4efdd17a21f1f25206559bd4b8cf7880e5bc30e1cfe33", + "0x02f86b0106830186a0830186a0830f424094cccccccccccccccccccccccccccccccccccccccd80820304c001a0c8b85e158b532a0e3b3b5848fad0f4d5c6807805a4ce65e8591de13a62f3ac6aa03e923eb1be030c3ca69623f31ad3a357368b1ccb7ee48ac8deec5cb5dc49cb0c" + ], + "withdrawals": [] + }, + "valid": true, + "version": "2" + }, + { + "executionPayload": { + "parentHash": "0xcfaf5dbee8cd1127dab018f35b197c29c9746954dfabf535cb106e41f5310af8", + "feeRecipient": "0xba5e000000000000000000000000000000000000", + "stateRoot": "0x2abb36dc658a3d346d858b72dcc5f5f7defd9b6903c69a6bb9318ea866bd85df", + "receiptsRoot": "0x2b276cfe779f83fc50afea9262628cfe97b3175ce1822a1871aba93000cc5061", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x4", + "gasLimit": "0x16345785d8a0000", + "gasUsed": "0x53c3a", + "timestamp": "0x30", + "extraData": "0x", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x24c", + "blockHash": "0xfc75f11c05ec814a890141bef919bb7c20dd29245e37e9bcea66008dfde98526", + "transactions": [ + "0x02f86901078203e88203e8830f424094cccccccccccccccccccccccccccccccccccccccc80820401c001a0113c54f83e1b1e5c689ba86d288ec0ce2877f350b71821c4c7a3f7073b46602ca0548848e711b86ceeb657fd0a0bf44b792f6665ed18ec8a04f498471e811f8f97", + "0x02f8670108648203e8830f424094ccccccccccccccccccccccccccccccccccccccce80820403c080a08d7ec1116399aab6e1297b09302b291d73c5898a0338fb62a46c74b037d15a15a03cacc1a12eb47c261394443d490b8436f53a99d2109dac9ca5018cf531e6b29d", + "0x02f86b0109830186a0830186a0830f424094cccccccccccccccccccccccccccccccccccccccd80820404c001a054bd3a30ee3c2182d92f30223adb53feb0f51d76970a2628d9479536ff3edfe9a06f681aa0ad9362eeeafb981394526ca6425f3a24e1c7f44c413b68dd2e56e5d0" + ], + "withdrawals": [] + }, + "valid": true, + "version": "2" + } + ], + "engineFcuVersion": "2", + "pre": { + "0x000000000000000000000000000000000000c0de": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x5f805f8073cccccccccccccccccccccccccccccccccccccccc5af450", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x01", + "balance": "0x010000000000", + "code": "0x484355483a036110004301554761200043015500", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccd": { + "nonce": "0x01", + "balance": "0x020000000000", + "code": "0x5f805f8073cccccccccccccccccccccccccccccccccccccccc5af450", + "storage": {} + }, + "0xccccccccccccccccccccccccccccccccccccccce": { + "nonce": "0x01", + "balance": "0x020000000000", + "code": "0x5f805f8061100061c0de5af15f805f8073cccccccccccccccccccccccccccccccccccccccc5af4905050", + "storage": {} + }, + "0xd02d72e067e77158444ef2020ff2d325f929b363": { + "nonce": "0x01", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000000000000000000000000000000000000c0de": { + "nonce": "0x01", + "balance": "0x3000", + "code": "0x5f805f8073cccccccccccccccccccccccccccccccccccccccc5af450", + "storage": { + "0x02": "0x02fe", + "0x03": "0x029f", + "0x04": "0x024c", + "0x1002": "0x64", + "0x1003": "0x64", + "0x1004": "0x64", + "0x2002": "0x1000", + "0x2003": "0x2000", + "0x2004": "0x3000" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x0a", + "balance": "0xfffffffffba0b63da9", + "code": "0x", + "storage": {} + }, + "0xba5e000000000000000000000000000000000000": { + "nonce": "0x00", + "balance": "0x04315222d1", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x01", + "balance": "0x010000000000", + "code": "0x484355483a036110004301554761200043015500", + "storage": { + "0x01": "0x036b", + "0x02": "0x02fe", + "0x03": "0x029f", + "0x04": "0x024c", + "0x1001": "0x01", + "0x1002": "0x0a", + "0x1003": "0x0149", + "0x1004": "0x019c", + "0x2001": "0x010000000000", + "0x2002": "0x010000000000", + "0x2003": "0x010000000000", + "0x2004": "0x010000000000" + } + }, + "0xcccccccccccccccccccccccccccccccccccccccd": { + "nonce": "0x01", + "balance": "0x020000000000", + "code": "0x5f805f8073cccccccccccccccccccccccccccccccccccccccc5af450", + "storage": { + "0x02": "0x02fe", + "0x03": "0x029f", + "0x04": "0x024c", + "0x1002": "0x64", + "0x1003": "0x018401", + "0x1004": "0x018454", + "0x2002": "0x020000000000", + "0x2003": "0x020000000000", + "0x2004": "0x020000000000" + } + }, + "0xccccccccccccccccccccccccccccccccccccccce": { + "nonce": "0x01", + "balance": "0x01ffffffd000", + "code": "0x5f805f8061100061c0de5af15f805f8073cccccccccccccccccccccccccccccccccccccccc5af4905050", + "storage": { + "0x02": "0x02fe", + "0x03": "0x029f", + "0x04": "0x024c", + "0x1002": "0x64", + "0x1003": "0x64", + "0x1004": "0x64", + "0x2002": "0x01fffffff000", + "0x2003": "0x01ffffffe000", + "0x2004": "0x01ffffffd000" + } + }, + "0xd02d72e067e77158444ef2020ff2d325f929b363": { + "nonce": "0x01", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + } + } + }, + "solc=padding_version": { + "000/my_blockchain_test/Shanghai": { + "network": "Shanghai", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0x44b459e04de1195475bf581bebb5ef8bb409cf38ce1146e0e60d60e5986bf871", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x016345785d8a0000", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x03e8", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0xdab34f5856809d953e1d5fa05c64f71f71438da0038b98a66b47d1f330e1f4f3" + }, + "engineNewPayloads": [ + { + "executionPayload": { + "parentHash": "0xdab34f5856809d953e1d5fa05c64f71f71438da0038b98a66b47d1f330e1f4f3", + "feeRecipient": "0xba5e000000000000000000000000000000000000", + "stateRoot": "0x5e6c56e26e40ffe7bf6a8593ce6623889fe2385a75d742e9a1f17ea03ba6ba99", + "receiptsRoot": "0x29b0562f7140574dd0d50dee8a271b22e1a0a7b78fca58f7c60370d8317ba2a9", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1", + "gasLimit": "0x16345785d8a0000", + "gasUsed": "0x15534", + "timestamp": "0xc", + "extraData": "0x", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x36b", + "blockHash": "0x8666ae70e0d1fc947f4e13022a3dcc042d9428a4c96fd2572cffc2f6279f3c9e", + "transactions": [ + "0x02f8650180018203e8830f424094cccccccccccccccccccccccccccccccccccccccc8001c080a03351b6993208fc7b03fd770c8c06440cfb0d75b29aafee0a4c64c8ba20a80e58a067817fdb3058e75c5d26e51a33d1e338346bc7d406e115447a4bb5f7ab01625b" + ], + "withdrawals": [] + }, + "valid": true, + "version": "2" + }, + { + "executionPayload": { + "parentHash": "0x8666ae70e0d1fc947f4e13022a3dcc042d9428a4c96fd2572cffc2f6279f3c9e", + "feeRecipient": "0xba5e000000000000000000000000000000000000", + "stateRoot": "0x54fdc3ec17732ae232d372e2a1e35e386ab4c08b2af95de853c7d2144d98516d", + "receiptsRoot": "0xbea3c90090e14495fed0113be1e981aa10850bfa1e994f4cc2bc0aada5fa1f5e", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x2", + "gasLimit": "0x16345785d8a0000", + "gasUsed": "0x53c35", + "timestamp": "0x18", + "extraData": "0x", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x2fe", + "blockHash": "0x3959bb9eddd1d3b688753245f7e452cf881dd08e2cdd40bc6f35c55597a0fb40", + "transactions": [ + "0x02f86701010a8203e8830f424094cccccccccccccccccccccccccccccccccccccccc80820201c080a06ea285a870a051df2b8c80c462b7d3517f984815e09c4748efc8548a40434050a052f635268c1b9e1538ac76b37cb69c7b897595744d6de2dda9507b6624d352d0", + "0x02f8670102648203e8830f424094cccccccccccccccccccccccccccccccccccccccd80820202c080a0218549e818b36b3823c3f11a65ab5c1e16f6886469c385503cc2f1af1f53825da058b082850f55fd61290a99add11b7af6356ac8d55fbe4d513f06bf648824a64d", + "0x02f8670103648203e8830f424094ccccccccccccccccccccccccccccccccccccccce80820203c001a0339e9ed3f6342f2644e4cd33a775b7e62a8208a137dcf2e354c7473caa77782aa074004c85b651c8ca9828aac28414997f3eff46edbba2bb606a545d95fd4c9b3a" + ], + "withdrawals": [] + }, + "valid": true, + "version": "2" + }, + { + "executionPayload": { + "parentHash": "0x3959bb9eddd1d3b688753245f7e452cf881dd08e2cdd40bc6f35c55597a0fb40", + "feeRecipient": "0xba5e000000000000000000000000000000000000", + "stateRoot": "0xdeab03fae811e52bb3adf96a3d6d84400bf72f37450e245a70488632169af968", + "receiptsRoot": "0x2fa0d45ad30c3b2adb11d0adc9c2890af19822c415abce6f98d87b66166b9897", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x3", + "gasLimit": "0x16345785d8a0000", + "gasUsed": "0x53c35", + "timestamp": "0x24", + "extraData": "0x", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x29f", + "blockHash": "0x85e4d9912e8ff49ff61f0b602d3db551a54bd35ab64f93e708b00ad685999e6f", + "transactions": [ + "0x02f86901048203e88203e8830f424094cccccccccccccccccccccccccccccccccccccccc80820301c001a0720e2870881f8b0e285b7ec02c169f1165847bcb5f36ea5f33f3db6079854f63a04448266b715d7d99acd1e31dcab50d7119faa620d44c69b3f64f97d636634169", + "0x02f8670105648203e8830f424094ccccccccccccccccccccccccccccccccccccccce80820303c080a09c8531a41f9281633470c5e12b6c72c8930409a6433f26bf7b394a703d18512ea07a0c6151fde75f10a7e4efdd17a21f1f25206559bd4b8cf7880e5bc30e1cfe33", + "0x02f86b0106830186a0830186a0830f424094cccccccccccccccccccccccccccccccccccccccd80820304c001a0c8b85e158b532a0e3b3b5848fad0f4d5c6807805a4ce65e8591de13a62f3ac6aa03e923eb1be030c3ca69623f31ad3a357368b1ccb7ee48ac8deec5cb5dc49cb0c" + ], + "withdrawals": [] + }, + "valid": true, + "version": "2" + }, + { + "executionPayload": { + "parentHash": "0x85e4d9912e8ff49ff61f0b602d3db551a54bd35ab64f93e708b00ad685999e6f", + "feeRecipient": "0xba5e000000000000000000000000000000000000", + "stateRoot": "0xbd76d2b78a55dda5a1dfc2b89f25dedd1b28285b06b58e2edd5705178fc5e3b6", + "receiptsRoot": "0x2fa0d45ad30c3b2adb11d0adc9c2890af19822c415abce6f98d87b66166b9897", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x4", + "gasLimit": "0x16345785d8a0000", + "gasUsed": "0x53c35", + "timestamp": "0x30", + "extraData": "0x", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x24c", + "blockHash": "0x2c11f86ffa6571ad6c287e33baa3829280b13f39d6921a00f387796e863e42fc", + "transactions": [ + "0x02f86901078203e88203e8830f424094cccccccccccccccccccccccccccccccccccccccc80820401c001a0113c54f83e1b1e5c689ba86d288ec0ce2877f350b71821c4c7a3f7073b46602ca0548848e711b86ceeb657fd0a0bf44b792f6665ed18ec8a04f498471e811f8f97", + "0x02f8670108648203e8830f424094ccccccccccccccccccccccccccccccccccccccce80820403c080a08d7ec1116399aab6e1297b09302b291d73c5898a0338fb62a46c74b037d15a15a03cacc1a12eb47c261394443d490b8436f53a99d2109dac9ca5018cf531e6b29d", + "0x02f86b0109830186a0830186a0830f424094cccccccccccccccccccccccccccccccccccccccd80820404c001a054bd3a30ee3c2182d92f30223adb53feb0f51d76970a2628d9479536ff3edfe9a06f681aa0ad9362eeeafb981394526ca6425f3a24e1c7f44c413b68dd2e56e5d0" + ], + "withdrawals": [] + }, + "valid": true, + "version": "2" + } + ], + "engineFcuVersion": "2", + "pre": { + "0x000000000000000000000000000000000000c0de": { + "nonce": "0x01", + "balance": "0x00", + "code": "0x5f80808073cccccccccccccccccccccccccccccccccccccccc5af400", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x01", + "balance": "0x010000000000", + "code": "0x484355483a036110004301554761200043015500", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccd": { + "nonce": "0x01", + "balance": "0x020000000000", + "code": "0x5f80808073cccccccccccccccccccccccccccccccccccccccc5af400", + "storage": {} + }, + "0xccccccccccccccccccccccccccccccccccccccce": { + "nonce": "0x01", + "balance": "0x020000000000", + "code": "0x5f80808061100061c0de5af1505f80808073cccccccccccccccccccccccccccccccccccccccc5af400", + "storage": {} + }, + "0xd02d72e067e77158444ef2020ff2d325f929b363": { + "nonce": "0x01", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x000000000000000000000000000000000000c0de": { + "nonce": "0x01", + "balance": "0x3000", + "code": "0x5f80808073cccccccccccccccccccccccccccccccccccccccc5af400", + "storage": { + "0x02": "0x02fe", + "0x03": "0x029f", + "0x04": "0x024c", + "0x1002": "0x64", + "0x1003": "0x64", + "0x1004": "0x64", + "0x2002": "0x1000", + "0x2003": "0x2000", + "0x2004": "0x3000" + } + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x0a", + "balance": "0xfffffffffba0b9729f", + "code": "0x", + "storage": {} + }, + "0xba5e000000000000000000000000000000000000": { + "nonce": "0x00", + "balance": "0x04314f1568", + "code": "0x", + "storage": {} + }, + "0xcccccccccccccccccccccccccccccccccccccccc": { + "nonce": "0x01", + "balance": "0x010000000000", + "code": "0x484355483a036110004301554761200043015500", + "storage": { + "0x01": "0x036b", + "0x02": "0x02fe", + "0x03": "0x029f", + "0x04": "0x024c", + "0x1001": "0x01", + "0x1002": "0x0a", + "0x1003": "0x0149", + "0x1004": "0x019c", + "0x2001": "0x010000000000", + "0x2002": "0x010000000000", + "0x2003": "0x010000000000", + "0x2004": "0x010000000000" + } + }, + "0xcccccccccccccccccccccccccccccccccccccccd": { + "nonce": "0x01", + "balance": "0x020000000000", + "code": "0x5f80808073cccccccccccccccccccccccccccccccccccccccc5af400", + "storage": { + "0x02": "0x02fe", + "0x03": "0x029f", + "0x04": "0x024c", + "0x1002": "0x64", + "0x1003": "0x018401", + "0x1004": "0x018454", + "0x2002": "0x020000000000", + "0x2003": "0x020000000000", + "0x2004": "0x020000000000" + } + }, + "0xccccccccccccccccccccccccccccccccccccccce": { + "nonce": "0x01", + "balance": "0x01ffffffd000", + "code": "0x5f80808061100061c0de5af1505f80808073cccccccccccccccccccccccccccccccccccccccc5af400", + "storage": { + "0x02": "0x02fe", + "0x03": "0x029f", + "0x04": "0x024c", + "0x1002": "0x64", + "0x1003": "0x64", + "0x1004": "0x64", + "0x2002": "0x01fffffff000", + "0x2003": "0x01ffffffe000", + "0x2004": "0x01ffffffd000" + } + }, + "0xd02d72e067e77158444ef2020ff2d325f929b363": { + "nonce": "0x01", + "balance": "0x01000000000000000000", + "code": "0x", + "storage": {} + } + } + } + } +} \ No newline at end of file diff --git a/src/ethereum_test_tools/tests/test_fixtures/chainid_istanbul_filled.json b/src/ethereum_test_tools/tests/test_fixtures/chainid_istanbul_filled.json index 9c952b657e3..6967e813330 100644 --- a/src/ethereum_test_tools/tests/test_fixtures/chainid_istanbul_filled.json +++ b/src/ethereum_test_tools/tests/test_fixtures/chainid_istanbul_filled.json @@ -1,5 +1,25 @@ { "000/my_chain_id_test/Istanbul": { + "network": "Istanbul", + "genesisRLP": "0xf901faf901f5a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0aff9f63320a482f8c4e4f15f659e6a7ac382138fbbb6919243b0cba4c5988a5aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083020000808502540be400808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xaff9f63320a482f8c4e4f15f659e6a7ac382138fbbb6919243b0cba4c5988a5a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "hash": "0xfcf37297d9e49a1c75e6d18f0e490d1c0ecb3c49cb464f4fd95bb224a8262bda" + }, "blocks": [ { "rlp": "0xf90262f901f9a0fcf37297d9e49a1c75e6d18f0e490d1c0ecb3c49cb464f4fd95bb224a8262bdaa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0330a7882a8fadd60d0b6bf3d8ce7a8ae024800ae31ad8fae24d654a6a83fcad6a08151d548273f6683169524b66ca9fe338b9ce42bc3540046c828fd939ae23bcba0fa9e942c7bab1017c29ab8b7f9484e311f3a2ba680c2ec8abbaea2365cecc93eb901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083020000018502540be40082a02d8203e800a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f863f861800a8405f5e10094100000000000000000000000000000000000000080801ba07e09e26678ed4fac08a249ebe8ed680bf9051a5e14ad223e4b2b9d26e0208f37a05f6e3f188e3e6eab7d7d3b6568f5eac7d687b08d307d3154ccd8c87b4630509bc0", @@ -26,11 +46,11 @@ "type": "0x00", "chainId": "0x00", "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", "to": "0x1000000000000000000000000000000000000000", "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100", - "gasPrice": "0x0a", "v": "0x1b", "r": "0x7e09e26678ed4fac08a249ebe8ed680bf9051a5e14ad223e4b2b9d26e0208f37", "s": "0x5f6e3f188e3e6eab7d7d3b6568f5eac7d687b08d307d3154ccd8c87b4630509b", @@ -40,27 +60,7 @@ "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xaff9f63320a482f8c4e4f15f659e6a7ac382138fbbb6919243b0cba4c5988a5a", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "hash": "0xfcf37297d9e49a1c75e6d18f0e490d1c0ecb3c49cb464f4fd95bb224a8262bda" - }, - "genesisRLP": "0xf901faf901f5a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0aff9f63320a482f8c4e4f15f659e6a7ac382138fbbb6919243b0cba4c5988a5aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083020000808502540be400808000a00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0", "lastblockhash": "0xc413245fffae8b7c6392bcd3dfbbdee24118e94d9a58722a7abd91a4e1d048b7", - "network": "Istanbul", "pre": { "0x1000000000000000000000000000000000000000": { "nonce": "0x00", diff --git a/src/ethereum_test_tools/tests/test_fixtures/chainid_london_filled.json b/src/ethereum_test_tools/tests/test_fixtures/chainid_london_filled.json index 011ae98196b..c2556c10485 100644 --- a/src/ethereum_test_tools/tests/test_fixtures/chainid_london_filled.json +++ b/src/ethereum_test_tools/tests/test_fixtures/chainid_london_filled.json @@ -1,5 +1,26 @@ { "000/my_chain_id_test/London": { + "network": "London", + "genesisRLP": "0xf901fbf901f6a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0aff9f63320a482f8c4e4f15f659e6a7ac382138fbbb6919243b0cba4c5988a5aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083020000808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xaff9f63320a482f8c4e4f15f659e6a7ac382138fbbb6919243b0cba4c5988a5a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x020000", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "hash": "0x107e91b6c929ab8d50e2de4f3952d602f5531b3f5348430b4005fbbf9d195375" + }, "blocks": [ { "rlp": "0xf90263f901faa0107e91b6c929ab8d50e2de4f3952d602f5531b3f5348430b4005fbbf9d195375a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347942adc25665018aa1fe0e6bc666dac8fc2697ff9baa0a48abc194fdd8e58a32a90874e9144e19eb68306ec5e51bca9389d1043eeb20fa08151d548273f6683169524b66ca9fe338b9ce42bc3540046c828fd939ae23bcba0c598f69a5674cae9337261b669970e24abc0b46e6d284372a239ec8ccbf20b0ab901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083020000018502540be40082a8618203e800a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007f863f861800a8405f5e10094100000000000000000000000000000000000000080801ba07e09e26678ed4fac08a249ebe8ed680bf9051a5e14ad223e4b2b9d26e0208f37a05f6e3f188e3e6eab7d7d3b6568f5eac7d687b08d307d3154ccd8c87b4630509bc0", @@ -27,11 +48,11 @@ "type": "0x00", "chainId": "0x00", "nonce": "0x00", + "gasPrice": "0x0a", + "gasLimit": "0x05f5e100", "to": "0x1000000000000000000000000000000000000000", "value": "0x00", "data": "0x", - "gasLimit": "0x05f5e100", - "gasPrice": "0x0a", "v": "0x1b", "r": "0x7e09e26678ed4fac08a249ebe8ed680bf9051a5e14ad223e4b2b9d26e0208f37", "s": "0x5f6e3f188e3e6eab7d7d3b6568f5eac7d687b08d307d3154ccd8c87b4630509b", @@ -41,28 +62,7 @@ "uncleHeaders": [] } ], - "genesisBlockHeader": { - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", - "coinbase": "0x0000000000000000000000000000000000000000", - "stateRoot": "0xaff9f63320a482f8c4e4f15f659e6a7ac382138fbbb6919243b0cba4c5988a5a", - "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "difficulty": "0x020000", - "number": "0x00", - "gasLimit": "0x02540be400", - "gasUsed": "0x00", - "timestamp": "0x00", - "extraData": "0x00", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x0000000000000000", - "baseFeePerGas": "0x07", - "hash": "0x107e91b6c929ab8d50e2de4f3952d602f5531b3f5348430b4005fbbf9d195375" - }, - "genesisRLP": "0xf901fbf901f6a00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0aff9f63320a482f8c4e4f15f659e6a7ac382138fbbb6919243b0cba4c5988a5aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b901000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000083020000808502540be400808000a0000000000000000000000000000000000000000000000000000000000000000088000000000000000007c0c0", "lastblockhash": "0xe05293fe6050385e463d93c310bc52f87715f509aeb036455bbe4597cf36706a", - "network": "London", "pre": { "0x1000000000000000000000000000000000000000": { "nonce": "0x00", diff --git a/src/ethereum_test_tools/tests/test_fixtures/chainid_merge_filled_hive.json b/src/ethereum_test_tools/tests/test_fixtures/chainid_merge_filled_hive.json new file mode 100644 index 00000000000..0c37c27f0fe --- /dev/null +++ b/src/ethereum_test_tools/tests/test_fixtures/chainid_merge_filled_hive.json @@ -0,0 +1,85 @@ +{ + "000/my_chain_id_test/Merge": { + "network": "Merge", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xaff9f63320a482f8c4e4f15f659e6a7ac382138fbbb6919243b0cba4c5988a5a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "hash": "0xb2b30c502e6c7cafc6324b17a6aedebf7bd14a0eec632d5a1b50eede93965a86" + }, + "engineNewPayloads": [ + { + "executionPayload": { + "parentHash": "0xb2b30c502e6c7cafc6324b17a6aedebf7bd14a0eec632d5a1b50eede93965a86", + "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x19919608275963e6e20a1191996f5b19db8208dd8df54097cfd2b9cb14f682b6", + "receiptsRoot": "0xc598f69a5674cae9337261b669970e24abc0b46e6d284372a239ec8ccbf20b0a", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1", + "gasLimit": "0x2540be400", + "gasUsed": "0xa861", + "timestamp": "0x3e8", + "extraData": "0x00", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x7", + "blockHash": "0xe92eedff2a0489bd861f528e248994b6791b0f5b845d90b34c68bc8cbc51c369", + "transactions": [ + "0xf861800a8405f5e10094100000000000000000000000000000000000000080801ba07e09e26678ed4fac08a249ebe8ed680bf9051a5e14ad223e4b2b9d26e0208f37a05f6e3f188e3e6eab7d7d3b6568f5eac7d687b08d307d3154ccd8c87b4630509b" + ] + }, + "valid": true, + "version": "1" + } + ], + "engineFcuVersion": "1", + "pre": { + "0x1000000000000000000000000000000000000000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4660015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x1000000000000000000000000000000000000000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4660015500", + "storage": { + "0x01": "0x01" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x01f923", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de996c36", + "code": "0x", + "storage": {} + } + } + } +} \ No newline at end of file diff --git a/src/ethereum_test_tools/tests/test_fixtures/chainid_shanghai_filled_hive.json b/src/ethereum_test_tools/tests/test_fixtures/chainid_shanghai_filled_hive.json new file mode 100644 index 00000000000..368fc51cb7f --- /dev/null +++ b/src/ethereum_test_tools/tests/test_fixtures/chainid_shanghai_filled_hive.json @@ -0,0 +1,87 @@ +{ + "000/my_chain_id_test/Shanghai": { + "network": "Shanghai", + "genesisBlockHeader": { + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "uncleHash": "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347", + "coinbase": "0x0000000000000000000000000000000000000000", + "stateRoot": "0xaff9f63320a482f8c4e4f15f659e6a7ac382138fbbb6919243b0cba4c5988a5a", + "transactionsTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "receiptTrie": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "bloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "difficulty": "0x00", + "number": "0x00", + "gasLimit": "0x02540be400", + "gasUsed": "0x00", + "timestamp": "0x00", + "extraData": "0x00", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x0000000000000000", + "baseFeePerGas": "0x07", + "withdrawalsRoot": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "hash": "0x62f038416dbe4a03ea264e084edd9024b3589b49e66f7d5528b72a138a34570f" + }, + "engineNewPayloads": [ + { + "executionPayload": { + "parentHash": "0x62f038416dbe4a03ea264e084edd9024b3589b49e66f7d5528b72a138a34570f", + "feeRecipient": "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba", + "stateRoot": "0x19919608275963e6e20a1191996f5b19db8208dd8df54097cfd2b9cb14f682b6", + "receiptsRoot": "0xc598f69a5674cae9337261b669970e24abc0b46e6d284372a239ec8ccbf20b0a", + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockNumber": "0x1", + "gasLimit": "0x2540be400", + "gasUsed": "0xa861", + "timestamp": "0x3e8", + "extraData": "0x00", + "prevRandao": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": "0x7", + "blockHash": "0x9c10141361e180632f7973f4f3a0aed2baa5ebb776bae84caafdcc07a24933e8", + "transactions": [ + "0xf861800a8405f5e10094100000000000000000000000000000000000000080801ba07e09e26678ed4fac08a249ebe8ed680bf9051a5e14ad223e4b2b9d26e0208f37a05f6e3f188e3e6eab7d7d3b6568f5eac7d687b08d307d3154ccd8c87b4630509b" + ], + "withdrawals": [] + }, + "valid": true, + "version": "2" + } + ], + "engineFcuVersion": "2", + "pre": { + "0x1000000000000000000000000000000000000000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4660015500", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x00", + "balance": "0x3635c9adc5dea00000", + "code": "0x", + "storage": {} + } + }, + "postState": { + "0x1000000000000000000000000000000000000000": { + "nonce": "0x00", + "balance": "0x00", + "code": "0x4660015500", + "storage": { + "0x01": "0x01" + } + }, + "0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba": { + "nonce": "0x00", + "balance": "0x01f923", + "code": "0x", + "storage": {} + }, + "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b": { + "nonce": "0x01", + "balance": "0x3635c9adc5de996c36", + "code": "0x", + "storage": {} + } + } + } +} \ No newline at end of file diff --git a/src/ethereum_test_tools/tests/test_types.py b/src/ethereum_test_tools/tests/test_types.py index 24dd67572e7..d725354d8d8 100644 --- a/src/ethereum_test_tools/tests/test_types.py +++ b/src/ethereum_test_tools/tests/test_types.py @@ -941,6 +941,7 @@ def test_account_merge( ], withdrawals=[Withdrawal(index=0, validator=1, address=0x1234, amount=2)], ), + valid=False, version=1, ), { @@ -984,6 +985,7 @@ def test_account_merge( to_json(Withdrawal(index=0, validator=1, address=0x1234, amount=2)) ], }, + "valid": False, "version": "1", }, id="fixture_engine_new_payload_1", @@ -1032,6 +1034,7 @@ def test_account_merge( withdrawals=[Withdrawal(index=0, validator=1, address=0x1234, amount=2)], ), version=1, + valid=True, blob_versioned_hashes=[bytes([0]), bytes([1])], error_code=EngineAPIError.InvalidRequest, ), @@ -1077,6 +1080,7 @@ def test_account_merge( ], }, "version": "1", + "valid": True, "expectedBlobVersionedHashes": [ "0x0000000000000000000000000000000000000000000000000000000000000000", "0x0000000000000000000000000000000000000000000000000000000000000001", diff --git a/src/pytest_plugins/test_filler/test_filler.py b/src/pytest_plugins/test_filler/test_filler.py index d6dc16eaa1b..01a5de57279 100644 --- a/src/pytest_plugins/test_filler/test_filler.py +++ b/src/pytest_plugins/test_filler/test_filler.py @@ -9,7 +9,7 @@ import os import re from pathlib import Path -from typing import Any, Dict, Generator, List, Tuple, Type +from typing import Any, Dict, Generator, List, Optional, Tuple, Type, Union import pytest @@ -20,6 +20,7 @@ BlockchainTest, BlockchainTestFiller, Fixture, + HiveFixture, StateTest, StateTestFiller, Yul, @@ -87,11 +88,11 @@ def pytest_addoption(parser): help="Output each test case in the directory without the folder structure.", ) test_group.addoption( - "--disable-hive", + "--enable-hive", action="store_true", - dest="disable_hive", + dest="enable_hive", default=False, - help="Output tests skipping hive-related properties.", + help="Output test fixtures with the hive-specific properties.", ) debug_group = parser.getgroup("debug", "Arguments defining debug behavior") @@ -191,7 +192,7 @@ def base_test_config(request) -> BaseTestConfig: Returns the base test configuration that all tests must use. """ config = BaseTestConfig() - config.disable_hive = request.config.getoption("disable_hive") + config.enable_hive = request.config.getoption("enable_hive") return config @@ -226,10 +227,13 @@ def __init__(self, output_dir: str, flat_output: bool) -> None: self.output_dir = output_dir self.flat_output = flat_output - def add_fixture(self, item, fixture: Fixture) -> None: + def add_fixture(self, item, fixture: Optional[Union[Fixture, HiveFixture]]) -> None: """ Adds a fixture to the list of fixtures of a given test case. """ + # TODO: remove this logic. if hive enabled set --from to Merge + if fixture is None: + return def get_module_dir(item) -> str: """ diff --git a/whitelist.txt b/whitelist.txt index 47a61f28f9a..ae63b1fa2e7 100644 --- a/whitelist.txt +++ b/whitelist.txt @@ -46,6 +46,7 @@ coinbase coincurve compilable config +conftest contractAddr controlflow cp