From 70c51d135b9d8c9d2222798ed002a0b1523b6d7e Mon Sep 17 00:00:00 2001 From: Xinyu Date: Fri, 22 May 2026 14:19:45 +0800 Subject: [PATCH 01/32] test: add specs --- .../configs/execution-api-schema.jsonnet | 26 + tests/integration_tests/spec/conftest.py | 106 +- .../spec/debug_getRawBlock/get-block-n.io | 3 + .../spec/debug_getRawBlock/get-genesis.io | 3 + .../debug_getRawBlock/get-invalid-number.io | 3 + .../spec/debug_getRawHeader/get-block-n.io | 3 + .../spec/debug_getRawHeader/get-genesis.io | 3 + .../debug_getRawHeader/get-invalid-number.io | 3 + .../spec/debug_getRawReceipts/get-block-n.io | 3 + .../spec/debug_getRawReceipts/get-genesis.io | 3 + .../get-invalid-number.io | 3 + .../get-invalid-hash.io | 3 + .../spec/debug_getRawTransaction/get-tx.io | 3 + .../eth_blobBaseFee/get-current-blobfee.io | 3 + .../spec/eth_blockNumber/simple-test.io | 3 + .../eth_call/call-callenv-options-eip1559.io | 5 + .../spec/eth_call/call-callenv.io | 4 + .../spec/eth_call/call-contract.io | 3 + .../spec/eth_call/call-eip7702-delegation.io | 3 + .../spec/eth_call/call-revert-abi-error.io | 3 + .../spec/eth_call/call-revert-abi-panic.io | 3 + .../spec/eth_chainId/get-chain-id.io | 3 + .../spec/eth_config/get-config.io | 3 + .../create-al-abi-revert.io | 6 + .../create-al-contract-eip1559.io | 5 + .../create-al-contract.io | 4 + .../create-al-value-transfer.io | 3 + .../estimate-call-abi-error.io | 4 + .../eth_estimateGas/estimate-failed-call.io | 4 + .../estimate-simple-transfer.io | 3 + .../estimate-successful-call.io | 4 + .../eth_estimateGas/estimate-with-eip4844.io | 4 + .../eth_estimateGas/estimate-with-eip7702.io | 6 + .../spec/eth_feeHistory/fee-history.io | 4 + .../eth_getBalance/get-balance-blockhash.io | 3 + .../get-balance-unknown-account.io | 3 + .../spec/eth_getBalance/get-balance.io | 3 + .../get-block-by-empty-hash.io | 3 + .../eth_getBlockByHash/get-block-by-hash.io | 3 + .../get-block-by-notfound-hash.io | 3 + .../get-block-cancun-fork.io | 3 + .../get-block-london-fork.io | 3 + .../get-block-merge-fork.io | 3 + .../get-block-notfound.io | 3 + .../get-block-prague-fork.io | 3 + .../get-block-shanghai-fork.io | 3 + .../eth_getBlockByNumber/get-finalized.io | 3 + .../spec/eth_getBlockByNumber/get-genesis.io | 3 + .../spec/eth_getBlockByNumber/get-latest.io | 3 + .../spec/eth_getBlockByNumber/get-safe.io | 3 + .../get-block-receipts-0.io | 3 + .../get-block-receipts-by-hash.io | 3 + .../get-block-receipts-earliest.io | 3 + .../get-block-receipts-empty.io | 3 + .../get-block-receipts-future.io | 3 + .../get-block-receipts-latest.io | 3 + .../get-block-receipts-n.io | 3 + .../get-block-receipts-not-found.io | 3 + .../get-block-n.io | 3 + .../get-genesis.io | 3 + .../get-block-n.io | 3 + .../get-genesis.io | 3 + .../get-code-eip7702-delegation.io | 4 + .../eth_getCode/get-code-unknown-account.io | 3 + .../spec/eth_getCode/get-code.io | 3 + .../spec/eth_getLogs/contract-addr.io | 3 + .../filter-error-future-block-range.io | 3 + ...ilter-error-invalid-blockHash-and-range.io | 3 + .../filter-error-reversed-block-range.io | 3 + .../filter-with-blockHash-and-topics.io | 3 + .../spec/eth_getLogs/filter-with-blockHash.io | 3 + .../spec/eth_getLogs/no-topics.io | 3 + .../spec/eth_getLogs/topic-exact-match.io | 3 + .../spec/eth_getLogs/topic-wildcard.io | 3 + .../get-account-proof-blockhash.io | 3 + .../eth_getProof/get-account-proof-latest.io | 3 + .../get-account-proof-with-storage.io | 3 + .../get-storage-invalid-key-too-large.io | 3 + .../get-storage-invalid-key.io | 3 + .../get-storage-unknown-account.io | 3 + .../spec/eth_getStorageAt/get-storage.io | 3 + .../get-storage-values-empty-request.io | 3 + .../get-storage-values-multiple-addresses.io | 3 + .../get-storage-values-unknown-account.io | 3 + .../get-storage-values.io | 3 + .../get-block-n.io | 3 + .../get-block-n.io | 3 + .../get-access-list.io | 3 + .../eth_getTransactionByHash/get-blob-tx.io | 3 + .../get-dynamic-fee.io | 3 + .../eth_getTransactionByHash/get-empty-tx.io | 3 + .../get-legacy-create.io | 3 + .../get-legacy-input.io | 3 + .../eth_getTransactionByHash/get-legacy-tx.io | 3 + .../get-notfound-tx.io | 3 + .../get-setcode-tx.io | 3 + .../get-nonce-eip7702-account.io | 4 + .../get-nonce-unknown-account.io | 3 + .../spec/eth_getTransactionCount/get-nonce.io | 3 + .../get-access-list.io | 3 + .../eth_getTransactionReceipt/get-blob-tx.io | 3 + .../get-dynamic-fee.io | 3 + .../eth_getTransactionReceipt/get-empty-tx.io | 3 + .../get-legacy-contract.io | 3 + .../get-legacy-input.io | 3 + .../get-legacy-receipt.io | 3 + .../get-notfound-tx.io | 3 + .../get-setcode-tx.io | 3 + .../send-access-list-transaction.io | 3 + .../eth_sendRawTransaction/send-blob-tx.io | 3 + ...end-dynamic-fee-access-list-transaction.io | 3 + .../send-dynamic-fee-transaction.io | 3 + .../send-legacy-transaction.io | 3 + .../spec/eth_syncing/check-syncing.io | 3 + .../fixtures/execution_apis/accounts.json | 62 + .../spec/fixtures/execution_apis/chain.rlp | Bin 0 -> 54615 bytes .../ethermint_genesis_overlay.json | 2356 +++++++++++++++++ .../spec/fixtures/execution_apis/forkenv.json | 27 + .../generate_ethermint_genesis.py | 150 ++ .../spec/fixtures/execution_apis/genesis.json | 141 + .../spec/fixtures/execution_apis/headfcu.json | 13 + .../fixtures/execution_apis/headstate.json | 1039 ++++++++ .../spec/fixtures/execution_apis/txinfo.json | 745 ++++++ .../spec/net_version/get-network-id.io | 3 + tests/integration_tests/spec/test_rpc_spec.py | 389 +++ .../spec/test_rpc_spec_schema.py | 440 +++ .../build-block-empty-transactions.io | 3 + .../build-block-from-mempool.io | 6 + .../build-block-invalid-transaction.io | 5 + .../build-block-with-transactions.io | 3 + .../spec/txpool_content/get-content.io | 4 + .../get-content-from-address.io | 4 + .../spec/txpool_status/get-status.io | 4 + 133 files changed, 5876 insertions(+), 5 deletions(-) create mode 100644 tests/integration_tests/configs/execution-api-schema.jsonnet create mode 100644 tests/integration_tests/spec/debug_getRawBlock/get-block-n.io create mode 100644 tests/integration_tests/spec/debug_getRawBlock/get-genesis.io create mode 100644 tests/integration_tests/spec/debug_getRawBlock/get-invalid-number.io create mode 100644 tests/integration_tests/spec/debug_getRawHeader/get-block-n.io create mode 100644 tests/integration_tests/spec/debug_getRawHeader/get-genesis.io create mode 100644 tests/integration_tests/spec/debug_getRawHeader/get-invalid-number.io create mode 100644 tests/integration_tests/spec/debug_getRawReceipts/get-block-n.io create mode 100644 tests/integration_tests/spec/debug_getRawReceipts/get-genesis.io create mode 100644 tests/integration_tests/spec/debug_getRawReceipts/get-invalid-number.io create mode 100644 tests/integration_tests/spec/debug_getRawTransaction/get-invalid-hash.io create mode 100644 tests/integration_tests/spec/debug_getRawTransaction/get-tx.io create mode 100644 tests/integration_tests/spec/eth_blobBaseFee/get-current-blobfee.io create mode 100644 tests/integration_tests/spec/eth_blockNumber/simple-test.io create mode 100644 tests/integration_tests/spec/eth_call/call-callenv-options-eip1559.io create mode 100644 tests/integration_tests/spec/eth_call/call-callenv.io create mode 100644 tests/integration_tests/spec/eth_call/call-contract.io create mode 100644 tests/integration_tests/spec/eth_call/call-eip7702-delegation.io create mode 100644 tests/integration_tests/spec/eth_call/call-revert-abi-error.io create mode 100644 tests/integration_tests/spec/eth_call/call-revert-abi-panic.io create mode 100644 tests/integration_tests/spec/eth_chainId/get-chain-id.io create mode 100644 tests/integration_tests/spec/eth_config/get-config.io create mode 100644 tests/integration_tests/spec/eth_createAccessList/create-al-abi-revert.io create mode 100644 tests/integration_tests/spec/eth_createAccessList/create-al-contract-eip1559.io create mode 100644 tests/integration_tests/spec/eth_createAccessList/create-al-contract.io create mode 100644 tests/integration_tests/spec/eth_createAccessList/create-al-value-transfer.io create mode 100644 tests/integration_tests/spec/eth_estimateGas/estimate-call-abi-error.io create mode 100644 tests/integration_tests/spec/eth_estimateGas/estimate-failed-call.io create mode 100644 tests/integration_tests/spec/eth_estimateGas/estimate-simple-transfer.io create mode 100644 tests/integration_tests/spec/eth_estimateGas/estimate-successful-call.io create mode 100644 tests/integration_tests/spec/eth_estimateGas/estimate-with-eip4844.io create mode 100644 tests/integration_tests/spec/eth_estimateGas/estimate-with-eip7702.io create mode 100644 tests/integration_tests/spec/eth_feeHistory/fee-history.io create mode 100644 tests/integration_tests/spec/eth_getBalance/get-balance-blockhash.io create mode 100644 tests/integration_tests/spec/eth_getBalance/get-balance-unknown-account.io create mode 100644 tests/integration_tests/spec/eth_getBalance/get-balance.io create mode 100644 tests/integration_tests/spec/eth_getBlockByHash/get-block-by-empty-hash.io create mode 100644 tests/integration_tests/spec/eth_getBlockByHash/get-block-by-hash.io create mode 100644 tests/integration_tests/spec/eth_getBlockByHash/get-block-by-notfound-hash.io create mode 100644 tests/integration_tests/spec/eth_getBlockByNumber/get-block-cancun-fork.io create mode 100644 tests/integration_tests/spec/eth_getBlockByNumber/get-block-london-fork.io create mode 100644 tests/integration_tests/spec/eth_getBlockByNumber/get-block-merge-fork.io create mode 100644 tests/integration_tests/spec/eth_getBlockByNumber/get-block-notfound.io create mode 100644 tests/integration_tests/spec/eth_getBlockByNumber/get-block-prague-fork.io create mode 100644 tests/integration_tests/spec/eth_getBlockByNumber/get-block-shanghai-fork.io create mode 100644 tests/integration_tests/spec/eth_getBlockByNumber/get-finalized.io create mode 100644 tests/integration_tests/spec/eth_getBlockByNumber/get-genesis.io create mode 100644 tests/integration_tests/spec/eth_getBlockByNumber/get-latest.io create mode 100644 tests/integration_tests/spec/eth_getBlockByNumber/get-safe.io create mode 100644 tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-0.io create mode 100644 tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-by-hash.io create mode 100644 tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-earliest.io create mode 100644 tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-empty.io create mode 100644 tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-future.io create mode 100644 tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-latest.io create mode 100644 tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-n.io create mode 100644 tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-not-found.io create mode 100644 tests/integration_tests/spec/eth_getBlockTransactionCountByHash/get-block-n.io create mode 100644 tests/integration_tests/spec/eth_getBlockTransactionCountByHash/get-genesis.io create mode 100644 tests/integration_tests/spec/eth_getBlockTransactionCountByNumber/get-block-n.io create mode 100644 tests/integration_tests/spec/eth_getBlockTransactionCountByNumber/get-genesis.io create mode 100644 tests/integration_tests/spec/eth_getCode/get-code-eip7702-delegation.io create mode 100644 tests/integration_tests/spec/eth_getCode/get-code-unknown-account.io create mode 100644 tests/integration_tests/spec/eth_getCode/get-code.io create mode 100644 tests/integration_tests/spec/eth_getLogs/contract-addr.io create mode 100644 tests/integration_tests/spec/eth_getLogs/filter-error-future-block-range.io create mode 100644 tests/integration_tests/spec/eth_getLogs/filter-error-invalid-blockHash-and-range.io create mode 100644 tests/integration_tests/spec/eth_getLogs/filter-error-reversed-block-range.io create mode 100644 tests/integration_tests/spec/eth_getLogs/filter-with-blockHash-and-topics.io create mode 100644 tests/integration_tests/spec/eth_getLogs/filter-with-blockHash.io create mode 100644 tests/integration_tests/spec/eth_getLogs/no-topics.io create mode 100644 tests/integration_tests/spec/eth_getLogs/topic-exact-match.io create mode 100644 tests/integration_tests/spec/eth_getLogs/topic-wildcard.io create mode 100644 tests/integration_tests/spec/eth_getProof/get-account-proof-blockhash.io create mode 100644 tests/integration_tests/spec/eth_getProof/get-account-proof-latest.io create mode 100644 tests/integration_tests/spec/eth_getProof/get-account-proof-with-storage.io create mode 100644 tests/integration_tests/spec/eth_getStorageAt/get-storage-invalid-key-too-large.io create mode 100644 tests/integration_tests/spec/eth_getStorageAt/get-storage-invalid-key.io create mode 100644 tests/integration_tests/spec/eth_getStorageAt/get-storage-unknown-account.io create mode 100644 tests/integration_tests/spec/eth_getStorageAt/get-storage.io create mode 100644 tests/integration_tests/spec/eth_getStorageValues/get-storage-values-empty-request.io create mode 100644 tests/integration_tests/spec/eth_getStorageValues/get-storage-values-multiple-addresses.io create mode 100644 tests/integration_tests/spec/eth_getStorageValues/get-storage-values-unknown-account.io create mode 100644 tests/integration_tests/spec/eth_getStorageValues/get-storage-values.io create mode 100644 tests/integration_tests/spec/eth_getTransactionByBlockHashAndIndex/get-block-n.io create mode 100644 tests/integration_tests/spec/eth_getTransactionByBlockNumberAndIndex/get-block-n.io create mode 100644 tests/integration_tests/spec/eth_getTransactionByHash/get-access-list.io create mode 100644 tests/integration_tests/spec/eth_getTransactionByHash/get-blob-tx.io create mode 100644 tests/integration_tests/spec/eth_getTransactionByHash/get-dynamic-fee.io create mode 100644 tests/integration_tests/spec/eth_getTransactionByHash/get-empty-tx.io create mode 100644 tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-create.io create mode 100644 tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-input.io create mode 100644 tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-tx.io create mode 100644 tests/integration_tests/spec/eth_getTransactionByHash/get-notfound-tx.io create mode 100644 tests/integration_tests/spec/eth_getTransactionByHash/get-setcode-tx.io create mode 100644 tests/integration_tests/spec/eth_getTransactionCount/get-nonce-eip7702-account.io create mode 100644 tests/integration_tests/spec/eth_getTransactionCount/get-nonce-unknown-account.io create mode 100644 tests/integration_tests/spec/eth_getTransactionCount/get-nonce.io create mode 100644 tests/integration_tests/spec/eth_getTransactionReceipt/get-access-list.io create mode 100644 tests/integration_tests/spec/eth_getTransactionReceipt/get-blob-tx.io create mode 100644 tests/integration_tests/spec/eth_getTransactionReceipt/get-dynamic-fee.io create mode 100644 tests/integration_tests/spec/eth_getTransactionReceipt/get-empty-tx.io create mode 100644 tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-contract.io create mode 100644 tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-input.io create mode 100644 tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-receipt.io create mode 100644 tests/integration_tests/spec/eth_getTransactionReceipt/get-notfound-tx.io create mode 100644 tests/integration_tests/spec/eth_getTransactionReceipt/get-setcode-tx.io create mode 100644 tests/integration_tests/spec/eth_sendRawTransaction/send-access-list-transaction.io create mode 100644 tests/integration_tests/spec/eth_sendRawTransaction/send-blob-tx.io create mode 100644 tests/integration_tests/spec/eth_sendRawTransaction/send-dynamic-fee-access-list-transaction.io create mode 100644 tests/integration_tests/spec/eth_sendRawTransaction/send-dynamic-fee-transaction.io create mode 100644 tests/integration_tests/spec/eth_sendRawTransaction/send-legacy-transaction.io create mode 100644 tests/integration_tests/spec/eth_syncing/check-syncing.io create mode 100644 tests/integration_tests/spec/fixtures/execution_apis/accounts.json create mode 100644 tests/integration_tests/spec/fixtures/execution_apis/chain.rlp create mode 100644 tests/integration_tests/spec/fixtures/execution_apis/ethermint_genesis_overlay.json create mode 100644 tests/integration_tests/spec/fixtures/execution_apis/forkenv.json create mode 100644 tests/integration_tests/spec/fixtures/execution_apis/generate_ethermint_genesis.py create mode 100644 tests/integration_tests/spec/fixtures/execution_apis/genesis.json create mode 100644 tests/integration_tests/spec/fixtures/execution_apis/headfcu.json create mode 100644 tests/integration_tests/spec/fixtures/execution_apis/headstate.json create mode 100644 tests/integration_tests/spec/fixtures/execution_apis/txinfo.json create mode 100644 tests/integration_tests/spec/net_version/get-network-id.io create mode 100644 tests/integration_tests/spec/test_rpc_spec.py create mode 100644 tests/integration_tests/spec/test_rpc_spec_schema.py create mode 100644 tests/integration_tests/spec/testing_buildBlockV1/build-block-empty-transactions.io create mode 100644 tests/integration_tests/spec/testing_buildBlockV1/build-block-from-mempool.io create mode 100644 tests/integration_tests/spec/testing_buildBlockV1/build-block-invalid-transaction.io create mode 100644 tests/integration_tests/spec/testing_buildBlockV1/build-block-with-transactions.io create mode 100644 tests/integration_tests/spec/txpool_content/get-content.io create mode 100644 tests/integration_tests/spec/txpool_contentFrom/get-content-from-address.io create mode 100644 tests/integration_tests/spec/txpool_status/get-status.io diff --git a/tests/integration_tests/configs/execution-api-schema.jsonnet b/tests/integration_tests/configs/execution-api-schema.jsonnet new file mode 100644 index 0000000000..2ed91ee34f --- /dev/null +++ b/tests/integration_tests/configs/execution-api-schema.jsonnet @@ -0,0 +1,26 @@ +local config = import 'simulate.jsonnet'; + +config { + 'ethermint_9000-1'+: { + 'app-config'+: { + 'json-rpc'+: { + api: 'eth,net,web3,debug,txpool', + 'feehistory-cap': 100, + 'block-range-cap': 10000, + 'logs-cap': 10000, + 'return-data-limit': 300000, + }, + }, + genesis+: { + app_state+: { + feemarket+: { + params+: { + no_base_fee: false, + base_fee: '100000000000', + min_gas_multiplier: '0', + }, + }, + }, + }, + }, +} diff --git a/tests/integration_tests/spec/conftest.py b/tests/integration_tests/spec/conftest.py index c17f890483..855bdc9cb2 100644 --- a/tests/integration_tests/spec/conftest.py +++ b/tests/integration_tests/spec/conftest.py @@ -1,5 +1,6 @@ import os import signal +import shutil import subprocess from pathlib import Path @@ -8,7 +9,84 @@ from web3 import Web3 from web3.middleware import ExtraDataToPOAMiddleware -SIMULATE_CONFIG = Path(__file__).parent.parent / "configs" / "simulate.jsonnet" +SCHEMA_CONFIG = ( + Path(__file__).parent.parent / "configs" / "execution-api-schema.jsonnet" +) +EXECUTION_API_FIXTURE_DIR = Path(__file__).parent / "fixtures" / "execution_apis" + + +def _merge_auth_accounts(genesis, overlay): + accounts = genesis["app_state"]["auth"]["accounts"] + by_address = { + account.get("base_account", {}).get("address"): i + for i, account in enumerate(accounts) + } + for account in overlay["auth_accounts"]: + address = account["base_account"]["address"] + if address in by_address: + accounts[by_address[address]] = account + else: + accounts.append(account) + + +def _merge_bank_balances(genesis, overlay): + balances = genesis["app_state"]["bank"]["balances"] + by_address = {balance["address"]: balance for balance in balances} + for imported in overlay["bank_balances"]: + balance = by_address.get(imported["address"]) + if balance is None: + balances.append(imported) + by_address[imported["address"]] = imported + continue + + coins = {coin["denom"]: int(coin["amount"]) for coin in balance["coins"]} + for coin in imported["coins"]: + coins[coin["denom"]] = coins.get(coin["denom"], 0) + int(coin["amount"]) + balance["coins"] = [ + {"denom": denom, "amount": str(amount)} + for denom, amount in sorted(coins.items()) + ] + + supply = {} + for balance in balances: + for coin in balance["coins"]: + supply[coin["denom"]] = supply.get(coin["denom"], 0) + int(coin["amount"]) + genesis["app_state"]["bank"]["supply"] = [ + {"denom": denom, "amount": str(amount)} + for denom, amount in sorted(supply.items()) + ] + + +def _merge_evm_accounts(genesis, overlay): + evm = genesis["app_state"]["evm"] + accounts = evm["accounts"] + by_address = {account["address"].lower(): i for i, account in enumerate(accounts)} + for account in overlay["evm_accounts"]: + address = account["address"].lower() + if address in by_address: + accounts[by_address[address]] = account + else: + accounts.append(account) + evm["params"]["chain_config"] = overlay["chain_config"] + + +def _patch_genesis_with_execution_api_state(chain_home): + import json + + overlay = json.loads( + (EXECUTION_API_FIXTURE_DIR / "ethermint_genesis_overlay.json").read_text() + ) + genesis_path = chain_home / "genesis.json" + genesis = json.loads(genesis_path.read_text()) + + _merge_auth_accounts(genesis, overlay) + _merge_bank_balances(genesis, overlay) + _merge_evm_accounts(genesis, overlay) + + patched = json.dumps(genesis, indent=2, sort_keys=True) + "\n" + genesis_path.write_text(patched) + for node_genesis in chain_home.glob("node*/config/genesis.json"): + node_genesis.write_text(patched) def _w3_wait_for_block(w3, target=1, timeout=240): @@ -64,13 +142,31 @@ def ethermint(tmp_path_factory): path = tmp_path_factory.mktemp("ethermint") base_port = 26750 cmd = [ - "pystarport", "init", - "--config", str(SIMULATE_CONFIG), - "--data", str(path), - "--base_port", str(base_port), + "pystarport", + "init", + "--config", + str(SCHEMA_CONFIG), + "--data", + str(path), + "--base_port", + str(base_port), "--no_remove", ] subprocess.run(cmd, check=True) + _patch_genesis_with_execution_api_state(path / "ethermint_9000-1") + chain_dir = path / "execution-api-fixtures" + chain_dir.mkdir() + for name in [ + "genesis.json", + "chain.rlp", + "forkenv.json", + "headfcu.json", + "txinfo.json", + "accounts.json", + "headstate.json", + "ethermint_genesis_overlay.json", + ]: + shutil.copy2(EXECUTION_API_FIXTURE_DIR / name, chain_dir / name) proc = subprocess.Popen( ["pystarport", "start", "--data", str(path), "--quiet"], preexec_fn=os.setsid, diff --git a/tests/integration_tests/spec/debug_getRawBlock/get-block-n.io b/tests/integration_tests/spec/debug_getRawBlock/get-block-n.io new file mode 100644 index 0000000000..0d30c849e6 --- /dev/null +++ b/tests/integration_tests/spec/debug_getRawBlock/get-block-n.io @@ -0,0 +1,3 @@ +// gets non-zero block +>> {"jsonrpc":"2.0","id":1,"method":"debug_getRawBlock","params":["0x3"]} +<< {"jsonrpc":"2.0","id":1,"result":"0xf90555f901f7a0558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1aa096377383a9fbc55b61cdc5d8b16d9ab626d8c4c29431096b7f0c97ab187d5d24940000000000000000000000000000000000000000a08cb1064825ded2b824ec5084334cce87c74818b8ce22f8af25c36e77697c5de8a0491543f00ab597a6ef1842d4c781ea320bb9157dafcf7818cd4de4c594c65cc1a07a12cc9a7abec50253db90b9fb6dc431b90172fa195811309ec2b9bdfb77b24eb9010040000000000000804000004800000000000000000000000000002000000000400200000000000000000000000008000010000000000200000000200000000004000000000000000000000000000000000000000000010000000000000400000000000000000003000000004000000040000000000000080000000000100000000000000000000000000000000000000002000040000000000001000000000000000000000000000000000000004020000000000000000000000000000000000000000000000000000000000000000080080000000000000000000000000000000000001000000000000000000000000000002000080100000000000000000010830200000384023f3e20830467131e80a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f9014df87a08018301c4a08080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f31ba04087f4cb6ba2484aa6c2ed335576ba912a94426bdd567e04ad85500ca8f987c4a018a68511767c648cab2dcea0ecebed28b812509d2b4018d92bd0a8c5646dd4ebf87109018301263c8080a54360005260006020525b604060002060208051600101905260206020a15a612710106009571ca027cea1712bbcd17136f1cc9d0199a49a21b9187c43f744fd60b355772bc36c9aa03714bc0de9105f4d3ddcebdd8a0be27d687405f4d5e370ed826a023882221525f85c0a0183020bc8808090435b8080556001015a6161a8106001571ca001d99027cebe900895e5bddad07c12db78315199808f6591baa4918a96da4046a012c12e76a968f478a104856a15448b5a21b56778e53cf81e6fb20bfdc987864bf90208f90205a079ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000284023f3e20801e9168697665636861696e20756e636c652030a00000000000000000000000000000000000000000000000000000000000000000880000000000000000"} diff --git a/tests/integration_tests/spec/debug_getRawBlock/get-genesis.io b/tests/integration_tests/spec/debug_getRawBlock/get-genesis.io new file mode 100644 index 0000000000..2459f4c435 --- /dev/null +++ b/tests/integration_tests/spec/debug_getRawBlock/get-genesis.io @@ -0,0 +1,3 @@ +// gets block 0 +>> {"jsonrpc":"2.0","id":1,"method":"debug_getRawBlock","params":["0x0"]} +<< {"jsonrpc":"2.0","id":1,"result":"0xf90202f901fda00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e5d8b049a78427be8c23ebd6811ed436b3a36cc117954b496848b90f0c654844a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008084023f3e2080808968697665636861696ea00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0"} diff --git a/tests/integration_tests/spec/debug_getRawBlock/get-invalid-number.io b/tests/integration_tests/spec/debug_getRawBlock/get-invalid-number.io new file mode 100644 index 0000000000..f2964dc18b --- /dev/null +++ b/tests/integration_tests/spec/debug_getRawBlock/get-invalid-number.io @@ -0,0 +1,3 @@ +// gets block with invalid number formatting +>> {"jsonrpc":"2.0","id":1,"method":"debug_getRawBlock","params":["2"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"invalid argument 0: hex string without 0x prefix"}} diff --git a/tests/integration_tests/spec/debug_getRawHeader/get-block-n.io b/tests/integration_tests/spec/debug_getRawHeader/get-block-n.io new file mode 100644 index 0000000000..0c838ee29f --- /dev/null +++ b/tests/integration_tests/spec/debug_getRawHeader/get-block-n.io @@ -0,0 +1,3 @@ +// gets non-zero block +>> {"jsonrpc":"2.0","id":1,"method":"debug_getRawHeader","params":["0x3"]} +<< {"jsonrpc":"2.0","id":1,"result":"0xf901f7a0558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1aa096377383a9fbc55b61cdc5d8b16d9ab626d8c4c29431096b7f0c97ab187d5d24940000000000000000000000000000000000000000a08cb1064825ded2b824ec5084334cce87c74818b8ce22f8af25c36e77697c5de8a0491543f00ab597a6ef1842d4c781ea320bb9157dafcf7818cd4de4c594c65cc1a07a12cc9a7abec50253db90b9fb6dc431b90172fa195811309ec2b9bdfb77b24eb9010040000000000000804000004800000000000000000000000000002000000000400200000000000000000000000008000010000000000200000000200000000004000000000000000000000000000000000000000000010000000000000400000000000000000003000000004000000040000000000000080000000000100000000000000000000000000000000000000002000040000000000001000000000000000000000000000000000000004020000000000000000000000000000000000000000000000000000000000000000080080000000000000000000000000000000000001000000000000000000000000000002000080100000000000000000010830200000384023f3e20830467131e80a00000000000000000000000000000000000000000000000000000000000000000880000000000000000"} diff --git a/tests/integration_tests/spec/debug_getRawHeader/get-genesis.io b/tests/integration_tests/spec/debug_getRawHeader/get-genesis.io new file mode 100644 index 0000000000..4aa422bd84 --- /dev/null +++ b/tests/integration_tests/spec/debug_getRawHeader/get-genesis.io @@ -0,0 +1,3 @@ +// gets block 0 +>> {"jsonrpc":"2.0","id":1,"method":"debug_getRawHeader","params":["0x0"]} +<< {"jsonrpc":"2.0","id":1,"result":"0xf901fda00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e5d8b049a78427be8c23ebd6811ed436b3a36cc117954b496848b90f0c654844a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008084023f3e2080808968697665636861696ea00000000000000000000000000000000000000000000000000000000000000000880000000000000000"} diff --git a/tests/integration_tests/spec/debug_getRawHeader/get-invalid-number.io b/tests/integration_tests/spec/debug_getRawHeader/get-invalid-number.io new file mode 100644 index 0000000000..7a2692f9ee --- /dev/null +++ b/tests/integration_tests/spec/debug_getRawHeader/get-invalid-number.io @@ -0,0 +1,3 @@ +// gets block with invalid number formatting +>> {"jsonrpc":"2.0","id":1,"method":"debug_getRawHeader","params":["2"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"invalid argument 0: hex string without 0x prefix"}} diff --git a/tests/integration_tests/spec/debug_getRawReceipts/get-block-n.io b/tests/integration_tests/spec/debug_getRawReceipts/get-block-n.io new file mode 100644 index 0000000000..0e147f0525 --- /dev/null +++ b/tests/integration_tests/spec/debug_getRawReceipts/get-block-n.io @@ -0,0 +1,3 @@ +// gets receipts non-zero block +>> {"jsonrpc":"2.0","id":1,"method":"debug_getRawReceipts","params":["0x3"]} +<< {"jsonrpc":"2.0","id":1,"result":["0xf90129a0eb94aa547caeb9bbc9a28873ac22484b8558c29c1482b1dfc6214476c6385b358301a5bab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0","0xf904afa0d8d47639c4145e1a431418c21066a775bc51f2baab85c7ea3119de9e40e270588302a903b9010040000000000000804000004800000000000000000000000000002000000000400200000000000000000000000008000010000000000200000000200000000004000000000000000000000000000000000000000000010000000000000400000000000000000003000000004000000040000000000000080000000000100000000000000000000000000000000000000002000040000000000001000000000000000000000000000000000000004020000000000000000000000000000000000000000000000000000000000000000080080000000000000000000000000000000000001000000000000000000000000000002000080100000000000000000010f90384f85894a788ca96a910bac854f95b794776c1ad847dcdd5e1a0101e368776582e57ab3d116ffe2517c0a585cd5b23174b01e275c2d8329c3d83a00000000000000000000000000000000000000000000000000000000000000001f85894a788ca96a910bac854f95b794776c1ad847dcdd5e1a07dfe757ecd65cbd7922a9c0161e935dd7fdbcc0e999689c7d31633896b1fc60ba00000000000000000000000000000000000000000000000000000000000000002f85894a788ca96a910bac854f95b794776c1ad847dcdd5e1a088601476d11616a71c5be67555bd1dff4b1cbf21533d2669b768b61518cfe1c3a00000000000000000000000000000000000000000000000000000000000000003f85894a788ca96a910bac854f95b794776c1ad847dcdd5e1a0cbc4e5fb02c3d1de23a9f1e014b4d2ee5aeaea9505df5e855c9210bf472495afa00000000000000000000000000000000000000000000000000000000000000004f85894a788ca96a910bac854f95b794776c1ad847dcdd5e1a02e174c10e159ea99b867ce3205125c24a42d128804e4070ed6fcc8cc98166aa0a00000000000000000000000000000000000000000000000000000000000000005f85894a788ca96a910bac854f95b794776c1ad847dcdd5e1a0a9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc0a00000000000000000000000000000000000000000000000000000000000000006f85894a788ca96a910bac854f95b794776c1ad847dcdd5e1a075f96ab15d697e93042dc45b5c896c4b27e89bb6eaf39475c5c371cb2513f7d2a00000000000000000000000000000000000000000000000000000000000000007f85894a788ca96a910bac854f95b794776c1ad847dcdd5e1a03be6fd20d5acfde5b873b48692cd31f4d3c7e8ee8a813af4696af8859e5ca6c6a00000000000000000000000000000000000000000000000000000000000000008f85894a788ca96a910bac854f95b794776c1ad847dcdd5e1a0625b35f5e76f098dd7c3a05b10e2e5e78a4a01228d60c3b143426cdf36d26455a00000000000000000000000000000000000000000000000000000000000000009f85894a788ca96a910bac854f95b794776c1ad847dcdd5e1a0c575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e7a0000000000000000000000000000000000000000000000000000000000000000a","0xf90129a0450cab79b65afd357994f71bc1d915bc26557762bfb6bd050d586c82405efb7683046713b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0"]} diff --git a/tests/integration_tests/spec/debug_getRawReceipts/get-genesis.io b/tests/integration_tests/spec/debug_getRawReceipts/get-genesis.io new file mode 100644 index 0000000000..f6fe2eae0f --- /dev/null +++ b/tests/integration_tests/spec/debug_getRawReceipts/get-genesis.io @@ -0,0 +1,3 @@ +// gets receipts for block 0 +>> {"jsonrpc":"2.0","id":1,"method":"debug_getRawReceipts","params":["0x0"]} +<< {"jsonrpc":"2.0","id":1,"result":[]} diff --git a/tests/integration_tests/spec/debug_getRawReceipts/get-invalid-number.io b/tests/integration_tests/spec/debug_getRawReceipts/get-invalid-number.io new file mode 100644 index 0000000000..654eb9409b --- /dev/null +++ b/tests/integration_tests/spec/debug_getRawReceipts/get-invalid-number.io @@ -0,0 +1,3 @@ +// gets receipts with invalid number formatting +>> {"jsonrpc":"2.0","id":1,"method":"debug_getRawReceipts","params":["2"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"invalid argument 0: hex string without 0x prefix"}} diff --git a/tests/integration_tests/spec/debug_getRawTransaction/get-invalid-hash.io b/tests/integration_tests/spec/debug_getRawTransaction/get-invalid-hash.io new file mode 100644 index 0000000000..1be1076542 --- /dev/null +++ b/tests/integration_tests/spec/debug_getRawTransaction/get-invalid-hash.io @@ -0,0 +1,3 @@ +// gets tx with hash missing 0x prefix +>> {"jsonrpc":"2.0","id":1,"method":"debug_getRawTransaction","params":["1000000000000000000000000000000000000000000000000000000000000001"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"invalid argument 0: json: cannot unmarshal hex string without 0x prefix into Go value of type common.Hash"}} diff --git a/tests/integration_tests/spec/debug_getRawTransaction/get-tx.io b/tests/integration_tests/spec/debug_getRawTransaction/get-tx.io new file mode 100644 index 0000000000..21c79656f9 --- /dev/null +++ b/tests/integration_tests/spec/debug_getRawTransaction/get-tx.io @@ -0,0 +1,3 @@ +// gets tx rlp by hash +>> {"jsonrpc":"2.0","id":1,"method":"debug_getRawTransaction","params":["0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e"]} +<< {"jsonrpc":"2.0","id":1,"result":"0xf889800183013a548080b83c600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f31ca0d642ba4d1f9388c5fd312bb9fb42d189a0b3c796de55093c85f30802a85147c8a037aa8680923f811a6988c03dd414ca00cd25d6876ba5925c7ca8ac6aad21669d"} diff --git a/tests/integration_tests/spec/eth_blobBaseFee/get-current-blobfee.io b/tests/integration_tests/spec/eth_blobBaseFee/get-current-blobfee.io new file mode 100644 index 0000000000..9b03cc5068 --- /dev/null +++ b/tests/integration_tests/spec/eth_blobBaseFee/get-current-blobfee.io @@ -0,0 +1,3 @@ +// gets the current blob fee in wei +>> {"jsonrpc":"2.0","id":1,"method":"eth_blobBaseFee"} +<< {"jsonrpc":"2.0","id":1,"result":"0x1"} diff --git a/tests/integration_tests/spec/eth_blockNumber/simple-test.io b/tests/integration_tests/spec/eth_blockNumber/simple-test.io new file mode 100644 index 0000000000..e06bd36711 --- /dev/null +++ b/tests/integration_tests/spec/eth_blockNumber/simple-test.io @@ -0,0 +1,3 @@ +// retrieves the client's current block number +>> {"jsonrpc":"2.0","id":1,"method":"eth_blockNumber"} +<< {"jsonrpc":"2.0","id":1,"result":"0x2d"} diff --git a/tests/integration_tests/spec/eth_call/call-callenv-options-eip1559.io b/tests/integration_tests/spec/eth_call/call-callenv-options-eip1559.io new file mode 100644 index 0000000000..133cd44429 --- /dev/null +++ b/tests/integration_tests/spec/eth_call/call-callenv-options-eip1559.io @@ -0,0 +1,5 @@ +// Performs a call to the callenv contract, which echoes the EVM transaction environment. +// This call uses EIP1559 transaction options. +// See https://github.com/ethereum/hive/tree/master/cmd/hivechain/contracts/callenv.eas for the output structure. +>> {"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"from":"0x14e46043e63d0e3cdcf2530519f4cfaf35058cb2","gas":"0xea60","input":"0x333435","maxFeePerGas":"0x5763d65","maxPriorityFeePerGas":"0xb","to":"0x9344b07175800259691961298ca11c824e65032d","value":"0x17"},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x000000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000c72dd9d5e883e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005763d64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014e46043e63d0e3cdcf2530519f4cfaf35058cb20000000000000000000000000000000000000000000000000000000000000017"} diff --git a/tests/integration_tests/spec/eth_call/call-callenv.io b/tests/integration_tests/spec/eth_call/call-callenv.io new file mode 100644 index 0000000000..32f15199b9 --- /dev/null +++ b/tests/integration_tests/spec/eth_call/call-callenv.io @@ -0,0 +1,4 @@ +// Performs a call to the callenv contract, which echoes the EVM transaction environment. +// See https://github.com/ethereum/hive/tree/master/cmd/hivechain/contracts/callenv.eas for the output structure. +>> {"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"from":"0x0000000000000000000000000000000000000000","to":"0x9344b07175800259691961298ca11c824e65032d"},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x000000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000c72dd9d5e883e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"} diff --git a/tests/integration_tests/spec/eth_call/call-contract.io b/tests/integration_tests/spec/eth_call/call-contract.io new file mode 100644 index 0000000000..0ae3783c27 --- /dev/null +++ b/tests/integration_tests/spec/eth_call/call-contract.io @@ -0,0 +1,3 @@ +// performs a basic contract call with default settings +>> {"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"from":"0x0000000000000000000000000000000000000000","input":"0xff01","to":"0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667"},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":"0xffee"} diff --git a/tests/integration_tests/spec/eth_call/call-eip7702-delegation.io b/tests/integration_tests/spec/eth_call/call-eip7702-delegation.io new file mode 100644 index 0000000000..a5d0715c23 --- /dev/null +++ b/tests/integration_tests/spec/eth_call/call-eip7702-delegation.io @@ -0,0 +1,3 @@ +// Performs a call to an account that has an EIP-7702 code delegation. +>> {"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"from":"0x0000000000000000000000000000000000000000","gas":"0x186a0","to":"0xeda8645ba6948855e3b3cd596bbb07596d59c603"},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x000000000000000000000000eda8645ba6948855e3b3cd596bbb07596d59c603696e766f6b656400000000000000000000000000000000000000000000000000"} diff --git a/tests/integration_tests/spec/eth_call/call-revert-abi-error.io b/tests/integration_tests/spec/eth_call/call-revert-abi-error.io new file mode 100644 index 0000000000..ff52f14bdf --- /dev/null +++ b/tests/integration_tests/spec/eth_call/call-revert-abi-error.io @@ -0,0 +1,3 @@ +// calls a contract that reverts with an ABI-encoded Error(string) value +>> {"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"from":"0x0000000000000000000000000000000000000000","gas":"0x186a0","input":"0x01","to":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930"},"latest"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":3,"message":"execution reverted: user error","data":"0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000a75736572206572726f72"}} diff --git a/tests/integration_tests/spec/eth_call/call-revert-abi-panic.io b/tests/integration_tests/spec/eth_call/call-revert-abi-panic.io new file mode 100644 index 0000000000..ce9b5b3719 --- /dev/null +++ b/tests/integration_tests/spec/eth_call/call-revert-abi-panic.io @@ -0,0 +1,3 @@ +// calls a contract that reverts with an ABI-encoded Panic(uint) value +>> {"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"from":"0x0000000000000000000000000000000000000000","gas":"0x186a0","input":"0x00","to":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930"},"latest"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":3,"message":"execution reverted: assert(false)","data":"0x4e487b710000000000000000000000000000000000000000000000000000000000000001"}} diff --git a/tests/integration_tests/spec/eth_chainId/get-chain-id.io b/tests/integration_tests/spec/eth_chainId/get-chain-id.io new file mode 100644 index 0000000000..5ffb9ce546 --- /dev/null +++ b/tests/integration_tests/spec/eth_chainId/get-chain-id.io @@ -0,0 +1,3 @@ +// retrieves the client's current chain id +>> {"jsonrpc":"2.0","id":1,"method":"eth_chainId"} +<< {"jsonrpc":"2.0","id":1,"result":"0xc72dd9d5e883e"} diff --git a/tests/integration_tests/spec/eth_config/get-config.io b/tests/integration_tests/spec/eth_config/get-config.io new file mode 100644 index 0000000000..78b40f868f --- /dev/null +++ b/tests/integration_tests/spec/eth_config/get-config.io @@ -0,0 +1,3 @@ +// retrieves the client's current fork configuration as defined by EIP-7910 +>> {"jsonrpc":"2.0","id":1,"method":"eth_config"} +<< {"jsonrpc":"2.0","id":1,"result":{"current":{"activationTime":450,"blobSchedule":{"target":6,"max":9,"baseFeeUpdateFraction":5007716},"chainId":"0xc72dd9d5e883e","forkId":"0xe29a7b81","precompiles":{"BLAKE2F":"0x0000000000000000000000000000000000000009","BLS12_G1ADD":"0x000000000000000000000000000000000000000b","BLS12_G1MSM":"0x000000000000000000000000000000000000000c","BLS12_G2ADD":"0x000000000000000000000000000000000000000d","BLS12_G2MSM":"0x000000000000000000000000000000000000000e","BLS12_MAP_FP2_TO_G2":"0x0000000000000000000000000000000000000011","BLS12_MAP_FP_TO_G1":"0x0000000000000000000000000000000000000010","BLS12_PAIRING_CHECK":"0x000000000000000000000000000000000000000f","BN254_ADD":"0x0000000000000000000000000000000000000006","BN254_MUL":"0x0000000000000000000000000000000000000007","BN254_PAIRING":"0x0000000000000000000000000000000000000008","ECREC":"0x0000000000000000000000000000000000000001","ID":"0x0000000000000000000000000000000000000004","KZG_POINT_EVALUATION":"0x000000000000000000000000000000000000000a","MODEXP":"0x0000000000000000000000000000000000000005","RIPEMD160":"0x0000000000000000000000000000000000000003","SHA256":"0x0000000000000000000000000000000000000002"},"systemContracts":{"BEACON_ROOTS_ADDRESS":"0x000f3df6d732807ef1319fb7b8bb8522d0beac02","CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS":"0x0000bbddc7ce488642fb579f8b00f3a590007251","DEPOSIT_CONTRACT_ADDRESS":"0x0000000000000000000000000000000000000000","HISTORY_STORAGE_ADDRESS":"0x0000f90827f1c53a10cb7a02335b175320002935","WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS":"0x00000961ef480eb55e80d19ad83579a64c007002"}},"next":null,"last":null}} diff --git a/tests/integration_tests/spec/eth_createAccessList/create-al-abi-revert.io b/tests/integration_tests/spec/eth_createAccessList/create-al-abi-revert.io new file mode 100644 index 0000000000..b3480bf657 --- /dev/null +++ b/tests/integration_tests/spec/eth_createAccessList/create-al-abi-revert.io @@ -0,0 +1,6 @@ +// Creates an access list for a contract invocation that reverts. +// The server should return the accessed slots regardless of failure, and should report the failure +// in the "error" field. +// speconly: client response is only checked for schema validity. +>> {"jsonrpc":"2.0","id":1,"method":"eth_createAccessList","params":[{"gas":"0x186a0","input":"0x01","to":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930"},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":{"accessList":[{"address":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930","storageKeys":["0x00000000000000000000000000000000000000000000000000000000000042ff"]}],"error":"execution reverted","gasUsed":"0x639d"}} diff --git a/tests/integration_tests/spec/eth_createAccessList/create-al-contract-eip1559.io b/tests/integration_tests/spec/eth_createAccessList/create-al-contract-eip1559.io new file mode 100644 index 0000000000..3b986aa28a --- /dev/null +++ b/tests/integration_tests/spec/eth_createAccessList/create-al-contract-eip1559.io @@ -0,0 +1,5 @@ +// Creates an access list for a contract invocation that accesses storage. +// This invocation uses EIP-1559 fields to specify the gas price. +// speconly: client response is only checked for schema validity. +>> {"jsonrpc":"2.0","id":1,"method":"eth_createAccessList","params":[{"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0xea60","input":"0x010203040506","maxFeePerGas":"0x5763d64","maxPriorityFeePerGas":"0x3","nonce":"0x0","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df"},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":{"accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x13a08e3cd39a1bc7bf9103f63f83273cced2beada9f723945176d6b983c65bd2"]}],"gasUsed":"0xca3c"}} diff --git a/tests/integration_tests/spec/eth_createAccessList/create-al-contract.io b/tests/integration_tests/spec/eth_createAccessList/create-al-contract.io new file mode 100644 index 0000000000..7d364c328c --- /dev/null +++ b/tests/integration_tests/spec/eth_createAccessList/create-al-contract.io @@ -0,0 +1,4 @@ +// creates an access list for a contract invocation that accesses storage +// speconly: client response is only checked for schema validity. +>> {"jsonrpc":"2.0","id":1,"method":"eth_createAccessList","params":[{"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0xea60","gasPrice":"0x5763d64","input":"0x010203040506","nonce":"0x0","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df"},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":{"accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x13a08e3cd39a1bc7bf9103f63f83273cced2beada9f723945176d6b983c65bd2"]}],"gasUsed":"0xca3c"}} diff --git a/tests/integration_tests/spec/eth_createAccessList/create-al-value-transfer.io b/tests/integration_tests/spec/eth_createAccessList/create-al-value-transfer.io new file mode 100644 index 0000000000..12bc036a52 --- /dev/null +++ b/tests/integration_tests/spec/eth_createAccessList/create-al-value-transfer.io @@ -0,0 +1,3 @@ +// estimates a simple transfer +>> {"jsonrpc":"2.0","id":1,"method":"eth_createAccessList","params":[{"from":"0x0c2c51a0990aee1d73c1228de158688341557508","nonce":"0x0","to":"0x0100000000000000000000000000000000000000","value":"0xa"},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":{"accessList":[],"gasUsed":"0x5208"}} diff --git a/tests/integration_tests/spec/eth_estimateGas/estimate-call-abi-error.io b/tests/integration_tests/spec/eth_estimateGas/estimate-call-abi-error.io new file mode 100644 index 0000000000..7f7c5e63dc --- /dev/null +++ b/tests/integration_tests/spec/eth_estimateGas/estimate-call-abi-error.io @@ -0,0 +1,4 @@ +// estimates a contract call that reverts using Solidity Error(string) data +// speconly: client response is only checked for schema validity. +>> {"jsonrpc":"2.0","id":1,"method":"eth_estimateGas","params":[{"from":"0x0102030000000000000000000000000000000000","input":"0x01","to":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930"}]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":3,"message":"execution reverted: user error","data":"0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000a75736572206572726f72"}} diff --git a/tests/integration_tests/spec/eth_estimateGas/estimate-failed-call.io b/tests/integration_tests/spec/eth_estimateGas/estimate-failed-call.io new file mode 100644 index 0000000000..18a6740060 --- /dev/null +++ b/tests/integration_tests/spec/eth_estimateGas/estimate-failed-call.io @@ -0,0 +1,4 @@ +// estimates a contract call that reverts +// speconly: client response is only checked for schema validity. +>> {"jsonrpc":"2.0","id":1,"method":"eth_estimateGas","params":[{"from":"0x0102030000000000000000000000000000000000","input":"0xff030405","to":"0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667"}]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":3,"message":"execution reverted","data":"0x77726f6e672d63616c6c6461746173697a65"}} diff --git a/tests/integration_tests/spec/eth_estimateGas/estimate-simple-transfer.io b/tests/integration_tests/spec/eth_estimateGas/estimate-simple-transfer.io new file mode 100644 index 0000000000..35be3751fd --- /dev/null +++ b/tests/integration_tests/spec/eth_estimateGas/estimate-simple-transfer.io @@ -0,0 +1,3 @@ +// estimates a simple transfer +>> {"jsonrpc":"2.0","id":1,"method":"eth_estimateGas","params":[{"from":"0xaa00000000000000000000000000000000000000","to":"0x0100000000000000000000000000000000000000"}]} +<< {"jsonrpc":"2.0","id":1,"result":"0x5208"} diff --git a/tests/integration_tests/spec/eth_estimateGas/estimate-successful-call.io b/tests/integration_tests/spec/eth_estimateGas/estimate-successful-call.io new file mode 100644 index 0000000000..209d4a6a7b --- /dev/null +++ b/tests/integration_tests/spec/eth_estimateGas/estimate-successful-call.io @@ -0,0 +1,4 @@ +// estimates a successful contract call +// speconly: client response is only checked for schema validity. +>> {"jsonrpc":"2.0","id":1,"method":"eth_estimateGas","params":[{"from":"0x0102030000000000000000000000000000000000","input":"0xff01","to":"0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667"}]} +<< {"jsonrpc":"2.0","id":1,"result":"0x5316"} diff --git a/tests/integration_tests/spec/eth_estimateGas/estimate-with-eip4844.io b/tests/integration_tests/spec/eth_estimateGas/estimate-with-eip4844.io new file mode 100644 index 0000000000..0a76bbbf21 --- /dev/null +++ b/tests/integration_tests/spec/eth_estimateGas/estimate-with-eip4844.io @@ -0,0 +1,4 @@ +// checks gas estimation for blob transactions (EIP-4844) +// speconly: client response is only checked for schema validity. +>> {"jsonrpc":"2.0","id":1,"method":"eth_estimateGas","params":[{"blobVersionedHashes":["0x0100000000000000000000000000000000000000000000000000000000000000"],"from":"0x0c2c51a0990aee1d73c1228de158688341557508","maxFeePerBlobGas":"0x5","nonce":"0x0","to":"0x0100000000000000000000000000000000000000","type":"0x3","value":"0x1"}]} +<< {"jsonrpc":"2.0","id":1,"result":"0x5208"} diff --git a/tests/integration_tests/spec/eth_estimateGas/estimate-with-eip7702.io b/tests/integration_tests/spec/eth_estimateGas/estimate-with-eip7702.io new file mode 100644 index 0000000000..cb4cb3ebf7 --- /dev/null +++ b/tests/integration_tests/spec/eth_estimateGas/estimate-with-eip7702.io @@ -0,0 +1,6 @@ +// checks that including an EIP-7720 authorization in the message increases gas +// speconly: client response is only checked for schema validity. +>> {"jsonrpc":"2.0","id":1,"method":"eth_estimateGas","params":[{"from":"0x0c2c51a0990aee1d73c1228de158688341557508","nonce":"0x0","to":"0x0100000000000000000000000000000000000000","value":"0x1"}]} +<< {"jsonrpc":"2.0","id":1,"result":"0x5208"} +>> {"jsonrpc":"2.0","id":2,"method":"eth_estimateGas","params":[{"authorizationList":[{"address":"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","chainId":"0x1","nonce":"0x0","r":"0x1111111111111111111111111111111111111111111111111111111111111111","s":"0x2222222222222222222222222222222222222222222222222222222222222222","yParity":"0x0"}],"from":"0x0c2c51a0990aee1d73c1228de158688341557508","nonce":"0x0","to":"0x0100000000000000000000000000000000000000","type":"0x4","value":"0x1"}]} +<< {"jsonrpc":"2.0","id":2,"result":"0xb52e"} diff --git a/tests/integration_tests/spec/eth_feeHistory/fee-history.io b/tests/integration_tests/spec/eth_feeHistory/fee-history.io new file mode 100644 index 0000000000..f911a65bad --- /dev/null +++ b/tests/integration_tests/spec/eth_feeHistory/fee-history.io @@ -0,0 +1,4 @@ +// gets fee history information +// speconly: client response is only checked for schema validity. +>> {"jsonrpc":"2.0","id":1,"method":"eth_feeHistory","params":["0x1","0x1b",[95,99]]} +<< {"jsonrpc":"2.0","id":1,"result":{"oldestBlock":"0x1b","reward":[["0x1","0x1"]],"baseFeePerGas":["0x3b9aca00","0x342dc057"],"gasUsedRatio":[0.0016543629259729885],"baseFeePerBlobGas":["0x0","0x0"],"blobGasUsedRatio":[0]}} diff --git a/tests/integration_tests/spec/eth_getBalance/get-balance-blockhash.io b/tests/integration_tests/spec/eth_getBalance/get-balance-blockhash.io new file mode 100644 index 0000000000..912773be74 --- /dev/null +++ b/tests/integration_tests/spec/eth_getBalance/get-balance-blockhash.io @@ -0,0 +1,3 @@ +// retrieves the an account's balance at a specific blockhash +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBalance","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","0x61857226df2f4c8affcf75e02a6b279e9b35cf6dea8994ab98ffafbcc4d497b3"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x3c"} diff --git a/tests/integration_tests/spec/eth_getBalance/get-balance-unknown-account.io b/tests/integration_tests/spec/eth_getBalance/get-balance-unknown-account.io new file mode 100644 index 0000000000..4faf536446 --- /dev/null +++ b/tests/integration_tests/spec/eth_getBalance/get-balance-unknown-account.io @@ -0,0 +1,3 @@ +// requests the balance of a non-existent account +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBalance","params":["0xc1cadaffffffffffffffffffffffffffffffffff","latest"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x0"} diff --git a/tests/integration_tests/spec/eth_getBalance/get-balance.io b/tests/integration_tests/spec/eth_getBalance/get-balance.io new file mode 100644 index 0000000000..f7004fb4db --- /dev/null +++ b/tests/integration_tests/spec/eth_getBalance/get-balance.io @@ -0,0 +1,3 @@ +// retrieves the an account balance +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBalance","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","latest"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x56"} diff --git a/tests/integration_tests/spec/eth_getBlockByHash/get-block-by-empty-hash.io b/tests/integration_tests/spec/eth_getBlockByHash/get-block-by-empty-hash.io new file mode 100644 index 0000000000..ee68cc7062 --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockByHash/get-block-by-empty-hash.io @@ -0,0 +1,3 @@ +// gets block empty hash +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByHash","params":["0x0000000000000000000000000000000000000000000000000000000000000000",true]} +<< {"jsonrpc":"2.0","id":1,"result":null} diff --git a/tests/integration_tests/spec/eth_getBlockByHash/get-block-by-hash.io b/tests/integration_tests/spec/eth_getBlockByHash/get-block-by-hash.io new file mode 100644 index 0000000000..0d44ce3f5b --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockByHash/get-block-by-hash.io @@ -0,0 +1,3 @@ +// gets block 1 +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByHash","params":["0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f",true]} +<< {"jsonrpc":"2.0","id":1,"result":{"difficulty":"0x20000","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x527eb","hash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x1","parentHash":"0x79e0f5ffb6a0c9f54d507dbbadc935603ac1db86d32f7857472180a75ec11f90","receiptsRoot":"0xcf8b165a50a7884c3051f2b2a4a8967670699a5eb754674cd523c30dc4685b24","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x4a6","stateRoot":"0x22e4092a71d9649313a17bea0079ddab823af6db75fac5a6c923c5351f60e1e3","timestamp":"0xa","transactions":[{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","blockTimestamp":"0xa","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13a54","gasPrice":"0x1","hash":"0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","v":"0x1c","r":"0xd642ba4d1f9388c5fd312bb9fb42d189a0b3c796de55093c85f30802a85147c8","s":"0x37aa8680923f811a6988c03dd414ca00cd25d6876ba5925c7ca8ac6aad21669d"},{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","blockTimestamp":"0xa","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x15f84","gasPrice":"0x1","hash":"0x1999fb436409e9c2464bd9efc3aa914b2e8a843144fdcc17132fa9da0f15641e","input":"0x600d380380600d6000396000f3366002146022577177726f6e672d63616c6c6461746173697a656000526012600efd5b60003560f01c61ff01146047576d77726f6e672d63616c6c64617461600052600e6012fd5b61ffee6000526002601ef3","nonce":"0x1","to":null,"transactionIndex":"0x1","value":"0x0","type":"0x0","v":"0x1b","r":"0x218687e18ef90972e218a9f60e6dc21f865608e129c81c491c0c0132f0293de3","s":"0x5d32b06bda00fab156cc3f078ef8687ccfafe2f2ae583af5f5d02e8904b6e09"},{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","blockTimestamp":"0xa","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x18ec4","gasPrice":"0x1","hash":"0x021ae79aa8821d60291761cfe419b6cbc0ad7dd50d4aa6f14a54e5fc0d62e325","input":"0x600d380380600d6000396000f36000356142ff54501515603b577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f08c379a0000000000000000000000000000000000000000000000000000000006000526020600452600a6024527f75736572206572726f7200000000000000000000000000000000000000000000604452604e6000fd","nonce":"0x2","to":null,"transactionIndex":"0x2","value":"0x0","type":"0x0","v":"0x1b","r":"0x9d56b7d540b1303583ff2b4dfffd77f221eb26d40fdeab9c670cc214b41f1bbc","s":"0x1bb76cf78b3ffa90b0aeccee1fcb26bc126cb76d173c78b25c9060b30abaff3a"},{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","blockTimestamp":"0xa","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x1c4a0","gasPrice":"0x1","hash":"0x709f12649d057e2ad0a0a41176cc405f80af735df8cf2b89782eb3ab1699e549","input":"0x43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f3","nonce":"0x3","to":null,"transactionIndex":"0x3","value":"0x0","type":"0x0","v":"0x1c","r":"0xa377752cecd876db9e137f922fc400b586954cf02ad8cc1c61091274831bf933","s":"0x1ed3e8efc91ff4868b3f2c1490bd771119db03e8830ba7fa9482258a918211f5"}],"transactionsRoot":"0xe59276e836db856f9137c247add7333879b98bdf82db67c40d25914fa0ab8e48","uncles":[]}} diff --git a/tests/integration_tests/spec/eth_getBlockByHash/get-block-by-notfound-hash.io b/tests/integration_tests/spec/eth_getBlockByHash/get-block-by-notfound-hash.io new file mode 100644 index 0000000000..467e96422e --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockByHash/get-block-by-notfound-hash.io @@ -0,0 +1,3 @@ +// gets block not found hash +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByHash","params":["0x00000000000000000000000000000000000000000000000000000000deadbeef",true]} +<< {"jsonrpc":"2.0","id":1,"result":null} diff --git a/tests/integration_tests/spec/eth_getBlockByNumber/get-block-cancun-fork.io b/tests/integration_tests/spec/eth_getBlockByNumber/get-block-cancun-fork.io new file mode 100644 index 0000000000..3688fa2a78 --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockByNumber/get-block-cancun-fork.io @@ -0,0 +1,3 @@ +// requests a block at the Cancun fork +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x2a",false]} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x822595b","blobGasUsed":"0x20000","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x3b27a","hash":"0x60d8d4c8d64367b4436e63f43addb9e3bd99a5a4176b84429fc4f22e27a7ee63","logsBloom":"0x00000000000000000000000000000000000000000000000100000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000200000000080000000000080000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000100000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2a","parentBeaconBlockRoot":"0x83472eda6eb475906aeeb7f09e757ba9f6663b9f6a5bf8611d6306f677f67ebd","parentHash":"0x9c1ebc6ea2a8e7a58a8bc73ded493f98bb86d4456bdf883328413163a1ab55a8","receiptsRoot":"0xd986dfa6b469d59e2b16338ad9b4e757dd3d29deda9676d4d1dde8ec7721ea54","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x49f","stateRoot":"0x4d368dd9b1ba388fb07796f48729d7ee7d1be7c69eda22184b6acd0b98c6a6eb","timestamp":"0x1a4","transactions":["0x6bcea0da8e703d3283c8f1124377a63023290cd188de3274d12441e15dc14794","0x7fd4c1e424cac12b7021fb66aa47489aebe7ba7abcb52cdcac74785d60713d37","0xeab876a89925871050e77b5308413b0aea26e51cee250bba53adef60c9fa9a64","0x652a99ca41abd4b63a191bd05a6fc185926256fec07fe491cce1f9b558c41c80"],"transactionsRoot":"0xa16f5ce410d10f0b13a7b35739d5b877b7b02a0e01e46a2915c194cd5bec3380","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/integration_tests/spec/eth_getBlockByNumber/get-block-london-fork.io b/tests/integration_tests/spec/eth_getBlockByNumber/get-block-london-fork.io new file mode 100644 index 0000000000..01cdef807f --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockByNumber/get-block-london-fork.io @@ -0,0 +1,3 @@ +// requests a block at the London fork +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x1b",false]} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x3b9aca00","difficulty":"0x202c0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x1e740","hash":"0x155ed001f7571cb6fa37e5c9c2462b4704ce9cdf53fddc39e9d9f96f92a5233c","logsBloom":"0x00000000000000000000000000000000000008000000000010000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000080000004000000000000200000000000000000000000000002000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000200000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x1b","parentHash":"0x6dd31770f69dc52912f0b916d4fa68dfcb3ade82a50600bdd3b762d3bcb1f2b6","receiptsRoot":"0xb14c6a4874e93edbe48c9bd16177b9ebcf0ca4d50eb263d895bbd67de1dbdb2f","sha3Uncles":"0xce3c8bc139372bf1f7cd80ff124da0e4a4b5b0e6b1126ad076cb390eb4df5dce","size":"0x63c","stateRoot":"0x7bec4fbf8c7ab78871fbc183985473eaccf1d0522677e2faeb1e2beffc99d461","timestamp":"0x10e","transactions":["0xc7dba25cdd5aee6ff7d27fe5422a4179f5913c664c3339c8e0440bd1c9cd8de9","0xee7a54703e4bb9cea154b8c14dd9a3233af9120f76730abf21af6f1e1620fc41","0xf804c0984af03a8fb0948a95bef19996d7cafdb098891ff65f126795b597064a"],"transactionsRoot":"0xb3edba3be2bce9594477ee53a18ce14c3bb8c1db93380a6796e56fbca25c295f","uncles":["0x65050466ad5543c351de427fd18f22e3fb993eaac0f1ae540a4aa5f75e5a876a"]}} diff --git a/tests/integration_tests/spec/eth_getBlockByNumber/get-block-merge-fork.io b/tests/integration_tests/spec/eth_getBlockByNumber/get-block-merge-fork.io new file mode 100644 index 0000000000..a4f0887a30 --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockByNumber/get-block-merge-fork.io @@ -0,0 +1,3 @@ +// requests a block at the merge (Paris) fork +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x24",false]} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x12099cd9","difficulty":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x4bf07","hash":"0x7df010c68c0525dde23045cdb05a4a3bbd5832f2771f55fc42dc2b32e7b6a3e1","logsBloom":"0x000000000000000000000040000000000000000000000400000000000000000000000000000010000000000000100000000000000000000000000000000000010000000000000000000000000000000001000000000000000000000000000000000000000a0000000008008000000000000200000000000000200000000004000000000000100000000000000000000000800000000010000000000000000000000000000000000c00800000000100048000000000000000008000000002800000400040000000000000000000000000000000000000000000000000001001000000200000000000000000000000000000000000000020008000000000000001","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x24","parentHash":"0x61857226df2f4c8affcf75e02a6b279e9b35cf6dea8994ab98ffafbcc4d497b3","receiptsRoot":"0x1e3ec40e95c98fd0f99092bbac08d9d1969d3db223592e7ef3a2b40d743d7ca5","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x3e5","stateRoot":"0x1f05ce0026b232fe5cabadc6294b47dabb8b36a76ed0850b8468c63ed8d42556","timestamp":"0x168","transactions":["0x66e36fd24946b76e66ed41d0ea03871bd2bdaf1fd6ae375b4cd71515ef5abaae","0x7d97e95f289b9d7ff25eb49bb8f527186b660f57af49e808a99602549d6c99ed","0xcec818d348249f5fd7c80495c7281fbfa7e537ee6dce24fee0a8d79314d01920","0x070ec9be8b3e2d091e9e0416e2dfbb4e087fa419656272825a3e0e3fdd56fdd1"],"transactionsRoot":"0x0919f8e1fd9c36eb3cd6d0942cde2da8008220b63d39d1f35bf62758a7c26de7","uncles":[]}} diff --git a/tests/integration_tests/spec/eth_getBlockByNumber/get-block-notfound.io b/tests/integration_tests/spec/eth_getBlockByNumber/get-block-notfound.io new file mode 100644 index 0000000000..f2158948e6 --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockByNumber/get-block-notfound.io @@ -0,0 +1,3 @@ +// requests a block number that does not exist +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x3e8",true]} +<< {"jsonrpc":"2.0","id":1,"result":null} diff --git a/tests/integration_tests/spec/eth_getBlockByNumber/get-block-prague-fork.io b/tests/integration_tests/spec/eth_getBlockByNumber/get-block-prague-fork.io new file mode 100644 index 0000000000..7b4873db05 --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockByNumber/get-block-prague-fork.io @@ -0,0 +1,3 @@ +// requests a block at the Prague fork +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x2d",false]} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x5763d64","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x54a92","hash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","logsBloom":"0x00000000008000000000000000000040000000000000000000000000800000000000000008000000000000000000000000000000000000000000000000000000000000000000000000004000000000020200000000000000000000000000002000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2d","parentBeaconBlockRoot":"0x4b118bd31ed2c4eeb81dc9e3919e9989994333fe36f147c2930f12c53f0d3c78","parentHash":"0x4b9d85c6787612e87e0659e11a347d415040465e492358f79cc7e2e293f38aa7","receiptsRoot":"0x2c86b2791cdd088d3c3e9d6225f71724d3e8c67bdd13cd6208831058cee1043f","requestsHash":"0x57cac3e52cdcd73e52bd9e54956e0eae370f00ed41f68edc78266bdb46c3a543","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x633","stateRoot":"0xf61892bbb9a9df427d1f941dc8c536d72c41efed598244726ea21a0f183ff232","timestamp":"0x1c2","transactions":["0x2fbbd036996c7487316c92b9e5798edb98fd57f32a6c1075e904a734821e1cd2","0x16f6724ad864e7664c367893cae3e176d362bea3a47495cec3b246555a7228da","0xddf234c5f149d2d1a4d01276d42e38a6234bfa7b987c49ba889b028b429aac8f","0x3d3d02e1bdc39a6eab20f7b44ed299ca61eb1d642806bfa07e3a7ee8edd700e5","0x195a09414344f56e7a202d1493b258b2394b9b93811ce4ee96212a7d34ffb04f","0xdf66bea01c5cf47b48ec11453822d751a5daaf1d16959772c2196c5ab8cf8438"],"transactionsRoot":"0xc541c333ff4a96a17d3601f7d628ea27ecf4597a11077e5d9d1c4dbed6c7f401","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/integration_tests/spec/eth_getBlockByNumber/get-block-shanghai-fork.io b/tests/integration_tests/spec/eth_getBlockByNumber/get-block-shanghai-fork.io new file mode 100644 index 0000000000..8cd255ac28 --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockByNumber/get-block-shanghai-fork.io @@ -0,0 +1,3 @@ +// requests a block at the Shanghai fork +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x27",false]} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0xc1da0cc","difficulty":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x3923b","hash":"0xfd6f25f599ae74b5f0d080b1d5918ebfb5e7050bac5698d1efc02fe66974263a","logsBloom":"0x00000008000000000000100000000000010000000000000000010000800000000000000000000000000000004004000000004810000000000000000000004000000080000010000000004000200000000200000000000000000000000000002000010000400000080000000000000000000020000010000000000000080000000100000000000080200000000000000010000000000100020000000000000000000008000000009100000000022000000000000000000000000000040000000000000000000000100000000000004000000080000000200000000000000000000000000000000000000000000000000000000000000000000000010000000100","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x27","parentHash":"0x5ef0e98d636e92dcc510b43ee15a689f96708e459221706bde921af9acf7d7b2","receiptsRoot":"0xd8b031b7eaf79c70b378523ef39d37bcae47cab5e8d93e080d7b124f0504f1aa","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x3a3","stateRoot":"0x63c291618eee647a37d4c5cba8fa77194271801fc5b5d4c8fa0ce7f0ba068e66","timestamp":"0x186","transactions":["0xd993e8d4819e82e76026349059de8739c6a7a95db40954d85f81f639404f6a45","0xb3ab7b7c10f909ac2d177207cdde0b0d355a768c8ab124a6f2b6e19097771151","0xb8d49ba18112a81983371e9e43378e9593f17163fd46d3c1cedeecf3c38b972a"],"transactionsRoot":"0x61f14f64f79c6725b52ed6a95015a3820fd2100ac11d82a59e45275607b294a8","uncles":[],"withdrawals":[{"index":"0x0","validatorIndex":"0x5","address":"0x3ae75c08b4c907eb63a8960c45b86e1e9ab6123c","amount":"0x64"}],"withdrawalsRoot":"0x0cbd4206b2131f21f541589e2bb2ad8cfceb1875f04acde910ea91933245f92b"}} diff --git a/tests/integration_tests/spec/eth_getBlockByNumber/get-finalized.io b/tests/integration_tests/spec/eth_getBlockByNumber/get-finalized.io new file mode 100644 index 0000000000..d0aa90e434 --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockByNumber/get-finalized.io @@ -0,0 +1,3 @@ +// get the block with tag "finalized" +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["finalized",true]} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x5763d64","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x54a92","hash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","logsBloom":"0x00000000008000000000000000000040000000000000000000000000800000000000000008000000000000000000000000000000000000000000000000000000000000000000000000004000000000020200000000000000000000000000002000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2d","parentBeaconBlockRoot":"0x4b118bd31ed2c4eeb81dc9e3919e9989994333fe36f147c2930f12c53f0d3c78","parentHash":"0x4b9d85c6787612e87e0659e11a347d415040465e492358f79cc7e2e293f38aa7","receiptsRoot":"0x2c86b2791cdd088d3c3e9d6225f71724d3e8c67bdd13cd6208831058cee1043f","requestsHash":"0x57cac3e52cdcd73e52bd9e54956e0eae370f00ed41f68edc78266bdb46c3a543","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x633","stateRoot":"0xf61892bbb9a9df427d1f941dc8c536d72c41efed598244726ea21a0f183ff232","timestamp":"0x1c2","transactions":[{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11c32","gasPrice":"0x5763d65","hash":"0x2fbbd036996c7487316c92b9e5798edb98fd57f32a6c1075e904a734821e1cd2","input":"0x600d380380600d6000396000f336156009575f355f555b305f525f5460205260405ff3","nonce":"0x9a","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x551fe45ccebb0318196e31dbc60da87c43dc60b8fb01afb3286693fa09878730","s":"0x40d33e9afecfe1516b045d61a3272bddbc83f482a7f2c749311248b50fe62e81"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0xb3b0","gasPrice":"0x5763d65","maxFeePerGas":"0x5763d65","maxPriorityFeePerGas":"0x1","hash":"0x16f6724ad864e7664c367893cae3e176d362bea3a47495cec3b246555a7228da","input":"0x","nonce":"0x9b","to":"0x0000000000000000000000000000000000000000","transactionIndex":"0x1","value":"0x0","type":"0x4","accessList":[],"chainId":"0xc72dd9d5e883e","authorizationList":[{"chainId":"0xc72dd9d5e883e","address":"0x58f8fe237b593c19546e1e758a2544561d04bfe0","nonce":"0x0","yParity":"0x1","r":"0xec6caeb1b7071f1b3ae36aeaa7bf0eaecb8e006e83b3e50d792870ea95af4c59","s":"0x1d1225f76d6faac3d904c0635193e83d3867c101b2e6f6c9bb7b1fdeeed923ab"}],"v":"0x1","r":"0x8ae3402e4f63751c895532b94aee0f7b6b8ff5d0b0a689f6d63b3dbd19d69059","s":"0x2e63e4d140b0d282d56289b34f3df82cbcb2f3aa385f5438a423584fe0c2b467","yParity":"0x1"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11170","gasPrice":"0x5763d65","hash":"0xddf234c5f149d2d1a4d01276d42e38a6234bfa7b987c49ba889b028b429aac8f","input":"0x696e766f6b6564","nonce":"0x9c","to":"0xeda8645ba6948855e3b3cd596bbb07596d59c603","transactionIndex":"0x2","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xfea7e18c82a1270f142572533bc2e6e33d6d41a3f1303403dd0a90dd7a4f35d","s":"0x4a4ab6c5bb4c31c3a5f8991ae45bad2303c45923404571f7b4c66adbd03b7936"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x249f0","gasPrice":"0x5763d65","maxFeePerGas":"0x5763d65","maxPriorityFeePerGas":"0x2","hash":"0x3d3d02e1bdc39a6eab20f7b44ed299ca61eb1d642806bfa07e3a7ee8edd700e5","input":"0xb917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80","nonce":"0x9d","to":"0x00000961ef480eb55e80d19ad83579a64c007002","transactionIndex":"0x3","value":"0x3b9aca00","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x5f8b300cf80f7fb7e511460fa1a803278b47223f2c0a82857c5c0e5f7c900d23","s":"0x290bf2495235a106352786403ed937df8385a2356472569020fd952913690ec9","yParity":"0x1"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x5763d65","hash":"0x195a09414344f56e7a202d1493b258b2394b9b93811ce4ee96212a7d34ffb04f","input":"0x6b3b937565afc29f656d6974","nonce":"0x9e","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x4","value":"0x2","type":"0x1","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xe8481f0a1ea7b2528784efff1d1b33cbd66ac97ebe2ae35c7997cacb2863430b"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x84f8b48ac6fbf39054c7794e6ff4e16a3bacbd0964b53d4d03ff668e7eda365","s":"0x2e4e86f2f5fbb8dad4ee8907eee4488f70c75bb646522b5197c4dcdc29ea31bf","yParity":"0x0"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x5763d65","hash":"0xdf66bea01c5cf47b48ec11453822d751a5daaf1d16959772c2196c5ab8cf8438","input":"0x","nonce":"0x9f","to":"0x4340ee1b812acb40a1eb561c019c327b243b92df","transactionIndex":"0x5","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0xec839e20a6f8ff0fb1043022e5816454191436ba7f6607bf6efe6517fdd1e2dd","s":"0x7903b3dd48963c0404f99807fd89cde2b66091c32178f66920120cb10981019","yParity":"0x1"}],"transactionsRoot":"0xc541c333ff4a96a17d3601f7d628ea27ecf4597a11077e5d9d1c4dbed6c7f401","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/integration_tests/spec/eth_getBlockByNumber/get-genesis.io b/tests/integration_tests/spec/eth_getBlockByNumber/get-genesis.io new file mode 100644 index 0000000000..199aaae18f --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockByNumber/get-genesis.io @@ -0,0 +1,3 @@ +// gets block number zero +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x0",true]} +<< {"jsonrpc":"2.0","id":1,"result":{"difficulty":"0x20000","extraData":"0x68697665636861696e","gasLimit":"0x23f3e20","gasUsed":"0x0","hash":"0x79e0f5ffb6a0c9f54d507dbbadc935603ac1db86d32f7857472180a75ec11f90","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x0","parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x205","stateRoot":"0xe5d8b049a78427be8c23ebd6811ed436b3a36cc117954b496848b90f0c654844","timestamp":"0x0","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[]}} diff --git a/tests/integration_tests/spec/eth_getBlockByNumber/get-latest.io b/tests/integration_tests/spec/eth_getBlockByNumber/get-latest.io new file mode 100644 index 0000000000..b1a2c96cea --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockByNumber/get-latest.io @@ -0,0 +1,3 @@ +// gets the block with tag "latest" +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["latest",true]} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x5763d64","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x54a92","hash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","logsBloom":"0x00000000008000000000000000000040000000000000000000000000800000000000000008000000000000000000000000000000000000000000000000000000000000000000000000004000000000020200000000000000000000000000002000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2d","parentBeaconBlockRoot":"0x4b118bd31ed2c4eeb81dc9e3919e9989994333fe36f147c2930f12c53f0d3c78","parentHash":"0x4b9d85c6787612e87e0659e11a347d415040465e492358f79cc7e2e293f38aa7","receiptsRoot":"0x2c86b2791cdd088d3c3e9d6225f71724d3e8c67bdd13cd6208831058cee1043f","requestsHash":"0x57cac3e52cdcd73e52bd9e54956e0eae370f00ed41f68edc78266bdb46c3a543","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x633","stateRoot":"0xf61892bbb9a9df427d1f941dc8c536d72c41efed598244726ea21a0f183ff232","timestamp":"0x1c2","transactions":[{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11c32","gasPrice":"0x5763d65","hash":"0x2fbbd036996c7487316c92b9e5798edb98fd57f32a6c1075e904a734821e1cd2","input":"0x600d380380600d6000396000f336156009575f355f555b305f525f5460205260405ff3","nonce":"0x9a","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x551fe45ccebb0318196e31dbc60da87c43dc60b8fb01afb3286693fa09878730","s":"0x40d33e9afecfe1516b045d61a3272bddbc83f482a7f2c749311248b50fe62e81"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0xb3b0","gasPrice":"0x5763d65","maxFeePerGas":"0x5763d65","maxPriorityFeePerGas":"0x1","hash":"0x16f6724ad864e7664c367893cae3e176d362bea3a47495cec3b246555a7228da","input":"0x","nonce":"0x9b","to":"0x0000000000000000000000000000000000000000","transactionIndex":"0x1","value":"0x0","type":"0x4","accessList":[],"chainId":"0xc72dd9d5e883e","authorizationList":[{"chainId":"0xc72dd9d5e883e","address":"0x58f8fe237b593c19546e1e758a2544561d04bfe0","nonce":"0x0","yParity":"0x1","r":"0xec6caeb1b7071f1b3ae36aeaa7bf0eaecb8e006e83b3e50d792870ea95af4c59","s":"0x1d1225f76d6faac3d904c0635193e83d3867c101b2e6f6c9bb7b1fdeeed923ab"}],"v":"0x1","r":"0x8ae3402e4f63751c895532b94aee0f7b6b8ff5d0b0a689f6d63b3dbd19d69059","s":"0x2e63e4d140b0d282d56289b34f3df82cbcb2f3aa385f5438a423584fe0c2b467","yParity":"0x1"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11170","gasPrice":"0x5763d65","hash":"0xddf234c5f149d2d1a4d01276d42e38a6234bfa7b987c49ba889b028b429aac8f","input":"0x696e766f6b6564","nonce":"0x9c","to":"0xeda8645ba6948855e3b3cd596bbb07596d59c603","transactionIndex":"0x2","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xfea7e18c82a1270f142572533bc2e6e33d6d41a3f1303403dd0a90dd7a4f35d","s":"0x4a4ab6c5bb4c31c3a5f8991ae45bad2303c45923404571f7b4c66adbd03b7936"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x249f0","gasPrice":"0x5763d65","maxFeePerGas":"0x5763d65","maxPriorityFeePerGas":"0x2","hash":"0x3d3d02e1bdc39a6eab20f7b44ed299ca61eb1d642806bfa07e3a7ee8edd700e5","input":"0xb917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80","nonce":"0x9d","to":"0x00000961ef480eb55e80d19ad83579a64c007002","transactionIndex":"0x3","value":"0x3b9aca00","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x5f8b300cf80f7fb7e511460fa1a803278b47223f2c0a82857c5c0e5f7c900d23","s":"0x290bf2495235a106352786403ed937df8385a2356472569020fd952913690ec9","yParity":"0x1"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x5763d65","hash":"0x195a09414344f56e7a202d1493b258b2394b9b93811ce4ee96212a7d34ffb04f","input":"0x6b3b937565afc29f656d6974","nonce":"0x9e","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x4","value":"0x2","type":"0x1","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xe8481f0a1ea7b2528784efff1d1b33cbd66ac97ebe2ae35c7997cacb2863430b"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x84f8b48ac6fbf39054c7794e6ff4e16a3bacbd0964b53d4d03ff668e7eda365","s":"0x2e4e86f2f5fbb8dad4ee8907eee4488f70c75bb646522b5197c4dcdc29ea31bf","yParity":"0x0"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x5763d65","hash":"0xdf66bea01c5cf47b48ec11453822d751a5daaf1d16959772c2196c5ab8cf8438","input":"0x","nonce":"0x9f","to":"0x4340ee1b812acb40a1eb561c019c327b243b92df","transactionIndex":"0x5","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0xec839e20a6f8ff0fb1043022e5816454191436ba7f6607bf6efe6517fdd1e2dd","s":"0x7903b3dd48963c0404f99807fd89cde2b66091c32178f66920120cb10981019","yParity":"0x1"}],"transactionsRoot":"0xc541c333ff4a96a17d3601f7d628ea27ecf4597a11077e5d9d1c4dbed6c7f401","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/integration_tests/spec/eth_getBlockByNumber/get-safe.io b/tests/integration_tests/spec/eth_getBlockByNumber/get-safe.io new file mode 100644 index 0000000000..b88b1cb01b --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockByNumber/get-safe.io @@ -0,0 +1,3 @@ +// get the block with tag "safe" +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["safe",true]} +<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x5763d64","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x54a92","hash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","logsBloom":"0x00000000008000000000000000000040000000000000000000000000800000000000000008000000000000000000000000000000000000000000000000000000000000000000000000004000000000020200000000000000000000000000002000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2d","parentBeaconBlockRoot":"0x4b118bd31ed2c4eeb81dc9e3919e9989994333fe36f147c2930f12c53f0d3c78","parentHash":"0x4b9d85c6787612e87e0659e11a347d415040465e492358f79cc7e2e293f38aa7","receiptsRoot":"0x2c86b2791cdd088d3c3e9d6225f71724d3e8c67bdd13cd6208831058cee1043f","requestsHash":"0x57cac3e52cdcd73e52bd9e54956e0eae370f00ed41f68edc78266bdb46c3a543","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x633","stateRoot":"0xf61892bbb9a9df427d1f941dc8c536d72c41efed598244726ea21a0f183ff232","timestamp":"0x1c2","transactions":[{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11c32","gasPrice":"0x5763d65","hash":"0x2fbbd036996c7487316c92b9e5798edb98fd57f32a6c1075e904a734821e1cd2","input":"0x600d380380600d6000396000f336156009575f355f555b305f525f5460205260405ff3","nonce":"0x9a","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x551fe45ccebb0318196e31dbc60da87c43dc60b8fb01afb3286693fa09878730","s":"0x40d33e9afecfe1516b045d61a3272bddbc83f482a7f2c749311248b50fe62e81"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0xb3b0","gasPrice":"0x5763d65","maxFeePerGas":"0x5763d65","maxPriorityFeePerGas":"0x1","hash":"0x16f6724ad864e7664c367893cae3e176d362bea3a47495cec3b246555a7228da","input":"0x","nonce":"0x9b","to":"0x0000000000000000000000000000000000000000","transactionIndex":"0x1","value":"0x0","type":"0x4","accessList":[],"chainId":"0xc72dd9d5e883e","authorizationList":[{"chainId":"0xc72dd9d5e883e","address":"0x58f8fe237b593c19546e1e758a2544561d04bfe0","nonce":"0x0","yParity":"0x1","r":"0xec6caeb1b7071f1b3ae36aeaa7bf0eaecb8e006e83b3e50d792870ea95af4c59","s":"0x1d1225f76d6faac3d904c0635193e83d3867c101b2e6f6c9bb7b1fdeeed923ab"}],"v":"0x1","r":"0x8ae3402e4f63751c895532b94aee0f7b6b8ff5d0b0a689f6d63b3dbd19d69059","s":"0x2e63e4d140b0d282d56289b34f3df82cbcb2f3aa385f5438a423584fe0c2b467","yParity":"0x1"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11170","gasPrice":"0x5763d65","hash":"0xddf234c5f149d2d1a4d01276d42e38a6234bfa7b987c49ba889b028b429aac8f","input":"0x696e766f6b6564","nonce":"0x9c","to":"0xeda8645ba6948855e3b3cd596bbb07596d59c603","transactionIndex":"0x2","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xfea7e18c82a1270f142572533bc2e6e33d6d41a3f1303403dd0a90dd7a4f35d","s":"0x4a4ab6c5bb4c31c3a5f8991ae45bad2303c45923404571f7b4c66adbd03b7936"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x249f0","gasPrice":"0x5763d65","maxFeePerGas":"0x5763d65","maxPriorityFeePerGas":"0x2","hash":"0x3d3d02e1bdc39a6eab20f7b44ed299ca61eb1d642806bfa07e3a7ee8edd700e5","input":"0xb917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80","nonce":"0x9d","to":"0x00000961ef480eb55e80d19ad83579a64c007002","transactionIndex":"0x3","value":"0x3b9aca00","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x5f8b300cf80f7fb7e511460fa1a803278b47223f2c0a82857c5c0e5f7c900d23","s":"0x290bf2495235a106352786403ed937df8385a2356472569020fd952913690ec9","yParity":"0x1"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x5763d65","hash":"0x195a09414344f56e7a202d1493b258b2394b9b93811ce4ee96212a7d34ffb04f","input":"0x6b3b937565afc29f656d6974","nonce":"0x9e","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x4","value":"0x2","type":"0x1","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xe8481f0a1ea7b2528784efff1d1b33cbd66ac97ebe2ae35c7997cacb2863430b"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x84f8b48ac6fbf39054c7794e6ff4e16a3bacbd0964b53d4d03ff668e7eda365","s":"0x2e4e86f2f5fbb8dad4ee8907eee4488f70c75bb646522b5197c4dcdc29ea31bf","yParity":"0x0"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x5763d65","hash":"0xdf66bea01c5cf47b48ec11453822d751a5daaf1d16959772c2196c5ab8cf8438","input":"0x","nonce":"0x9f","to":"0x4340ee1b812acb40a1eb561c019c327b243b92df","transactionIndex":"0x5","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0xec839e20a6f8ff0fb1043022e5816454191436ba7f6607bf6efe6517fdd1e2dd","s":"0x7903b3dd48963c0404f99807fd89cde2b66091c32178f66920120cb10981019","yParity":"0x1"}],"transactionsRoot":"0xc541c333ff4a96a17d3601f7d628ea27ecf4597a11077e5d9d1c4dbed6c7f401","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-0.io b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-0.io new file mode 100644 index 0000000000..6614a66fca --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-0.io @@ -0,0 +1,3 @@ +// gets receipts for block 0 +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["0x0"]} +<< {"jsonrpc":"2.0","id":1,"result":[]} diff --git a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-by-hash.io b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-by-hash.io new file mode 100644 index 0000000000..acbed72881 --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-by-hash.io @@ -0,0 +1,3 @@ +// gets receipts for normal block hash +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0x102d3","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x102d3","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","root":"0x19fb42ec665b1940ad4b603066bb6efef7d0b97172806da958d1ada7094db01f","to":null,"transactionHash":"0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e","transactionIndex":"0x0","type":"0x0"},{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","contractAddress":"0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667","cumulativeGasUsed":"0x22adc","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x12809","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","root":"0x524da38c9b9e010d2c87c43afd7d1058aa3a5f06dbdbf94b9407ed3b1d3fdbb9","to":null,"transactionHash":"0x1999fb436409e9c2464bd9efc3aa914b2e8a843144fdcc17132fa9da0f15641e","transactionIndex":"0x1","type":"0x0"},{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","contractAddress":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930","cumulativeGasUsed":"0x38231","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x15755","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","root":"0xc91d4c0806cff479dda0aa7ffaf941900b35c9e65e4b8331862a859a65241903","to":null,"transactionHash":"0x021ae79aa8821d60291761cfe419b6cbc0ad7dd50d4aa6f14a54e5fc0d62e325","transactionIndex":"0x2","type":"0x0"},{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","contractAddress":"0x2c1287779024c3a2f0924b54816d79b7e378907d","cumulativeGasUsed":"0x527eb","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x1a5ba","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","root":"0xe28bafed7fbb27f13633362546cab622e4bbc768d3688afde927217b96e21419","to":null,"transactionHash":"0x709f12649d057e2ad0a0a41176cc405f80af735df8cf2b89782eb3ab1699e549","transactionIndex":"0x3","type":"0x0"}]} diff --git a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-earliest.io b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-earliest.io new file mode 100644 index 0000000000..d4b6922400 --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-earliest.io @@ -0,0 +1,3 @@ +// gets receipts for block earliest +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["earliest"]} +<< {"jsonrpc":"2.0","id":1,"result":[]} diff --git a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-empty.io b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-empty.io new file mode 100644 index 0000000000..de328d22ba --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-empty.io @@ -0,0 +1,3 @@ +// gets receipts for empty block hash +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["0x0000000000000000000000000000000000000000000000000000000000000000"]} +<< {"jsonrpc":"2.0","id":1,"result":null} diff --git a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-future.io b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-future.io new file mode 100644 index 0000000000..2fdc1262c8 --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-future.io @@ -0,0 +1,3 @@ +// gets receipts of future block +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["0x2e"]} +<< {"jsonrpc":"2.0","id":1,"result":null} diff --git a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-latest.io b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-latest.io new file mode 100644 index 0000000000..c9ce97182c --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-latest.io @@ -0,0 +1,3 @@ +// gets receipts for block latest +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["latest"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","contractAddress":"0x58f8fe237b593c19546e1e758a2544561d04bfe0","cumulativeGasUsed":"0xe271","effectiveGasPrice":"0x5763d65","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xe271","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x2fbbd036996c7487316c92b9e5798edb98fd57f32a6c1075e904a734821e1cd2","transactionIndex":"0x0","type":"0x0"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","contractAddress":null,"cumulativeGasUsed":"0x17231","effectiveGasPrice":"0x5763d65","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x8fc0","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x0000000000000000000000000000000000000000","transactionHash":"0x16f6724ad864e7664c367893cae3e176d362bea3a47495cec3b246555a7228da","transactionIndex":"0x1","type":"0x4"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","contractAddress":null,"cumulativeGasUsed":"0x21b95","effectiveGasPrice":"0x5763d65","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xa964","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0xeda8645ba6948855e3b3cd596bbb07596d59c603","transactionHash":"0xddf234c5f149d2d1a4d01276d42e38a6234bfa7b987c49ba889b028b429aac8f","transactionIndex":"0x2","type":"0x0"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","contractAddress":null,"cumulativeGasUsed":"0x42dee","effectiveGasPrice":"0x5763d65","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x21259","logs":[{"address":"0x00000961ef480eb55e80d19ad83579a64c007002","topics":[],"data":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865fb917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80","blockNumber":"0x2d","transactionHash":"0x3d3d02e1bdc39a6eab20f7b44ed299ca61eb1d642806bfa07e3a7ee8edd700e5","transactionIndex":"0x3","blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockTimestamp":"0x1c2","logIndex":"0x0","removed":false}],"logsBloom":"0x00000000008000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x00000961ef480eb55e80d19ad83579a64c007002","transactionHash":"0x3d3d02e1bdc39a6eab20f7b44ed299ca61eb1d642806bfa07e3a7ee8edd700e5","transactionIndex":"0x3","type":"0x2"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","contractAddress":null,"cumulativeGasUsed":"0x4f88a","effectiveGasPrice":"0x5763d65","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xca9c","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xe8481f0a1ea7b2528784efff1d1b33cbd66ac97ebe2ae35c7997cacb2863430b"],"data":"0x0000000000000000000000000000000000000000000000000000000000000029","blockNumber":"0x2d","transactionHash":"0x195a09414344f56e7a202d1493b258b2394b9b93811ce4ee96212a7d34ffb04f","transactionIndex":"0x4","blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockTimestamp":"0x1c2","logIndex":"0x1","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000800000000000000008000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0x195a09414344f56e7a202d1493b258b2394b9b93811ce4ee96212a7d34ffb04f","transactionIndex":"0x4","type":"0x1"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","contractAddress":null,"cumulativeGasUsed":"0x54a92","effectiveGasPrice":"0x5763d65","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x5208","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x4340ee1b812acb40a1eb561c019c327b243b92df","transactionHash":"0xdf66bea01c5cf47b48ec11453822d751a5daaf1d16959772c2196c5ab8cf8438","transactionIndex":"0x5","type":"0x1"}]} diff --git a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-n.io b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-n.io new file mode 100644 index 0000000000..298c76852a --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-n.io @@ -0,0 +1,3 @@ +// gets receipts non-zero block +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["0x1"]} +<< {"jsonrpc":"2.0","id":1,"result":[{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0x102d3","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x102d3","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","root":"0x19fb42ec665b1940ad4b603066bb6efef7d0b97172806da958d1ada7094db01f","to":null,"transactionHash":"0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e","transactionIndex":"0x0","type":"0x0"},{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","contractAddress":"0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667","cumulativeGasUsed":"0x22adc","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x12809","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","root":"0x524da38c9b9e010d2c87c43afd7d1058aa3a5f06dbdbf94b9407ed3b1d3fdbb9","to":null,"transactionHash":"0x1999fb436409e9c2464bd9efc3aa914b2e8a843144fdcc17132fa9da0f15641e","transactionIndex":"0x1","type":"0x0"},{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","contractAddress":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930","cumulativeGasUsed":"0x38231","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x15755","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","root":"0xc91d4c0806cff479dda0aa7ffaf941900b35c9e65e4b8331862a859a65241903","to":null,"transactionHash":"0x021ae79aa8821d60291761cfe419b6cbc0ad7dd50d4aa6f14a54e5fc0d62e325","transactionIndex":"0x2","type":"0x0"},{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","contractAddress":"0x2c1287779024c3a2f0924b54816d79b7e378907d","cumulativeGasUsed":"0x527eb","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x1a5ba","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","root":"0xe28bafed7fbb27f13633362546cab622e4bbc768d3688afde927217b96e21419","to":null,"transactionHash":"0x709f12649d057e2ad0a0a41176cc405f80af735df8cf2b89782eb3ab1699e549","transactionIndex":"0x3","type":"0x0"}]} diff --git a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-not-found.io b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-not-found.io new file mode 100644 index 0000000000..96ba3dbde2 --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-not-found.io @@ -0,0 +1,3 @@ +// gets receipts for notfound hash +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["0x00000000000000000000000000000000000000000000000000000000deadbeef"]} +<< {"jsonrpc":"2.0","id":1,"result":null} diff --git a/tests/integration_tests/spec/eth_getBlockTransactionCountByHash/get-block-n.io b/tests/integration_tests/spec/eth_getBlockTransactionCountByHash/get-block-n.io new file mode 100644 index 0000000000..2da9c381c1 --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockTransactionCountByHash/get-block-n.io @@ -0,0 +1,3 @@ +// gets tx count in a non-empty block +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockTransactionCountByHash","params":["0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x4"} diff --git a/tests/integration_tests/spec/eth_getBlockTransactionCountByHash/get-genesis.io b/tests/integration_tests/spec/eth_getBlockTransactionCountByHash/get-genesis.io new file mode 100644 index 0000000000..b8f78e0feb --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockTransactionCountByHash/get-genesis.io @@ -0,0 +1,3 @@ +// gets tx count in block 0 +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockTransactionCountByHash","params":["0x79e0f5ffb6a0c9f54d507dbbadc935603ac1db86d32f7857472180a75ec11f90"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x0"} diff --git a/tests/integration_tests/spec/eth_getBlockTransactionCountByNumber/get-block-n.io b/tests/integration_tests/spec/eth_getBlockTransactionCountByNumber/get-block-n.io new file mode 100644 index 0000000000..3b4b28b56c --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockTransactionCountByNumber/get-block-n.io @@ -0,0 +1,3 @@ +// gets tx count in a non-empty block +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockTransactionCountByNumber","params":["0x1"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x4"} diff --git a/tests/integration_tests/spec/eth_getBlockTransactionCountByNumber/get-genesis.io b/tests/integration_tests/spec/eth_getBlockTransactionCountByNumber/get-genesis.io new file mode 100644 index 0000000000..c1132f7ec1 --- /dev/null +++ b/tests/integration_tests/spec/eth_getBlockTransactionCountByNumber/get-genesis.io @@ -0,0 +1,3 @@ +// gets tx count in block 0 +>> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockTransactionCountByNumber","params":["0x0"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x0"} diff --git a/tests/integration_tests/spec/eth_getCode/get-code-eip7702-delegation.io b/tests/integration_tests/spec/eth_getCode/get-code-eip7702-delegation.io new file mode 100644 index 0000000000..e46b2529b4 --- /dev/null +++ b/tests/integration_tests/spec/eth_getCode/get-code-eip7702-delegation.io @@ -0,0 +1,4 @@ +// requests code of an account that has an EIP-7702 delegation. the server is expected to return +// the delegation designator. +>> {"jsonrpc":"2.0","id":1,"method":"eth_getCode","params":["0xeda8645ba6948855e3b3cd596bbb07596d59c603","latest"]} +<< {"jsonrpc":"2.0","id":1,"result":"0xef010058f8fe237b593c19546e1e758a2544561d04bfe0"} diff --git a/tests/integration_tests/spec/eth_getCode/get-code-unknown-account.io b/tests/integration_tests/spec/eth_getCode/get-code-unknown-account.io new file mode 100644 index 0000000000..aafa0f0c10 --- /dev/null +++ b/tests/integration_tests/spec/eth_getCode/get-code-unknown-account.io @@ -0,0 +1,3 @@ +// requests code of a non-existent account +>> {"jsonrpc":"2.0","id":1,"method":"eth_getCode","params":["0xc1cadaffffffffffffffffffffffffffffffffff","latest"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x"} diff --git a/tests/integration_tests/spec/eth_getCode/get-code.io b/tests/integration_tests/spec/eth_getCode/get-code.io new file mode 100644 index 0000000000..300e8160f6 --- /dev/null +++ b/tests/integration_tests/spec/eth_getCode/get-code.io @@ -0,0 +1,3 @@ +// requests code of an existing contract +>> {"jsonrpc":"2.0","id":1,"method":"eth_getCode","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","latest"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x3680600080376000206000548082558060010160005560005263656d697460206000a2"} diff --git a/tests/integration_tests/spec/eth_getLogs/contract-addr.io b/tests/integration_tests/spec/eth_getLogs/contract-addr.io new file mode 100644 index 0000000000..fbd401f767 --- /dev/null +++ b/tests/integration_tests/spec/eth_getLogs/contract-addr.io @@ -0,0 +1,3 @@ +// queries for logs from a specific contract across a range of blocks +>> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"address":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df"],"fromBlock":"0x1","toBlock":"0x4"}]} +<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xf4da19d6c17928e683661a52829cf391d3dc26d581152b81ce595a1207944f09"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x2","transactionHash":"0x5bc704d4eb4ce7fe319705d2f888516961426a177f2799c9f934b5df7466dd33","transactionIndex":"0x2","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0xa","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x4238ace0bf7e66fd40fea01bdf43f4f30423f48432efd0da3af5fcb17a977fd4"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x4","transactionHash":"0xf047c5133c96c405a79d01038b4ccf8208c03e296dd9f6bea083727c9513f805","transactionIndex":"0x0","blockHash":"0x29cc6f97784c864cbe29b3502934ad874f48ddc89580018f5a32e01652c88f0a","blockTimestamp":"0x28","logIndex":"0x0","removed":false}]} diff --git a/tests/integration_tests/spec/eth_getLogs/filter-error-future-block-range.io b/tests/integration_tests/spec/eth_getLogs/filter-error-future-block-range.io new file mode 100644 index 0000000000..33ab8de596 --- /dev/null +++ b/tests/integration_tests/spec/eth_getLogs/filter-error-future-block-range.io @@ -0,0 +1,3 @@ +// checks that an error is returned if `toBlock` is greater than the latest block +>> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"fromBlock":"0x29","toBlock":"0x2f"}]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"block range extends beyond current head block"}} diff --git a/tests/integration_tests/spec/eth_getLogs/filter-error-invalid-blockHash-and-range.io b/tests/integration_tests/spec/eth_getLogs/filter-error-invalid-blockHash-and-range.io new file mode 100644 index 0000000000..21e73a0b8b --- /dev/null +++ b/tests/integration_tests/spec/eth_getLogs/filter-error-invalid-blockHash-and-range.io @@ -0,0 +1,3 @@ +// checks that an error is returned if `fromBlock`/`toBlock` are specified together with `blockHash` +>> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"blockHash":"0xfec6e8fb3735a6f24416b3b9887fd4cab5e474436ecd4ce701685487ee957416","fromBlock":"0x3","toBlock":"0x4"}]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"invalid argument 0: cannot specify both BlockHash and FromBlock/ToBlock, choose one or the other"}} diff --git a/tests/integration_tests/spec/eth_getLogs/filter-error-reversed-block-range.io b/tests/integration_tests/spec/eth_getLogs/filter-error-reversed-block-range.io new file mode 100644 index 0000000000..f5ebaad78d --- /dev/null +++ b/tests/integration_tests/spec/eth_getLogs/filter-error-reversed-block-range.io @@ -0,0 +1,3 @@ +// checks that an error is returned if `fromBlock` is larger than `toBlock` +>> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"fromBlock":"0x29","toBlock":"0x26"}]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"invalid block range params"}} diff --git a/tests/integration_tests/spec/eth_getLogs/filter-with-blockHash-and-topics.io b/tests/integration_tests/spec/eth_getLogs/filter-with-blockHash-and-topics.io new file mode 100644 index 0000000000..e6ee2e02f0 --- /dev/null +++ b/tests/integration_tests/spec/eth_getLogs/filter-with-blockHash-and-topics.io @@ -0,0 +1,3 @@ +// queries for logs in a block, identified by blockHash +>> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"blockHash":"0x29cc6f97784c864cbe29b3502934ad874f48ddc89580018f5a32e01652c88f0a","topics":[["0x00000000000000000000000000000000000000000000000000000000656d6974"],["0x4238ace0bf7e66fd40fea01bdf43f4f30423f48432efd0da3af5fcb17a977fd4"]]}]} +<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x4238ace0bf7e66fd40fea01bdf43f4f30423f48432efd0da3af5fcb17a977fd4"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x4","transactionHash":"0xf047c5133c96c405a79d01038b4ccf8208c03e296dd9f6bea083727c9513f805","transactionIndex":"0x0","blockHash":"0x29cc6f97784c864cbe29b3502934ad874f48ddc89580018f5a32e01652c88f0a","blockTimestamp":"0x28","logIndex":"0x0","removed":false}]} diff --git a/tests/integration_tests/spec/eth_getLogs/filter-with-blockHash.io b/tests/integration_tests/spec/eth_getLogs/filter-with-blockHash.io new file mode 100644 index 0000000000..7df09832ee --- /dev/null +++ b/tests/integration_tests/spec/eth_getLogs/filter-with-blockHash.io @@ -0,0 +1,3 @@ +// queries for all logs of a block, identified by blockHash +>> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"blockHash":"0x29cc6f97784c864cbe29b3502934ad874f48ddc89580018f5a32e01652c88f0a"}]} +<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x4238ace0bf7e66fd40fea01bdf43f4f30423f48432efd0da3af5fcb17a977fd4"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x4","transactionHash":"0xf047c5133c96c405a79d01038b4ccf8208c03e296dd9f6bea083727c9513f805","transactionIndex":"0x0","blockHash":"0x29cc6f97784c864cbe29b3502934ad874f48ddc89580018f5a32e01652c88f0a","blockTimestamp":"0x28","logIndex":"0x0","removed":false}]} diff --git a/tests/integration_tests/spec/eth_getLogs/no-topics.io b/tests/integration_tests/spec/eth_getLogs/no-topics.io new file mode 100644 index 0000000000..c033c093b4 --- /dev/null +++ b/tests/integration_tests/spec/eth_getLogs/no-topics.io @@ -0,0 +1,3 @@ +// queries for all logs across a range of blocks +>> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"fromBlock":"0x1","toBlock":"0x3"}]} +<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xabbb5caa7dda850e60932de0934eb1f9d0f59695050f761dc64e443e5030a569"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x2","transactionHash":"0x25d8b4a27c4578e5de6441f98881cf050ab2d9f28ceb28559ece0b65f555e9d8","transactionIndex":"0x0","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0x0","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f"],"data":"0x0000000000000000000000000000000000000000000000000000000000000002","blockNumber":"0x2","transactionHash":"0x25d8b4a27c4578e5de6441f98881cf050ab2d9f28ceb28559ece0b65f555e9d8","transactionIndex":"0x0","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0x1","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x679795a0195a1b76cdebb7c51d74e058aee92919b8c3389af86ef24535e8a28c"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x2","transactionHash":"0x25d8b4a27c4578e5de6441f98881cf050ab2d9f28ceb28559ece0b65f555e9d8","transactionIndex":"0x0","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0x2","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xc3a24b0501bd2c13a7e57f2db4369ec4c223447539fc0724a9d55ac4a06ebd4d"],"data":"0x0000000000000000000000000000000000000000000000000000000000000004","blockNumber":"0x2","transactionHash":"0x25d8b4a27c4578e5de6441f98881cf050ab2d9f28ceb28559ece0b65f555e9d8","transactionIndex":"0x0","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0x3","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x91da3fd0782e51c6b3986e9e672fd566868e71f3dbc2d6c2cd6fbb3e361af2a7"],"data":"0x0000000000000000000000000000000000000000000000000000000000000005","blockNumber":"0x2","transactionHash":"0x25d8b4a27c4578e5de6441f98881cf050ab2d9f28ceb28559ece0b65f555e9d8","transactionIndex":"0x0","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0x4","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a"],"data":"0x0000000000000000000000000000000000000000000000000000000000000006","blockNumber":"0x2","transactionHash":"0x25d8b4a27c4578e5de6441f98881cf050ab2d9f28ceb28559ece0b65f555e9d8","transactionIndex":"0x0","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0x5","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x8819ef417987f8ae7a81f42cdfb18815282fe989326fbff903d13cf0e03ace29"],"data":"0x0000000000000000000000000000000000000000000000000000000000000007","blockNumber":"0x2","transactionHash":"0x25d8b4a27c4578e5de6441f98881cf050ab2d9f28ceb28559ece0b65f555e9d8","transactionIndex":"0x0","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0x6","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d"],"data":"0x0000000000000000000000000000000000000000000000000000000000000008","blockNumber":"0x2","transactionHash":"0x25d8b4a27c4578e5de6441f98881cf050ab2d9f28ceb28559ece0b65f555e9d8","transactionIndex":"0x0","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0x7","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x6add646517a5b0f6793cd5891b7937d28a5b2981a5d88ebc7cd776088fea9041"],"data":"0x0000000000000000000000000000000000000000000000000000000000000009","blockNumber":"0x2","transactionHash":"0x25d8b4a27c4578e5de6441f98881cf050ab2d9f28ceb28559ece0b65f555e9d8","transactionIndex":"0x0","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0x8","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c3"],"data":"0x000000000000000000000000000000000000000000000000000000000000000a","blockNumber":"0x2","transactionHash":"0x25d8b4a27c4578e5de6441f98881cf050ab2d9f28ceb28559ece0b65f555e9d8","transactionIndex":"0x0","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0x9","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xf4da19d6c17928e683661a52829cf391d3dc26d581152b81ce595a1207944f09"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x2","transactionHash":"0x5bc704d4eb4ce7fe319705d2f888516961426a177f2799c9f934b5df7466dd33","transactionIndex":"0x2","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0xa","removed":false},{"address":"0xa788ca96a910bac854f95b794776c1ad847dcdd5","topics":["0x101e368776582e57ab3d116ffe2517c0a585cd5b23174b01e275c2d8329c3d83"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x3","transactionHash":"0xfecc4d4439d77962b8c27e7e652294717fcd75379cab400bbefb2975a960344c","transactionIndex":"0x1","blockHash":"0xd25a5154eb9659078e4df3d68992fc829a130d4ed19c9475341a9d1cd6bf0d61","blockTimestamp":"0x1e","logIndex":"0x0","removed":false},{"address":"0xa788ca96a910bac854f95b794776c1ad847dcdd5","topics":["0x7dfe757ecd65cbd7922a9c0161e935dd7fdbcc0e999689c7d31633896b1fc60b"],"data":"0x0000000000000000000000000000000000000000000000000000000000000002","blockNumber":"0x3","transactionHash":"0xfecc4d4439d77962b8c27e7e652294717fcd75379cab400bbefb2975a960344c","transactionIndex":"0x1","blockHash":"0xd25a5154eb9659078e4df3d68992fc829a130d4ed19c9475341a9d1cd6bf0d61","blockTimestamp":"0x1e","logIndex":"0x1","removed":false},{"address":"0xa788ca96a910bac854f95b794776c1ad847dcdd5","topics":["0x88601476d11616a71c5be67555bd1dff4b1cbf21533d2669b768b61518cfe1c3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x3","transactionHash":"0xfecc4d4439d77962b8c27e7e652294717fcd75379cab400bbefb2975a960344c","transactionIndex":"0x1","blockHash":"0xd25a5154eb9659078e4df3d68992fc829a130d4ed19c9475341a9d1cd6bf0d61","blockTimestamp":"0x1e","logIndex":"0x2","removed":false},{"address":"0xa788ca96a910bac854f95b794776c1ad847dcdd5","topics":["0xcbc4e5fb02c3d1de23a9f1e014b4d2ee5aeaea9505df5e855c9210bf472495af"],"data":"0x0000000000000000000000000000000000000000000000000000000000000004","blockNumber":"0x3","transactionHash":"0xfecc4d4439d77962b8c27e7e652294717fcd75379cab400bbefb2975a960344c","transactionIndex":"0x1","blockHash":"0xd25a5154eb9659078e4df3d68992fc829a130d4ed19c9475341a9d1cd6bf0d61","blockTimestamp":"0x1e","logIndex":"0x3","removed":false},{"address":"0xa788ca96a910bac854f95b794776c1ad847dcdd5","topics":["0x2e174c10e159ea99b867ce3205125c24a42d128804e4070ed6fcc8cc98166aa0"],"data":"0x0000000000000000000000000000000000000000000000000000000000000005","blockNumber":"0x3","transactionHash":"0xfecc4d4439d77962b8c27e7e652294717fcd75379cab400bbefb2975a960344c","transactionIndex":"0x1","blockHash":"0xd25a5154eb9659078e4df3d68992fc829a130d4ed19c9475341a9d1cd6bf0d61","blockTimestamp":"0x1e","logIndex":"0x4","removed":false},{"address":"0xa788ca96a910bac854f95b794776c1ad847dcdd5","topics":["0xa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc0"],"data":"0x0000000000000000000000000000000000000000000000000000000000000006","blockNumber":"0x3","transactionHash":"0xfecc4d4439d77962b8c27e7e652294717fcd75379cab400bbefb2975a960344c","transactionIndex":"0x1","blockHash":"0xd25a5154eb9659078e4df3d68992fc829a130d4ed19c9475341a9d1cd6bf0d61","blockTimestamp":"0x1e","logIndex":"0x5","removed":false},{"address":"0xa788ca96a910bac854f95b794776c1ad847dcdd5","topics":["0x75f96ab15d697e93042dc45b5c896c4b27e89bb6eaf39475c5c371cb2513f7d2"],"data":"0x0000000000000000000000000000000000000000000000000000000000000007","blockNumber":"0x3","transactionHash":"0xfecc4d4439d77962b8c27e7e652294717fcd75379cab400bbefb2975a960344c","transactionIndex":"0x1","blockHash":"0xd25a5154eb9659078e4df3d68992fc829a130d4ed19c9475341a9d1cd6bf0d61","blockTimestamp":"0x1e","logIndex":"0x6","removed":false},{"address":"0xa788ca96a910bac854f95b794776c1ad847dcdd5","topics":["0x3be6fd20d5acfde5b873b48692cd31f4d3c7e8ee8a813af4696af8859e5ca6c6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000008","blockNumber":"0x3","transactionHash":"0xfecc4d4439d77962b8c27e7e652294717fcd75379cab400bbefb2975a960344c","transactionIndex":"0x1","blockHash":"0xd25a5154eb9659078e4df3d68992fc829a130d4ed19c9475341a9d1cd6bf0d61","blockTimestamp":"0x1e","logIndex":"0x7","removed":false},{"address":"0xa788ca96a910bac854f95b794776c1ad847dcdd5","topics":["0x625b35f5e76f098dd7c3a05b10e2e5e78a4a01228d60c3b143426cdf36d26455"],"data":"0x0000000000000000000000000000000000000000000000000000000000000009","blockNumber":"0x3","transactionHash":"0xfecc4d4439d77962b8c27e7e652294717fcd75379cab400bbefb2975a960344c","transactionIndex":"0x1","blockHash":"0xd25a5154eb9659078e4df3d68992fc829a130d4ed19c9475341a9d1cd6bf0d61","blockTimestamp":"0x1e","logIndex":"0x8","removed":false},{"address":"0xa788ca96a910bac854f95b794776c1ad847dcdd5","topics":["0xc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e7"],"data":"0x000000000000000000000000000000000000000000000000000000000000000a","blockNumber":"0x3","transactionHash":"0xfecc4d4439d77962b8c27e7e652294717fcd75379cab400bbefb2975a960344c","transactionIndex":"0x1","blockHash":"0xd25a5154eb9659078e4df3d68992fc829a130d4ed19c9475341a9d1cd6bf0d61","blockTimestamp":"0x1e","logIndex":"0x9","removed":false}]} diff --git a/tests/integration_tests/spec/eth_getLogs/topic-exact-match.io b/tests/integration_tests/spec/eth_getLogs/topic-exact-match.io new file mode 100644 index 0000000000..f01ae7d4e2 --- /dev/null +++ b/tests/integration_tests/spec/eth_getLogs/topic-exact-match.io @@ -0,0 +1,3 @@ +// queries for logs with two topics, with both topics set explictly +>> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"fromBlock":"0x3","toBlock":"0x6","topics":[["0x00000000000000000000000000000000000000000000000000000000656d6974"],["0x4238ace0bf7e66fd40fea01bdf43f4f30423f48432efd0da3af5fcb17a977fd4"]]}]} +<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x4238ace0bf7e66fd40fea01bdf43f4f30423f48432efd0da3af5fcb17a977fd4"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x4","transactionHash":"0xf047c5133c96c405a79d01038b4ccf8208c03e296dd9f6bea083727c9513f805","transactionIndex":"0x0","blockHash":"0x29cc6f97784c864cbe29b3502934ad874f48ddc89580018f5a32e01652c88f0a","blockTimestamp":"0x28","logIndex":"0x0","removed":false}]} diff --git a/tests/integration_tests/spec/eth_getLogs/topic-wildcard.io b/tests/integration_tests/spec/eth_getLogs/topic-wildcard.io new file mode 100644 index 0000000000..25d8088541 --- /dev/null +++ b/tests/integration_tests/spec/eth_getLogs/topic-wildcard.io @@ -0,0 +1,3 @@ +// queries for logs with two topics, performing a wildcard match in topic position zero +>> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"fromBlock":"0x3","toBlock":"0x6","topics":[[],["0x4238ace0bf7e66fd40fea01bdf43f4f30423f48432efd0da3af5fcb17a977fd4"]]}]} +<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x4238ace0bf7e66fd40fea01bdf43f4f30423f48432efd0da3af5fcb17a977fd4"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x4","transactionHash":"0xf047c5133c96c405a79d01038b4ccf8208c03e296dd9f6bea083727c9513f805","transactionIndex":"0x0","blockHash":"0x29cc6f97784c864cbe29b3502934ad874f48ddc89580018f5a32e01652c88f0a","blockTimestamp":"0x28","logIndex":"0x0","removed":false}]} diff --git a/tests/integration_tests/spec/eth_getProof/get-account-proof-blockhash.io b/tests/integration_tests/spec/eth_getProof/get-account-proof-blockhash.io new file mode 100644 index 0000000000..37411a9544 --- /dev/null +++ b/tests/integration_tests/spec/eth_getProof/get-account-proof-blockhash.io @@ -0,0 +1,3 @@ +// gets proof for a certain account at the specified blockhash +>> {"jsonrpc":"2.0","id":1,"method":"eth_getProof","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df",[],"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2"]} +<< {"jsonrpc":"2.0","id":1,"result":{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","accountProof":["0xf90211a0c1ec0ebf911208cfe3eb68d6005b3e83c8fa3446b42f60fca3c6e67df126066aa062eddfd4f3121af0cca8b1a80cc0aeeef27da44fa1d57bc459309b14e663376aa0a5ca83efc5562f922e920d8617a5424ab9e76f140e59322b2b58fe23d899154aa0a569c3cece07d30f89a0c26b07f26a8587a472eec47ef8e4cc4565906b7cbfcda074ad67c1f8b22738e6e9f1213aa95cac3ffa1b9b8a98c99786d5efbdb10ee60da0a627fe55108274e262bb555d43831c1c2bcefa6698e155dbd20a0919f5bb5426a0f28cfa6ff43da171ced23ffa6fe70025859fd8360dcd87274be3df0d8dbbf1cfa0d5af301540181bdcd204a91043b7fcd12b82e9d822ac387b8b162afc78bfba44a01e9eaae8fd500f4fcd414445cc0655fd0441a27a60265038f9a931991b20560ea0bedffa91b8e218576b3c83440ff9428798a51c0ed37e8bd7e042691dd5dd4f5ea0dd9dec9944b0a9f99002efc2e646a46464324020fa1cc4b1e2190e957126f637a0aaff546e530961eb05171154f83e391d56b8a555b94275aced4fd66630d75871a04a67aa8ecba3084a66962b45e056e12842925af61302e8525bd3fe6a0b15b509a089be1200c01a32cd74d93139db15642514353607bc748d17edffe2be33117587a056461cdbabb61606d146fefa28cc3c3079dfa6a8185e20bb907008a747fd3585a0ab222e04aba14634b1e7df14a1501e39532099c1438029a48141ed23ed695f8180","0xf89180a04ac1ba639ed12834273b97e887172fc715caa3be0ffeab1c1ac6e2b8abd787ac808080808080808080a092ae670bd6f4c589e1ae40d5ceee9fb91ae0dbbd3c037daa07e0a56978e143d08080a03cf15545ea6e26226b9c7f2d18d9dc9ea7b034edb507b7704104c65d4dbdc825a004511c6377a766accc6ebb201edd01f8a7d246118ad7bf231aaddf788b82de3680","0xf869a0201f52c702c40589735c4b038bd94e04268a58c35afad63bb16c071d62d2e23db846f8448056a0de3dbb656325fb05cd75718441171cba6371529f1761f6649dd29b97557e0585a0a3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2"],"balance":"0x56","codeHash":"0xa3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2","nonce":"0x0","storageHash":"0xde3dbb656325fb05cd75718441171cba6371529f1761f6649dd29b97557e0585","storageProof":[]}} diff --git a/tests/integration_tests/spec/eth_getProof/get-account-proof-latest.io b/tests/integration_tests/spec/eth_getProof/get-account-proof-latest.io new file mode 100644 index 0000000000..1f043bd397 --- /dev/null +++ b/tests/integration_tests/spec/eth_getProof/get-account-proof-latest.io @@ -0,0 +1,3 @@ +// requests the account proof for a known account +>> {"jsonrpc":"2.0","id":1,"method":"eth_getProof","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df",[],"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","accountProof":["0xf90211a0c1ec0ebf911208cfe3eb68d6005b3e83c8fa3446b42f60fca3c6e67df126066aa062eddfd4f3121af0cca8b1a80cc0aeeef27da44fa1d57bc459309b14e663376aa0a5ca83efc5562f922e920d8617a5424ab9e76f140e59322b2b58fe23d899154aa0a569c3cece07d30f89a0c26b07f26a8587a472eec47ef8e4cc4565906b7cbfcda074ad67c1f8b22738e6e9f1213aa95cac3ffa1b9b8a98c99786d5efbdb10ee60da0a627fe55108274e262bb555d43831c1c2bcefa6698e155dbd20a0919f5bb5426a0f28cfa6ff43da171ced23ffa6fe70025859fd8360dcd87274be3df0d8dbbf1cfa0d5af301540181bdcd204a91043b7fcd12b82e9d822ac387b8b162afc78bfba44a01e9eaae8fd500f4fcd414445cc0655fd0441a27a60265038f9a931991b20560ea0bedffa91b8e218576b3c83440ff9428798a51c0ed37e8bd7e042691dd5dd4f5ea0dd9dec9944b0a9f99002efc2e646a46464324020fa1cc4b1e2190e957126f637a0aaff546e530961eb05171154f83e391d56b8a555b94275aced4fd66630d75871a04a67aa8ecba3084a66962b45e056e12842925af61302e8525bd3fe6a0b15b509a089be1200c01a32cd74d93139db15642514353607bc748d17edffe2be33117587a056461cdbabb61606d146fefa28cc3c3079dfa6a8185e20bb907008a747fd3585a0ab222e04aba14634b1e7df14a1501e39532099c1438029a48141ed23ed695f8180","0xf89180a04ac1ba639ed12834273b97e887172fc715caa3be0ffeab1c1ac6e2b8abd787ac808080808080808080a092ae670bd6f4c589e1ae40d5ceee9fb91ae0dbbd3c037daa07e0a56978e143d08080a03cf15545ea6e26226b9c7f2d18d9dc9ea7b034edb507b7704104c65d4dbdc825a004511c6377a766accc6ebb201edd01f8a7d246118ad7bf231aaddf788b82de3680","0xf869a0201f52c702c40589735c4b038bd94e04268a58c35afad63bb16c071d62d2e23db846f8448056a0de3dbb656325fb05cd75718441171cba6371529f1761f6649dd29b97557e0585a0a3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2"],"balance":"0x56","codeHash":"0xa3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2","nonce":"0x0","storageHash":"0xde3dbb656325fb05cd75718441171cba6371529f1761f6649dd29b97557e0585","storageProof":[]}} diff --git a/tests/integration_tests/spec/eth_getProof/get-account-proof-with-storage.io b/tests/integration_tests/spec/eth_getProof/get-account-proof-with-storage.io new file mode 100644 index 0000000000..6b4d2d2795 --- /dev/null +++ b/tests/integration_tests/spec/eth_getProof/get-account-proof-with-storage.io @@ -0,0 +1,3 @@ +// gets proof for a certain account +>> {"jsonrpc":"2.0","id":1,"method":"eth_getProof","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df",["0x00"],"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","accountProof":["0xf90211a0c1ec0ebf911208cfe3eb68d6005b3e83c8fa3446b42f60fca3c6e67df126066aa062eddfd4f3121af0cca8b1a80cc0aeeef27da44fa1d57bc459309b14e663376aa0a5ca83efc5562f922e920d8617a5424ab9e76f140e59322b2b58fe23d899154aa0a569c3cece07d30f89a0c26b07f26a8587a472eec47ef8e4cc4565906b7cbfcda074ad67c1f8b22738e6e9f1213aa95cac3ffa1b9b8a98c99786d5efbdb10ee60da0a627fe55108274e262bb555d43831c1c2bcefa6698e155dbd20a0919f5bb5426a0f28cfa6ff43da171ced23ffa6fe70025859fd8360dcd87274be3df0d8dbbf1cfa0d5af301540181bdcd204a91043b7fcd12b82e9d822ac387b8b162afc78bfba44a01e9eaae8fd500f4fcd414445cc0655fd0441a27a60265038f9a931991b20560ea0bedffa91b8e218576b3c83440ff9428798a51c0ed37e8bd7e042691dd5dd4f5ea0dd9dec9944b0a9f99002efc2e646a46464324020fa1cc4b1e2190e957126f637a0aaff546e530961eb05171154f83e391d56b8a555b94275aced4fd66630d75871a04a67aa8ecba3084a66962b45e056e12842925af61302e8525bd3fe6a0b15b509a089be1200c01a32cd74d93139db15642514353607bc748d17edffe2be33117587a056461cdbabb61606d146fefa28cc3c3079dfa6a8185e20bb907008a747fd3585a0ab222e04aba14634b1e7df14a1501e39532099c1438029a48141ed23ed695f8180","0xf89180a04ac1ba639ed12834273b97e887172fc715caa3be0ffeab1c1ac6e2b8abd787ac808080808080808080a092ae670bd6f4c589e1ae40d5ceee9fb91ae0dbbd3c037daa07e0a56978e143d08080a03cf15545ea6e26226b9c7f2d18d9dc9ea7b034edb507b7704104c65d4dbdc825a004511c6377a766accc6ebb201edd01f8a7d246118ad7bf231aaddf788b82de3680","0xf869a0201f52c702c40589735c4b038bd94e04268a58c35afad63bb16c071d62d2e23db846f8448056a0de3dbb656325fb05cd75718441171cba6371529f1761f6649dd29b97557e0585a0a3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2"],"balance":"0x56","codeHash":"0xa3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2","nonce":"0x0","storageHash":"0xde3dbb656325fb05cd75718441171cba6371529f1761f6649dd29b97557e0585","storageProof":[{"key":"0x0","value":"0x2a","proof":["0xf901f1a08af0fc58296cfacfe6572865e2ee4529c5f8a0698b73d5efce69cc2641e0b99b80a0bcf160052e846720791453975f03e2c4f565dfc7826ae0f77bde44a2ecbf3d5ea02e94c8cd2c8e21474d293816fff83033ad626905219ffb331197d71ef1290025a0983688c1eb1e5f0a4690af3ff315d1d8b7fd1af20c7e2d2b03c840e9f52a32d5a033edc29ce482ee405a0ea96750d41b65ec438f17d1d40ebe8958d04f35dbb57ea0b9a1ff85e67683c889e4c56f5e2d27732b97dbf90f21a5155b06a6925feae369a0710ccb6126afa0613d08306ebae1bfcff2633b27577006d28b842de16969a345a00259bde6b092ea130669f0e8f211e7bcd877b572243c008b188598828ce4f569a0d357c73631e12c5087b4c17ba5585cde197539a2f81478c8da0eabf85edfae3da0a7a1e3adc7d00306a581cc4ac34c4f16550eb7c2e84c38d4bfde63d75065718ea0a58976cad0fcae8c2a912087a044288cfa2048d6f0384825b73fad8c4d08fc93a0b3cc3e190e7f8c3962803360055b6ed86caf467f2c0525713e168edcd83d0562a0396f0ac82f12889120036a4ab6d104cced7758613c9e41984f5eafd4391d1125a018d9840245bd3ff4d5e4349e2b3f2df21e7ba2c0e6b2fdf5b5601cfa44e256c4a0c9d830b51f1a60a0cee9df3fc86be16a04a1190b4185d593b43057a3290560c980","0xf851808080a08f7de8a82727a40833bf2db9070e03d4bb0cd3d55dea4ac8beb870d2c3de21918080808080a05562d4c69fcaf7778df616351f2996b02b6b9b11df787de5f96da97af2968a7380808080808080","0xe2a0200decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5632a"]}]}} diff --git a/tests/integration_tests/spec/eth_getStorageAt/get-storage-invalid-key-too-large.io b/tests/integration_tests/spec/eth_getStorageAt/get-storage-invalid-key-too-large.io new file mode 100644 index 0000000000..c0206b37ba --- /dev/null +++ b/tests/integration_tests/spec/eth_getStorageAt/get-storage-invalid-key-too-large.io @@ -0,0 +1,3 @@ +// requests an invalid storage key +>> {"jsonrpc":"2.0","id":1,"method":"eth_getStorageAt","params":["0xaa00000000000000000000000000000000000000","0x00000000000000000000000000000000000000000000000000000000000000000","latest"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"storage key too long (want at most 32 bytes): \"0x00000000000000000000000000000000000000000000000000000000000000000\""}} diff --git a/tests/integration_tests/spec/eth_getStorageAt/get-storage-invalid-key.io b/tests/integration_tests/spec/eth_getStorageAt/get-storage-invalid-key.io new file mode 100644 index 0000000000..4cd9bf1746 --- /dev/null +++ b/tests/integration_tests/spec/eth_getStorageAt/get-storage-invalid-key.io @@ -0,0 +1,3 @@ +// requests an invalid storage key +>> {"jsonrpc":"2.0","id":1,"method":"eth_getStorageAt","params":["0xaa00000000000000000000000000000000000000","0xasdf","latest"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"invalid hex in storage key: \"0xasdf\""}} diff --git a/tests/integration_tests/spec/eth_getStorageAt/get-storage-unknown-account.io b/tests/integration_tests/spec/eth_getStorageAt/get-storage-unknown-account.io new file mode 100644 index 0000000000..2d94dcf33d --- /dev/null +++ b/tests/integration_tests/spec/eth_getStorageAt/get-storage-unknown-account.io @@ -0,0 +1,3 @@ +// gets storage of a non-existent account +>> {"jsonrpc":"2.0","id":1,"method":"eth_getStorageAt","params":["0xc1cadaffffffffffffffffffffffffffffffffff","0x0100000000000000000000000000000000000000000000000000000000000000","latest"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x0000000000000000000000000000000000000000000000000000000000000000"} diff --git a/tests/integration_tests/spec/eth_getStorageAt/get-storage.io b/tests/integration_tests/spec/eth_getStorageAt/get-storage.io new file mode 100644 index 0000000000..c50846d4c6 --- /dev/null +++ b/tests/integration_tests/spec/eth_getStorageAt/get-storage.io @@ -0,0 +1,3 @@ +// gets storage of a contract +>> {"jsonrpc":"2.0","id":1,"method":"eth_getStorageAt","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","0x0000000000000000000000000000000000000000000000000000000000000000","latest"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x000000000000000000000000000000000000000000000000000000000000002a"} diff --git a/tests/integration_tests/spec/eth_getStorageValues/get-storage-values-empty-request.io b/tests/integration_tests/spec/eth_getStorageValues/get-storage-values-empty-request.io new file mode 100644 index 0000000000..a6288dee70 --- /dev/null +++ b/tests/integration_tests/spec/eth_getStorageValues/get-storage-values-empty-request.io @@ -0,0 +1,3 @@ +// requests with an empty map +>> {"jsonrpc":"2.0","id":1,"method":"eth_getStorageValues","params":[{},"latest"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"empty request"}} diff --git a/tests/integration_tests/spec/eth_getStorageValues/get-storage-values-multiple-addresses.io b/tests/integration_tests/spec/eth_getStorageValues/get-storage-values-multiple-addresses.io new file mode 100644 index 0000000000..ee78a630be --- /dev/null +++ b/tests/integration_tests/spec/eth_getStorageValues/get-storage-values-multiple-addresses.io @@ -0,0 +1,3 @@ +// gets storage values for slots across multiple addresses +>> {"jsonrpc":"2.0","id":1,"method":"eth_getStorageValues","params":[{"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df":["0x0000000000000000000000000000000000000000000000000000000000000000"],"0xc1cadaffffffffffffffffffffffffffffffffff":["0x0100000000000000000000000000000000000000000000000000000000000000"]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":{"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df":["0x000000000000000000000000000000000000000000000000000000000000002a"],"0xc1cadaffffffffffffffffffffffffffffffffff":["0x0000000000000000000000000000000000000000000000000000000000000000"]}} diff --git a/tests/integration_tests/spec/eth_getStorageValues/get-storage-values-unknown-account.io b/tests/integration_tests/spec/eth_getStorageValues/get-storage-values-unknown-account.io new file mode 100644 index 0000000000..627de62272 --- /dev/null +++ b/tests/integration_tests/spec/eth_getStorageValues/get-storage-values-unknown-account.io @@ -0,0 +1,3 @@ +// gets storage values for a non-existent account +>> {"jsonrpc":"2.0","id":1,"method":"eth_getStorageValues","params":[{"0xc1cadaffffffffffffffffffffffffffffffffff":["0x0100000000000000000000000000000000000000000000000000000000000000"]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":{"0xc1cadaffffffffffffffffffffffffffffffffff":["0x0000000000000000000000000000000000000000000000000000000000000000"]}} diff --git a/tests/integration_tests/spec/eth_getStorageValues/get-storage-values.io b/tests/integration_tests/spec/eth_getStorageValues/get-storage-values.io new file mode 100644 index 0000000000..7aded1400d --- /dev/null +++ b/tests/integration_tests/spec/eth_getStorageValues/get-storage-values.io @@ -0,0 +1,3 @@ +// gets storage values for a contract +>> {"jsonrpc":"2.0","id":1,"method":"eth_getStorageValues","params":[{"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df":["0x0000000000000000000000000000000000000000000000000000000000000000"]},"latest"]} +<< {"jsonrpc":"2.0","id":1,"result":{"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df":["0x000000000000000000000000000000000000000000000000000000000000002a"]}} diff --git a/tests/integration_tests/spec/eth_getTransactionByBlockHashAndIndex/get-block-n.io b/tests/integration_tests/spec/eth_getTransactionByBlockHashAndIndex/get-block-n.io new file mode 100644 index 0000000000..c0fda68f81 --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionByBlockHashAndIndex/get-block-n.io @@ -0,0 +1,3 @@ +// gets tx 0 in a non-empty block +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByBlockHashAndIndex","params":["0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","0x0"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","blockTimestamp":"0xa","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13a54","gasPrice":"0x1","hash":"0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","v":"0x1c","r":"0xd642ba4d1f9388c5fd312bb9fb42d189a0b3c796de55093c85f30802a85147c8","s":"0x37aa8680923f811a6988c03dd414ca00cd25d6876ba5925c7ca8ac6aad21669d"}} diff --git a/tests/integration_tests/spec/eth_getTransactionByBlockNumberAndIndex/get-block-n.io b/tests/integration_tests/spec/eth_getTransactionByBlockNumberAndIndex/get-block-n.io new file mode 100644 index 0000000000..58c2bd27ac --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionByBlockNumberAndIndex/get-block-n.io @@ -0,0 +1,3 @@ +// gets tx 0 in a non-empty block +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByBlockNumberAndIndex","params":["0x1","0x0"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","blockTimestamp":"0xa","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13a54","gasPrice":"0x1","hash":"0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","v":"0x1c","r":"0xd642ba4d1f9388c5fd312bb9fb42d189a0b3c796de55093c85f30802a85147c8","s":"0x37aa8680923f811a6988c03dd414ca00cd25d6876ba5925c7ca8ac6aad21669d"}} diff --git a/tests/integration_tests/spec/eth_getTransactionByHash/get-access-list.io b/tests/integration_tests/spec/eth_getTransactionByHash/get-access-list.io new file mode 100644 index 0000000000..ee81983b9b --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionByHash/get-access-list.io @@ -0,0 +1,3 @@ +// gets an access list transaction +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0xd82374da698cfacbf4bb58d7ab8444621517e2137c08b859c66e50e8927c7af6"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xd7853cebe1391334d222aaa161cd1a965d35b174e0c2cff881ea484fe05b2184","blockNumber":"0x18","blockTimestamp":"0xf0","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x1","hash":"0xd82374da698cfacbf4bb58d7ab8444621517e2137c08b859c66e50e8927c7af6","input":"0x0e394e7c8a2b32c9656d6974","nonce":"0x4e","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x2","type":"0x1","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x95104e47e1982aba633477f377b1511396c3fe83600224bcb0c78949be705b33"]}],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x6ecd9ea7e1958288a3a822eb9c22662c30a7696e364d5b219a164bafd9bc58d8","s":"0x3fc5322f888fabe456b29bb2b0e829482d728500678627f564ee3aff184428c2","yParity":"0x1"}} diff --git a/tests/integration_tests/spec/eth_getTransactionByHash/get-blob-tx.io b/tests/integration_tests/spec/eth_getTransactionByHash/get-blob-tx.io new file mode 100644 index 0000000000..d5c8f842bd --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionByHash/get-blob-tx.io @@ -0,0 +1,3 @@ +// gets a blob transaction +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0x6bcea0da8e703d3283c8f1124377a63023290cd188de3274d12441e15dc14794"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x60d8d4c8d64367b4436e63f43addb9e3bd99a5a4176b84429fc4f22e27a7ee63","blockNumber":"0x2a","blockTimestamp":"0x1a4","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x822595c","maxFeePerGas":"0x822595c","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0x6bcea0da8e703d3283c8f1124377a63023290cd188de3274d12441e15dc14794","input":"0x29db68258899c2fe656d6974","nonce":"0x8f","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x35f96bc70aa62a539fa99d9153b0f8aaa4594abf70cc8a8d9018e04e39a17982"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x1","r":"0xf8bd74114d425aa9825f381764b78b6dedce7dadc0b4e6582c457edcddc87e","s":"0x346f1eee39493bd5876b2cd2fa2f5661c7a35e50a7d1754d514d1b0a66ad6cc9","yParity":"0x1"}} diff --git a/tests/integration_tests/spec/eth_getTransactionByHash/get-dynamic-fee.io b/tests/integration_tests/spec/eth_getTransactionByHash/get-dynamic-fee.io new file mode 100644 index 0000000000..c14e35acfc --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionByHash/get-dynamic-fee.io @@ -0,0 +1,3 @@ +// gets a dynamic fee transaction +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0xc7dba25cdd5aee6ff7d27fe5422a4179f5913c664c3339c8e0440bd1c9cd8de9"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x155ed001f7571cb6fa37e5c9c2462b4704ce9cdf53fddc39e9d9f96f92a5233c","blockNumber":"0x1b","blockTimestamp":"0x10e","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x3b9aca01","maxFeePerGas":"0x3b9aca01","maxPriorityFeePerGas":"0x1","hash":"0xc7dba25cdd5aee6ff7d27fe5422a4179f5913c664c3339c8e0440bd1c9cd8de9","input":"0x1ee8f6decf498faf656d6974","nonce":"0x59","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x2","type":"0x2","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x13bd2394f758553be374ffa4a9455cdf5e6ef3d905acd02746df2d12361e1ace"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x421e22ef528d5c7b9c173f90f8d7a1f4d08e34b25d1f3a7b386aa9a3314c2887","s":"0x43248bd7636b5d440cc18a1aa930d50d53960189fc0f966666635b0ffe3e3df1","yParity":"0x0"}} diff --git a/tests/integration_tests/spec/eth_getTransactionByHash/get-empty-tx.io b/tests/integration_tests/spec/eth_getTransactionByHash/get-empty-tx.io new file mode 100644 index 0000000000..8a7c17aac6 --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionByHash/get-empty-tx.io @@ -0,0 +1,3 @@ +// requests the zero transaction hash +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0x0000000000000000000000000000000000000000000000000000000000000000"]} +<< {"jsonrpc":"2.0","id":1,"result":null} diff --git a/tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-create.io b/tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-create.io new file mode 100644 index 0000000000..032b61d6d9 --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-create.io @@ -0,0 +1,3 @@ +// gets a legacy contract create transaction +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","blockTimestamp":"0xa","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13a54","gasPrice":"0x1","hash":"0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","v":"0x1c","r":"0xd642ba4d1f9388c5fd312bb9fb42d189a0b3c796de55093c85f30802a85147c8","s":"0x37aa8680923f811a6988c03dd414ca00cd25d6876ba5925c7ca8ac6aad21669d"}} diff --git a/tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-input.io b/tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-input.io new file mode 100644 index 0000000000..ddb6202c71 --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-input.io @@ -0,0 +1,3 @@ +// gets a legacy transaction with input data +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","blockTimestamp":"0xa","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13a54","gasPrice":"0x1","hash":"0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","v":"0x1c","r":"0xd642ba4d1f9388c5fd312bb9fb42d189a0b3c796de55093c85f30802a85147c8","s":"0x37aa8680923f811a6988c03dd414ca00cd25d6876ba5925c7ca8ac6aad21669d"}} diff --git a/tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-tx.io b/tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-tx.io new file mode 100644 index 0000000000..955cd28935 --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-tx.io @@ -0,0 +1,3 @@ +// gets a legacy transaction +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0x0d6999c0e9e4bec347945593e97bdcdf7c25be08ca1a1efdc520dbe75be985f3"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockNumber":"0x2","blockTimestamp":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x1","hash":"0x0d6999c0e9e4bec347945593e97bdcdf7c25be08ca1a1efdc520dbe75be985f3","input":"0x","nonce":"0x7","to":"0xeda8645ba6948855e3b3cd596bbb07596d59c603","transactionIndex":"0x3","value":"0x1","type":"0x0","v":"0x1b","r":"0xfad01b9a15db73d59b0a74b3d85718dfebb7cde80f916840a006ef5f2a85769e","s":"0x60b08e6b12604d91c6e2c514f2c020562b61f97973ada18a1701937d3302e5f3"}} diff --git a/tests/integration_tests/spec/eth_getTransactionByHash/get-notfound-tx.io b/tests/integration_tests/spec/eth_getTransactionByHash/get-notfound-tx.io new file mode 100644 index 0000000000..b12df631d0 --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionByHash/get-notfound-tx.io @@ -0,0 +1,3 @@ +// gets a non-existent transaction +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0x00000000000000000000000000000000000000000000000000000000deadbeef"]} +<< {"jsonrpc":"2.0","id":1,"result":null} diff --git a/tests/integration_tests/spec/eth_getTransactionByHash/get-setcode-tx.io b/tests/integration_tests/spec/eth_getTransactionByHash/get-setcode-tx.io new file mode 100644 index 0000000000..340a124240 --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionByHash/get-setcode-tx.io @@ -0,0 +1,3 @@ +// retrieves an EIP-7702 transaction +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0x16f6724ad864e7664c367893cae3e176d362bea3a47495cec3b246555a7228da"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0xb3b0","gasPrice":"0x5763d65","maxFeePerGas":"0x5763d65","maxPriorityFeePerGas":"0x1","hash":"0x16f6724ad864e7664c367893cae3e176d362bea3a47495cec3b246555a7228da","input":"0x","nonce":"0x9b","to":"0x0000000000000000000000000000000000000000","transactionIndex":"0x1","value":"0x0","type":"0x4","accessList":[],"chainId":"0xc72dd9d5e883e","authorizationList":[{"chainId":"0xc72dd9d5e883e","address":"0x58f8fe237b593c19546e1e758a2544561d04bfe0","nonce":"0x0","yParity":"0x1","r":"0xec6caeb1b7071f1b3ae36aeaa7bf0eaecb8e006e83b3e50d792870ea95af4c59","s":"0x1d1225f76d6faac3d904c0635193e83d3867c101b2e6f6c9bb7b1fdeeed923ab"}],"v":"0x1","r":"0x8ae3402e4f63751c895532b94aee0f7b6b8ff5d0b0a689f6d63b3dbd19d69059","s":"0x2e63e4d140b0d282d56289b34f3df82cbcb2f3aa385f5438a423584fe0c2b467","yParity":"0x1"}} diff --git a/tests/integration_tests/spec/eth_getTransactionCount/get-nonce-eip7702-account.io b/tests/integration_tests/spec/eth_getTransactionCount/get-nonce-eip7702-account.io new file mode 100644 index 0000000000..b9afef65cb --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionCount/get-nonce-eip7702-account.io @@ -0,0 +1,4 @@ +// Retrieves the nonce for an account that has an EIP-7702 code delegation applied. +// For such accounts, the nonce stored in state does not match the 'transaction count'. +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionCount","params":["0xeda8645ba6948855e3b3cd596bbb07596d59c603","latest"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x1"} diff --git a/tests/integration_tests/spec/eth_getTransactionCount/get-nonce-unknown-account.io b/tests/integration_tests/spec/eth_getTransactionCount/get-nonce-unknown-account.io new file mode 100644 index 0000000000..17a87325df --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionCount/get-nonce-unknown-account.io @@ -0,0 +1,3 @@ +// gets nonce for a non-existent account +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionCount","params":["0xc1cadaffffffffffffffffffffffffffffffffff","latest"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x0"} diff --git a/tests/integration_tests/spec/eth_getTransactionCount/get-nonce.io b/tests/integration_tests/spec/eth_getTransactionCount/get-nonce.io new file mode 100644 index 0000000000..12bb8d576a --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionCount/get-nonce.io @@ -0,0 +1,3 @@ +// gets nonce for a known account +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionCount","params":["0x04361123c6cbfc38f6ee7b0202ecefdae36efeb4","latest"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x1"} diff --git a/tests/integration_tests/spec/eth_getTransactionReceipt/get-access-list.io b/tests/integration_tests/spec/eth_getTransactionReceipt/get-access-list.io new file mode 100644 index 0000000000..9c001ef58b --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionReceipt/get-access-list.io @@ -0,0 +1,3 @@ +// gets an access list transaction +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0xd82374da698cfacbf4bb58d7ab8444621517e2137c08b859c66e50e8927c7af6"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xd7853cebe1391334d222aaa161cd1a965d35b174e0c2cff881ea484fe05b2184","blockNumber":"0x18","contractAddress":null,"cumulativeGasUsed":"0xca9c","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xca9c","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x95104e47e1982aba633477f377b1511396c3fe83600224bcb0c78949be705b33"],"data":"0x000000000000000000000000000000000000000000000000000000000000000f","blockNumber":"0x18","transactionHash":"0xd82374da698cfacbf4bb58d7ab8444621517e2137c08b859c66e50e8927c7af6","transactionIndex":"0x0","blockHash":"0xd7853cebe1391334d222aaa161cd1a965d35b174e0c2cff881ea484fe05b2184","blockTimestamp":"0xf0","logIndex":"0x0","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000800000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0xd82374da698cfacbf4bb58d7ab8444621517e2137c08b859c66e50e8927c7af6","transactionIndex":"0x0","type":"0x1"}} diff --git a/tests/integration_tests/spec/eth_getTransactionReceipt/get-blob-tx.io b/tests/integration_tests/spec/eth_getTransactionReceipt/get-blob-tx.io new file mode 100644 index 0000000000..36504076b7 --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionReceipt/get-blob-tx.io @@ -0,0 +1,3 @@ +// gets a blob transaction +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0x6bcea0da8e703d3283c8f1124377a63023290cd188de3274d12441e15dc14794"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blobGasPrice":"0x1","blobGasUsed":"0x20000","blockHash":"0x60d8d4c8d64367b4436e63f43addb9e3bd99a5a4176b84429fc4f22e27a7ee63","blockNumber":"0x2a","contractAddress":null,"cumulativeGasUsed":"0xca9c","effectiveGasPrice":"0x822595c","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xca9c","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x35f96bc70aa62a539fa99d9153b0f8aaa4594abf70cc8a8d9018e04e39a17982"],"data":"0x0000000000000000000000000000000000000000000000000000000000000024","blockNumber":"0x2a","transactionHash":"0x6bcea0da8e703d3283c8f1124377a63023290cd188de3274d12441e15dc14794","transactionIndex":"0x0","blockHash":"0x60d8d4c8d64367b4436e63f43addb9e3bd99a5a4176b84429fc4f22e27a7ee63","blockTimestamp":"0x1a4","logIndex":"0x0","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000100000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0x6bcea0da8e703d3283c8f1124377a63023290cd188de3274d12441e15dc14794","transactionIndex":"0x0","type":"0x3"}} diff --git a/tests/integration_tests/spec/eth_getTransactionReceipt/get-dynamic-fee.io b/tests/integration_tests/spec/eth_getTransactionReceipt/get-dynamic-fee.io new file mode 100644 index 0000000000..0240487f8b --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionReceipt/get-dynamic-fee.io @@ -0,0 +1,3 @@ +// gets a dynamic fee transaction +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0xc7dba25cdd5aee6ff7d27fe5422a4179f5913c664c3339c8e0440bd1c9cd8de9"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x155ed001f7571cb6fa37e5c9c2462b4704ce9cdf53fddc39e9d9f96f92a5233c","blockNumber":"0x1b","contractAddress":null,"cumulativeGasUsed":"0xca9c","effectiveGasPrice":"0x3b9aca01","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xca9c","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x13bd2394f758553be374ffa4a9455cdf5e6ef3d905acd02746df2d12361e1ace"],"data":"0x0000000000000000000000000000000000000000000000000000000000000012","blockNumber":"0x1b","transactionHash":"0xc7dba25cdd5aee6ff7d27fe5422a4179f5913c664c3339c8e0440bd1c9cd8de9","transactionIndex":"0x0","blockHash":"0x155ed001f7571cb6fa37e5c9c2462b4704ce9cdf53fddc39e9d9f96f92a5233c","blockTimestamp":"0x10e","logIndex":"0x0","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000010000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0xc7dba25cdd5aee6ff7d27fe5422a4179f5913c664c3339c8e0440bd1c9cd8de9","transactionIndex":"0x0","type":"0x2"}} diff --git a/tests/integration_tests/spec/eth_getTransactionReceipt/get-empty-tx.io b/tests/integration_tests/spec/eth_getTransactionReceipt/get-empty-tx.io new file mode 100644 index 0000000000..9b38b2c74c --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionReceipt/get-empty-tx.io @@ -0,0 +1,3 @@ +// requests the receipt for the zero tx hash +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0x0000000000000000000000000000000000000000000000000000000000000000"]} +<< {"jsonrpc":"2.0","id":1,"result":null} diff --git a/tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-contract.io b/tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-contract.io new file mode 100644 index 0000000000..b0610b22ec --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-contract.io @@ -0,0 +1,3 @@ +// gets a legacy contract create transaction +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0x102d3","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x102d3","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","root":"0x19fb42ec665b1940ad4b603066bb6efef7d0b97172806da958d1ada7094db01f","to":null,"transactionHash":"0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e","transactionIndex":"0x0","type":"0x0"}} diff --git a/tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-input.io b/tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-input.io new file mode 100644 index 0000000000..bc9a26ea11 --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-input.io @@ -0,0 +1,3 @@ +// gets a legacy transaction with input data +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0x102d3","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x102d3","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","root":"0x19fb42ec665b1940ad4b603066bb6efef7d0b97172806da958d1ada7094db01f","to":null,"transactionHash":"0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e","transactionIndex":"0x0","type":"0x0"}} diff --git a/tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-receipt.io b/tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-receipt.io new file mode 100644 index 0000000000..fe929860fc --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-receipt.io @@ -0,0 +1,3 @@ +// gets the receipt for a legacy value transfer tx +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0x0d6999c0e9e4bec347945593e97bdcdf7c25be08ca1a1efdc520dbe75be985f3"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockNumber":"0x2","contractAddress":null,"cumulativeGasUsed":"0x3d037","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x5208","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","root":"0x7e099d847594c44aed09000b17536bab7dbc64be4572474bae7b4dd04ce8c2df","to":"0xeda8645ba6948855e3b3cd596bbb07596d59c603","transactionHash":"0x0d6999c0e9e4bec347945593e97bdcdf7c25be08ca1a1efdc520dbe75be985f3","transactionIndex":"0x3","type":"0x0"}} diff --git a/tests/integration_tests/spec/eth_getTransactionReceipt/get-notfound-tx.io b/tests/integration_tests/spec/eth_getTransactionReceipt/get-notfound-tx.io new file mode 100644 index 0000000000..834f8b807f --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionReceipt/get-notfound-tx.io @@ -0,0 +1,3 @@ +// requests the receipt for a non-existent tx hash +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0x00000000000000000000000000000000000000000000000000000000deadbeef"]} +<< {"jsonrpc":"2.0","id":1,"result":null} diff --git a/tests/integration_tests/spec/eth_getTransactionReceipt/get-setcode-tx.io b/tests/integration_tests/spec/eth_getTransactionReceipt/get-setcode-tx.io new file mode 100644 index 0000000000..724327696c --- /dev/null +++ b/tests/integration_tests/spec/eth_getTransactionReceipt/get-setcode-tx.io @@ -0,0 +1,3 @@ +// gets the receipt for a EIP-7702 setcode transaction +>> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0x16f6724ad864e7664c367893cae3e176d362bea3a47495cec3b246555a7228da"]} +<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","contractAddress":null,"cumulativeGasUsed":"0x17231","effectiveGasPrice":"0x5763d65","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x8fc0","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x0000000000000000000000000000000000000000","transactionHash":"0x16f6724ad864e7664c367893cae3e176d362bea3a47495cec3b246555a7228da","transactionIndex":"0x1","type":"0x4"}} diff --git a/tests/integration_tests/spec/eth_sendRawTransaction/send-access-list-transaction.io b/tests/integration_tests/spec/eth_sendRawTransaction/send-access-list-transaction.io new file mode 100644 index 0000000000..543a43ed84 --- /dev/null +++ b/tests/integration_tests/spec/eth_sendRawTransaction/send-access-list-transaction.io @@ -0,0 +1,3 @@ +// sends a transaction with access list +>> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x01f8cc870c72dd9d5e883e028405763f5883015f90947dcd17433742f4c0ca53122ab541d0ba67fc27df8083010203f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000080a0f9dc42e8bab0a70132fb8399cf03cf38e1c12cc47f736d19e6e7728356d97db3a053daf342acd24da15073f5dac02bec0501a0716165984aab2df9694882b91fac"]} +<< {"jsonrpc":"2.0","id":1,"result":"0xd07a55a00aeb93c7825d1ca42238abdc3bc225de097ee1b8b2a4a9240ae55f9c"} diff --git a/tests/integration_tests/spec/eth_sendRawTransaction/send-blob-tx.io b/tests/integration_tests/spec/eth_sendRawTransaction/send-blob-tx.io new file mode 100644 index 0000000000..f4d5b06c61 --- /dev/null +++ b/tests/integration_tests/spec/eth_sendRawTransaction/send-blob-tx.io @@ -0,0 +1,3 @@ +// sends a blob transaction +>> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x03fa0201a6f90137870c72dd9d5e883e808201f48405763f5883013880947dcd17433742f4c0ca53122ab541d0ba67fc27df80b844a9059cbb000000000000000000000000cff33720980c026cc155dcb366861477e988fd870000000000000000000000000000000000000000000000000000000002fd6892f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000083020000e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a057f678827610fe20f06921aded6f2c11bdad535b677c1e644b6cfa74fb4e8a3aa05d74f127213802809f37488e4a176bc5e9627aba8dcfa83c7282c45876397d04fa020004ba0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x4b00885bde711279e6ddb399edd61825a8a45d331d0545ab55919a1924922693"} diff --git a/tests/integration_tests/spec/eth_sendRawTransaction/send-dynamic-fee-access-list-transaction.io b/tests/integration_tests/spec/eth_sendRawTransaction/send-dynamic-fee-access-list-transaction.io new file mode 100644 index 0000000000..d99bbbc3d4 --- /dev/null +++ b/tests/integration_tests/spec/eth_sendRawTransaction/send-dynamic-fee-access-list-transaction.io @@ -0,0 +1,3 @@ +// sends a transaction with dynamic fee and access list +>> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x02f8d0870c72dd9d5e883e038201f48405763f5883013880947dcd17433742f4c0ca53122ab541d0ba67fc27df808401020304f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000080a0e56d869d8b32f767582fdcb03d1d9d3bcc47f3c7ae08984feafdcd57f2f205f5a074134e4bf0fb11ff606b47259aff0d01bf7cb9ec68cb179b62576b9dd6631cf0"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x0baf604666cbc4d04263bbc98c048000451b8c188d93ec87ca5a86b044fd956c"} diff --git a/tests/integration_tests/spec/eth_sendRawTransaction/send-dynamic-fee-transaction.io b/tests/integration_tests/spec/eth_sendRawTransaction/send-dynamic-fee-transaction.io new file mode 100644 index 0000000000..14bfc1870e --- /dev/null +++ b/tests/integration_tests/spec/eth_sendRawTransaction/send-dynamic-fee-transaction.io @@ -0,0 +1,3 @@ +// sends a create transaction with dynamic fee +>> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x02f892870c72dd9d5e883e018201f48405763f5882ea60802ab73d602d80600a3d3981f3363d3d373d3d3d363d734d11c446473105a02b5c1ab9ebe9b03f33902a295af43d82803e903d91602b57fd5bf3c001a0fe6d380224a516b802717755d2f640163e81bae64a4ab5adbcf741267f20ad66a015d9ceb9fecb47b342be00782b2485f42ab53715006d208897cc969d7c05ab67"]} +<< {"jsonrpc":"2.0","id":1,"result":"0xfa245384e9eb7d6a4a40f3bf4bf70f1f44929d8bfcdf75762ce1a015389449e3"} diff --git a/tests/integration_tests/spec/eth_sendRawTransaction/send-legacy-transaction.io b/tests/integration_tests/spec/eth_sendRawTransaction/send-legacy-transaction.io new file mode 100644 index 0000000000..48968f18af --- /dev/null +++ b/tests/integration_tests/spec/eth_sendRawTransaction/send-legacy-transaction.io @@ -0,0 +1,3 @@ +// sends a raw legacy transaction +>> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0xf86c808405763d658261a894aa000000000000000000000000000000000000000a8255448718e5bb3abd109fa0c8e3b4a0087357bd49d80a0ac24daf0c91191e71086c1e355fc62cfab2218873a074f4636f740fa4d1697b6e736e5982b700be2c8b63031a24fa531ae4814b3af8"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x66734e85ef096167acb887cf445946a1ed57b90b66ffe38af87e11294febbfa9"} diff --git a/tests/integration_tests/spec/eth_syncing/check-syncing.io b/tests/integration_tests/spec/eth_syncing/check-syncing.io new file mode 100644 index 0000000000..3aba3c1eb7 --- /dev/null +++ b/tests/integration_tests/spec/eth_syncing/check-syncing.io @@ -0,0 +1,3 @@ +// checks client syncing status +>> {"jsonrpc":"2.0","id":1,"method":"eth_syncing"} +<< {"jsonrpc":"2.0","id":1,"result":false} diff --git a/tests/integration_tests/spec/fixtures/execution_apis/accounts.json b/tests/integration_tests/spec/fixtures/execution_apis/accounts.json new file mode 100644 index 0000000000..c9666235a8 --- /dev/null +++ b/tests/integration_tests/spec/fixtures/execution_apis/accounts.json @@ -0,0 +1,62 @@ +{ + "0x0c2c51a0990aee1d73c1228de158688341557508": { + "key": "0xbfcd0e032489319f4e5ca03e643b2025db624be6cf99cbfed90c4502e3754850" + }, + "0x14e46043e63d0e3cdcf2530519f4cfaf35058cb2": { + "key": "0x457075f6822ac29481154792f65c5f1ec335b4fea9ca20f3fea8fa1d78a12c68" + }, + "0x16c57edf7fa9d9525378b0b81bf8a3ced0620c1c": { + "key": "0x865898edcf43206d138c93f1bbd86311f4657b057658558888aa5ac4309626a6" + }, + "0x1f4924b14f34e24159387c0a4cdbaa32f3ddb0cf": { + "key": "0xee7f7875d826d7443ccc5c174e38b2c436095018774248a8074ee92d8914dcdb" + }, + "0x1f5bde34b4afc686f136c7a3cb6ec376f7357759": { + "key": "0x25e6ce8611cefb5cd338aeaa9292ed2139714668d123a4fb156cabb42051b5b7" + }, + "0x2d389075be5be9f2246ad654ce152cf05990b209": { + "key": "0x19168cd7767604b3d19b99dc3da1302b9ccb6ee9ad61660859e07acd4a2625dd" + }, + "0x3ae75c08b4c907eb63a8960c45b86e1e9ab6123c": { + "key": "0x71aa7d299c7607dabfc3d0e5213d612b5e4a97455b596c2f642daac43fa5eeaa" + }, + "0x4340ee1b812acb40a1eb561c019c327b243b92df": { + "key": "0x47f666f20e2175606355acec0ea1b37870c15e5797e962340da7ad7972a537e8" + }, + "0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df": { + "key": "0xa88293fefc623644969e2ce6919fb0dbd0fd64f640293b4bf7e1a81c97e7fc7f" + }, + "0x4dde844b71bcdf95512fb4dc94e84fb67b512ed8": { + "key": "0x6e1e16a9c15641c73bf6e237f9293ab1d4e7c12b9adf83cfc94bcf969670f72d" + }, + "0x5f552da00dfb4d3749d9e62dcee3c918855a86a0": { + "key": "0x41be4e00aac79f7ffbb3455053ec05e971645440d594c047cdcc56a3c7458bd6" + }, + "0x654aa64f5fbefb84c270ec74211b81ca8c44a72e": { + "key": "0xc825f31cd8792851e33a290b3d749e553983111fc1f36dfbbdb45f101973f6a9" + }, + "0x717f8aa2b982bee0e29f573d31df288663e1ce16": { + "key": "0x8d0faa04ae0f9bc3cd4c890aa025d5f40916f4729538b19471c0beefe11d9e19" + }, + "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f": { + "key": "0x4552dbe6ca4699322b5d923d0c9bcdd24644f5db8bf89a085b67c6c49b8a1b91" + }, + "0x83c7e323d189f18725ac510004fdc2941f8c4a78": { + "key": "0x34391cbbf06956bb506f45ec179cdd84df526aa364e27bbde65db9c15d866d00" + }, + "0x84e75c28348fb86acea1a93a39426d7d60f4cc46": { + "key": "0xf6a8f1603b8368f3ca373292b7310c53bec7b508aecacd442554ebc1c5d0c856" + }, + "0xc7b99a164efd027a93f147376cc7da7c67c6bbe0": { + "key": "0x8d56bcbcf2c1b7109e1396a28d7a0234e33544ade74ea32c460ce4a443b239b1" + }, + "0xd803681e487e6ac18053afc5a6cd813c86ec3e4d": { + "key": "0xfc39d1c9ddbba176d806ebb42d7460189fe56ca163ad3eb6143bfc6beb6f6f72" + }, + "0xe7d13f7aa2a838d24c59b40186a0aca1e21cffcc": { + "key": "0x9ee3fd550664b246ad7cdba07162dd25530a3b1d51476dd1d85bbc29f0592684" + }, + "0xeda8645ba6948855e3b3cd596bbb07596d59c603": { + "key": "0x14cdde09d1640eb8c3cda063891b0453073f57719583381ff78811efa6d4199f" + } +} \ No newline at end of file diff --git a/tests/integration_tests/spec/fixtures/execution_apis/chain.rlp b/tests/integration_tests/spec/fixtures/execution_apis/chain.rlp new file mode 100644 index 0000000000000000000000000000000000000000..2b393a8987d2e1390ea6c2f86b166ed128f90840 GIT binary patch literal 54615 zcmeFa2|QHa8$Ui{C$jHiEFoF4?-~1^ER`i&*6frBG1erNgrsmqvQ)|vO0ttewz89` zBxE02{O`;dOZnte{l2f?@AdtE&*wAeJm)#jJ?GrpdEV#!+≩iWG@7lG45^D7U5 zXY;xT&pf{SOx#MQvNxh#$oGgkJL0xQC0h)z>xJ%zfqHYl-0&iYhc7yq+No5TFVOV1C6^g7g#?Y^uBq}i8WZlxrIE3fQCY4j1Y(t zIV&3Oh=QlGe zh`7~f7V8x#jg|Tl*Ug3~qn%b%-^{F6CQ&ku73(ZBz#eh-&BY~RuVIGlg`KWdY!Qcv z-t1{$(PSZoihSN9{}#Y+-%IcWAkU?Bss8Lc6>;{(@^>M=(a=0gbDR$`+HSZUzWL0sk8^jB z59Ho(Ag!V)WMeJ^n2TK&&nqm)+`so?lI=Nn8I?=1E4`d={?Qn#0+L57GDtsM@N{bc z1md1DY7!7Dn1L1C%nEJ=fmy*2`c_bAi~)KzSVQ5#6jnQq9JGc)tl;3vNcZvP|I~G= zH-$PVR;UJ26cMlUnXl^wi#0LT$x!AcQGm7m!_+gjxrp-${4_C7d?*=vaX*CaxV;<~ zvODT>2<3dm5^f3_r5@orR@EJrIm0axUliI`*IH$+8QB9+7~{2{?@tU8`a_he9J08o zz-4*gJbhL~()PlIu6klJgo~m6&i4fcdS{x`fY&6q?{{>xDG6l}d%)Wl_6-|a9=I>) zzdw(VrldBDg9Wfmpw6ADICAUiwNI~~B^(hZO-*d5vmTWR9zaA$-c$BRqZGy3zYRuO zts~$N1O)Xz1OkVEuDq5=)}+k>99_l1Th*ew!GWP`FbKND0ega@6)0E7ND!<&TEAt6 z>M~|S3zP^8uIMpf5U@&t9)W0s)jx`070P?4hE%gUrN&a4oX1*q$eJ@__*Z| zh+E3o#rMO~1HA&4W@^ntL19IF1axm=Z52i1&Pt0YSMLK^`YN()l95SS{WrNLb!Qw; zs#*i)H(Cdj9WM3T?tRZ9GkrRh60R$fNksP@EkN2t#x*&?79siJ+v`8+v^CDvT#(bh2uO_^v9v%Rl0tXC)gLc@Ow%0Z4jB2hi`g zKO^_l9M^#1=(#!NT!ie|%5r$G<)aY#Hxoz~0`P<)fVeYF^vaS-a}|w-RD4B>FCRI4 zJ9xp75RNv)GX!g2ch;9Z?6=1)fN|NvV2%U^?Om z9ODyL^`bb_6uaiMIDd=XH{k1zkrN2FHt=K9FB_gaZUqmVDu-QUI&_7oDlB zbT8Kp*V4>Xzz*-VUOIi^Zdw#Q^vW4goYC2eCHzAu2R#%DKXL4EdWP_#7`|FK**6+} zdZwe-aEXvE>LYVZ6HGvYeyCE!Q(BFV437RRtRru2(zjc_T{YnjoQa$ibS>60%$`3FD;g<}>n z0xUH!A~uJi1UR^U*AwUf7{5cQV5n?s_gY>4>y5Z5Tlne+EHIvg?hCAKOyGEMbbZZ* zHnhTF8!B6hh%J2dhhbolH3tVz2j!r+7zf33pl1Co2h~OT5&hZjzzo38&OLX&siBow zH6eQF)T7IMaZ1kphXe8Mh94x&S~^<;Fl2^Po(iyy&J}0|K8;WCmQWo`-V0~w-up7E z*4DLS9O+5?Tj0O~@HD4+?k#Kel$d^z484|-#9qn}puDK^&8py#&)#a6BtVj;jBJd; zQdhojygzEk@EOOG_;a0aJtjh&aHK*wXm=xzlKe9`K)Yjjn#*H|;zytKybPe~^%d5? zhPY&R`BBE@sDvK48bDPkcq-d*&NmG&+=*7@yeWH;gYT#ulGQzb$G2x^Bea)rh?a2h zfz$t)-EPa(vOx(P{=i1h{NhmNN~r3)*b1bZnZ^+FHJ7^;&|^YHZ*29`5C*QE! zAy_Xv9zSJg<7j={4d(4;<6;Nf2W+_9TZ)lb?GnBr3Rl}q^^L|8Ob9RP&b~Sq`!ytq zn(RR9jW};Hreu~^PsywSO;Sc^NdKvr?|2RjhjlY_2RW9Y>4Ap{g;l;OzSzq-xHYcE zr^H;06anQ)Iz>U?}DX9q27rUK(VvlIjh=Po@QnG(MFW))Spr6_-Pr(?Uduq|kA zYp{(gZ8w4chW2%eg5doLRfU1=PH`PoG2!H%7w%Vmbs}`i_Y@r5BX;+!o<@H|JOX;j zRAh+Gpy3k9ABK|$jxEM>J(T?@;v=>w)p{ax%mFE1VLwuz{7$mD=R8vm(9%fZ)gSK6 z-1J2L=p}NGml7$9M=g9*9|<^h-_Kty9n4St3|i{kbz_t zfl&Xe9-<35Hf+87u;|6!5X(WRu8m zp(+?o?)**0=rV-M?)>`EQa&`CdPH7$kT=5SO*0*8 zo2W$|zjW3}=ltWY1MmEgrRTXd+IvUqN61Las>sM7uXF-}hg|W+4NThuB=pQyOg){# z8N9XkA3Mi{yiq-PD8#533@4pXv}d*y&Rb(g(PI6Sv^Mmv{3P!8W7X8~t!WS08IOmF3gouQJ}LWF z$Xp?sX;hb}8Lo4Zkr=~HK<%l4K&^Xs=kE(Uy6#%6Y7(4Et=AcBQ&N^S|FHMAVvrfx z1VA%bIbG!o4K<}mZMzqG>t)zw!VAkEm!v}d8JbT!cz2^5bako1c(LmlUBb~hHtqu} z;5uG)+trp;&qJWA2vo7=mT1*a<`^v|U%d~sQMEyaVPya{Ea;$^k+DvN8hLdt>niLa z5S*=am{wH3aEu6cfk`L_C0Gk5<$lXSk0FDp{){J_Wf*-d^MnEb#B4ic$)WAyyfu?; z(AzWN!IkfbB_WNkYTv=6`vfJJ0HXM2-|$b7Q%xMla17qBJR4r=dn$gm{#DogCBG`@ zRdS>+^>1Os>d2`8jR=*QL2hA=3N@3e^oM)R1o)bbYMeakds#$RcwaVH0mqH{DH$$4 zpQ!rARY((1=27i5;!3zgVIYGa5nSVP7KXH;`6sAY8)Wgd*X?E>?vm`X6NF;cv#Kw> zck#q?rY|(M&P0(FQoR7&d}KZ1qJt8x%4{+h?c>HIo)=$lke1ae>KWwLX@QfkvZ4Rb z7Pz_w{;}AW>}+fBPg~$W4*B2Lu)YN%=~DzUSjsD%v<^iiY*chQ;_{ ziEgP|gDo2|g&pBw$3EvtRP_O0(+U(JCduwJ)6V9;&)$yx_$b<8SLd ziCzjnU?le3z!I@R-d=>GO+f70m|z<#e<8>G;@Ba^)RJQH`wG;@~VobH)0$VHO z3EE$ghd{yenoBZzY$)=uhCc~ykHp;{Pn{bRxlHV;>)*l%O@6JmlmBkc@SB ztmjVKYQNc-6a{^Q=K^h)M`I9CD{irGsBe+WDkvQaLfX@zIfUgQ0f6j_uB2x7JAvl6 z<i@BLFC3ZJgcDJ?FYeC5+@%V2N)@Z*X*H<7&MkJE9WBJ!W^gT(=$|YAvpM##eVT zB`i|r(A&(|UeCPKCym>mCNfLa>E8a(iVUXz%bnyw=3}bsLoO*7PJLCTDH~T~AaKh{ zdN6qOmY1@W?Bkg8fLz97UH)vPj@tuchp4_xAN$5P_Th{GKIA?H^#wTckY|PU;_vD}CrB z!Qpa?jubAcKMXwa7SB+8;JbgUPt)j?NOj`ziyV9%OhGOn!KYsiOp%9$Y98^4eomC!D)> z@7?U1vl`=2H&9hS;RwNb!*RtP~)SP0?}IFdGNQO zwhZaZ@Mom*KzSVX^o8D(xQA@7mrH%JgaeX9-f>C#eB!n?6g4IFm6jKDcCrQ@bKjDgw#e7_y$rBTUYV%pOLRT zakE$E(O70LEnpPYnMv}7Hm>4^(A=Bd@%bJ)q4-Q9qfg(wjd!`Ge|r>pg6UT~iO+H4 zlDVk2>>G9x061ot-WmdaRe;&2@LL-)^nK@{Qkw0S&F~$0?P168`~(ZEZXa*XD?Z~V7TfjX=(upGd;IH_p2 zhw3-C);|1R)u5d{JZJ4qnkw6mWCsVxTnNzx&WtlPXesb!9QrC1lqOGC{rZVH?(VPW zjkM}2sns))hM@DJNd^qNt~ZoxI<&CrW1ux+)dpLxRzdfNt%_SY~uLHy-BcGBH2uFD&wn0Z^`g6^=J4|Px;xhBgC8~(0U@Bk{IBfz=u9S z{2uWX;J5$Dq~o!Hr7yl8#&$^X51)Hr#BGJUBeC7c!Or#>u@BOQbsPKufRjgz_N-`^ zF4>#IDbzSsKSdV`J+azFL25aeY28w!b_S5ErOg}j>G%-V#e3(3B5x7nmu9->d+5ve zs!uf96ID2_GNu2}_K02hba1f>$V^3!+% zk3N>)_!uhLJ<#Gn1rX0&z8jF!E;>H-?6xr=#17C^8VKp1^2z#q`-1y0ySs z=DknL=W$|!t-)3|kwVD!P*@KE!O9$&d_nA|I;#Z?L2~Hj~O|ee7qI+GTYq@&H z?erLZA$*&qfY^K?(760hfChoU(bhkJ8EkVG|GtKS)?WGyJQ{VlKs zgHpC%Q3(PRn^H5i$*?cE)6h5_-Y zQEolacIZ;B(r8vue+BK~LtJvHDfE zq=!^;Ye6XhWRU{`PFL{0r>Bp?_q1xe_O{L1y{`AF5J=1QF6#H=09cbB002H^Q0a?{!iqqK{6pH1zNo>OEUR=%ZO#dlH=kRSEKXRjA#T%=|AX z{Xgs#|L3|}Co>4!pP*J8*lwV8sKo@O-|IenkrdCIQK2g+jST8&EE+kf?AE079_nax zb~64X-5&;}Ej4ZpL97EE-14-dGmM2ILi&QI-EjqB=bkY6$Q>5Y1Wx(K1TuMZ2KJHX zG{xBR+GL0eCJM-@=pO2z^@%SO7zXn6ljJ^*8INal`6Y@rA7!`ihJ?aU7^)6OWm_aTim+lHI>IrBf_=lVhG?8dtk>|cA|{UA z^o?EAP-uHJ)kRstV;~z2fUO^k2gk~&c0BayU``3E$8?0Qt%d-8GxI!@dy{bru>sob@~Y!G>Z>sLET z`Pbc41%lK)8+MXZ!1u*vuTdiS<)ehnWuD&2k3uf(Y+$m&EzzrGv6ove-wjAxN1aFz zRW6^oc(<>ZWB>kRf%L zgBx}dVtW2Bs+a6q;}Ioa`A&@Jv?kkMHn?y>G@G2`&;y0%CP0w?6>gcwq93R$Q}*~1 zToUmxTp-$;LK@E9eXVEt=38xSP-^o~bM}%`(R&-tN|&*Um@eGvk5>oU+N*Zd*g7?O zRyYB#WVy6koRNMr9<5hd@k9i^PkYp`HBTZuX0G|TulS2Qf@X!E-#c-NKYX_k!0I7g-Kp(ccr9rr;NJBmJod*jX3JVZ6vdF88K?PQ zlL6Y27bs2=SSBh(^g`Lq(v!hZI^w8mg{#Gzliu` zuba-(C+>tE3!&-A2W+1k9G|MGn0gVS)pxQWfR4+VJd>&V)-HdV1LYD=J{2H+dHxJP zE_1e5pPfFa_%vb9Kr5XnkUpQUmY<~-xDqMF94G(a5fB)8=78RT+ZLTO!&45|So`ah z^UcbxUPueAYG@2@jMGBe@NR=20Pu}*P*Ur1#!_OrzsfQoR%P?jKar6x#m>Bu+NThQ zN(a!rH)tj@Ui=9D^2%+oS+&C=bcO=^yy%DFUp*S~;^Qx_GNu2}_K005|5R=pb8c&} z?qUBl#(%vY6^UTBM}+TBOi2RR?)=x866$LyNI)k}QuW|)*&<0NZT>xzlBBv1v(r<` zII{Z+N#<(b-Y)_slu}rH)fMI*bQ;5UGKHK@q)%p8loYI={W_WVq@~<vUC51vaClEy_;@JaZoUESFQ8>4k>&`*9$5vGz4EfcacdAMk-!<4~DIm7H5S!ZJ z=-LLHMb%+wB_`Vf4mY&^vxtJ>81VBCaQx2){+kwXDO8ZH1*O3uzlFA7RJ!L^Tq50s zvrjQYXJiAH0D!0S`-?LAt%_uxznb1nBCGpE0^fNCsLJy1dP{wN;qp9y7h^4C(5IrJ zBHY|Irj_fkSC_z7jIO#y^UA%<_LH5BNP9jsm)QF2R%L%Q?v4 zy??otFx{TqsW6Kx@YSc&^JV`(1c&?twvxbh zlUfH`+{Y-e{buU7*Uptok;pA6WFS>qROm@g5zpNQdG$*Kq9Y%xOt>GC!?3)iGjxA&~o*Pgb4c+rFpIwyqtw&Yf!;gTGV`0Q@6xbqAXA4JVKPAK} za)RL;iX`G8z-(heU@9mOgrWNY?Kguh0*12Lz%a2RfybZ@!=Nz&GYhczA;C~}bm)u% z+w}y}UD#^vhvz4h>qZy}oI7eDI99)LelSoOiUWo0TnkHsqkju*!MK$FPk3c25FNM$UQXqa>HJd3OLrP zh5KD$Zc*!<+0&p;iGTNECI9QJv9vv;o)$vPU;BV#EL!;!`Q&@J@9m8{IR(7-7qGv? zdj3-62bhXGy*$@Rq`eS&F9~~plvnIhiBof0wv4or>lv%L7iw#9X)1v4OiA{1!ca+* zB(QBIv`#7)Z{O7U18;C+zkTV5oICyn@U))#^p>Y8Y4(k+)QVcxO<2~$o}unMFFzU= zg-^t`%3xgTg7RMCejK07w2Is_`~~fv z6Ba%-iFet2A6-b=U#L3FI(s<=aW3S7<8K0Yo-dLd>IH_I!cM>IpqTDjsrTc>8?9nG7vJ8>Tr$O#8TT1?K?D zg?ubR4O-MbHj`5k*2x_7k7pZmYkg5a2qoT3XCMgdGG8r;_Whv1RAE@}+t3O+%C8ay z2o+nfCD__AFuZj?NB6bfM1%zZ4YW13238O##ZTRW3UtG!DXmw)n_pOmMtLv!T3i~O z@LS#s2B!P|l1(%=XX~pi7)?@|XdIu@`(&E*4nAg*uPs2<#Nu^pX#Ot1XZwu8T=kAE z&d#}E!k$bWT;-mpxoMEVN<34j2=v5r!mU0q>)vHWV{(ofIc_5qZP zV?zawl28>*L+`k(0I=`NMt-;6oDJ&i;mCqIaYcFMI@>^{DMjVuQkpr0NRT!n+X6^n z079!qH~!7n3)$0WJu(e?E(~4}Eux)n2*0UW^356m4(}I_nzbEzB{}UFJ*b3Kw!W#~ z;ZR!~8WfYJcB;d6VwEiYhc-ym;`vqDHtyWkV4G;PhTzL&9KT9&QC_CWEDT$6Oj`-3FU z2edu7a_&1_?}!sue$wPuD6F)kqvo(R+}zEC z{Q=nQd^M0;SVhj6HJEf#mUepOYffI>tqRlQk&C#muP{oVxUE$HC|F!-G3RWSUDDHW z>uY&=;Vu5PbN7lhyayKn3hiYvf^F6U0(+kSs)VDhHj)ug0YfW)RVZ0ou|bxKd=6)~B=UqB;+2zjub=agQmw zw#kM?_fXo+B(H+)wtVJ)k?F=Y{r{AV0$U89K?DOofvq&K-DKCn789AqAI6vAUaHBI zXBN2g#qw6Pm;{c$7k92!VB;%GJv^cde;AoQW8AGCZu+WUEF?$#qS)eMC5L3l=g3=^ zY#QFSz1DQ50}6+EF73L#xa{-p+|e2S{*G*8Bi(LpKd+>Y);KTQOfA5%*X?s6;SjXq z!}Y45DNP#uP>*X9$BQS#-f_}|O-|2k09*L_Nv|Rn5d^XN4LYz1x=IXT5C}WU63Zsn z`62}zfok{xY`H+bih~CO8xY_JlX$Vhwk3Sk0=5peM0gvI!WiIT21TG+FdCEuCe$o{ zn9w@@qb*R8DS~o6GR^rdumvMii9aKjP)CMbX8c|pcMn4Y;;c@qws-?XRukkwfDF6k zqkNegBb2$=9sLJQkTYEohS{;L6!pap$_yvxe;A0K0v`LG4$wsjllocrES8 zjdt#v0wYtYU+pDF#SST{PM6hf*h|32EX{Iv7z+5@U&eY1TP0nzc(Qx&m@vTR4tMA(%awV1c1)GM6Ee` zDz8sTWL_V;&Ra0Oy1RJPxY@gRB2Iyw>5Us;LahFL|B?CJphC|aOCPVIcFTywcZpMb zm?wEIX0#FxfRU*yDl)w&9<6QV`Ye%bXT7umyDlW)>Y1L84`z8}4t=$1wAd#K>dm)k8S-|P8L6W@8!Vup1YqJBwMZ0!qSQo%~2-1sh-+fn}Nd6IEec`g= zJ=VKCUK@9`sgU1Z!hxX)r zr=UYsl&fGJd$Z$!+VzI@zVIMeZ^V|UHWViOzGKSxNlik{_cKXj3qrTq@w#*!|{U)4EFnRXA zfDc@6>OhsquH0vz4Ez9|gQKA}D{>j}6D+%o1%_T{)i_EAy?OB{=8-dHi(#J~(pMIo z0vq_&#eercv$c`0O<5xE&M@SL?sC+XY<|sbrg67yc;|grC{_916w1Ov0AF6n&J_R3 zd5Pk0-JcOzFop-wRJ-pqw|v#YXFZd^HG;H}0|A66a*NlRtqnpa#i4f!eqT=OW#8Uw z=RX_z2q+zYCH|>xfaAu{%;VQb0H2o=!oZ6(&CsxHaD5dS8{ZSjoOjbnb%EQ!l~1UCcf9Ib1GZqn4a}7Vef>03kE7 zB5yrhL+0Nd?4#3<$N8Yyr{O-Xd-`qOv(9+s*XF<^@dyjM>QGGm;mOe8qumMJEwnicDh6LLn|BV=fIampT_?up~I2K$C71XPt>79$g z<-diuU}!4;D>|Xz9i3X&??AADPNV{!xCtptjGuV+)*QJ}g~Y{9jlyGz?!gb}PaTX0nEgi7 zvo6t=mY>SdI}?|)Akog3KdZ}TvcCk1 z2euI>cbyj%DhEz8T9y4_Y^uuq!b7fJRfr5Gd|+=(^Z0%Gfg$_QaVVpElR{X|MiJL?wYD{}_DF~aDu|0aM9N}e_CPo`{Hp}5Q zZ;$i-Z0}B^ zMA|+qZMe~%<#bP@w$a%;x^$M*9184>x7i<@v}YuXho|GD`dyYbE;&Y7mXr3`AK$oK zB_stm6Qy5mCUNq5?}zWQYcB)=_L}9#9Q_N8= z_8dT?*O$+&+k)alCy`&9-ZwKo3q~0F`2**R;65;bj2wcp(qS9mcr;JHIpzr|r5v zL&AE=Kwb6??XEOmliG7iP0l82TXQ9SK-ER?#KW{}7laj~qPuI;GX@e&=iHYRAKYun zLx%7JJDFZ&ISlV`s7}83hW?J;$4Wm#K3!MgTn9O?Os|SaU!c}*uf^dU{!tRA5^gGc zKUemXsmgnuv+uC()4LbT-!*{p-mRSh>zV7+2egBOiym|Z7+8Q_ga8XLty^H~sJIe) z^wxc2>{dN(!;iI5dKk75RRS9-aFmSB{%Oh>sM$Cj%rw9peg6vqgX}|ff=*}+NGi6egm$`bw`deL>IsVASX&4%*%1` zuKKmMvjAFBt(~cvK-qBt#9Ko$-6z{D2E@jdu&J`K0V~7N!bZFU6)?2&-(}EWn8o~} z?cX%P{>cc$TR7c%Y})r*cni`A^}GU$GMqH2FK!0E^rjI45QNbYAD|JZC*H5w{V7&MhDG>W!F?9rdsi9?4ke_&T0+`u zpy`BwRE&4I+1L!1(<`H9TK>-_G5N%6u_*u?Y~5q0aXE)Ru|wsCo?-n_{3{C|p)tJq zIHEdCZ*SMI&azybl+byG3zC6GgikCB#N>Lqh0_NZ<9Z~a`_%ZPv zjRw=bydq-y-=E5_qV2YX=6|v2KdtZo>v|O0Vh9Z)xbJ7Q{jIkjp}*1lWK<(B+>r6Q z3#}=Oong|an$GVWeK&eZpA;~0K6!D>>rZ3T3#D)%dk#7^#Zvx|Hx$PWmvtgn0f_=Lfn&Q$7~QvjP6@r1yYK&OR; z-X#9MhCX*%S{E*o$x&ux%$tkU?o3#;MRPq6C*kOS8x-onP!a-_ttZ%;xGt^zKot8N z1_wfcShIs5U=XmkHN{$#h=-DJ;9#~X!8g^w3I+OQx}X65(3Il`>_$x!OyIOv(`xS+ zPK)8X*rxR%)h_UP3vj$I-r|DW<4>j!3|EN1k7(IP>}Io}CYQYw^#q)zP~x@|5`0k$aQ?GW(o#T4viS3;g%tbJJ0a zEmwYhq)@@CT1)B2nb}sAjy$3BtIecm_-6f5@bu<)7Sz13a35FHZokedWKi2h&gcB0 zG(o<@vjz`e9LMZYT{j?9HsbQM(;~&`@nI6bItS*j3izRcD)<=%4kmC%^XN*Xy)Jq) zp{orX49e~{F!a4&!i-FBetC?PWoiV2g(*(%LZ%4k}lYYAi?pDDX4z#n&_?&Ifmw+x2H zeEl+N(L>eT5IAv4fn>>hcL^6?jQq}r44?1(q4&nx@mTQkTfc!0&?Ygaeyffp@0fSqB7!y#9 zjWJO#%?2N-ViOD{pdDqkUvvW=N{u!`fC3y3m9M9Df5hkzU=ag@KvXc*-^k(Up%K^) z!9La!4g?=9qr8`4)q6jA27mq?@5SLL>3||z&ysreCtF1BKk%!SzEk=@K-6B5XDHf) zG((zf`B#pRO2FC#|3LuaDGsQ=N#uKEBjz*f^FW_Eq56BM6%JR~{rYp7)0k3d~ zLj=#f?WD{Kg9>j|i8B=Gh&?O4U${~Q6ksaLb5RnbY8*3iCRcl%{w3{`$jTf=Olxfu zt=a5BYFB{U`L)UNVRx2xCKz=GpH_Ez!|2xo(s~QNgkv;HZ_h%Iz6bvV00AKR;gyqg z=l2K>DJ+fn-*d;|w7%V5eplLDj9&`{!Qm5bIW@6fT>xqa% zmnqc{&Fjbg)<_%uZ2_=CvKt4NjX>$B^tD|sb~%paFO_$v@dV&2w9Z<0+~>OiC?m2Q z{1_X)Xft@4MIH}{xZnF|9B-QPB;}4)Di+@9D)9bQISM0Qhs%w>k){@F z7k_YasHz1S{82-1$c#M7}u%UeF&zZTWHF&NW9xWo z`BJM8^Ys-s77x~7b^iLmi_YU$ue?$ans=DHK0w-B&s4|hEmVzYq)IvRWq)DK zeTZoBHEu0`^W?h)L0N#mL=gppXr%@C2y38Km#%-OZyIOQP)B<5tNcQF%l2$6M*PEi zM1cC$eRS2)w={%fw3q_xkE@oj)$(tPU&m7zOj_Nue=*b#lS5geFoF?-5zs->;N{=J z2xtNFgu$0b^wm{OJy^?i4b@S`Nc)Io7d zBS11Q?Ypw(Eu2TgP4~NtT!jdtCcZMrJXlJ$XcsAg*3KjC4bgu4%Xi6wKg0~WGl483 zj|%3c|MXb5t9#(QYT@Gh6gvSGMwSB^$=-mckQp8kf22`pv|^BGcc$IY*gH**)=5I# zL2j>X_%-rP0BH29^OPOpJU<}WE%Da?=(eLS)KNZVzigRdhOpgEwUIM4-%~l5!%E+N z+0k)8Xb1tEIWa>$+*c1R|I8c9H>S|3iY#S)$}@z=$jS7ftNwi`aLR+up(Am2zx4;7 z&$D~zto@2!D^RE7Sg8(t$f-tB%dLiJ|Dk>T7mE+wwC(+_Z4I{Z+3hCq-_VY_2ZGtx z5y8tphiJd^+BMvkCFl~coP1Vi=A6lcZ-(AX4osJ6Gr!-Ijcq5e@mnf(8D!GT`$LjP z^C(NCDXij%ZHZR&u0`Y}ruSZCo(^KeL5#8X@zXm9f!KSOmA%>)t+d4(_=wDTscZ)i zNHjtH9G+xf3YoA5pME4xMjCR?<%Hcc8ufdo+L&OvFZ#QtWAhO}FGKNBS9}z9F+jmk zYGc9>G88O=kcWbB@K>skFgPS~qY+A8gZCdB*6NrCiU>5@g0E>&{bCXZb#c%=p@O^3 zD7>MzN)k76#nmogV7b9?Rr{|B^y9+{CJcb%JtYi*;{6taw`}4=htRmX_1F7BK6JZh zH1R3}+mi1NUwdRTA)JsR&Yb?$ z(biiMu$rY4$7c_6@KfkEsy5}&xk{J*dcS}+HNKs}d&U>XrI5Zy{)CdH0`JP&CN3++ z*`zKoMZ~ecEhX^bX`+&T@si1*?E&SDaA!dBV=fXIaXbB;-_yR_>e4F#I^Xj@_MZ%z zJvhJU{egE3X=A)CC9`RlB4n3k7QVxBp3x;@=d9l=_0m`=F@wF;l%fw@r56FdA-^|* ze7E^>ZmCh0*9%*z@4IlAob>TfKi|U%SyDQjiX{T+CFpm+wVmE$A-Q%B)#p;Wj%CNe z=Q0B!w+J9l+KZ31mpzzy2sF!`uauVDJH6P1SfSDdMly=-zk5LC^zzhm>79jx=FMAE zGXGC{Pow>cBR#)Vh9(-F`1oS_r2)6k@bWn8-l?zGI;??$iAS=-Wn(5PK9h!N(QkBQ zODcP>NRc=sjJlWIJi5mcc%b8?adK>b?@09ZR%@Tq@fOmI&Yk%-UGa}!oq5ySD}?pv zO{*W{94L22Y|{U#f;t9{Hdu32j5!QbphLV>@sEmMQ!;FqFtqSn-VMTg1#=i)U;sQ6 z`W_wv-T50H9VVO92wB46De1;RzQTq%CQy|6R|JOj!@@v|=B2#9CNR`bIO7(L56Qkg zxss8sdUVjjZMGZ#&PyJ(K>;cWR;FeIpv1~CWpLrB{|$PD8071;xtABk^3B;~{H2_- z(}i_-&jQL^=U>}6o2!skMlogY>m)NwfS&tGo?vfpV@Cdczx;HG2M*E|dupbbQ$zi= z+pXW10m9Z(yYO8HTksc#DNEJf=^_2HpvtK=2t|j%AV%uoxLcp z@v9#Gp)C{#7s7(sJ8*Xlgg_a7XYUXbs5r8Oqf+7yMY>?&?r0dOHAdm<)_0sie8m|g zsdjfI)^t%a;a2`4;&gw+1V{p9U+0d78ay*B^KAKH5PYsh}zt1-N7v z+9gZ`L^dB8Fya3+ZW|U(+_f$w${_`ekl~iA*Y9s=cJq_OgCm5QS5sfyGi04~ zxtu`Glabm>c(>}DO;YE1A3Y$b@6n{!qNmXXgz`6Q@Ue@ycw*oKi*$CY#i^z04msS4 zCEQjNmYn3?VP`Ji&wE4d=!j4P#S;WOpZY538{0>dZ%i-81uR3{Oo2b5nm%1=)@CxP*{S8dM5~&ejt!26#|v5 zHLTJ*6hXx#P=PuKrLY1&aCCf!(!jva>Tz6X5%Z`3BW}!b);b5ZG}smxR>1ZI)?>i# z5hy+QG!UHh&uM*HTQwuV17JVJpKwr%!jfI9STZ6U0_FG}ED^Xrh+KlcKn7Taf#T91 z{rc(fs{~=9GHuhoJqHE@?%PLy37+MsSMc4@&E8tW9SZ*hm^NoJwcm*i9Mpw-oP|#< z2BjB|o>e>Wtp4Co*MTEFct{6p%;>-T1rz{$NH4coWTL2$GT!;A;NlE5zcP!uYkSY> zfDG9>la6Ky;MCH0;=vl8!Y5gJ3UQ2ADcD$og0)QSz0=C}cz^Uv-h=cxwtAWoz?M%x zaH1z6*-nZ)GTV%ROf2qS;+sY~*`NnTVM-USBdbQBQzgPMuQszO zST5qze%-Z4f&dUODM$jmF$amSqGLn5gDgI$xGga zv5dvyuqPfKll>2i=QSVNN)stuDWV)+1Y=8iluzqAGz|q%?u>?BdT4mFcdo6l+F8-q zENg&2Gg#J^ujn)I^pQogKDB~X)1o~@n3i+j@vlVkTpDl1KkiOuyXla7bL-f$X_8C0 zyHzcx{Mn;yKMCY5Pm+1=pu4Td8}#}8=2dPl0?(pYtKNMkTj1Iu%04>D(ua55{Wj$C z;XKOW?1tPF<#NDIW~S<9!$o$LE|I}|P@)SLQuCU2PLYI=Cq;>p-bU8`%n!g-zMc^4 z;x8m@Cn!Z*kpMA!y-RgC#r^|u<#yiq>Qx*@jY{~e#^ z#mmB9!r|T&4%vo*T7qBf)*qO}Z$`^^3;gwNT_$GfASs>x>e&J_qi*}=f`Ap_)q9{0@6 z{U$WZ7rB-~#qpVaU#*Z_`0V`I1yBt-CKjpslmX~v^EJPtYR1pSlHBJMyN}z~6Rwky z_-+&Pv4?JVEhFfsP9_?D_WkQ?$r-)EZ(1tXSSImxiuaMC)0H}r@M6TXj>*>7I~~t8 zfUJ>FD=JT~c76gOs@LxHW&hb=2f7&w8HciZJ%@l?R{KIgp;9}fT0VG>FG7TZnWzo8vxLvqp1C(qvA~iJ?9Iu;+NhoLXy3uJ3@;2F7lpvAUf!)Hgodk-aq7o zlSA|??``6=sMJj*i-9xqE;kh9kcsrx`Y-UyS$3K-0)pAeE_*H%#t#*@+FM7gY zC^r0bN5V02?Us9|yQlzMpVyq->?`MvW#7`Br|vu6m6!k8m}oAV!1%7D=213Wa7n;W z|E{PEi}$5B8uFw*L#0=BPpf?gf9W&>Z7Fv99^P{`W1)j<6wBkYz3>cRa3&W71P&`%pAerNySB+@Hhf(~uE zf#(1X1Jxxcm}S%CdY~sZtY{(?K%&!|BQo26zXcr=J(EJ%HwlN8vjHEe$96sUjHal_ zEpl<$U!uKq?xwa)I^d9Z(;?5Glx(3ZL2ESH5*PPr$EbCRwWngGgp|~_@?m&&3j_l~?E=K!w2*otL-IzXgA-=-ZOHJ= z)?y_s!*8U6;_8=$3jiVw@8iKjmwB@IBv~rB|8}Nbs{$9xT9Y1r9hHuJOed6d%-c_ z7_K?(7qV76F*1g+(x!^Ql%$|bnklq`R`u@(23Jzlw}E~H=m(n;d{b?c@1UMLqSCs< zqN^};zHPRx*)MqFk0|oPU_ax+CIgh8!&Z6XAZZ8`{yToodO!Te67(t3$2klXlYc=D zi?~9`ACy{7Z3>EVLTUsQFNZVxeGwG4VCMC^ep>ZY#J$BcNp!?d12atC0@~3A<}0VF z*-CF7-@CvqrK`3KzU#&vx0=HT&mj1aFCo&&1wAkdRJOirwf63d#oR89g59d$x~f|^ zMG^cF7v+;n&eSkO(}dKd4`z>u1DXs-$%uX8J({qm(~zrQAMr`aWI$&mZqCBj)BH^i&!QHEZOxG}!eO?}Pd{OnBl zEd;PP&BZ$V``qiW&t5cx!$(>qGIu%lT&Asdx;8cye$lTR5UCM1s(R@ChRKHg0N42P z(F?B7!1yjtk+iAHm87aiU#=3k|Ilu|X|-)p*_NMeYp{(MZ!zY7oeCB0VRmbfz`=he zaKG_-Zq(LMyo9HP0(RFxy}4KRj@)w6CDzBt4r)G;=ew}$fRVx-=Eu4A-`FqxA%U}X zE05|@KC84e;l99tUI!}GbF>G0sE@1!Zy{ojcJxIx?n%0WUGS$WM~o4WcFUF4t7 za}5i4+c>7n$t;rM1575i*jq`I**TAuSr2$kQOJL@cu0^PKlC}1mXUyZW@(!xf%ta| z0FE)k6n_Tn+Ya;tuy2Fbo4dnIY_o2y1}+H%`|3?S)B^&o-vM@}{>+Lc9Mw%>vRfFa ztwcfX*1vB8!(@$HcI~=FhdT#6nHj5IAOFz&_IX{KoUikFZI=sxdu>0UOSg|eFz7w4 z*kMhA!t8631*SUEJ9b0Ik1jmnACS5pwJA(?hoVRP#jcX5!B;t5wpahJQTCzFZi@NW zXYxewhw|>=n$t}_c)~l${O;*3|A#@Xl(lwH09uKw6=PPw7ZVr)1^ROGkjg3#g5G=% zc%MM>MZJOc0$}HRuDyI#yV#P@Y+qFPjZahqN1pAS6;+hT5Par%F)e%(8TP=O8tP)& zX=UnJmVXJW^7wR;ojJHMTIIGNNQMzW6%Bn}{8wgSUR!n}-&;%~IwV)VOw^MZNpL*; z`gJL82oTQ5O8=NM>Xm>$CZbTM9*~?@Ijuc-sOjA6FNs;C3a63bo~sw|&z}&a0v%WD zgYn2;Teb}W`%BV2!f75<5%lpX7=@CGeC-JBlmHa9LzgHGCiWE^YdNH9eX*&#>l33y zfAiDvcL~cg$vuqNCj{x2uAF!#sPI-k?UX)W5;sLA-jfBor}z8AY>#&=<=e*oA(+%P zi4ztxd4C<)Wq7E5nf+N=%wtbc|IX7@EO+BWzg*b~=(K9ulFMXwzBl)r=hb^iD5}`? ze0Z?YY1xkGJ?9IakAP*$ct4E?2W4+%EU#O+dbVPa2msesp?@lJ^7sRn322;Qw$?iTaHI0+fib9jqInn^7iPrVaB(feFVdn2gAWK#hI}Oz0zm+|W-5 zyuv`y{STfH06^en$21{5oe2F1Ri{?`HmUQpCi$OtbmHA%JbvbxJ5}`m*WGo;Q~AYz z_acPMG8(Rx5i%kYF0x5vE0GxyWzTDb?3Gf+V~^|+LRMC?XGW5lGE#9h^n31giGHeY z_4@tuJ9y4HpU-)obDrb*ywCe{&NBc}5$mo@={O%44V0^O_<>=8QKmY+>Pvg;`_a8^ zZ_Zvsn%>x`{Wnh0v3}x;xiS6e$;TbAGJl+1N%wu8}voZ zIL!0YwMl+(;9&3KZ5bokn^ltvoql+3c@NUT7IT_ET_MPtYbmIGM2nu?+ajoeDd$8F zch;mVS=xKeKEgMpIgmW2>6N0h(#;QloxMf`h&|-cgCBu#803Z=mNk2zZf3+HQH6kU+Km&kW{&_m_Q%3S=n;>Gz5Rrc8jUZp1tR!^S(htqL$XGi zG8cO`R|u+SUnZO|3=)Z3x1)%{)8dx)my4C)Vv;d4b-A1~7H)AKe2d!i+Bh*x-cnu?zzm}47t^(^VZ`$x?6q@!aTD)jK zE6R;OuXq(#Wk#=9@b)tunR10cAP5__x~qj?X8+-6KL1b zjo7sGUlm5p@E{m5o*(M&Grd2tY07&|XMS8Eu=fF_Qok6kZ?n0WUx2(){^#MEy`zQw zPy@xC7ClL6o=LgEQ=Tuvqt6cTXEc`{JAZwkErJEDt*}X9x9hK%W`P zuy%j#7&uzTG2MB|GaF|yuH&L2)z<5(8AOp>#Z-fH>w)WxPsj&5KwQ^9Kw4OJGUU2a z-br^U5Br(;T5zFLs=LaKjA%{I`Vdc^6{|3+Wn+-jDz`qL;!wyk%P+L`j5XY z@EfrBT?76<=s~c6Zx8^`!PNWT4(1BeT7!HB3~pXOI(A$!;9G~?OLhyE z`1|}FmUFkF9^CzwSNWv(PSIa-LOR@btfPgz>lYs6G_onk3{?aQq+4~~B=j+B6dmkk z)&K}-kmFxt1>T(Q?~LMj!I^>O1$!tW)b(C>g+(j9&Te+r=1WLYLfXZVLq4$Ph;UK^aIv~I;>Q&%y@aJcN6xABoE?O9-F<1};)5hR| zULG*}lfi?WAolr>%L7gjA5c7m!r0xv(q01rY!sgr1kU#uyIIQ-KRT=QRQoL<-y#Dy z3672Ro?Nvo5(RsJPU&R4a*eb-^^_kCz7$0QF!k^=@SYrnaC`u02;49%oY@O?do1=#^{< zQT?eX4hw*LUp1WNG|!AYzjHlVA{~-)uSM3~c|B?wO0ABRG zjNXFH!B-qu7)XSSdqRq(qKL8aMdp~Ugq@?jlL0vJ=HjIztAgmhxIBoQ^Ozd1d=&UJ zvXv=)NRIabYjznF;W;N-aUfvF2+b<+q7ZZ(%am&A8OlH=)Wcr%o|1y z<)QR~T>ldzCu!rjvIgZrI=K0ON%LROLOgC!8N>PI5fqidxI+MNS;aNipC`ALd_u8S z6sA_(Ew!E&CKVdYaG5FdzRjz907)@@zMf@kBLqvyX1x1Vv8*hG` zp`y;WsGQ=DPCEILP`~2shq5&CK6;;Huihq`y6#vT@c7;NCJEbC%tSek{xfx>EHg`# z5_qH6tDYwI5!?Bkokc0}Z89~&YUcc5>}ljl1W+tLw2%(0Gh1DJMcF-9!nrTyj_$0p zXT;_LvK)7+`EWM5+OP>1}DOgf~tRs8iay{1c9D26!9lHWL}@^sd7tFtL`$E zH}1;Qc=>{0`abX)P&nb6-VWU-%h!>t@lbHJx9ILV&4_}R-@@EP8qf;FmA&{z?NDxi zFsnDryeK5;2$$qkIweh48S}f>I?8E}+*W75WFBZ(z} zj#2xfzv#H3z|+oai1;88dRff2#OroyffX?6XFBPNq+$$AK~mC z`SvWkA;>{Pv8> z(UPh%8z|Ch>)gCH&h6(Y1^Sk(k)t%iSXttk4BpQ4PQ2aWgm?S3kB{!xPTX$=Q?^k6 zE*(@e{>1oAGL~!Wh(d_-oSJCaj1F3 zQ4dpxSOy%2i&D;0>Bl6$AbCnG$+LL?L+YmUD=BXU+DS|Hj+QNq93mqMv0<5~6pZkD zmY78I73t>bgK5VfGampD?J_@|=%!aUz#{nMt%^>{I62qsRg*P!k2m3lO#pc)K&44Y z@X1a`-eC42@~D#i?0sjo(YH|2y;5UUoy}doJm5?;um(K@=qW;nn7q~!9YuduouMlPoRb9Fz^f@s*>1KNI^&cQCutjSYb}kmp9aQOY&{6N$0{N zd8O8ltw9XIi}a=sShx+GsMh+!4|xE9_%wN<+`_)OF2A;@_V8g|o{&$HhR$_uFT(@O zZI3Hd14i@=#f{x5ds@hO$~9+Y1?$5y-beTdgg_qJgv%G~%|x1c`fgMY#Si$^*F0`W z=TeWFwyxD89;QYHwsla)u*Afr!$+(qq|LGE9c=*nzV$duKO4lri{s|b1)*PUw z*DK$*AIpbRUJ8#wI(qtHPV}c!)fyf~ZE#uxxozAm0Z6{!ok-oSZ<^wdJiK(-uQpMY z(eR>lR|D1+QHXEndsMR%pYTNZA+Fq5e0qWA=M=_xP;jnce@sAj!$2)J$mXdP1GRb(hHI6 zpYOO%*y>2irV|E0BG;b^jrp3Fp8TLHW&RL|4Qt&qE8M0e8%EDpj65hrK_(UFTXmr9 zX!l^a3#_^X=#*7zn9qVwo%hwq!ge;k(JUy!srcqeL*9~t%Apv~BG5!(KfjVuZufr= z2spYd6m{i)53ujajnsC#`ce0bJZAL&MG2JZhr#|grO|2xE5>IKlJ$aw{fUY0ja7U3 z+u67^Xf)Eo)87XyJdPSRi8xe%n7s>!Z`3jbk87EEi>uq=Z>@Cz05!Adz|`3JFXeiA zdeYtu7p`00R8ejAy~j}9?0R$_j~p<{^T$VxBc%5(X zgs7H1hkSp++Vd8=-d|9W_=Zq~pQAnci;VyDj;vTQiNMSvwEnJIf175ZAk{N!sktr%()`9sr`On>`Nc)_! zlh_49e%G6B-94I^P59V=h%lu^oPr{;^Mo1V{nyi$&?){EHUZ#N_>- zT!W@c=s%SQ3`i|VE&^$846t=zplTkHma=rtSGN34vzXBtPm5r_K090bAuiE$NK2*b z=7a~v=yBjX%pD4WVe*?XnkvBH80l7oKrx7I(v9SH!4KR8Yl~NaDNKNGCP>jK7>2lP zi8s|d;%!uCyBv*>2$Tel`9r0@7lxv;8v((F0k1d7UXXi#0$v32wDN#>B(s(d=d~+% zXZ-Y+^$Ugt#A)xHdE(ul?IL7*?LqP9HHh<0{vQPK0e4hD0ohM{Y6MUlTF&q(^;wL! zpds0tSv*pj=!CXmmye9;#x7^fO2@?k`JlLgfhreuBX6A;5nI)#*AK_Mle zI_6%*jW%kyFt?(>SvlAhW5SOrE+b|H^7;k2C*RY8)G7qijz6YW3Bb*(btH=iq^tA~ zW@uM+vZ*(X-DiDR04=SQfZZxF_Rh)*d#J9Cw8~Ow^zzy%%6`{oX0TnfqKSY zTCS2n@biL4f}!~i(I5QS1{T~7&NRjkF;FX*w-MfLOnU<)Ub`?!+C@T0kzS-J)K}(E zn$NxuGHK4Xzc#8(_bnd+c}!O{KcxQ0PfvfjD$E;}U^ zrGtA-a;~<39!%KAN&nJ=0RYyxIJZ7Ob?(J4m7z@ug_K?PSnZ*5Pi7>wy!txv6FC7^ zWk{FoC+ssUZh4F6%WF9pJJ;S7^c~8!=|5kU#uNpbfm?1js-m&^7-YxVNU49axm3i=o=e{;WBYEFBtwMJYny(npvH2wvaV;>?^+yBnOInwx2## z54%LygSF`3U=4(@J5<@n_n1hY(9F^B67|X-rZtM{I%C?M@@@t1;9WRC)IG`4IG8ZN z_WEqXLX6dn$?_SzG*OKk6?rlY6$b=gZW4=K%^G#*8#?@eINuBJRKRyD4EtXCpHg9) zsD;2BW&>#c>6qx95y!T9MY(?hPk3~X?0*YS2n4`^NT_rd3U7X(K}^Z>DexNeWBC#S zhb1`X zIet7=gM1`#5c?@(dEMt&?syFd;OZePE!1%_*G(E?ddL52%rr}!bG}gDHMxv$*oUy? zC;NsLP;vtLdVEfg3?ogSdVzbswv-9B<=KNZbN?8o9)Yn($$<4JpbIAlO*n8 zJtnVpwUQJlvMO|~9V73)b;=JWP^~1P>Ap@q4gng7AM~}Hu68JMF)BeWf7XLhe>r>CeSk@mRO%WTCPhd^&ZyxN4YO*L#YfsPU2HVh62r)M`mR)7-kXao$ys}LwB2?7>H zg{=~BFteiy36y#xAUH52%m`fhDf<(Y+jBal4)9E0C|afEQ}4^cQo-YF+|NHG??(LD z#-ZMv((eJxX8#5Wv$NvU@pD|s8s?}C(rxsQ7{W~%EY@0>YUkqzn6QXU!8hN6{|ap6 z*DV%y2jT-Bzy7CChaJRV{|tA4F>&UfjgxFCBb$8`uxrt+wwO9G!K{>*uD!xhx%B#A z;}V~qb=H4mVE__Ao-AsmSDWV-Wlbqd3-SY z^N-@KDPCLZKF!kMbQay0;$ddcnyTIbI(>IBXZ<4rw`q<_D%jY`67am#?Gv%9S7wy$4P0hG@>8!-)7b;KC>5IX% z<1d`P<6&~Dszdq$L08xP18>_taeXlP?hN+L0m>wn7p2HsHUR6eyJpa$4Y@~f$LxBu z;d83eMYSxAW42mDb`$Ta%C$kK4~o0%D^rZt_HeI3^#O&rn~je4rxQU;G zOY6xoYOTgLy?Pb-J|O)s@n(fOqM|%=Ou~&W>Tq*|zyOE%;=H!knd??bv?SDG%e+8? zcs<`Y`RGJ90my1U>m1A558BRTc zb&(|G4PwNn9Rba!^-~-p1EQ)`@oKlN_T`==!I~Fe2^n!bYB4NbpDMYA-HdecyypW} zXzUF+#EU>A>k|uNBlL;&v4r%o-V5y4C(yjae@R`J`;zJKK#=AE$=~{Zt_BV z1vWK}70+-ZafYkph<@2;NL~@EN#rL2KR<2&-XnT%y<=R(0_UPZGRv{iO79O|>B~)W zJmj(^B-31;W&JqFo-HK24?#D?t0;fhTkjEw8l)l8V6%9X7IK}@Mf)_3n$;1z0Om6q zhjFT3A|SxqtGNZGcytF(O_0q0USv^#W5owrcZtr!J1T%jwLhN556S|(Ud)iFZMT*|555jD&ka)7P$!`D~!L_-~Z!X{@9teO*fxHb?aTu*NG zdF)TA_#&Kn!z74NZ;87U$W4SK@hF`llO{>bz-9@QVG!fk>vhxh!oEwcVZ@988{x8? zDu3c0eimQ2=<}0f-Zzu@jjn5i!M@&RqqwrKWhdj0$8^|F*ZVAlBkhdy>Jt8W7@U=* z+j}IvP}R?8@!R2pe69WFE$)xmCoVYMdD_ZqC`pI_@Rb8)v#(VP;VL>rO@BLkAo)>i zXSBlk-cGR 0: + imported_aphoton_supply += balance + bank_balances.append( + { + "address": _eth_to_bech32(eth_addr), + "coins": [{"denom": DENOM, "amount": str(balance)}], + } + ) + + evm_accounts.append( + { + "address": eth_addr, + "code": code, + "storage": _storage_items(account.get("storage")), + } + ) + + output = { + "source": { + "genesis": "genesis.json", + "headstate": "headstate.json", + "chain": "chain.rlp", + "note": ( + "Ethermint can import this head EVM state at genesis, but it " + "cannot replay geth chain.rlp blocks without a dedicated importer." + ), + }, + "auth_accounts": auth_accounts, + "bank_balances": bank_balances, + "bank_supply": [ + { + "denom": DENOM, + "amount": str( + INIT_VALIDATOR_COUNT * INIT_VALIDATOR_APHOTON_BALANCE + + imported_aphoton_supply + ), + }, + { + "denom": "stake", + "amount": str(INIT_VALIDATOR_COUNT * INIT_VALIDATOR_STAKE_BALANCE), + }, + ], + "evm_accounts": evm_accounts, + "chain_config": _chain_config(geth_genesis), + } + (base / "ethermint_genesis_overlay.json").write_text( + json.dumps(output, indent=2, sort_keys=True) + "\n" + ) + + +if __name__ == "__main__": + main() diff --git a/tests/integration_tests/spec/fixtures/execution_apis/genesis.json b/tests/integration_tests/spec/fixtures/execution_apis/genesis.json new file mode 100644 index 0000000000..0c29edcb25 --- /dev/null +++ b/tests/integration_tests/spec/fixtures/execution_apis/genesis.json @@ -0,0 +1,141 @@ +{ + "config": { + "chainId": 3503995874084926, + "homesteadBlock": 0, + "eip150Block": 3, + "eip155Block": 6, + "eip158Block": 6, + "byzantiumBlock": 9, + "constantinopleBlock": 12, + "petersburgBlock": 15, + "istanbulBlock": 18, + "muirGlacierBlock": 21, + "berlinBlock": 24, + "londonBlock": 27, + "arrowGlacierBlock": 30, + "grayGlacierBlock": 33, + "mergeNetsplitBlock": 36, + "shanghaiTime": 390, + "cancunTime": 420, + "pragueTime": 450, + "terminalTotalDifficulty": 4732736, + "depositContractAddress": "0x0000000000000000000000000000000000000000", + "ethash": {}, + "blobSchedule": { + "cancun": { + "target": 3, + "max": 6, + "baseFeeUpdateFraction": 3338477 + }, + "prague": { + "target": 6, + "max": 9, + "baseFeeUpdateFraction": 5007716 + } + } + }, + "nonce": "0x0", + "timestamp": "0x0", + "extraData": "0x68697665636861696e", + "gasLimit": "0x23f3e20", + "difficulty": "0x20000", + "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "coinbase": "0x0000000000000000000000000000000000000000", + "alloc": { + "00000961ef480eb55e80d19ad83579a64c007002": { + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460cb5760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146101f457600182026001905f5b5f82111560685781019083028483029004916001019190604d565b909390049250505036603814608857366101f457346101f4575f5260205ff35b34106101f457600154600101600155600354806003026004013381556001015f35815560010160203590553360601b5f5260385f601437604c5fa0600101600355005b6003546002548082038060101160df575060105b5f5b8181146101835782810160030260040181604c02815460601b8152601401816001015481526020019060020154807fffffffffffffffffffffffffffffffff00000000000000000000000000000000168252906010019060401c908160381c81600701538160301c81600601538160281c81600501538160201c81600401538160181c81600301538160101c81600201538160081c81600101535360010160e1565b910180921461019557906002556101a0565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14156101cd57505f5b6001546002828201116101e25750505f6101e8565b01600290035b5f555f600155604c025ff35b5f5ffd", + "balance": "0x1" + }, + "0000bbddc7ce488642fb579f8b00f3a590007251": { + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460d35760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461019a57600182026001905f5b5f82111560685781019083028483029004916001019190604d565b9093900492505050366060146088573661019a573461019a575f5260205ff35b341061019a57600154600101600155600354806004026004013381556001015f358155600101602035815560010160403590553360601b5f5260605f60143760745fa0600101600355005b6003546002548082038060021160e7575060025b5f5b8181146101295782810160040260040181607402815460601b815260140181600101548152602001816002015481526020019060030154905260010160e9565b910180921461013b5790600255610146565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141561017357505f5b6001546001828201116101885750505f61018e565b01600190035b5f555f6001556074025ff35b5f5ffd", + "balance": "0x1" + }, + "0000f90827f1c53a10cb7a02335b175320002935": { + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604657602036036042575f35600143038111604257611fff81430311604257611fff9006545f5260205ff35b5f5ffd5b5f35611fff60014303065500", + "balance": "0x1" + }, + "000f3df6d732807ef1319fb7b8bb8522d0beac02": { + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "balance": "0x2a" + }, + "0c2c51a0990aee1d73c1228de158688341557508": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "14e46043e63d0e3cdcf2530519f4cfaf35058cb2": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "16c57edf7fa9d9525378b0b81bf8a3ced0620c1c": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "1f4924b14f34e24159387c0a4cdbaa32f3ddb0cf": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "1f5bde34b4afc686f136c7a3cb6ec376f7357759": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "2d389075be5be9f2246ad654ce152cf05990b209": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "3ae75c08b4c907eb63a8960c45b86e1e9ab6123c": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "4340ee1b812acb40a1eb561c019c327b243b92df": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "4a0f1452281bcec5bd90c3dce6162a5995bfe9df": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "4dde844b71bcdf95512fb4dc94e84fb67b512ed8": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "5f552da00dfb4d3749d9e62dcee3c918855a86a0": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "654aa64f5fbefb84c270ec74211b81ca8c44a72e": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "717f8aa2b982bee0e29f573d31df288663e1ce16": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "7435ed30a8b4aeb0877cef0c6e8cffe834eb865f": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "7dcd17433742f4c0ca53122ab541d0ba67fc27df": { + "code": "0x3680600080376000206000548082558060010160005560005263656d697460206000a2", + "balance": "0x0" + }, + "83c7e323d189f18725ac510004fdc2941f8c4a78": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "84e75c28348fb86acea1a93a39426d7d60f4cc46": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "8bebc8ba651aee624937e7d897853ac30c95a067": { + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x0000000000000000000000000000000000000000000000000000000000000003": "0x0000000000000000000000000000000000000000000000000000000000000003" + }, + "balance": "0x1", + "nonce": "0x1" + }, + "c7b99a164efd027a93f147376cc7da7c67c6bbe0": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "d803681e487e6ac18053afc5a6cd813c86ec3e4d": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "e7d13f7aa2a838d24c59b40186a0aca1e21cffcc": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + }, + "eda8645ba6948855e3b3cd596bbb07596d59c603": { + "balance": "0xc097ce7bc90715b34b9f1000000000" + } + }, + "number": "0x0", + "gasUsed": "0x0", + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "baseFeePerGas": null, + "excessBlobGas": null, + "blobGasUsed": null +} \ No newline at end of file diff --git a/tests/integration_tests/spec/fixtures/execution_apis/headfcu.json b/tests/integration_tests/spec/fixtures/execution_apis/headfcu.json new file mode 100644 index 0000000000..2b8f7e7082 --- /dev/null +++ b/tests/integration_tests/spec/fixtures/execution_apis/headfcu.json @@ -0,0 +1,13 @@ +{ + "jsonrpc": "2.0", + "id": "fcu45", + "method": "engine_forkchoiceUpdatedV3", + "params": [ + { + "headBlockHash": "0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2", + "safeBlockHash": "0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2", + "finalizedBlockHash": "0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2" + }, + null + ] +} \ No newline at end of file diff --git a/tests/integration_tests/spec/fixtures/execution_apis/headstate.json b/tests/integration_tests/spec/fixtures/execution_apis/headstate.json new file mode 100644 index 0000000000..d7df4aaee4 --- /dev/null +++ b/tests/integration_tests/spec/fixtures/execution_apis/headstate.json @@ -0,0 +1,1039 @@ +{ + "root": "f61892bbb9a9df427d1f941dc8c536d72c41efed598244726ea21a0f183ff232", + "accounts": { + "0x0000000000000000000000000000000000000000": { + "balance": "144125000000010215144", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x0000000000000000000000000000000000000000", + "key": "0x5380c7b7ae81a58eb98d9c78de4a1fd7fd9535fc953ed2be602daaa41767312a" + }, + "0x00000961Ef480Eb55e80D19ad83579A64c007002": { + "balance": "1000000001", + "nonce": 0, + "root": "0x0ed2d94007a0eecee7c27c531d1249a18f6c48fe86c6d6e87c50b6943a5f015a", + "codeHash": "0x0345a365d2f4c5975b9f1599abe0a2ee76b7a3a731bc68781bd04c84e4858f50", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460cb5760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146101f457600182026001905f5b5f82111560685781019083028483029004916001019190604d565b909390049250505036603814608857366101f457346101f4575f5260205ff35b34106101f457600154600101600155600354806003026004013381556001015f35815560010160203590553360601b5f5260385f601437604c5fa0600101600355005b6003546002548082038060101160df575060105b5f5b8181146101835782810160030260040181604c02815460601b8152601401816001015481526020019060020154807fffffffffffffffffffffffffffffffff00000000000000000000000000000000168252906010019060401c908160381c81600701538160301c81600601538160281c81600501538160201c81600401538160181c81600301538160101c81600201538160081c81600101535360010160e1565b910180921461019557906002556101a0565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14156101cd57505f5b6001546002828201116101e25750505f6101e8565b01600290035b5f555f600155604c025ff35b5f5ffd", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000004": "7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "0x0000000000000000000000000000000000000000000000000000000000000005": "b917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c", + "0x0000000000000000000000000000000000000000000000000000000000000006": "7f7cc50c9f72a3cb84be88144cde91250000000000000d800000000000000000" + }, + "address": "0x00000961ef480eb55e80d19ad83579a64c007002", + "key": "0xdf86c581c7d7b44eecbb92fd9e5867945ec1acdc0ea5bbabda21d17dddf06473" + }, + "0x0000BBdDc7CE488642fb579F8B00f3a590007251": { + "balance": "1", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x78c6cb5202685228bbcbfb992b1c4e116c7ec5ef11e25b8e92716cfc628ddd60", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460d35760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461019a57600182026001905f5b5f82111560685781019083028483029004916001019190604d565b9093900492505050366060146088573661019a573461019a575f5260205ff35b341061019a57600154600101600155600354806004026004013381556001015f358155600101602035815560010160403590553360601b5f5260605f60143760745fa0600101600355005b6003546002548082038060021160e7575060025b5f5b8181146101295782810160040260040181607402815460601b815260140181600101548152602001816002015481526020019060030154905260010160e9565b910180921461013b5790600255610146565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141561017357505f5b6001546001828201116101885750505f61018e565b01600190035b5f555f6001556074025ff35b5f5ffd", + "address": "0x0000bbddc7ce488642fb579f8b00f3a590007251", + "key": "0x0d6aea581b220579a2b99819299dd32c7c28a420018ecb0bde93af007ad89a31" + }, + "0x0000F90827F1C53a10cb7A02335B175320002935": { + "balance": "1", + "nonce": 0, + "root": "0x66164e427c21c263149e8e6074ed0b34fac71c812a6f1c437d438029551a2977", + "codeHash": "0x6e49e66782037c0555897870e29fa5e552daf4719552131a0abce779daec0a5d", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604657602036036042575f35600143038111604257611fff81430311604257611fff9006545f5260205ff35b5f5ffd5b5f35611fff60014303065500", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000002c": "4b9d85c6787612e87e0659e11a347d415040465e492358f79cc7e2e293f38aa7" + }, + "address": "0x0000f90827f1c53a10cb7a02335b175320002935", + "key": "0x6c9d57be05dd69371c4dd2e871bce6e9f4124236825bb612ee18a45e5675be51" + }, + "0x000F3df6D732807Ef1319fB7B8bB8522d0Beac02": { + "balance": "42", + "nonce": 0, + "root": "0xa7d9c22f383b2fc2fb8db92c324f5906c4d999e9e639eb5beae4ce08e85be195", + "codeHash": "0xf57acd40259872606d76197ef052f3d35588dadf919ee1f0e3cb9b62d3f4b02c", + "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", + "storage": { + "0x00000000000000000000000000000000000000000000000000000000000001a4": "01a4", + "0x00000000000000000000000000000000000000000000000000000000000001ae": "01ae", + "0x00000000000000000000000000000000000000000000000000000000000001b8": "01b8", + "0x00000000000000000000000000000000000000000000000000000000000001c2": "01c2", + "0x00000000000000000000000000000000000000000000000000000000000021a3": "83472eda6eb475906aeeb7f09e757ba9f6663b9f6a5bf8611d6306f677f67ebd", + "0x00000000000000000000000000000000000000000000000000000000000021ad": "2c809fbc7e3991c8ab560d1431fa8b6f25be4ab50977f0294dfeca9677866b6e", + "0x00000000000000000000000000000000000000000000000000000000000021b7": "756e335a8778f6aadb2cc18c5bc68892da05a4d8b458eee5ce3335a024000c67", + "0x00000000000000000000000000000000000000000000000000000000000021c1": "4b118bd31ed2c4eeb81dc9e3919e9989994333fe36f147c2930f12c53f0d3c78" + }, + "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", + "key": "0x37d65eaa92c6bc4c13a5ec45527f0c18ea8932588728769ec7aecfe6d9f32e42" + }, + "0x04361123c6CBFc38F6Ee7B0202ecEFdaE36efEB4": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x04361123c6cbfc38f6ee7b0202ecefdae36efeb4", + "key": "0x3960cb77ee8ce76e0a84773c1d222795fba838aa28edcca2045779467ef3fa27" + }, + "0x04B85539570FB9501f65453DBFad410a467BeCDD": { + "balance": "0", + "nonce": 1, + "root": "0xf8f4ccb01824f447885742bd7fbc7505e7f1d0252fba74fe7068be964e8a35ee", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000006": "06", + "0x0000000000000000000000000000000000000000000000000000000000000007": "07", + "0x0000000000000000000000000000000000000000000000000000000000000008": "08" + }, + "address": "0x04b85539570fb9501f65453dbfad410a467becdd", + "key": "0xd84f7711be2f8eca69c742153230995afb483855b7c555b08da330139cdb9579" + }, + "0x050C9c302E904c7786b69cAA9DD5B27A6e571b72": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x050c9c302e904c7786b69caa9dd5b27a6e571b72", + "key": "0xc3ac56e9e7f2f2c2c089e966d1b83414951586c3afeb86300531dfa350e38929" + }, + "0x0c2c51a0990AeE1d73C1228de158688341557508": { + "balance": "1000000000000000000000000000000000001", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x0c2c51a0990aee1d73c1228de158688341557508", + "key": "0x28f25652ec67d8df6a2e33730e5d0983443e3f759792a0128c06756e8eb6c37f" + }, + "0x0eD465f2D38113203793802EaFcFe2a302F5141F": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xa0beac0b7fe18462854e5a271e13c5e67ed378319ee17efca15caf2625aa95bb", + "code": "0xd0a75bf7ea87fba36ff8a17b4519c45fb727609e6c9161b106680b25b3e2705f23bf72df16f8335be9a3eddfb5ef1c739b12847d13a384ec83f578699d38eb89bd814762a7e35d5c162a7570d14baa68bd622cabb1ad83d40dd70f8a88aa67c0d56a60595ebefebed7f22dcee6c2acc61b06cf8c68e84c88677840365d1ff92b140aabff1a85df08546c9a350c79ae18341bde4a2cef5d2fd460885c0128ce26f907e7e6656fa73566b18c1215272fe9fca2c55c552e62c923e21e000ac4b4e60b94fa1b86997cc1f1148bfbe25b674e8cefc7cc6f976aa8d7c7966bd4cca34774b6357e277c778e8ad9a2761a935d45336ec91439b9e1b117eda2efdfe38fad", + "address": "0x0ed465f2d38113203793802eafcfe2a302f5141f", + "key": "0xcae77150ac0c4c8a134fd8b7c02b6e053e99a44f91db924f3033dff62033de25" + }, + "0x0eE3aB1371c93E7c0c281cC0c2107cDebc8B1930": { + "balance": "0", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x7ee785a86efed9c83a8caeb5665b7a1fc4ec3fb9204fef8bd60152994e522e84", + "code": "0x6000356142ff54501515603b577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f08c379a0000000000000000000000000000000000000000000000000000000006000526020600452600a6024527f75736572206572726f7200000000000000000000000000000000000000000000604452604e6000fd", + "address": "0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930", + "key": "0x9afc282e9868fb95921af24218a3612a16ad8e7329530b5be184a6507bbddecc" + }, + "0x14e46043e63D0E3cdcf2530519f4cFAf35058Cb2": { + "balance": "1000000000000000000000000000000000001", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x14e46043e63d0e3cdcf2530519f4cfaf35058cb2", + "key": "0x9feaf0bd45df0fbf327c964c243b2fbc2f0a3cb48fedfeea1ae87ac1e66bc02f" + }, + "0x16c57eDF7Fa9D9525378B0b81Bf8A3cEd0620C1c": { + "balance": "1000000000000000000000000000000000004", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x16c57edf7fa9d9525378b0b81bf8a3ced0620c1c", + "key": "0xda81833ff053aff243d305449775c3fb1bd7f62c4a3c95dc9fb91b85e032faee" + }, + "0x17b917F9D79d922b33E41582984712e32b3AD366": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x7f1db68ea3e3f640a9bd4297e1d43e641c02396265b9c85fcb35d70d08f196ad", + "code": "0xcdbf706faff1444e72b0106ae4486b0256043747c99858ded580d001655540f5af2afaf35ad6da1368c28c91ba52a84b6fc26e5aa0d9b26dc4fa0373e4d12c305859c04fd0363b95e824b76bab6d064bf500fe171eea5114a198e11ac4dfbbf0bb7ea1d025e27e153f156855239b4b128e9da3a64a6f0a0270f89209895881424c55bec45be59a99d441ccb7880f9b68f316b687ab5ac77efc4386a807007768f0566fba57f394cfd00b7b328d5cff9d096b0b4609f559321788bcbb79ff612ce0f48684da2738819afc60049d8a627ffa250d5e1c7f8a7fedb1ce999915baf64f137b25557674fba3a2aa0e89b823e64184395781dd7e4b464a41a0168ddc1b", + "address": "0x17b917f9d79d922b33e41582984712e32b3ad366", + "key": "0x13cfc46f6bdb7a1c30448d41880d061c3b8d36c55a29f1c0c8d95a8e882b8c25" + }, + "0x17e7EedCe4Ac02ef114a7eD9fE6E2F33Feba1667": { + "balance": "0", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x975f732458c1f6c2dd22b866b031cc509c6d4f788b1f020e351c1cdba48dacca", + "code": "0x366002146022577177726f6e672d63616c6c6461746173697a656000526012600efd5b60003560f01c61ff01146047576d77726f6e672d63616c6c64617461600052600e6012fd5b61ffee6000526002601ef3", + "address": "0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667", + "key": "0x69bf6d72df9e6b88306eb4e4624996e919f0433ba63520aa9a1d3f9888e09b1f" + }, + "0x196d4a4c50EB47562596429fDeCB4e3ac6b2a5fD": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x196d4a4c50eb47562596429fdecb4e3ac6b2a5fd", + "key": "0x4e258aa445a0e2a8704cbc57bbe32b859a502cd6f99190162236300fabd86c4a" + }, + "0x1F4924B14F34e24159387C0A4CdBaa32f3DDb0cF": { + "balance": "1000000000000000000000000000000000003", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x1f4924b14f34e24159387c0a4cdbaa32f3ddb0cf", + "key": "0x7963685967117ffb6fd019663dc9e782ebb1234a38501bffc2eb5380f8dc303b" + }, + "0x1F5BDe34B4afC686f136c7a3CB6EC376F7357759": { + "balance": "1000000000000000000000000000000000003", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x1f5bde34b4afc686f136c7a3cb6ec376f7357759", + "key": "0xc3791fc487a84f3731eb5a8129a7e26f357089971657813b48a821f5582514b3" + }, + "0x1Fb8b19357311703Ca43Ac95F7E39ebC34E63562": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x7b76fd0cf8228fde8763ecb37bd55533e6f34d0765bc664cbaeb532bde21da74", + "code": "0x49bfe3c65dd9f3794050d39474bec15417a1630abed1727c133877e89823c14f4d08cb3ffa33592f3b5eeb877647984f4070d1d2997d57c9aea4c3e34ddd6e8e6db3ef05809c347508073838d040f85e724aad0387cbd203710480231a932b90a6d60d4ff1c38ae572157a43d1b8579039e4b4cc96e22c75c07379751785fe51da151e1f1eb9b837d3da35d08f1188bdcb6e944aa00ae0cc2fa12060555d939b3b07644517d2f667e1f84d4fb6c23df68138cb298509f38ac23f8d4d0fa756f45e937d8de2b1d79ef5899c0a1ebfee4eedbc3831eac2997cba4a23e108c27c5661042a91e6bf866457bba3c0e1666b25163b3849470db2bebc37920294f5c189", + "address": "0x1fb8b19357311703ca43ac95f7e39ebc34e63562", + "key": "0xe9a9ee3831f2c7aae36af85f853a507f3e652ce57ce9a8c27c098ad124dc7809" + }, + "0x2604439A795970DE2047e339293a450C0565f625": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xe819dd809aa49da85a97413de04c2b462f07ed225d4e4092e329f28fa83a10a5", + "code": "0xd54e89dee95b843939c00dce8c49063df67efe61a3c8ec818ccaee72d7b7f5a39062a4b4dbb38897d7030e75266746773c25296ddcc4429a1573d7e14899dc4a59120eb83699c466c74218988aa3115ae72e537ee35dc8cc4c4abd122c83ad0a6e80044b428a86ddb5f7277680f16ac528219bbc3f477f367a023fd1680fef05f8f9fbe49577efd32b3647a88078df070961ceaa913763423b34eeb65953041b20b4ded72103adf3888643381b049681544c9cf7421ba3a953a980da85628e3fdd7ec01608ed5275687dc63da54ce13618050234d84b4d1fdcdd3b21f79ac5b9a0180b01d5c6c892f34e348721f16e168c551e0a5dac26b1bd68253fcef49b1f", + "address": "0x2604439a795970de2047e339293a450c0565f625", + "key": "0x8678559b30b321b0f0420a4a3e8cecfde90c6e56766b78c1723062c93c1f041f" + }, + "0x2D389075BE5be9F2246Ad654cE152cF05990b209": { + "balance": "1000000000000000000000000000000000002", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x2d389075be5be9f2246ad654ce152cf05990b209", + "key": "0xa9233a729f0468c9c309c48b82934c99ba1fd18447947b3bc0621adb7a5fc643" + }, + "0x2EB6dB4E06119Ab31A3aCf4F406CCBaA85E39C66": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xd5daa3aec1f142e2b2059b675d676ccb42129d27d96f8e901df2dac6104b38e2", + "code": "0xf548adfdedfd2f8b2416994318306c690dadb026395430e32e9a141187933c8602d9f8353bca53bc9b195aa186ab6d98b49a9120c00257ee2c7d860c26f864ea7352bc45c8aa6995480780fe15a07c4daa795263b5e7a9d04d9ed979c93ca85e57023ef7fe58b878582140ea36f22723905ad724896eaf74090fba76c229bd2269bc8c08a6b955aec2072ca430bac7123bc3539264a736d1a23621b0f0c62f3166eeecffab615cf4c69d47d3aa51576e95b697767264fa754ea36f4e363ea19359149054a4189e9e52234a041160d0a984f6bcb43e7a9da69cfb168d147633650425d4cac564eade3739b18cff91bb2bc855f9c26bed98f6e089d895e00c3d5f", + "address": "0x2eb6db4e06119ab31a3acf4f406ccbaa85e39c66", + "key": "0xaeaf19d38b69be4fb41cc89e4888708daa6b9b1c3f519fa28fe9a0da70cd8697" + }, + "0x2F01C1c8c735a9a1b89898d3f14BBf61C91bf0fD": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xfacd3090376f835f996263e63b973e8f9cb6fdf5edb63662501dc8dfe4c33c7f", + "code": "0x50a82f9cbcdfaca82fe46b4a494d325ee6dc33d1fa55b218ab142e6cc2c8a58b41cb80f82badddd72e38fda86a7cbba38fafd9735ef98c7795abbbaf2b1495624a5bded210bb862fae2c0d18b9d29bf7f88b08a75dd1594b1369abc7881e3fe18a8166be5f30abeb6c91ee2f07eeb0b2eb14b4d59534d10a1c143964bd6179199bbf2ad10217b6212df1939350a047a69b6887b770020d3fa8c328c0653ee987872ac8b0ab547ba6ba6686d487265a409b97d09cf043f98287b4b34e7bc04a71b72a5233413dd9985e70abb239a7ba917e489fbf2ece87f523c6e26971cc821fd2883cc7ca79e6788a6966eff1ace0b629a1cf53002057694248b4aad1495d04", + "address": "0x2f01c1c8c735a9a1b89898d3f14bbf61c91bf0fd", + "key": "0xd2f394b4549b085fb9b9a8b313a874ea660808a4323ab2598ee15ddd1eb7e897" + }, + "0x2aaC4746638aE1457010747a5B0FD2380a388F4f": { + "balance": "0", + "nonce": 1, + "root": "0xbe8ec2d17b60d9f97cea6c173b3dbd770087f5a6e60d19a298b95394c21f0518", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000012": "12", + "0x0000000000000000000000000000000000000000000000000000000000000013": "13", + "0x0000000000000000000000000000000000000000000000000000000000000014": "14" + }, + "address": "0x2aac4746638ae1457010747a5b0fd2380a388f4f", + "key": "0x96c43ef9dce3410b78df97be69e7ccef8ed40d6e5bfe6582ea4cd7d577aa4569" + }, + "0x2b6D216387cc86BF46FA7202C36C4f40BF1d7A22": { + "balance": "0", + "nonce": 1, + "root": "0xcc8cf1d0585448d9dcc17e0fb69b5da1e824d553481ddb6521ca7f7404d7b810", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000001d": "1d", + "0x000000000000000000000000000000000000000000000000000000000000001e": "1e", + "0x000000000000000000000000000000000000000000000000000000000000001f": "1f" + }, + "address": "0x2b6d216387cc86bf46fa7202c36c4f40bf1d7a22", + "key": "0x3e442de3aafac6a255389001775f311d0fead71621ec597e7ea7f91bcba73e49" + }, + "0x2c1287779024c3a2F0924b54816D79b7e378907d": { + "balance": "0", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xe17883cd7e9721414f209408a0a0e1fe27bd1a9e0f0e7b72fd8077450d1e4068", + "code": "0xada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7dcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0a15bc60c955c405d20d9149c709e2460f1c2d9a497496a7f46004d1772c3054cabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe051471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b3e5fec24aa4dc4e5aee2e025e51e1392c72a2500577559fae9665c6d52bd6a31b39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b828", + "address": "0x2c1287779024c3a2f0924b54816d79b7e378907d", + "key": "0x09d6e6745d272389182a510994e2b54d14b731fac96b9c9ef434bc1924315371" + }, + "0x312e8FCA5aC7DfC591031831BfF6fEDE6eCF12A8": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x0330691457edbb3446935682a141fb3f23f9e1fed9cfe4c0645393f690552510", + "code": "0x7ca5987043ac53676c6e30f77ff1a34e98a5fae86b27e5d0cf74ac1711b8a8db86b3fa87ee245373978e0d2d334dbde866c9b8b039036b87c5eb2fd89bcb6babeb5d92aa5b18af35c2d0c0d14a538792cf1a66aa06ab9dae49d32446e9063ca1a8f2d96126c6d0ad63adabaef7bf5cf47f163fb0c218a473d28f62312d197bcfa5022b2bfd144bf9103d80168549b5df7c72ab60bd51bf71a02a08d844853b4a03145c75015e7a856ecd94c41432ef3cb669d6360af23433588937fefdfac825248457bacb20e239ae314d8db91c0f270e453c28ee138c84f97aea6cfcf9a499c6af84bcd7a912c26772dce2b27a335c9acc50e9113bac42fd0b48deecc0f30c", + "address": "0x312e8fca5ac7dfc591031831bff6fede6ecf12a8", + "key": "0x64bfba8a4688bdee41c4b998e101567b8b56fea53d30ab85393f2d5b70c5da90" + }, + "0x3C48a562A0361236F28a17AAC65B9130a0316B71": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x3c48a562a0361236f28a17aac65b9130a0316b71", + "key": "0x8ff8a4884137e983c0298ad24228193292b5f523869dc16eeb916cae8b09239c" + }, + "0x3aE75c08b4c907EB63a8960c45B86E1e9ab6123c": { + "balance": "1000000000000000000000000100000000002", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x3ae75c08b4c907eb63a8960c45b86e1e9ab6123c", + "key": "0x878040f46b1b4a065e6b82abd35421eb69eededc0c9598b82e3587ae47c8a651" + }, + "0x3fBa9AE304c21d19f50c23dB133073f4f9665FC1": { + "balance": "0", + "nonce": 1, + "root": "0x5304c926e1198f1d2b39c62c8618a6df840338e6256c16314bc94d1c9c09810a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000022": "22", + "0x0000000000000000000000000000000000000000000000000000000000000023": "23", + "0x0000000000000000000000000000000000000000000000000000000000000024": "24" + }, + "address": "0x3fba9ae304c21d19f50c23db133073f4f9665fc1", + "key": "0x0b564e4a0203cbcec8301709a7449e2e7371910778df64c89f48507390f2d129" + }, + "0x4055CAe5c7d838cda10D40f9d07106C7f5f3be1c": { + "balance": "0", + "nonce": 0, + "root": "0xe22af78ee9815b318712241c4adc80063a8598446701dfc8ea0e3631baaf79e8", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000002": "02", + "0x0000000000000000000000000000000000000000000000000000000000000003": "03", + "0x0000000000000000000000000000000000000000000000000000000000000004": "04" + }, + "address": "0x4055cae5c7d838cda10d40f9d07106c7f5f3be1c", + "key": "0x6b9ff41fb13fc66c4e1c4f85d59c52608698715472b7cce609bdbf75976a438b" + }, + "0x428aA61279929d936cDEDedB7AD759ADc9ab1A56": { + "balance": "0", + "nonce": 1, + "root": "0xfbff66b2db89023f18f432097a9f54cb69741089b0b7000478f284cb8ce56161", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000009": "09", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0a", + "0x000000000000000000000000000000000000000000000000000000000000000b": "0b" + }, + "address": "0x428aa61279929d936cdededb7ad759adc9ab1a56", + "key": "0xced399fbcd771b3b242dd13b5c110526254e224b0fb8a72ad882ef9d3d1fe865" + }, + "0x4340Ee1b812ACB40a1eb561C019c327b243b92Df": { + "balance": "1000000000000000000000000000000000003", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x4340ee1b812acb40a1eb561c019c327b243b92df", + "key": "0xa13bfef92e05edee891599aa5e447ff2baa1708d9a6473a04ef66ab94f2a11e4" + }, + "0x461A33c430f4bBFB300A1E89DF103965d72dC968": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x461a33c430f4bbfb300a1e89df103965d72dc968", + "key": "0xb1521e8613668de7221293dc02aa6876eea0885348137404f045e293aa2a7353" + }, + "0x46bFe8155134dcD7bB9baDEf1B2EF25AE86435C8": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xdc443b3e953eaa80fc5b5ae5ed28a3771bb30b13eed51dcc72ca2b3ee6f12441", + "code": "0x1cb7ce0668e72b96f704af9e1445a9dc6f6ac599eec355bfcfe4d3befbb001be40165e7164257b249280bf839a50283d248062ed7b0e6d8820cb6c506bfcf7d3c0c7c7c9a2a6655862feea3cc7ff13629582293fcfe0e1094efb20897bb02a656a2b6bffaca788160f671fa62d34758b717f75a90ad5a468757c50d61f33c4437f6fa3f34639ea1891363ca773619dbd5f652d7ab50411111dde2f57e3ae13add1ccbf1f9f869f51cd81e6f099f905636b057f682c706fe990614b1120516928ee4750d043edce57577a49a1f0c4b389e3b8c38c27dc693bc6b7154c07280771f2e2385bc2a5be32198cd1e425186910eb1a233b2b2a22be149cee4dc72d0162", + "address": "0x46bfe8155134dcd7bb9badef1b2ef25ae86435c8", + "key": "0x59f49281260efa7511a50c95aebc610a48a19aeaa54f041e1373b81b698989d3" + }, + "0x4D5c47Ec15eF6Af7C08121a523818bc249cED1D7": { + "balance": "0", + "nonce": 0, + "root": "0x3acb80dd5656a2a14e33dde2484f5fcb75bb8a1ddbf25f3f77e67e4905d5701c", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000003": "03", + "0x0000000000000000000000000000000000000000000000000000000000000004": "04", + "0x0000000000000000000000000000000000000000000000000000000000000005": "05" + }, + "address": "0x4d5c47ec15ef6af7c08121a523818bc249ced1d7", + "key": "0x8be0e0604af8e66052a9366308040b5ed10295a17f0f767d0f0f4271c712f722" + }, + "0x4FFFb6FbD0372228CB5E4D1f033a29f30CB668C8": { + "balance": "0", + "nonce": 1, + "root": "0x1d5b0045e4bbf5ac05684b7f97ad373b57bfa9fc07e8c214c28624f7ce9a47a5", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000002a": "2a", + "0x000000000000000000000000000000000000000000000000000000000000002b": "2b", + "0x000000000000000000000000000000000000000000000000000000000000002c": "2c" + }, + "address": "0x4fffb6fbd0372228cb5e4d1f033a29f30cb668c8", + "key": "0xf19ee923ed66b7b9264c2644aa20e5268a251b4914ca81b1dffee96ecb074cb1" + }, + "0x4a0f1452281bCec5bd90c3dce6162a5995bfe9df": { + "balance": "1000000000000000000000000000000000001", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df", + "key": "0x5c1d92594d6377fe6423257781b382f94dffcde4fadbf571aa328f6eb18f8fcd" + }, + "0x4bC336BBcE2f241Ab658214f44AaB1CBE4cb8335": { + "balance": "0", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xbe1fa08bc91e8829cee159efe23236d54f009cb119f2685588cb4d78945236ea", + "code": "0x52d75039926638d3c558b2bdefb945d5be8dae29dedd1c313212a4d472d9fde5edc95719e9a3b28dd8e80877cb5880a9be7de1a13fc8b05e7999683b6b567643ee60d0579bcffd98e668647d59fec1ff86a7fb340ce572e844f234ae73a6918f83ec6a1f0257b830b5e016457c9cf1435391bf56cc98f369a58a54fe937724651a1e6821cde7d0159c0d293177871e09677b4e42307c7db3ba94f8648a5a050f3eec716f11ba9e820c81ca75eb978ffb45831ef8b7a53e5e422c26008e1ca6d5c5069e24aaadb2addc3e52e868fcf3f4f8acf5a87e24300992fd4540c2a87eedb805995a7ec585a251200611a61d179cfd7fb105e1ab17dc415a7336783786f7", + "address": "0x4bc336bbce2f241ab658214f44aab1cbe4cb8335", + "key": "0x529525da9c1b4df0a5955af20ceb21ba6c11431a6d8a48dabdd0edb19b5ff5e6" + }, + "0x4ddE844b71bcdf95512Fb4Dc94e84FB67b512eD8": { + "balance": "1000000000000000000000000000000000000", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x4dde844b71bcdf95512fb4dc94e84fb67b512ed8", + "key": "0x5602444769b5fd1ddfca48e3c38f2ecad326fe2433f22b90f6566a38496bd426" + }, + "0x517d8fBF706E6b73E0025e65Ee711A55593f7C40": { + "balance": "0", + "nonce": 1, + "root": "0xfb003b3fa872d81e27dfc518a7c5259266de596921a134eb126566d89af2897c", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000008": "08", + "0x0000000000000000000000000000000000000000000000000000000000000009": "09", + "0x000000000000000000000000000000000000000000000000000000000000000a": "0a" + }, + "address": "0x517d8fbf706e6b73e0025e65ee711a55593f7c40", + "key": "0x2cb839672fcfe776432d72e63be7927df5c6a6e995ea096c38015303f4a0f474" + }, + "0x56270eCCd88BcD5aD8d2B08F82D96CD8DaCe4Eb3": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x56270eccd88bcd5ad8d2b08f82d96cd8dace4eb3", + "key": "0xcd6b3739d4dbce17dafc156790f2a3936eb75ce95e9bba039dd76661f40ea309" + }, + "0x56d3F289b889e65C4268A1B56B3dA2D3860D0aFB": { + "balance": "0", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc8bbb625e512247b6736502f772491730811b3714bf5daf16ae52b17bd6c9ad4", + "code": "0x101e368776582e57ab3d116ffe2517c0a585cd5b23174b01e275c2d8329c3d837dfe757ecd65cbd7922a9c0161e935dd7fdbcc0e999689c7d31633896b1fc60b88601476d11616a71c5be67555bd1dff4b1cbf21533d2669b768b61518cfe1c3cbc4e5fb02c3d1de23a9f1e014b4d2ee5aeaea9505df5e855c9210bf472495af2e174c10e159ea99b867ce3205125c24a42d128804e4070ed6fcc8cc98166aa0a9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc075f96ab15d697e93042dc45b5c896c4b27e89bb6eaf39475c5c371cb2513f7d23be6fd20d5acfde5b873b48692cd31f4d3c7e8ee8a813af4696af8859e5ca6c6", + "address": "0x56d3f289b889e65c4268a1b56b3da2d3860d0afb", + "key": "0xdc9ea08bdea052acab7c990edbb85551f2af3e1f1a236356ab345ac5bcc84562" + }, + "0x58f8fe237b593C19546e1e758a2544561d04bfe0": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x35e6505af3b8e9a18eefffd4dafa37f401469b1932fa2011ce72a78ea72721ab", + "code": "0x36156009575f355f555b305f525f5460205260405ff3", + "address": "0x58f8fe237b593c19546e1e758a2544561d04bfe0", + "key": "0xedabf9f506b5170888ca458df9dab111fa2c708b88cc706659db520718be9d60" + }, + "0x5E5F35d83E5485AA1006F6Ca478eC7507d0efad4": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x5e5f35d83e5485aa1006f6ca478ec7507d0efad4", + "key": "0x53ed76a58ca2fe13ebac69b866c007878047e8c418866ece50f947ddafc36321" + }, + "0x5f552da00dFB4d3749D9e62dCeE3c918855A86A0": { + "balance": "1000000000000000000000000000000000002", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x5f552da00dfb4d3749d9e62dcee3c918855a86a0", + "key": "0xd52564daf6d32a6ae29470732726859261f5a7409b4858101bd233ed5cc2f662" + }, + "0x61774970e93c00A3E206a26c64707D3E33F89972": { + "balance": "0", + "nonce": 1, + "root": "0xeaefde34ef2da2ed24018edde58b05a50793b513e03b8aaeb547373485b459d9", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000001a": "1a", + "0x000000000000000000000000000000000000000000000000000000000000001b": "1b", + "0x000000000000000000000000000000000000000000000000000000000000001c": "1c" + }, + "address": "0x61774970e93c00a3e206a26c64707d3e33f89972", + "key": "0x07b49045c401bcc408f983d91a199c908cdf0d646049b5b83629a70b0117e295" + }, + "0x650469386D2761deB58bFa1766f728e3fB00f8b6": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xbdba3d541af01b6f98ad7e18612584383bb4bcbb43b534dd359e7cded92841f5", + "code": "0xed3d8ee28c5f40179e0b53bf87b486c0b1a6ccfb36f03b3c762c723793e06631ddd2ed02835f51d041d738f145bf914e284838547c9bcc952ea4f9de82c9f0932cc0eb4b3ec5bf92d601b8938793073ef9a83f91d7e5985435824ae87524336a68fc0e82119a780903c8e97d959a36d433d1e401ad7b7a461ff2087e524d54a8f6eb4279aa452568dd287204244d7e29d7ca1bc7a01440f08342bf2599f4b9b6ce1f324a8a5d5daa4a6b2281780ab321637fd4089413dd89c573bbf705027cb92d88733daa8d83575c1c435b1a4140007e667f8dfbe2e5678ffec947a513e5cd8ea1380f2e06c430dc5770b5e760f421089091ba950352306420da23cb1b40ef", + "address": "0x650469386d2761deb58bfa1766f728e3fb00f8b6", + "key": "0xf8b537ad8ec370ed6def89311fb0ec4c60586960a93fb08f4ec01cca798e84d4" + }, + "0x654aa64f5FbEFb84c270eC74211B81cA8C44A72e": { + "balance": "1000000000000000000000000000000000002", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x654aa64f5fbefb84c270ec74211b81ca8c44a72e", + "key": "0x00aa781aff39a8284ef43790e3a511b2caa50803613c5096bc782e8de08fa4c5" + }, + "0x66378D2eDcc2176820E951F080dD6e9e15A0E695": { + "balance": "0", + "nonce": 1, + "root": "0xf569fb7de20ae6d29d6f5d92852484b9d3a3a930031c6fc455bb0b41465453e6", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000000b": "0b", + "0x000000000000000000000000000000000000000000000000000000000000000c": "0c", + "0x000000000000000000000000000000000000000000000000000000000000000d": "0d" + }, + "address": "0x66378d2edcc2176820e951f080dd6e9e15a0e695", + "key": "0xa02c8b02efb52fad3056fc96029467937c38c96d922250f6d2c0f77b923c85aa" + }, + "0x6b8d75Cce1B9C7c2B1f2B4B89C78E9ae990A8583": { + "balance": "0", + "nonce": 1, + "root": "0x4f446329b5ee3d13d4f6b5e5f210ddc2d90fedba384b950e36a1d19af95c5cb1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000000f": "0f", + "0x0000000000000000000000000000000000000000000000000000000000000010": "10", + "0x0000000000000000000000000000000000000000000000000000000000000011": "11" + }, + "address": "0x6b8d75cce1b9c7c2b1f2b4b89c78e9ae990a8583", + "key": "0xddba857d802fcfc8d112fa9b8f08e49b5770526f03ebb36ff72d21efef0a40ab" + }, + "0x717f8AA2b982BeE0e29f573D31Df288663e1Ce16": { + "balance": "1000000000000000000000000100000000004", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x717f8aa2b982bee0e29f573d31df288663e1ce16", + "key": "0xc3c8e2dc64e67baa83b844263fe31bfe24de17bb72bfed790ab345b97b007816" + }, + "0x73d9ac3a52Ee75fbC62384C4F516eA9fc3E45873": { + "balance": "0", + "nonce": 1, + "root": "0xd8d478365c2dd43220eab798a1fdf01a2e41ed0c4b7ce1a6a649dc4b12f97259", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000001f": "1f", + "0x0000000000000000000000000000000000000000000000000000000000000020": "20", + "0x0000000000000000000000000000000000000000000000000000000000000021": "21" + }, + "address": "0x73d9ac3a52ee75fbc62384c4f516ea9fc3e45873", + "key": "0xffc13d23ebe16b3a6fa528798996a2f4944b806a1fcd3aba90f278c8ddba22c1" + }, + "0x7435ed30A8b4AEb0877CEf0c6E8cFFe834eb865f": { + "balance": "999999999999999999998543992229197993", + "nonce": 160, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "key": "0x4363d332a0d4df8582a84932729892387c623fe1ec42e2cfcbe85c183ed98e0e" + }, + "0x788AdF954fc28A524008ea1f2d0E87aE8893AFdC": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x788adf954fc28a524008ea1f2d0e87ae8893afdc", + "key": "0x903f24b3d3d45bc50c082b2e71c7339c7060f633f868db2065ef611885abe37e" + }, + "0x7A19252e8C9b457Eb07f52D0dDBe16820B5b7830": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x7a19252e8c9b457eb07f52d0ddbe16820b5b7830", + "key": "0xab7bdc41a80ae9c8fcb9426ba716d8d47e523f94ffb4b9823512d259c9eca8cd" + }, + "0x7Dcd17433742F4c0Ca53122aB541D0Ba67fC27Df": { + "balance": "86", + "nonce": 0, + "root": "0xde3dbb656325fb05cd75718441171cba6371529f1761f6649dd29b97557e0585", + "codeHash": "0xa3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2", + "code": "0x3680600080376000206000548082558060010160005560005263656d697460206000a2", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "2a", + "0x0588df43087493fd84fa37ef37152cacefd4db3823315da90e65dd785434ff14": "02", + "0x0921e35d2dc9980c8ba6910f8f63ab4b0cc99b9b50423dbb4dcb3bed4939c5f5": "04", + "0x09d9f86815d3c33738fdcb1e2e78d8a32c9ead8e6d7992be1021673b36b31224": "06", + "0x114f9c62146afca150122ee4c5deb50c9de990a7275432861c14d4ae1800e5cc": "14", + "0x11f0a8ac2adda075c95bbf6be534e3254dafa759f62cbcf0e91bc6f0335e70aa": "28", + "0x13bd2394f758553be374ffa4a9455cdf5e6ef3d905acd02746df2d12361e1ace": "12", + "0x14b868a14536eb5ed455a63ff5037a50756bb70d9511540bbf25b0db03e6f837": "1f", + "0x151f1ee0a0f1a9b5a877d3a636ec0c207783c0cf4e05456e089d95a16f639e19": "1d", + "0x203ec2df3f1265eb1de22e81d3ed84177def807020e48493c24ce1007f2a93b4": "20", + "0x21bbff00787734951aff123713555d0a15eaba3a4c39633725c8d8a545a67957": "07", + "0x2224f95f0540d6fc56a7f268f44c9dade1bd8dfcd3d215b60895caf4526718cd": "15", + "0x2277e46024c337a51b8c6f946b6fd3fafaf181581eb4a4ef0bf3a23386c51e79": "10", + "0x238cff2c5ab93ccabc36fcef28ba416a93c63285b780c9d4eed1d70e6889c818": "17", + "0x2acfc92a1cc51397c95e434631e449d83a81de91964ed735a8c8b71b35e1a626": "1c", + "0x3569f740e521d8bb11c5b72660dc96272ad66bfd811ed918c3a9e02acd4ade8f": "03", + "0x35f96bc70aa62a539fa99d9153b0f8aaa4594abf70cc8a8d9018e04e39a17982": "24", + "0x415feb809041baabc4d9246223e40f1083963cbe1ef6dedb8b153e49d02ee7ce": "18", + "0x4238ace0bf7e66fd40fea01bdf43f4f30423f48432efd0da3af5fcb17a977fd4": "01", + "0x4fca474bfe29257cd2fc6aaa8526de59f97fdeccadf40d415477daaa16a301b2": "13", + "0x6e0bc683683d9e3e3bbc53a431650e46e47d14fe9f221b84b9e3fb0bd44e2fe0": "11", + "0x744c318a28d9b402c1242775b83757deeb909600f2fa8f053755f265c350f934": "23", + "0x792137c50df83e6f36851ebbc895474f11838e869cebf9d91399708bf3f285a5": "19", + "0x87c8bde84cde385e1d4d2340dfde5fa4897632946b0a38bcad1cccb5aed28995": "0e", + "0x89c17d9392b73a55738ba19aae192f2f9c5612dc8bd803ca23b9c2fb9c309e56": "26", + "0x95104e47e1982aba633477f377b1511396c3fe83600224bcb0c78949be705b33": "0f", + "0x9843536982cd35f7b0f71a3eb2a09cd0d2768d835a76d5a7166069c14149bb13": "0c", + "0x9c3f428ba9b81a870adf7fb021492ee3b4044473f92a8e0802703e0800d2b571": "22", + "0xa2fc47b981f101be956700b8cca7a48311b8f39cf8271b966693c3c5e7484a81": "08", + "0xa41cb4f2ab2731a8889754ae1a340c666cb8107b497b922073df80a9b255e31b": "0d", + "0xb2cd144783c0f138a1420529b82c0ea1b65b006f9a35587d8013c71b7d2a1c6a": "0a", + "0xb6772510f5d77daf3205e0afac035d16eeb1bd28ee1be6bfa57bb67fd111c565": "1a", + "0xb8d28e7b703baf999848ecbba44026cb6479b3f0466037bcf2221ffc3f8549f9": "05", + "0xbc345f673739a3d6c95cace43a530d85e2774e73ee8837955398ac7c7b069a31": "16", + "0xc11c7bbe1b7743472b444bc11c51b1aceff1b8e207c9d46d2c3dd24e9184d8f4": "21", + "0xc6efde6bbc44a930b209a39f844f0a5b69a2720057fc34e2df4e1f89b04a55bb": "25", + "0xc9a2fb36f38496f49a549275ba41a4a00ef97e4ca82512a3bdd22770ceba848a": "1b", + "0xcad398eccd12aa694ba255d69defbf78fd51d2acec863d3ad859a64ca3bbc6b7": "0b", + "0xe40f7e90d366e95b58a24b13aabb5b70789398ec79b08d0952bc0f19d27218e1": "27", + "0xe64bc02a00a08574b11865f3eaf12440003ee8ec5f2df18d045c49a2a45c6d52": "09", + "0xe8481f0a1ea7b2528784efff1d1b33cbd66ac97ebe2ae35c7997cacb2863430b": "29", + "0xfa5fbc362eb74618d5c6dcb512ffb45d5dea367c27ee5122f29907d36b8b9515": "1e" + }, + "address": "0x7dcd17433742f4c0ca53122ab541d0ba67fc27df", + "key": "0xbf1f52c702c40589735c4b038bd94e04268a58c35afad63bb16c071d62d2e23d" + }, + "0x7fd02A3bB5D5926d4981eFBF63b66DE2a7b1aA63": { + "balance": "0", + "nonce": 1, + "root": "0x24111a061419edc3afa83e8824963922dbe7a7d78f5bde939d03f470a0054dcc", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000000c": "0c", + "0x000000000000000000000000000000000000000000000000000000000000000d": "0d", + "0x000000000000000000000000000000000000000000000000000000000000000e": "0e" + }, + "address": "0x7fd02a3bb5d5926d4981efbf63b66de2a7b1aa63", + "key": "0xfc3d2e27841c0913d10aa11fc4af4793bf376efe3d90ce8360aa392d0ecefa24" + }, + "0x8074971C7D405bA1e70af34f5AF7D564ddc495dF": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x8074971c7d405ba1e70af34f5af7d564ddc495df", + "key": "0x0e0e4646090b881949ec9991e48dec768ccd1980896aefd0d51fd56fd5689790" + }, + "0x8120ff763f8283e574FC767702056b57Fcc89003": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x8120ff763f8283e574fc767702056b57fcc89003", + "key": "0x48e291f8a256ab15da8401c8cae555d5417a992dff3848926fa5b71655740059" + }, + "0x81d180be8008f56e16d78fb20f40d8b4bf023960": { + "balance": "0", + "nonce": 1, + "root": "0x7f93bf2678903cac2d6725ae5fece3baa1e21cb1e8aa843948f9d5021b20b1c9", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000015": "15", + "0x0000000000000000000000000000000000000000000000000000000000000016": "16", + "0x0000000000000000000000000000000000000000000000000000000000000017": "17" + }, + "address": "0x81d180be8008f56e16d78fb20f40d8b4bf023960", + "key": "0x8c0337db9b5538441a43e1453a2b67368be33c0be8c3e700fdf718842b1349d9" + }, + "0x83C7e323d189f18725ac510004fdC2941F8C4A78": { + "balance": "1000000000000000000000000000000000002", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x83c7e323d189f18725ac510004fdc2941f8c4a78", + "key": "0xb17ea61d092bd5d77edd9d5214e9483607689cdcc35a30f7ea49071b3be88c64" + }, + "0x847F88846C35337CbF57E37ffC18316A99Ac2F14": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x52e6a4c40e455905724bc00edd73e34072c5e97a169368bb447d72be6989bc13", + "code": "0x2bfb33747d039531bb279f93c386332ae05e0c10b395017fd2d93fe9fc4c6e23e03615811ae25b894de73e643038c13c37f602dc1e17ff1a02e5854893f3bd5e2c3ae7faa961c1022fc62c6e28aa6a8ca294093f03d2e3388f637423816a5ca5181ec19a0f957384e4ecbe9410e516ad0fe8cc3e53caac5ffc50eb11e64bf488cee00ef6983e77a7e1db3b46722f66f35b443eda730735f8d62ca455b3aed108f741ec76f1fe7f69472258a1aadfdfa26e2ebd1eab0ccf01974a49e36fb53ba4bcf8f20af2ea5452ef730fc21b76c654aa112eeb6bd50a8af28b1e5d63c16cd7d9ba031fdb7d71bd061083980d5807d26bb2fade193f918e92821956bfdda35a", + "address": "0x847f88846c35337cbf57e37ffc18316a99ac2f14", + "key": "0xbea55c1dc9f4a9fb50cbedc70448a4e162792b9502bb28b936c7e0a2fd7fe41d" + }, + "0x84E75c28348fB86AceA1A93a39426d7D60f4CC46": { + "balance": "1000000000000000000000000000000000002", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x84e75c28348fb86acea1a93a39426d7d60f4cc46", + "key": "0x5162f18d40405c59ef279ad71d87fbec2bbfedc57139d56986fbf47daf8bcbf2" + }, + "0x870d4A1AF4E4f80bc8c6a7f4Cf7484F77bE117C9": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x59adfad51ac35f1983440f3da676e7f89fa00d680b6e144a976fbf80feca8f17", + "code": "0x3e9abaca0aad9ede81f4474766c846d8539f70688e1c8f521bbe1597874e3dc42a32391a76c35a36352b711f9152c0d0a340cd686850c8ef25fbb11c71b89e7bd3604db978f6137b0d18816b77b2ce810487a3af08a922e0b184963be5f3adfc9dcb9783ba5cd0b54745f65f4f918525e461e91888c334e5342cb380ac558d535c6b02db8b672415ffad906d7ccee10bd53dbad7d0b29e2bc0e50c93d5f31093a18b128af1c8fc61ff46f02d146e54546f34d340574cf2cef6a753cba6b6701d4da38fc8e544afc56a4c2a17752b8ddb67d8e23ac4583c9029d2e2d1dbe6c9883ed157e83ab1bb1f6b7b3760b3368106283d4e15d1f1b08e20d06576445a9994", + "address": "0x870d4a1af4e4f80bc8c6a7f4cf7484f77be117c9", + "key": "0x5ca23f91fefb93f286e7e245a0fe4d7018dfbfc71d39f9d80ff6ae95a304165f" + }, + "0x871DcE18bf93E1b1D3B2F80FD2b7C009A6B7e204": { + "balance": "0", + "nonce": 1, + "root": "0x51a22b2bdb39a11558ad762378d7c122370e3831b26df96459bf53abb845f82a", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000018": "18", + "0x0000000000000000000000000000000000000000000000000000000000000019": "19", + "0x000000000000000000000000000000000000000000000000000000000000001a": "1a" + }, + "address": "0x871dce18bf93e1b1d3b2f80fd2b7c009a6b7e204", + "key": "0xff70e9e050b02392d2b698a01bde84b39702a028cabbe4bbe88ff5964b186d65" + }, + "0x882e7e5d12617C267a72948e716f231Fa79e6d51": { + "balance": "0", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x882e7e5d12617c267a72948e716f231fa79e6d51", + "key": "0xd2501ae11a14bf0c2283a24b7e77c846c00a63e71908c6a5e1caff201bad0762" + }, + "0x8BEbc8Ba651AEE624937E7d897853AC30C95a067": { + "balance": "1", + "nonce": 1, + "root": "0xbe3d75a1729be157e79c3b77f00206db4d54e3ea14375a015451c88ec067c790", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000001": "01", + "0x0000000000000000000000000000000000000000000000000000000000000002": "02", + "0x0000000000000000000000000000000000000000000000000000000000000003": "03" + }, + "address": "0x8bebc8ba651aee624937e7d897853ac30c95a067", + "key": "0x445cb5c1278fdce2f9cbdb681bdd76c52f8e50e41dbd9e220242a69ba99ac099" + }, + "0x8C71c88762EcaF1C5f0C06fDFEC6D1C86ee62174": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x8c71c88762ecaf1c5f0c06fdfec6d1c86ee62174", + "key": "0x272de2ea3ace35fa88acd34a8f7c9c0c236439eafc0509f2a6d66d1dda7225d0" + }, + "0x8D94c7e33c4ca49562F258A133De8F177D818A9D": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x132557381e40d0126be4ace93b4614551675d5e3753c6c60b25ca052fc8880bf", + "code": "0xfaaf1897615a4d5824a81780f33dd422a304cae5e7b14f0f9215d1a3deeea9e2f3acc69a9031f5037951ce1c99fcf7752f2d0ceae99c0b9690d37b7553f5f03f1d6259cceddee50e33c0ede37bb2e8136cec47688223681b2fb690d3fce7a3d910f5232ee9f6343d8bf0b7c9043a31ee616d8f028dcf3d2e9033ff8e0ce0ef0f724ad3d24f57aae4bebead5383879105ce62b9d5fa67d4343ae412b59bd7971d4d86b00d2ea4cfb01847b7956081673f71c56ef4a250d3ffa5902b0df4fc97061db7b1394727b4ec83580f945ddf3bdf76fcb71f6c6109779c749ee7ec003004fce7dc5bb3cbbc540cf9457d032a1a1aae0059624b6dd6eecb9d2c06cd32c09c", + "address": "0x8d94c7e33c4ca49562f258a133de8f177d818a9d", + "key": "0xc2847bbcee6d2e247f094871ddb1e40da11ffffd395f441fac495a75040719c0" + }, + "0x9025d2F24A1a23CB2B093823e52e1f90DAC60a95": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x9025d2f24a1a23cb2b093823e52e1f90dac60a95", + "key": "0x6e9e5296c3f88a6ee0f51246dc1237dec2b78db9938cd04f404f44bc0b70a479" + }, + "0x93216E4a663E3A680A0FE006285935F47caa5738": { + "balance": "0", + "nonce": 1, + "root": "0x47a64380e3ea367bd6cfe7262630ae6474f9e0a506a2e1331bbab5cb7df83230", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000027": "27", + "0x0000000000000000000000000000000000000000000000000000000000000028": "28", + "0x0000000000000000000000000000000000000000000000000000000000000029": "29" + }, + "address": "0x93216e4a663e3a680a0fe006285935f47caa5738", + "key": "0x4c5038feb95f6ec5d7f882308ee48d7f51cd0f31fde9cfabc5f8a781ac6671df" + }, + "0x9344b07175800259691961298cA11c824e65032d": { + "balance": "0", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x8e0388ecf64cfa76b3a6af159f77451519a7f9bb862e4cce24175c791fdcb0df", + "code": "0x60004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3", + "address": "0x9344b07175800259691961298ca11c824e65032d", + "key": "0x2e6fe1362b3e388184fd7bf08e99e74170b26361624ffd1c5f646da7067b58b6" + }, + "0x9539d142fbbdEa1A80522fEdfA5A8619b4fa1861": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x9539d142fbbdea1a80522fedfa5a8619b4fa1861", + "key": "0x9a57b0a587fc060d23e9d43445f3f75c10c91121e850e44ef1fd11e47afd5ba7" + }, + "0x9b3cf956056937Dfb6F9E3dc02e3979A4E421c0A": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0x9b3cf956056937dfb6f9e3dc02e3979a4e421c0a", + "key": "0xb1b2c1c59637202bb0e0d21255e44e0df719fe990be05f213b1b813e3d8179d7" + }, + "0xA6a54695341F038ad15e9e32f1096f5201236512": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x43753c2e670cc48b2137a5538ca949ec1a39c9639387461dd84f6d5e6416646c", + "code": "0x324fdf7bfe7bd2828491073f0b7868a9a19ee3eff384c2805040be3e426447f574a5fbcb419ab7dbacbb2c92a4e163730f0da5c72b911deecf4f05a6b327d0a4f85cc6ffc513dc6cf7d199ef87b7a63cf9defe62251c1c247cd12f1eec7bff298a8dc4e5242ea8b1ab1d60606dae757e6c2cca9f92a2cced9f72c19960bcb4584ad5a04d53b5856f318545bb721f67d3f6d0a5a999f25eec7e20eaeb4c47b933c0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1ca4d0c6c94a9477136dd41a99cc19ecbe441c8f6609efe7c6fa65be007a47323f1f3e9c34634a546b3672c043f73844d83d55591bbe61b8e7e3a72bca1a812bf", + "address": "0xa6a54695341f038ad15e9e32f1096f5201236512", + "key": "0xa87387b50b481431c6ccdb9ae99a54d4dcdd4a3eff75d7b17b4818f7bbfc21e9" + }, + "0xA788CA96A910bAC854f95B794776c1AD847DcDD5": { + "balance": "0", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xa788ca96a910bac854f95b794776c1ad847dcdd5", + "key": "0x765167a6eef9a12a7a2b6dee68a442a4534642a80faf799517cbe3b3dbac7faa" + }, + "0xAB9025D4a9F93c65cD4Fe978D38526860aF0aa62": { + "balance": "0", + "nonce": 1, + "root": "0x3a58b3b4acd2202678051b86feb0dfbd2e7820878f2ef6b4baa7a1872fa785b1", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000024": "24", + "0x0000000000000000000000000000000000000000000000000000000000000025": "25", + "0x0000000000000000000000000000000000000000000000000000000000000026": "26" + }, + "address": "0xab9025d4a9f93c65cd4fe978d38526860af0aa62", + "key": "0x17350c7adae7f08d7bbb8befcc97234462831638443cd6dfea186cbf5a08b7c7" + }, + "0xAcEac762fF518b4cf93a6EEbBc55987e7b79b2cE": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x6b48000f6019b583ca362b0dc6bb651649385624e568bd3588ccc7135cb7462b", + "code": "0x870253054e3d98b71abec8fff9ebf8a15d167f15909091a800d4acaab9266d2bdc686ec4a0ff239c70e7c7c36e8f853eced3bc8618f48d2b816da2a74311237eacd8ef244210bb6898e73c48bf820ed8ecc857a3bab8d79c10e4fa92b1e9ca65f2c49132ed1cee2a7e75bde50d332a2f81f1d01e5456d8a19d1df09bd561dbd2beb3bad75134cb432e5707980e3245c52c5998a1125ee30f2f0dbf3925b1e551eddb6698d7c569ff62ff64f1f1492bf14a54594835ba0faac91f84b4f5d814604ced6d0d36392b04cc5d8761b1327b3bbba6e1089c77f60a9a9ca18e05e4f00eb7c49cceb9f85950584035457a41ebbd8cf93b9b612733ad25aa9731ac43aad6", + "address": "0xaceac762ff518b4cf93a6eebbc55987e7b79b2ce", + "key": "0x1960414a11f8896c7fc4243aba7ed8179b0bc6979b7c25da7557b17f5dee7bf7" + }, + "0xBDda53a9729794D60e7555A0A9066b3aBCFc15a1": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xbdda53a9729794d60e7555a0a9066b3abcfc15a1", + "key": "0x8b016cf0507d02b670f348014bfbbac4ddc6c327f162ad478a4d4658a11ed051" + }, + "0xBFeA86423C99AD2Bf0E04Bf48f132eF15afbfFcA": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xbfea86423c99ad2bf0e04bf48f132ef15afbffca", + "key": "0x8fbe75b43640d6ad7867fdbc62ba143fbf5804c70eb7d391dd6d67b8c761408c" + }, + "0xBd079b0337A29cCCD2EC95b395Ef5c01E992b6a5": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xbd079b0337a29cccd2ec95b395ef5c01e992b6a5", + "key": "0xf0877d51b7712e08f2a3c96cddf50ff61b8b90f80b8b9817ea613a8a157b0c45" + }, + "0xC7B99a164Efd027a93f147376Cc7DA7C67c6bbE0": { + "balance": "1000000000000000000000000000000000000", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xc7b99a164efd027a93f147376cc7da7c67c6bbe0", + "key": "0x8e11480987056c309d7064ebbd887f086d815353cdbaadb796891ed25f8dcf61" + }, + "0xCaE62C8E777eA0541A55B5Af15D59eECc71cE2ac": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xcae62c8e777ea0541a55b5af15d59eecc71ce2ac", + "key": "0x3f6c9bea2a94e47b2694dda7576291a475e5e70977c0a71fedf363ea2cb652e9" + }, + "0xD1FFA9fF507492844818d0d91Bf35B93a7c95E4a": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xeb9f0d90519cedf8075daecb209855346f51be13ca2c463e0949c10d15cbfeb9", + "code": "0x20b8703968a1421b7417fbc8615cbe909dc21c5d6ab0d6fd4579bae332adc9376f153c7bec1b961778a44c5a2c99b1e110e89aa94705c74c316b7331a3d8406543b5581607f3794931937dc64797d2130b6bf8bdfd272fb8ea0df3fe46d9c410b79c508b45d95db38395ed273cca5afa4bcb8f1225ec7e9c849430db27d6f0fe1a6a7f21c46330bc6f6a1e986d3ef56bc7833cc3006bfde177cce9f142837659fde35737db706c16fba5e9f098619e9536256befd6f412f408865e7267b38573c40cabba85bacae2b367d452524fc3c64d193b81d8e5f9a9b5e87d78b45816eaedddd91313f7c989bdc231bc624ea9908f2340b23ff878dfbd27a2cf1c3ec99f", + "address": "0xd1ffa9ff507492844818d0d91bf35b93a7c95e4a", + "key": "0x4885a02db06138818497f56f6ef6f9611b1fe93d81f6d4a03dd83ee80a119ed6" + }, + "0xE3A8b633a20D3Bc82CFD6d6cB315dD9784b3EA41": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xe3a8b633a20d3bc82cfd6d6cb315dd9784b3ea41", + "key": "0xa3f8196fd37c836d7a5bfcdd9807147e8d74957f5125bed4c6fe6da4e348dcad" + }, + "0xE75DB02929f3D5d7c28ecDb064ecE929602c06BD": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xe75db02929f3d5d7c28ecdb064ece929602c06bd", + "key": "0x600a7a5f41a67f6f759dcb664198f1c5d9b657fb51a870ce9e234e686dff008e" + }, + "0xE7D6C630bD79f8CBb837221AED4538Ea6B23FbE6": { + "balance": "0", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xe7d6c630bd79f8cbb837221aed4538ea6b23fbe6", + "key": "0x1189e6016e8e221cc4fc4f2ac243e8829959de8b935313559ace4a1207d9bf11" + }, + "0xE7d13f7Aa2A838D24c59b40186a0aCa1e21CffCC": { + "balance": "1000000000000000000000000000000000000", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xe7d13f7aa2a838d24c59b40186a0aca1e21cffcc", + "key": "0xec3e92967d10ac66eff64a5697258b8acf87e661962b2938a0edcd78788f360d" + }, + "0xEC3eE750E2748aE2cBAE35E469185E4824824E1F": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xbba5ad022ed220f608e1364d2b13eab65fe4d8fa4fe179d1417af69239860587", + "code": "0x020abee21eef15c21bc31a406c2b8ac3afc5df94a4b02b38abb286f4334e6c5b755311b9e2cee471a91b161ccc5deed933d844b5af2b885543cc3c04eb640983328b8e687a0a963892a735f0237cb763bbbbf8ba0c1dfe2c221debb32c4bbd8947d4745e02b343689a5e7ac121d2a352b7a15c10328a8759fd7d4cf0999002bb4a597304b2df0a7a7b428b3c24c35ba6373aabebf9972387f5610f74a01b21bd8b32256db898364c465749decac34aee435952ffe1739257aa5b0235e266d9c56fac4587033fa036e2426ad0134940d3a683633cc2b2b7862f39195344f163d1fdb0fc5c292af6bc7c9afb28ca8e0549b4de965653a829548475c76a1d5c400c", + "address": "0xec3ee750e2748ae2cbae35e469185e4824824e1f", + "key": "0xbb841424e9b3ab772d99521cc155b53eab8c4d915d030f21d790ec2cb8d8e7d4" + }, + "0xF28E98DD61d8c712A49a49e189837D8888271158": { + "balance": "0", + "nonce": 1, + "root": "0x2b0942197e6bff98655d041e4e9babc448114630c762b51efd50a4b20f30441c", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x000000000000000000000000000000000000000000000000000000000000000e": "0e", + "0x000000000000000000000000000000000000000000000000000000000000000f": "0f", + "0x0000000000000000000000000000000000000000000000000000000000000010": "10" + }, + "address": "0xf28e98dd61d8c712a49a49e189837d8888271158", + "key": "0x2a975bb8885dd321fb0d12b073fc5b9c7833242f2241f8df7dc9b5fe4f68f6bd" + }, + "0xF5347043ae5FCA9412ca2C72aEE17A1D3Ba37691": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xf5347043ae5fca9412ca2c72aee17a1d3ba37691", + "key": "0xa5541b637a896d30688a80b7affda987d9597aac7ccd9799c15999a1d7d094e2" + }, + "0xF7EAaDCf76fFcF006A86dEb2f17d0b8fe0B211a8": { + "balance": "0", + "nonce": 0, + "root": "0x491b2cfba976b2e78bd9be3bc15c9964927205fc34c9954a4d61bbe8170ba533", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000005": "05", + "0x0000000000000000000000000000000000000000000000000000000000000006": "06", + "0x0000000000000000000000000000000000000000000000000000000000000007": "07" + }, + "address": "0xf7eaadcf76ffcf006a86deb2f17d0b8fe0b211a8", + "key": "0x1dff76635b74ddba16bba3054cc568eed2571ea6becaabd0592b980463f157e2" + }, + "0xF89374e8646084BE4525B8Da2E64aF316b570458": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x70509cee324b25aa0213b0fec58f04bf17c986b83b2b7d9a6b93eb032b6be40c", + "code": "0xb44b86596a635358e7aa60b17d32860c3f1efe2d3e53fb82c0bb23213b9c4be32b00120b81607971383f6f5676c1551d6bb27be3f263689fd3630e1a5be14018fa3bcae139a60d3922021a29633a6c8687b9ba7e920e2516b2cfd8f5fd3e0e51370c8c7c6215b209793aa720f65163fbeecd5f5114008532ba0649ee2340540287e655ef16e4075af30c6a90c2b439f7dcd2d83a606dafadaee10cffaf918132b8657d180a4d2444fb942e94a4266075e5a1b59d96d88e88cf308d6927f00ff27d35cc2b0520994422695eb24e3bf4f74e9cba2704cae72ecd9ec54409a56afb3b7c8b1df7c71af88cda2092b2bbd35702a3b48a00f02a41bbad24edc78296dc", + "address": "0xf89374e8646084be4525b8da2e64af316b570458", + "key": "0x8a501498b71c00ef30dfb420ca71d286546a057bb13d56eb0e175c0e42c2f3a6" + }, + "0xa12B147dD542518f44f821a4d436066C64932b0d": { + "balance": "0", + "nonce": 1, + "root": "0x39e1a47c1acbf66554501ccd7eb3a54c42f09cbd36beb9d5a77aea3685ff1fa3", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000017": "17", + "0x0000000000000000000000000000000000000000000000000000000000000018": "18", + "0x0000000000000000000000000000000000000000000000000000000000000019": "19" + }, + "address": "0xa12b147dd542518f44f821a4d436066c64932b0d", + "key": "0xae88076d02b19c4d09cb13fca14303687417b632444f3e30fc4880c225867be3" + }, + "0xaD9Dad8a45e691B45a09e2CE5a88594A08f4744A": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x5abe908136acf3d84e45f47de4278c792c1ca777124f6019823f683f372f9922", + "code": "0x62103cf3131c85df57aad364d21cba02556d3092d6cb54c298c2e7726a7870bd8f331abe73332f95a25873e8b430885974c0409691f89d643119a11623a7924a59dd4b18488d12f51eda69757a0ed42a2010c14b564330cc74a06895e60c077bc69056f16cbaa3c616b828e333ab7d3a32310765507f8f58359e99ebb7a885f3c59312466997bb42aaaf719ece141047820e6b34531e1670dc1852a453648f0f069400f22b28c6c362558d92f66163cec5671cba50b61abd2eecfcd0eaeac518697b2bd7bb2984c4e0dc14c79c987d37818484a62958b9c45a0e8b962f20650f55c5b153ab560fcde54a63b18c7f53d75501706907cef8767fbded79ab9997c7", + "address": "0xad9dad8a45e691b45a09e2ce5a88594a08f4744a", + "key": "0x90c9be68ba7502086f74ff43be0a2f2dff9baa9073fbccf73690addc0d93ee20" + }, + "0xb911ABEEaD298d03C21c6C5fF397Cd80EB375D73": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xcf734bbcae7360fafca05158ce89b752a699f9d98a33235446ea113f1edd04cf", + "code": "0x52774d722ab93275a0199da6072cca5400bf7f03bf064dd4a2b1af238c418d494e788733fe0bff9af5f3e3a353367490c603293e53707fe7e4e0071b9ed497d644f9494ddace41673149b1ce2120e2a8dc5880bba93ff68e6b6c883c57a0c69594f2575c7592b1dfd5a8846a17482da7b0e38fb10c93880d74916c5f167924641bb30a1647f6f6723cb3a88838ce0319afabe51263fc466f2f669a7a24ad88c6dcae836ed36bf3d20474cfcca00229d5b3b00239a2a956d8ca4bf29e25a7143ceda6feebfb4ffb7de2d0dc45a13b92dc953c2ed6ee96fa7fe8179e7c4266747fe0187fe5ac48a8a39472250620f415014331c778dcb200418004c2f11134f4b7", + "address": "0xb911abeead298d03c21c6c5ff397cd80eb375d73", + "key": "0x873429def7829ff8227e4ef554591291907892fc8f3a1a0667dada3dc2a3eb84" + }, + "0xc8aF91C25CcEf6303abA6b35389C32344C8846b1": { + "balance": "0", + "nonce": 1, + "root": "0x0fd8e99b1b4ab4eb8c6c2218221ae6978cc67433341ed8a1ad6185d34fa82c61", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000014": "14", + "0x0000000000000000000000000000000000000000000000000000000000000015": "15", + "0x0000000000000000000000000000000000000000000000000000000000000016": "16" + }, + "address": "0xc8af91c25ccef6303aba6b35389c32344c8846b1", + "key": "0x80c81c55c3ae6c05094c394ac0a30c6d4251e5b4df001347a3fbd502729690a9" + }, + "0xd803681E487E6AC18053aFc5a6cD813c86Ec3E4D": { + "balance": "1000000000000000000000000100000000001", + "nonce": 0, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "address": "0xd803681e487e6ac18053afc5a6cd813c86ec3e4d", + "key": "0xe5302e42ca6111d3515cbbb2225265077da41d997f069a6c492fa3fcb0fdf284" + }, + "0xeBf37AF41B6d7913Aed3b9Cc650D1E8f58A3d785": { + "balance": "0", + "nonce": 1, + "root": "0x324c7f8ff4769d4c0d030616408dc7eb99c331a03a531e6c50f4368b00b59935", + "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000011": "11", + "0x0000000000000000000000000000000000000000000000000000000000000012": "12", + "0x0000000000000000000000000000000000000000000000000000000000000013": "13" + }, + "address": "0xebf37af41b6d7913aed3b9cc650d1e8f58a3d785", + "key": "0x209b102e507b8dfc6acfe2cf55f4133b9209357af679a6d507e6ee87112bfe10" + }, + "0xedA8645bA6948855E3B3cD596bbB07596d59c603": { + "balance": "1000000000000000000000000000000000005", + "nonce": 1, + "root": "0xdd43fc82ac338ab2ee3c6203da0c8f16e893e6c37720b37ce8676f0e7c68bb05", + "codeHash": "0x60f3c5b5570c669aa8e05259debd36b34ece48e9d00dfa8786da19f95cc6614f", + "code": "0xef010058f8fe237b593c19546e1e758a2544561d04bfe0", + "storage": { + "0x0000000000000000000000000000000000000000000000000000000000000000": "696e766f6b656400000000000000000000000000000000000000000000000000" + }, + "address": "0xeda8645ba6948855e3b3cd596bbb07596d59c603", + "key": "0xabd8afe9fbf5eaa36c506d7c8a2d48a35d013472f8182816be9c833be35e50da" + }, + "0xf068AE4089A66C79Afe47D6E513F718838D8f73F": { + "balance": "0", + "nonce": 1, + "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", + "codeHash": "0x38e0aa88c386479a946efa989a1b57f89baf9adb61e4b6fd9c0f7f7f744c2678", + "code": "0x7536f03fc5db63ca945db399fd3b92bff9b5879a5c0d7d84d2973ef5c841ea0612bd632ff333b55931f9f8bda8b4ed27e86687f88c95871969d72474fb428c140353061a88c0592f32d7468be32ff6e5e91e49a3ea3ffb3c4fbe417c36501ba2f60b7f6a315ec68a6ac240e69dca53652b38627f709a2caa217d9e18af4d7a6066b61daf77b854ca6ba000a8d4b340eafcdb71b6583753b4af89fceb54988fff58f00e8ecc6f5419941dd0bafec65a4cc188d31713fb1fe224257460930df8aff130046d53bc87538ab17e4752ba5f5082985eecc06ccb932c5a55e8242dd5026695255c0c22b4090576b0ff35e852eba3dd4afabff28976da48e1280061728d", + "address": "0xf068ae4089a66c79afe47d6e513f718838d8f73f", + "key": "0x37310559ceaade42e45b3e3f05925aadca9e60aeeb9dd60d824875d9e9e71e26" + } + } +} \ No newline at end of file diff --git a/tests/integration_tests/spec/fixtures/execution_apis/txinfo.json b/tests/integration_tests/spec/fixtures/execution_apis/txinfo.json new file mode 100644 index 0000000000..ad8edbe73a --- /dev/null +++ b/tests/integration_tests/spec/fixtures/execution_apis/txinfo.json @@ -0,0 +1,745 @@ +{ + "deploy-callenv": { + "contract": "0x9344b07175800259691961298ca11c824e65032d", + "block": "0x1" + }, + "deploy-callme": { + "contract": "0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667", + "block": "0x1" + }, + "deploy-callrevert": { + "contract": "0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930", + "block": "0x1" + }, + "randomcode": null, + "randomlogs": null, + "randomstorage": null, + "tx-eip7702": { + "account": "0xeda8645ba6948855e3b3cd596bbb07596d59c603", + "proxyAddr": "0x58f8fe237b593c19546e1e758a2544561d04bfe0", + "authorizeTx": "0x16f6724ad864e7664c367893cae3e176d362bea3a47495cec3b246555a7228da" + }, + "tx-emit-eip1559": [ + { + "txhash": "0xc7dba25cdd5aee6ff7d27fe5422a4179f5913c664c3339c8e0440bd1c9cd8de9", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1b", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x13bd2394f758553be374ffa4a9455cdf5e6ef3d905acd02746df2d12361e1ace" + }, + { + "txhash": "0x711f9a45929229020ea51ac9603dfbd16920c08aaf3b9ca182981b76a4022040", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1c", + "indexInBlock": 1, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x114f9c62146afca150122ee4c5deb50c9de990a7275432861c14d4ae1800e5cc" + }, + { + "txhash": "0x6703d8536f08d5a0adf5160a8746867e100fb45da3e724a14fad5c565260bbee", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1e", + "indexInBlock": 2, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x238cff2c5ab93ccabc36fcef28ba416a93c63285b780c9d4eed1d70e6889c818" + }, + { + "txhash": "0xfdda254dd3b2b35a5132ac8c046a24889d57ffe37613db707b10e8bc5a9c67c1", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x21", + "indexInBlock": 1, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xb6772510f5d77daf3205e0afac035d16eeb1bd28ee1be6bfa57bb67fd111c565" + }, + { + "txhash": "0x1a65f720a63ed7282daf218a924f1ba3b6ac40b5db25161078146dbd22d5e17d", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x23", + "indexInBlock": 2, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x151f1ee0a0f1a9b5a877d3a636ec0c207783c0cf4e05456e089d95a16f639e19" + }, + { + "txhash": "0xc97d14e668517fe59ae7ddf52481383ff3c374f406850c849c9bfdb47e4c4a90", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x26", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x203ec2df3f1265eb1de22e81d3ed84177def807020e48493c24ce1007f2a93b4" + }, + { + "txhash": "0xe59f37b9b7e8889c8230282f1350c0e04001232fcf675fc141cdabcb877b9595", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x28", + "indexInBlock": 3, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x744c318a28d9b402c1242775b83757deeb909600f2fa8f053755f265c350f934" + }, + { + "txhash": "0x1cd1a6af8134b83c935b1b9545438eaf03ec38aab1fb910a6cab3e99c0c54c72", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x2b", + "indexInBlock": 2, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xe40f7e90d366e95b58a24b13aabb5b70789398ec79b08d0952bc0f19d27218e1" + } + ], + "tx-emit-eip2930": [ + { + "txhash": "0xd82374da698cfacbf4bb58d7ab8444621517e2137c08b859c66e50e8927c7af6", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x18", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x95104e47e1982aba633477f377b1511396c3fe83600224bcb0c78949be705b33" + }, + { + "txhash": "0x7589e20825bf5abf22d6eaebd3c3650875fe9d2b2cb202d6c36aeb543292f1e0", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x19", + "indexInBlock": 2, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x6e0bc683683d9e3e3bbc53a431650e46e47d14fe9f221b84b9e3fb0bd44e2fe0" + }, + { + "txhash": "0xf804c0984af03a8fb0948a95bef19996d7cafdb098891ff65f126795b597064a", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1b", + "indexInBlock": 2, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x4fca474bfe29257cd2fc6aaa8526de59f97fdeccadf40d415477daaa16a301b2" + }, + { + "txhash": "0x56a892dcb5bba51be7dab94271a482aa6bc97eb3196a69c50f53747fa1d55782", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1e", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xbc345f673739a3d6c95cace43a530d85e2774e73ee8837955398ac7c7b069a31" + }, + { + "txhash": "0xdae77d0c63b270442595803f1b36cce3f5f5518f7448ef2e69488eadd2b453ee", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x20", + "indexInBlock": 2, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x792137c50df83e6f36851ebbc895474f11838e869cebf9d91399708bf3f285a5" + }, + { + "txhash": "0x00f36dbd8e7be4dffdaf16137d090527cef6eecb2333440002f7a1ab969c46a2", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x23", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x2acfc92a1cc51397c95e434631e449d83a81de91964ed735a8c8b71b35e1a626" + }, + { + "txhash": "0x1b18bc003b033990a6015c3b677657a9b5c212cf5cb7593694b6bbe134d880cc", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x25", + "indexInBlock": 2, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x14b868a14536eb5ed455a63ff5037a50756bb70d9511540bbf25b0db03e6f837" + }, + { + "txhash": "0xf9c5bcace6ccc1fda50a53762d0402e90a86b4567382464ea83a4187a0d973e8", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x28", + "indexInBlock": 1, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x9c3f428ba9b81a870adf7fb021492ee3b4044473f92a8e0802703e0800d2b571" + }, + { + "txhash": "0x51b0074bfb7b5e76ef0fc45d3815f3413bde865ea034f861293e222d7c27f7c4", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x2b", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x89c17d9392b73a55738ba19aae192f2f9c5612dc8bd803ca23b9c2fb9c309e56" + }, + { + "txhash": "0x195a09414344f56e7a202d1493b258b2394b9b93811ce4ee96212a7d34ffb04f", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x2d", + "indexInBlock": 4, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xe8481f0a1ea7b2528784efff1d1b33cbd66ac97ebe2ae35c7997cacb2863430b" + } + ], + "tx-emit-eip4844": [ + { + "txhash": "0x6bcea0da8e703d3283c8f1124377a63023290cd188de3274d12441e15dc14794", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x2a", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x35f96bc70aa62a539fa99d9153b0f8aaa4594abf70cc8a8d9018e04e39a17982" + }, + { + "txhash": "0x43728b63161cfb3d8e8f9657f30aa16e3b63ff6da28a21dea2b33274e47d91cc", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x2c", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x11f0a8ac2adda075c95bbf6be534e3254dafa759f62cbcf0e91bc6f0335e70aa" + } + ], + "tx-emit-legacy": [ + { + "txhash": "0x5bc704d4eb4ce7fe319705d2f888516961426a177f2799c9f934b5df7466dd33", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x2", + "indexInBlock": 2, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xf4da19d6c17928e683661a52829cf391d3dc26d581152b81ce595a1207944f09" + }, + { + "txhash": "0xf047c5133c96c405a79d01038b4ccf8208c03e296dd9f6bea083727c9513f805", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x4", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x4238ace0bf7e66fd40fea01bdf43f4f30423f48432efd0da3af5fcb17a977fd4" + }, + { + "txhash": "0x7a20de135c7e44a656e6349d8300647db24d297044836228adba1dfbb6d82879", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x5", + "indexInBlock": 2, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x0588df43087493fd84fa37ef37152cacefd4db3823315da90e65dd785434ff14" + }, + { + "txhash": "0xc66b6772df11c3ccd1e7628deaf393f92504ee6af7c8ebdfe512f97625c273c1", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x7", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x3569f740e521d8bb11c5b72660dc96272ad66bfd811ed918c3a9e02acd4ade8f" + }, + { + "txhash": "0x3209722a85c6e41124af84ae3701e9d15b7f4a078a348e57487e7353d93ec866", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x8", + "indexInBlock": 2, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x0921e35d2dc9980c8ba6910f8f63ab4b0cc99b9b50423dbb4dcb3bed4939c5f5" + }, + { + "txhash": "0xe6ef5a376c9a5ecbe9e2688fe226e60686f9bb6a39b5f5a5e48d16f2b14d4a4d", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xa", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xb8d28e7b703baf999848ecbba44026cb6479b3f0466037bcf2221ffc3f8549f9" + }, + { + "txhash": "0xf6b68a1c86b679be74e116f8b25e9dae5add5102ad4b9137e3ff30fa3913f9cb", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xb", + "indexInBlock": 2, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x09d9f86815d3c33738fdcb1e2e78d8a32c9ead8e6d7992be1021673b36b31224" + }, + { + "txhash": "0x5a5df9c4900a7c786a744417a5046cb88f30e24be88b4b06f1c6c5a81f6b2462", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xd", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x21bbff00787734951aff123713555d0a15eaba3a4c39633725c8d8a545a67957" + }, + { + "txhash": "0x41d4560ba5284c1067db63b96c02a3d83244a57b1d6823dfdd8007ff6c727482", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xe", + "indexInBlock": 2, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xa2fc47b981f101be956700b8cca7a48311b8f39cf8271b966693c3c5e7484a81" + }, + { + "txhash": "0x749d83b5180b88fbc4bb611481548ea9ab3e8c3847ccdd4fb0fa55912f68b6e6", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x10", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xe64bc02a00a08574b11865f3eaf12440003ee8ec5f2df18d045c49a2a45c6d52" + }, + { + "txhash": "0x33d59ce6ecd0b821bcfabc993e83b3b618022800590393ba5c6466ac145f41b6", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x11", + "indexInBlock": 2, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xb2cd144783c0f138a1420529b82c0ea1b65b006f9a35587d8013c71b7d2a1c6a" + }, + { + "txhash": "0xe25609ce501a2e7d7fe6b4ccdf645803dbd4658539f54b36b1cceee8aa360b24", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x13", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xcad398eccd12aa694ba255d69defbf78fd51d2acec863d3ad859a64ca3bbc6b7" + }, + { + "txhash": "0xfa11605de57c955136db1f1b6f5c2c0d7ad9947e48268a26b1fe5c1c47068fb1", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x14", + "indexInBlock": 2, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x9843536982cd35f7b0f71a3eb2a09cd0d2768d835a76d5a7166069c14149bb13" + }, + { + "txhash": "0x964a43005bae499cacf00bb1aff53e679e1d2f9ce1b8698b8f834d09f45cd672", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x16", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xa41cb4f2ab2731a8889754ae1a340c666cb8107b497b922073df80a9b255e31b" + }, + { + "txhash": "0xd54584e9fac7e2dc1351d33100f0cfcb23e14dc710f798d1c7ea521f377cd272", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x17", + "indexInBlock": 2, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x87c8bde84cde385e1d4d2340dfde5fa4897632946b0a38bcad1cccb5aed28995" + }, + { + "txhash": "0x323fe75033ae712f34e82c5007ba4f536198955ca3f18ea38063e6c2b1672308", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x19", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x2277e46024c337a51b8c6f946b6fd3fafaf181581eb4a4ef0bf3a23386c51e79" + }, + { + "txhash": "0x38f48c6e25bd286e1150dc75db1d3cf0eccc1cbc56ad99438f5e8e0446d4a4b8", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1d", + "indexInBlock": 2, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x2224f95f0540d6fc56a7f268f44c9dade1bd8dfcd3d215b60895caf4526718cd" + }, + { + "txhash": "0x6a5b6737246f9ca5cb8ac76bd1449fdabdad315f5f9f4e846a82a4c99c433cce", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x20", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0x415feb809041baabc4d9246223e40f1083963cbe1ef6dedb8b153e49d02ee7ce" + }, + { + "txhash": "0xdf5b04b81e56d206383cebe57e47f40c9c4d135ac92d4c5695e15b3fd7188520", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x22", + "indexInBlock": 2, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xc9a2fb36f38496f49a549275ba41a4a00ef97e4ca82512a3bdd22770ceba848a" + }, + { + "txhash": "0x67a420f24fa8ee518cbbb83024508d3393ce83d4ed41d1dc5205c45621b8356e", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x25", + "indexInBlock": 0, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xfa5fbc362eb74618d5c6dcb512ffb45d5dea367c27ee5122f29907d36b8b9515" + }, + { + "txhash": "0xb8d49ba18112a81983371e9e43378e9593f17163fd46d3c1cedeecf3c38b972a", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x27", + "indexInBlock": 2, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xc11c7bbe1b7743472b444bc11c51b1aceff1b8e207c9d46d2c3dd24e9184d8f4" + }, + { + "txhash": "0xeab876a89925871050e77b5308413b0aea26e51cee250bba53adef60c9fa9a64", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x2a", + "indexInBlock": 2, + "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", + "logtopic1": "0xc6efde6bbc44a930b209a39f844f0a5b69a2720057fc34e2df4e1f89b04a55bb" + } + ], + "tx-request-eip7002": { + "txhash": "0x3d3d02e1bdc39a6eab20f7b44ed299ca61eb1d642806bfa07e3a7ee8edd700e5", + "block": "0x2d" + }, + "tx-transfer-eip1559": [ + { + "txhash": "0xee7a54703e4bb9cea154b8c14dd9a3233af9120f76730abf21af6f1e1620fc41", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1b", + "indexInBlock": 1 + }, + { + "txhash": "0x1d0d00f4854cba7a0924748793da2a4afcf3adebc8a6586bca725ecab56cc6cc", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1c", + "indexInBlock": 2 + }, + { + "txhash": "0xceded6da67ef6c135c0ea8e2a1b63195f70f767bd58e0e1dfd91d10437a8ec7c", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1f", + "indexInBlock": 0 + }, + { + "txhash": "0x0deef60326a18c1d09295df25146d390c2d796d9a9e9c13923d2995139068f47", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x21", + "indexInBlock": 2 + }, + { + "txhash": "0x66e36fd24946b76e66ed41d0ea03871bd2bdaf1fd6ae375b4cd71515ef5abaae", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x24", + "indexInBlock": 0 + }, + { + "txhash": "0xfe675f72ed5bdd686882c818ca0ef3eb6d62d51c7dc9fcc28e036a733fe41730", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x26", + "indexInBlock": 1 + }, + { + "txhash": "0xae582a9da9dce8bcc78e0eaf7d3d67459739924ef65f70eb31f6551d59081169", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x29", + "indexInBlock": 0 + }, + { + "txhash": "0x6d54555c18ac55fb39592454ae8602c2d7d9185416a60eb58b3f5f3fd89f0e7b", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x2b", + "indexInBlock": 3 + } + ], + "tx-transfer-eip2930": [ + { + "txhash": "0x93fc7b57f2ea0d22cc186dd91ef6625b1ab26ba947e8052500cab4f31acd210e", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x18", + "indexInBlock": 1 + }, + { + "txhash": "0x5ec88593541d67c4ed879faf29f3758b262066d00cfb33adb910c7c4aed34b0e", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1a", + "indexInBlock": 0 + }, + { + "txhash": "0x7eb55ae162e0297519a6e6247af6bb5f0f6e220a1da4d00c46207689f89468f0", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1c", + "indexInBlock": 0 + }, + { + "txhash": "0x9303f8886732250a2c7f74a061a4b7e8269cbeb016b2f11427f57d580f6eb2cf", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1e", + "indexInBlock": 1 + }, + { + "txhash": "0x3d81e6b28f61bc080a6ecdfd99f43dcecba805cca4579a75f24f84cfdb856c21", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x21", + "indexInBlock": 0 + }, + { + "txhash": "0x1d01227f057e212d11016e36c2b6f8f675133d3f7ff895336d51cd4bf6c4d3f0", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x23", + "indexInBlock": 1 + }, + { + "txhash": "0x7c5b5aafd9a423d62babfeff8a7de40033058ca08dcc8ceebfa706edef9d1252", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x25", + "indexInBlock": 3 + }, + { + "txhash": "0x199e59feac813dfee4d2c44c21e25cf91103115f97e60f658aae1b40d391d18a", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x28", + "indexInBlock": 2 + }, + { + "txhash": "0x86ce3d4800e683bdad9eb1860a4caff91b2ccd230f61a3f01180b062659eb9fc", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x2b", + "indexInBlock": 1 + }, + { + "txhash": "0xdf66bea01c5cf47b48ec11453822d751a5daaf1d16959772c2196c5ab8cf8438", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x2d", + "indexInBlock": 5 + } + ], + "tx-transfer-legacy": [ + { + "txhash": "0x0d6999c0e9e4bec347945593e97bdcdf7c25be08ca1a1efdc520dbe75be985f3", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x2", + "indexInBlock": 3 + }, + { + "txhash": "0xdcfa416de8748fdf71bd8c6d563da0e8026cfdcce9ae5e63544fb49d76b5eae8", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x4", + "indexInBlock": 1 + }, + { + "txhash": "0x43d2af00293a75d08b24642c1bde6fd4ca1a9854874ef0caa2f026ef6f86a5db", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x5", + "indexInBlock": 3 + }, + { + "txhash": "0x83f4c78458c8f4bb119fab92718a208d89e051b90ca7f3d7182d7b6e37aafc46", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x7", + "indexInBlock": 1 + }, + { + "txhash": "0x87143e79f04cd15ebf308690d5bfe19e7b70754ac5456b19a118cba9eb3b4a5e", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x8", + "indexInBlock": 3 + }, + { + "txhash": "0x854f4a2cd70ffe3dc7ec4013469c295b1d972e43f51de1682bdd78ccf4c73530", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xa", + "indexInBlock": 1 + }, + { + "txhash": "0xa24f3cae0606ee961a001176f7f32a517d271350b30b37944509fd2dfcba6ca1", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xb", + "indexInBlock": 3 + }, + { + "txhash": "0x63606395409f39f4a8e31de9e6e8ff510417c95def81b381ed47355e9d8ade17", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xd", + "indexInBlock": 1 + }, + { + "txhash": "0x7cb3d154585fd334cc326574c8fe65d5d985e24c3fe33db5113a704967f18ec7", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0xe", + "indexInBlock": 3 + }, + { + "txhash": "0x5b9644aa7b63cfb193ae65c2f4b3962c39bd5f9f9bf7f570a1e3c40ad2b1704b", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x10", + "indexInBlock": 1 + }, + { + "txhash": "0xfb9af8e161e331889467e43f2d4e1cb7e0c4c06f7338befc52850764c9f15e0c", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x11", + "indexInBlock": 3 + }, + { + "txhash": "0x23cf1da26bc3489f4ab94336f94483d8802c4a544b8d3af1d50546bc28faacef", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x13", + "indexInBlock": 1 + }, + { + "txhash": "0x1997a926eac2fcc0469a746c7b2aa877769fa0951b1bda58e71c33416badccfc", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x14", + "indexInBlock": 3 + }, + { + "txhash": "0x9109b572e913b3dbc532c0640da1b417b9a2d6aca851663421c44cad0c6704aa", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x16", + "indexInBlock": 1 + }, + { + "txhash": "0x3047bfd6dbff007782ac301cf762b08a3d8d26d668c9cd508737e45cf283113a", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x17", + "indexInBlock": 3 + }, + { + "txhash": "0xb32dabe3a993102215f19a21e638ef708123137c5c8fc59017765b292c05e4f3", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x19", + "indexInBlock": 1 + }, + { + "txhash": "0xed6a3b2239f303f5251e2cd68e8f8a326fe50fe6fd0b25ccb9141278734048b0", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x1d", + "indexInBlock": 3 + }, + { + "txhash": "0x207e6ca3f4854f067752374731ba4d03a94a47f6c522f1706b6da8294f9aeb6a", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x20", + "indexInBlock": 1 + }, + { + "txhash": "0x3f8637c1a9480328861c3f16810481b195008554745d46ce17f2a940748f1da6", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x22", + "indexInBlock": 3 + }, + { + "txhash": "0x3aeb1302c4e52e8909776494a19a6db02156a32518880dd35a57a011c7971e04", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x25", + "indexInBlock": 1 + }, + { + "txhash": "0x1cc909a6e876cd04d24dbefeef9bd5563d4b71dbdf89725e82f0f7a542b66425", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x28", + "indexInBlock": 0 + }, + { + "txhash": "0x652a99ca41abd4b63a191bd05a6fc185926256fec07fe491cce1f9b558c41c80", + "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", + "block": "0x2a", + "indexInBlock": 3 + } + ], + "uncles": { + "10": { + "hashes": [ + "0x27d4fda915e2c46e76e580dac7303d9da1ecce31a6f3294f7636d1f179734461" + ] + }, + "12": { + "hashes": [ + "0x58cdaef8ec981110f3b4641b6ffb4c1b3d86bb8283b9af012a6ef34cfa261fdf" + ] + }, + "13": { + "hashes": [ + "0x4f80827f5b1d2cc7c48aa41bcef09359755188c04c71a62116976517504deaca" + ] + }, + "15": { + "hashes": [ + "0x22d388726ec75f140988d92eb96b48af6f7fbe26c6b5804fda7b5022671b97da" + ] + }, + "16": { + "hashes": [ + "0x36d2de35826d5e21970b5e20af7d7a84e0a610a7f1b868eeb11114667c46dba6" + ] + }, + "18": { + "hashes": [ + "0x6f33cdfeb83adf13c0e3178d244a759ab0450f3e379f300a3ee4ea820d34112e" + ] + }, + "19": { + "hashes": [ + "0xf9e1b5387a03e4e1f7bdbd38021b7d7aa0ffcbd170731a4a23519a9dd4ad9552" + ] + }, + "21": { + "hashes": [ + "0x2c6446c6f6dbb989678f583fb1e85667585f72a72508f0c42be6bafeea17cfc2" + ] + }, + "22": { + "hashes": [ + "0x82b86a46b0844b7b073a5b2fae461e7d1b3adb16b536988d91eca494dccd18bc" + ] + }, + "25": { + "hashes": [ + "0x7664c872189480f57495257762582df2d0ff60ebd1ea08f549b90a53d65bcdca" + ] + }, + "27": { + "hashes": [ + "0x65050466ad5543c351de427fd18f22e3fb993eaac0f1ae540a4aa5f75e5a876a" + ] + }, + "3": { + "hashes": [ + "0xad97d5e099618ca637fd66d5c25188e509a59e43b89598d251a9fcf21c8127d8" + ] + }, + "30": { + "hashes": [ + "0xb767adb46ba871d689f606739695dfb71e878209ebed6d1c3f337c032f4fc1f4" + ] + }, + "32": { + "hashes": [ + "0x5e23a8917824c83e5033fd01278440e6673cecc4fbf4f21684e7a98caf5301b3" + ] + }, + "35": { + "hashes": [ + "0xa2a0d293cd1d3b5061da148fe7ffecb35f7e63462aded020843435f609485b18" + ] + }, + "4": { + "hashes": [ + "0xf54f13c03c5265b4231d2d914e59b963a5d85786a0a273aaa4bc67b905c37c35" + ] + }, + "6": { + "hashes": [ + "0x749419cef73d249a540a8b39df47519e883a99ae21dcdbff140009b0b42b1c2b" + ] + }, + "7": { + "hashes": [ + "0xe6372983dcfa13f94cb867b1dde3ca33c20cc65bf8efb74ec3c0185b832d7f8b" + ] + }, + "9": { + "hashes": [ + "0x2be08e89f4ffbf0e0fe300b4273070e49aef17be865a8d735641d982b2f85080" + ] + } + }, + "withdrawals": { + "39": { + "withdrawals": [ + { + "index": "0x0", + "validatorIndex": "0x5", + "address": "0x3ae75c08b4c907eb63a8960c45b86e1e9ab6123c", + "amount": "0x64" + } + ] + }, + "41": { + "withdrawals": [ + { + "index": "0x1", + "validatorIndex": "0x5", + "address": "0x717f8aa2b982bee0e29f573d31df288663e1ce16", + "amount": "0x64" + } + ] + }, + "44": { + "withdrawals": [ + { + "index": "0x2", + "validatorIndex": "0x5", + "address": "0xd803681e487e6ac18053afc5a6cd813c86ec3e4d", + "amount": "0x64" + } + ] + } + } +} \ No newline at end of file diff --git a/tests/integration_tests/spec/net_version/get-network-id.io b/tests/integration_tests/spec/net_version/get-network-id.io new file mode 100644 index 0000000000..03cab5e8b4 --- /dev/null +++ b/tests/integration_tests/spec/net_version/get-network-id.io @@ -0,0 +1,3 @@ +// Calls net_version to retrieve the network ID, which is expected to be equal to the chainID of the test chain. +>> {"jsonrpc":"2.0","id":1,"method":"net_version"} +<< {"jsonrpc":"2.0","id":1,"result":"3503995874084926"} diff --git a/tests/integration_tests/spec/test_rpc_spec.py b/tests/integration_tests/spec/test_rpc_spec.py new file mode 100644 index 0000000000..86df56e7c9 --- /dev/null +++ b/tests/integration_tests/spec/test_rpc_spec.py @@ -0,0 +1,389 @@ +import json +import time +import urllib.error +import urllib.request +from collections import defaultdict +from pathlib import Path + +import pytest + +SPEC_ROOT = Path(__file__).parent +REQUEST_SCHEMA_ERROR_CODES = {-32600, -32602, -32700} +CATEGORY_TITLES = { + "correct": "correct implemented", + "not_implemented": "not implemented", + "request_schema_wrong": "implemented, but request schema is wrong", + "response_schema_wrong": "implemented, but response schema is wrong", + "value_wrong": "implemented, but value is wrong", + "mixed_wrong": "implemented, but multiple categories are wrong", +} + + +def _collect_spec_files(): + return sorted( + path.relative_to(SPEC_ROOT).with_suffix("").as_posix() + for path in SPEC_ROOT.glob("*/*.io") + ) + + +SPEC_FILES = _collect_spec_files() + + +class RpcSpecSummary: + def __init__(self): + self.correct = [] + self.not_implemented = [] + self.request_schema_wrong = [] + self.response_schema_wrong = [] + self.value_wrong = [] + + def add(self, result): + getattr(self, result.category).append(result) + + def format(self): + lines = ["", "ethermint RPC spec case summary"] + for attr in [ + "correct", + "not_implemented", + "request_schema_wrong", + "response_schema_wrong", + "value_wrong", + ]: + results = getattr(self, attr) + lines.append(f"- {CATEGORY_TITLES[attr]}: {len(results)}") + by_method = defaultdict(int) + examples = [] + for result in results: + by_method[result.method] += 1 + if len(examples) < 8: + examples.append(result) + if by_method: + method_counts = ", ".join( + f"{method}={count}" for method, count in sorted(by_method.items()) + ) + lines.append(f" methods: {method_counts}") + for result in examples: + lines.append(f" example: {result.spec_name}: {result.reason}") + if len(results) > len(examples): + lines.append(f" ... {len(results) - len(examples)} more") + lines.extend(self._format_method_summary()) + return "\n".join(lines) + + def _format_method_summary(self): + by_method = defaultdict(list) + for result in self._all_results(): + by_method[result.method].append(result) + + by_verdict = defaultdict(list) + for method, results in sorted(by_method.items()): + verdict = self._method_verdict(results) + by_verdict[verdict].append((method, results)) + + lines = ["", "ethermint RPC spec method summary (exclusive)"] + for verdict in [ + "correct", + "not_implemented", + "request_schema_wrong", + "response_schema_wrong", + "value_wrong", + "mixed_wrong", + ]: + methods = by_verdict.get(verdict, []) + lines.append(f"- {CATEGORY_TITLES[verdict]}: {len(methods)}") + for method, results in methods: + counts = defaultdict(int) + for result in results: + counts[result.category] += 1 + details = ", ".join( + f"{category}={counts[category]}" for category in sorted(counts) + ) + lines.append(f" {method}: {details}") + return lines + + def _all_results(self): + return ( + self.correct + + self.not_implemented + + self.request_schema_wrong + + self.response_schema_wrong + + self.value_wrong + ) + + @staticmethod + def _method_verdict(results): + categories = {result.category for result in results} + if categories == {"correct"}: + return "correct" + if categories == {"not_implemented"}: + return "not_implemented" + + wrong_categories = categories - {"correct"} + if len(wrong_categories) == 1: + return next(iter(wrong_categories)) + return "mixed_wrong" + + +class RpcSpecResult: + def __init__(self, spec_name, method, category, reason): + self.spec_name = spec_name + self.method = method + self.category = category + self.reason = reason + + +def _parse_spec_file(spec_name): + filepath = SPEC_ROOT / f"{spec_name}.io" + request_line = None + expected_line = None + comments = [] + with filepath.open() as f: + for line in f: + line = line.strip() + if line.startswith("//"): + comments.append(line[2:].strip()) + elif line.startswith(">> "): + request_line = line[3:] + elif line.startswith("<< "): + expected_line = line[3:] + return request_line, expected_line, comments + + +def _send_rpc(endpoint, request_body): + req = urllib.request.Request( + endpoint, + data=request_body.encode(), + headers={"Content-Type": "application/json"}, + ) + try: + with urllib.request.urlopen(req, timeout=30) as resp: + return json.loads(resp.read().decode()) + except urllib.error.HTTPError as err: + body = err.read().decode() + try: + return json.loads(body) + except json.JSONDecodeError: + return { + "jsonrpc": "2.0", + "id": None, + "error": { + "code": err.code, + "message": body, + }, + } + + +def _response_kind(response): + if "result" in response: + return "result" + if "error" in response: + return "error" + return "unknown" + + +def _is_not_implemented(response): + error = response.get("error") or {} + message = str(error.get("message", "")).lower() + return error.get("code") == -32601 or ( + "method" in message + and ( + "not found" in message + or "does not exist" in message + or "not available" in message + or "unsupported" in message + ) + ) + + +def _is_request_schema_error(response): + error = response.get("error") or {} + message = str(error.get("message", "")).lower() + return error.get("code") in REQUEST_SCHEMA_ERROR_CODES or any( + marker in message + for marker in [ + "invalid argument", + "invalid input", + "invalid params", + "missing", + "cannot unmarshal", + "required", + "too many arguments", + "argument count", + ] + ) + + +def _same_schema(expected, actual): + if isinstance(expected, dict) and isinstance(actual, dict): + if set(expected) != set(actual): + return False + return all(_same_schema(expected[key], actual[key]) for key in expected) + if isinstance(expected, list) and isinstance(actual, list): + if not expected or not actual: + return True + return all(_same_schema(exp, act) for exp, act in zip(expected, actual)) + return type(expected) is type(actual) + + +def _first_schema_mismatch(expected, actual, path="$"): + if isinstance(expected, dict) and isinstance(actual, dict): + expected_keys = set(expected) + actual_keys = set(actual) + missing = sorted(expected_keys - actual_keys) + extra = sorted(actual_keys - expected_keys) + if missing: + return f"{path}: missing keys {missing}" + if extra: + return f"{path}: extra keys {extra}" + for key in sorted(expected_keys): + mismatch = _first_schema_mismatch( + expected[key], actual[key], f"{path}.{key}" + ) + if mismatch: + return mismatch + return None + if isinstance(expected, list) and isinstance(actual, list): + if not expected or not actual: + return None + for index, (exp, act) in enumerate(zip(expected, actual)): + mismatch = _first_schema_mismatch(exp, act, f"{path}[{index}]") + if mismatch: + return mismatch + return None + if type(expected) is not type(actual): + return ( + f"{path}: expected {type(expected).__name__}, " + f"got {type(actual).__name__}" + ) + return None + + +def _first_value_mismatch(expected, actual, path="$"): + if expected == actual: + return None + if isinstance(expected, dict) and isinstance(actual, dict): + for key in sorted(expected): + mismatch = _first_value_mismatch( + expected[key], actual[key], f"{path}.{key}" + ) + if mismatch: + return mismatch + return None + if isinstance(expected, list) and isinstance(actual, list): + if len(expected) != len(actual): + return f"{path}: expected length {len(expected)}, got {len(actual)}" + for index, (exp, act) in enumerate(zip(expected, actual)): + mismatch = _first_value_mismatch(exp, act, f"{path}[{index}]") + if mismatch: + return mismatch + return None + return f"{path}: expected {expected!r}, got {actual!r}" + + +def _compact_json(value, limit=1200): + text = json.dumps(value, sort_keys=True) + if len(text) <= limit: + return text + return f"{text[:limit]}... " + + +def _classify(spec_name, request, expected, actual): + method = request.get("method", "") + if expected == actual: + return RpcSpecResult(spec_name, method, "correct", "strict match") + + if _is_not_implemented(actual): + return RpcSpecResult( + spec_name, + method, + "not_implemented", + actual.get("error", {}).get("message", "method not implemented"), + ) + + expected_kind = _response_kind(expected) + actual_kind = _response_kind(actual) + + if actual_kind == "error" and _is_request_schema_error(actual): + return RpcSpecResult( + spec_name, + method, + "request_schema_wrong", + f"expected {expected_kind}, got request validation error: " + f"{actual.get('error', {}).get('message')}", + ) + + if expected_kind == "error" and actual_kind == "result": + return RpcSpecResult( + spec_name, + method, + "request_schema_wrong", + "spec expects request rejection, ethermint accepted it", + ) + + if expected_kind != actual_kind: + return RpcSpecResult( + spec_name, + method, + "value_wrong", + f"expected {expected_kind} response, got {actual_kind}", + ) + + if not _same_schema(expected, actual): + return RpcSpecResult( + spec_name, + method, + "response_schema_wrong", + _first_schema_mismatch(expected, actual) or "schema differs", + ) + + return RpcSpecResult( + spec_name, + method, + "value_wrong", + _first_value_mismatch(expected, actual) or "values differ", + ) + + +@pytest.fixture(scope="module") +def rpc_endpoint(ethermint): + """Wait for the chain to reach the highest block used by the copied specs.""" + w3 = ethermint.w3 + for _ in range(480): + try: + if w3.eth.block_number >= 45: + break + except Exception: + pass + time.sleep(0.5) + else: + raise TimeoutError("ethermint did not reach block 45 within timeout") + return ethermint.w3_http_endpoint + + +@pytest.fixture(scope="module") +def rpc_spec_summary(): + summary = RpcSpecSummary() + yield summary + print(summary.format()) + + +@pytest.mark.parametrize("spec_name", SPEC_FILES) +def test_ethermint_rpc_matches_execution_api_spec( + rpc_endpoint, rpc_spec_summary, spec_name +): + request_body, expected_body, comments = _parse_spec_file(spec_name) + assert request_body, f"no request line (>> ...) in {spec_name}.io" + assert expected_body, f"no expected response line (<< ...) in {spec_name}.io" + + request = json.loads(request_body) + expected = json.loads(expected_body) + actual = _send_rpc(rpc_endpoint, request_body) + + result = _classify(spec_name, request, expected, actual) + rpc_spec_summary.add(result) + + context = comments[0] if comments else spec_name + assert result.category == "correct", ( + f"{spec_name}: {context}: {result.reason}\n" + f"expected: {_compact_json(expected)}\n" + f"actual: {_compact_json(actual)}" + ) diff --git a/tests/integration_tests/spec/test_rpc_spec_schema.py b/tests/integration_tests/spec/test_rpc_spec_schema.py new file mode 100644 index 0000000000..98da6dca31 --- /dev/null +++ b/tests/integration_tests/spec/test_rpc_spec_schema.py @@ -0,0 +1,440 @@ +import json +from copy import deepcopy +from collections import defaultdict +from pathlib import Path + +import pytest +from web3 import Web3 + +from test_rpc_spec import ( + SPEC_FILES, + CATEGORY_TITLES, + RpcSpecResult, + _compact_json, + _first_schema_mismatch, + _is_not_implemented, + _is_request_schema_error, + _parse_spec_file, + _response_kind, + _same_schema, + _send_rpc, + rpc_endpoint, +) + +REPORT_PATH = Path(__file__).with_name("rpc_schema_report.md") +SCHEMA_CATEGORY_TITLES = { + **CATEGORY_TITLES, + "schema_correct": "correct implemented by schema", +} + + +@pytest.fixture(scope="module") +def rpc_context(rpc_endpoint): + import sys + + sys.path.append(str(Path(__file__).parents[1])) + from utils import ADDRS, KEYS, send_transaction + + w3 = Web3(Web3.HTTPProvider(rpc_endpoint)) + receipt = send_transaction( + w3, + {"to": ADDRS["community"], "value": 1, "gasPrice": w3.eth.gas_price}, + KEYS["validator"], + ) + return { + "endpoint": rpc_endpoint, + "block_hash": Web3.to_hex(receipt.blockHash), + "block_number": hex(receipt.blockNumber), + "tx_hash": Web3.to_hex(receipt.transactionHash), + } + + +class RpcSpecSchemaSummary: + def __init__(self): + self.schema_correct = [] + self.not_implemented = [] + self.request_schema_wrong = [] + self.response_schema_wrong = [] + + def add(self, result): + getattr(self, result.category).append(result) + + def format(self): + lines = ["ethermint RPC spec schema case summary"] + for attr in [ + "schema_correct", + "not_implemented", + "request_schema_wrong", + "response_schema_wrong", + ]: + results = getattr(self, attr) + lines.append(f"- {SCHEMA_CATEGORY_TITLES[attr]}: {len(results)}") + by_method = defaultdict(int) + examples = [] + for result in results: + by_method[result.method] += 1 + if len(examples) < 8: + examples.append(result) + if by_method: + method_counts = ", ".join( + f"{method}={count}" for method, count in sorted(by_method.items()) + ) + lines.append(f" methods: {method_counts}") + for result in examples: + lines.append(f" example: {result.spec_name}: {result.reason}") + if len(results) > len(examples): + lines.append(f" ... {len(results) - len(examples)} more") + lines.extend(self._format_method_summary()) + return "\n".join(lines) + + def report(self): + lines = [ + "# Ethermint RPC Schema Spec Report", + "", + "Generated by `spec/test_rpc_spec_schema.py`.", + "", + "This report compares Ethermint JSON-RPC responses with the copied " + "execution-apis `.io` fixtures by schema only. Values are ignored, " + "but response kind, object keys, and JSON value types must match.", + "", + "## Case Summary", + "", + ] + lines.extend(self._markdown_case_summary()) + lines.extend(["", "## Method Summary", ""]) + lines.extend(self._markdown_method_summary()) + lines.extend(["", "## Null Result Summary", ""]) + lines.extend(self._markdown_null_result_summary()) + lines.extend(["", "## Detailed Mismatches", ""]) + lines.extend(self._markdown_details()) + return "\n".join(lines).rstrip() + "\n" + + def _markdown_case_summary(self): + lines = ["| Category | Cases | Methods |", "| --- | ---: | --- |"] + for attr in [ + "schema_correct", + "not_implemented", + "request_schema_wrong", + "response_schema_wrong", + ]: + results = getattr(self, attr) + methods = sorted({result.method for result in results}) + lines.append( + "| {} | {} | {} |".format( + SCHEMA_CATEGORY_TITLES[attr], + len(results), + ", ".join(methods) if methods else "-", + ) + ) + return lines + + def _markdown_method_summary(self): + by_method = defaultdict(list) + for result in self._all_results(): + by_method[result.method].append(result) + + by_verdict = defaultdict(list) + for method, results in sorted(by_method.items()): + by_verdict[self._method_verdict(results)].append((method, results)) + + lines = ["| Category | Methods | Details |", "| --- | ---: | --- |"] + for verdict in [ + "schema_correct", + "not_implemented", + "request_schema_wrong", + "response_schema_wrong", + "mixed_wrong", + ]: + methods = by_verdict.get(verdict, []) + details = [] + for method, results in methods: + counts = defaultdict(int) + for result in results: + counts[result.category] += 1 + count_text = ", ".join( + f"{category}={counts[category]}" for category in sorted(counts) + ) + details.append(f"`{method}` ({count_text})") + lines.append( + "| {} | {} | {} |".format( + SCHEMA_CATEGORY_TITLES[verdict], + len(methods), + "
".join(details) if details else "-", + ) + ) + return lines + + def _markdown_null_result_summary(self): + expected_null = [] + unexpected_null = [] + for result in self._all_results(): + expected = getattr(result, "expected", {}) + actual = getattr(result, "actual", {}) + if ( + "result" in expected + and "result" in actual + and expected.get("result") is None + and actual.get("result") is None + ): + expected_null.append(result) + elif ( + "result" in expected + and "result" in actual + and expected.get("result") is not None + and actual.get("result") is None + ): + unexpected_null.append(result) + + lines = [ + "| Category | Cases | Details |", + "| --- | ---: | --- |", + "| expected `result: null` | {} | {} |".format( + len(expected_null), + ", ".join(f"`{result.spec_name}`" for result in expected_null) or "-", + ), + "| unexpected `result: null` | {} | {} |".format( + len(unexpected_null), + ", ".join(f"`{result.spec_name}`" for result in unexpected_null) or "-", + ), + ] + return lines + + def _markdown_details(self): + lines = [] + for attr in [ + "not_implemented", + "request_schema_wrong", + "response_schema_wrong", + ]: + results = getattr(self, attr) + lines.extend([f"### {SCHEMA_CATEGORY_TITLES[attr]}", ""]) + if not results: + lines.extend(["No cases.", ""]) + continue + + for result in results: + lines.extend( + [ + f"#### `{result.spec_name}`", + "", + f"- Method: `{result.method}`", + f"- Reason: {result.reason}", + f"- Comment: {result.comment or '-'}", + "", + "Request:", + "", + "```json", + _compact_json(result.request), + "```", + "", + "Expected:", + "", + "```json", + _compact_json(result.expected), + "```", + "", + "Actual:", + "", + "```json", + _compact_json(result.actual), + "```", + "", + ] + ) + return lines + + def _format_method_summary(self): + by_method = defaultdict(list) + for result in self._all_results(): + by_method[result.method].append(result) + + by_verdict = defaultdict(list) + for method, results in sorted(by_method.items()): + verdict = self._method_verdict(results) + by_verdict[verdict].append((method, results)) + + lines = ["", "ethermint RPC spec schema method summary (exclusive)"] + for verdict in [ + "schema_correct", + "not_implemented", + "request_schema_wrong", + "response_schema_wrong", + "mixed_wrong", + ]: + methods = by_verdict.get(verdict, []) + lines.append(f"- {SCHEMA_CATEGORY_TITLES[verdict]}: {len(methods)}") + for method, results in methods: + counts = defaultdict(int) + for result in results: + counts[result.category] += 1 + details = ", ".join( + f"{category}={counts[category]}" for category in sorted(counts) + ) + lines.append(f" {method}: {details}") + unexpected_null = [ + result + for result in self._all_results() + if "result" in getattr(result, "expected", {}) + and "result" in getattr(result, "actual", {}) + and getattr(result, "expected", {}).get("result") is not None + and getattr(result, "actual", {}).get("result") is None + ] + lines.extend( + [ + "", + "ethermint RPC spec schema null-result summary", + f"- unexpected result: null: {len(unexpected_null)}", + ] + ) + return lines + + def _all_results(self): + return ( + self.schema_correct + + self.not_implemented + + self.request_schema_wrong + + self.response_schema_wrong + ) + + @staticmethod + def _method_verdict(results): + categories = {result.category for result in results} + if categories == {"schema_correct"}: + return "schema_correct" + if categories == {"not_implemented"}: + return "not_implemented" + + wrong_categories = categories - {"schema_correct"} + if len(wrong_categories) == 1: + return next(iter(wrong_categories)) + return "mixed_wrong" + + +def _classify_schema(spec_name, request, expected, actual): + method = request.get("method", "") + + if _is_not_implemented(actual): + return RpcSpecResult( + spec_name, + method, + "not_implemented", + actual.get("error", {}).get("message", "method not implemented"), + ) + + expected_kind = _response_kind(expected) + actual_kind = _response_kind(actual) + + if actual_kind == "error" and _is_request_schema_error(actual): + return RpcSpecResult( + spec_name, + method, + "request_schema_wrong", + f"expected {expected_kind}, got request validation error: " + f"{actual.get('error', {}).get('message')}", + ) + + if expected_kind == "error" and actual_kind == "result": + return RpcSpecResult( + spec_name, + method, + "request_schema_wrong", + "spec expects request rejection, ethermint accepted it", + ) + + if expected_kind != actual_kind: + return RpcSpecResult( + spec_name, + method, + "response_schema_wrong", + f"expected {expected_kind} response, got {actual_kind}", + ) + + if not _same_schema(expected, actual): + return RpcSpecResult( + spec_name, + method, + "response_schema_wrong", + _first_schema_mismatch(expected, actual) or "schema differs", + ) + + return RpcSpecResult(spec_name, method, "schema_correct", "schema match") + + +def _attach_details(result, request, expected, actual, comment): + result.request = request + result.expected = expected + result.actual = actual + result.comment = comment + return result + + +def _has_non_null_result(expected): + return expected.get("result") is not None + + +def _rewrite_request_for_local_schema_fixture(request, expected, context): + if not _has_non_null_result(expected): + return request, False + + rewritten = deepcopy(request) + method = rewritten.get("method") + params = rewritten.get("params") or [] + + if method in { + "eth_getBlockByHash", + "eth_getBlockTransactionCountByHash", + "eth_getTransactionByBlockHashAndIndex", + }: + params[0] = context["block_hash"] + elif method == "eth_getTransactionByBlockNumberAndIndex": + params[0] = context["block_number"] + elif method in {"eth_getTransactionByHash", "eth_getTransactionReceipt"}: + params[0] = context["tx_hash"] + else: + return request, False + + rewritten["params"] = params + return rewritten, True + + +def _run_spec_case(rpc_context, spec_name): + request_body, expected_body, comments = _parse_spec_file(spec_name) + assert request_body, f"no request line (>> ...) in {spec_name}.io" + assert expected_body, f"no expected response line (<< ...) in {spec_name}.io" + + request = json.loads(request_body) + expected = json.loads(expected_body) + request, rewritten = _rewrite_request_for_local_schema_fixture( + request, expected, rpc_context + ) + actual = _send_rpc(rpc_context["endpoint"], json.dumps(request)) + + result = _classify_schema(spec_name, request, expected, actual) + context = comments[0] if comments else "" + if rewritten: + context = f"{context} (request rewritten to local Ethermint fixture hash)" + return _attach_details(result, request, expected, actual, context) + + +def test_ethermint_rpc_matches_execution_api_schema(rpc_context): + summary = RpcSpecSchemaSummary() + for spec_name in SPEC_FILES: + summary.add(_run_spec_case(rpc_context, spec_name)) + + report = summary.report() + REPORT_PATH.write_text(report) + + print("") + print(summary.format()) + print("") + print(f"wrote schema report: {REPORT_PATH}") + + failures = ( + summary.not_implemented + + summary.request_schema_wrong + + summary.response_schema_wrong + ) + assert not failures, ( + f"{len(failures)} schema mismatches found. " + f"See detailed report: {REPORT_PATH}" + ) diff --git a/tests/integration_tests/spec/testing_buildBlockV1/build-block-empty-transactions.io b/tests/integration_tests/spec/testing_buildBlockV1/build-block-empty-transactions.io new file mode 100644 index 0000000000..2b9440ff65 --- /dev/null +++ b/tests/integration_tests/spec/testing_buildBlockV1/build-block-empty-transactions.io @@ -0,0 +1,3 @@ +// builds a block with empty transactions array using testing_buildBlockV1 +>> {"jsonrpc":"2.0","id":1,"method":"testing_buildBlockV1","params":["0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2",{"parentBeaconBlockRoot":"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884365149a42212e8822","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","suggestedFeeRecipient":"0x0000000000000000000000000000000000000000","timestamp":"0x1ce","withdrawals":[]},[],"0x"]} +<< {"jsonrpc":"2.0","id":1,"result":{"executionPayload":{"parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","feeRecipient":"0x0000000000000000000000000000000000000000","stateRoot":"0x4c6709fca84ff2bcca8609b4a54cb96fc1c001862d450d334088cd5694cad374","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x2e","gasLimit":"0x47d5ca2","gasUsed":"0x0","timestamp":"0x1ce","extraData":"0x","baseFeePerGas":"0x4c9114a","blockHash":"0xecee39e282b9b747d47ec1008045bada7a5d41a50eec65a99c5df549cea75943","transactions":[],"withdrawals":[],"blobGasUsed":"0x0","excessBlobGas":"0x0"},"blockValue":"0x0","blobsBundle":{"commitments":[],"proofs":[],"blobs":[]},"executionRequests":[],"shouldOverrideBuilder":false}} diff --git a/tests/integration_tests/spec/testing_buildBlockV1/build-block-from-mempool.io b/tests/integration_tests/spec/testing_buildBlockV1/build-block-from-mempool.io new file mode 100644 index 0000000000..9b2e59df5d --- /dev/null +++ b/tests/integration_tests/spec/testing_buildBlockV1/build-block-from-mempool.io @@ -0,0 +1,6 @@ +// builds a block from mempool using testing_buildBlockV1 with null transactions parameter +// speconly: client response is only checked for schema validity. +>> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x02f871870c72dd9d5e883e808201f48405763f58825208947dcd17433742f4c0ca53122ab541d0ba67fc27df8203e880c080a02ff0582cbfd9034c5fa5081d8e87689fca126ef89e764ed75b9377a5abc17174a03f88569a957315fa1204dcc026fcc50cef44c6268642990b8f05b226d8f60a40"]} +<< {"jsonrpc":"2.0","id":1,"result":"0x5acd356e2e5dcd345a43e8a714c0bba3138856c25ac0f9cec51f4ae6aad77c4d"} +>> {"jsonrpc":"2.0","id":2,"method":"testing_buildBlockV1","params":["0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2",{"parentBeaconBlockRoot":"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884365149a42212e8822","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","suggestedFeeRecipient":"0x0000000000000000000000000000000000000000","timestamp":"0x1ce","withdrawals":[]},null,"0x"]} +<< {"jsonrpc":"2.0","id":2,"result":{"executionPayload":{"parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","feeRecipient":"0x0000000000000000000000000000000000000000","stateRoot":"0xa7beaf59a423fb7680f35959f2e7ea87fa449d97ea4d8d09dbe1d62afefec1a7","receiptsRoot":"0x3f39aa82f0c4d04316b65874dcf09cc6a7bb49b48d0415a1b002ec2ee34ab921","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x2e","gasLimit":"0x47d5ca2","gasUsed":"0x5258","timestamp":"0x1ce","extraData":"0x","baseFeePerGas":"0x4c9114a","blockHash":"0x667613a8e6ef9c0bc99d4bff3818136ee25d89f3ab97acde3255bf17be522d9f","transactions":["0xf86c808405763d658261a894aa000000000000000000000000000000000000000a8255448718e5bb3abd109fa0c8e3b4a0087357bd49d80a0ac24daf0c91191e71086c1e355fc62cfab2218873a074f4636f740fa4d1697b6e736e5982b700be2c8b63031a24fa531ae4814b3af8"],"withdrawals":[],"blobGasUsed":"0x0","excessBlobGas":"0x0"},"blockValue":"0x37b3a7cf48","blobsBundle":{"commitments":[],"proofs":[],"blobs":[]},"executionRequests":[],"shouldOverrideBuilder":false}} diff --git a/tests/integration_tests/spec/testing_buildBlockV1/build-block-invalid-transaction.io b/tests/integration_tests/spec/testing_buildBlockV1/build-block-invalid-transaction.io new file mode 100644 index 0000000000..5db3ca53a4 --- /dev/null +++ b/tests/integration_tests/spec/testing_buildBlockV1/build-block-invalid-transaction.io @@ -0,0 +1,5 @@ +// calls testing_buildBlockV1 with an unapplicable transaction (wrong nonce); client MUST return an error and not modify the chain +>> {"jsonrpc":"2.0","id":1,"method":"testing_buildBlockV1","params":["0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2",{"parentBeaconBlockRoot":"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884365149a42212e8822","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","suggestedFeeRecipient":"0x0000000000000000000000000000000000000000","timestamp":"0x1ce","withdrawals":[]},["0x02f873870c72dd9d5e883e8203e78201f48405763f58825208947dcd17433742f4c0ca53122ab541d0ba67fc27df8203e880c001a08a40061919da0626abab410a2c741747eafb5332fc807b6cda6ce03a8d052aa6a0297cd8770678d9a09282412608e8f8bfa63e80f565c49720ffc7716b36989009"],"0x"]} +<< {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"nonce too high: address 0x16c57eDF7Fa9D9525378B0b81Bf8A3cEd0620C1c, tx: 999 state: 0"}} +>> {"jsonrpc":"2.0","id":2,"method":"eth_getBlockByNumber","params":["latest",true]} +<< {"jsonrpc":"2.0","id":2,"result":{"baseFeePerGas":"0x5763d64","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x54a92","hash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","logsBloom":"0x00000000008000000000000000000040000000000000000000000000800000000000000008000000000000000000000000000000000000000000000000000000000000000000000000004000000000020200000000000000000000000000002000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2d","parentBeaconBlockRoot":"0x4b118bd31ed2c4eeb81dc9e3919e9989994333fe36f147c2930f12c53f0d3c78","parentHash":"0x4b9d85c6787612e87e0659e11a347d415040465e492358f79cc7e2e293f38aa7","receiptsRoot":"0x2c86b2791cdd088d3c3e9d6225f71724d3e8c67bdd13cd6208831058cee1043f","requestsHash":"0x57cac3e52cdcd73e52bd9e54956e0eae370f00ed41f68edc78266bdb46c3a543","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x633","stateRoot":"0xf61892bbb9a9df427d1f941dc8c536d72c41efed598244726ea21a0f183ff232","timestamp":"0x1c2","transactions":[{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11c32","gasPrice":"0x5763d65","hash":"0x2fbbd036996c7487316c92b9e5798edb98fd57f32a6c1075e904a734821e1cd2","input":"0x600d380380600d6000396000f336156009575f355f555b305f525f5460205260405ff3","nonce":"0x9a","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x551fe45ccebb0318196e31dbc60da87c43dc60b8fb01afb3286693fa09878730","s":"0x40d33e9afecfe1516b045d61a3272bddbc83f482a7f2c749311248b50fe62e81"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0xb3b0","gasPrice":"0x5763d65","maxFeePerGas":"0x5763d65","maxPriorityFeePerGas":"0x1","hash":"0x16f6724ad864e7664c367893cae3e176d362bea3a47495cec3b246555a7228da","input":"0x","nonce":"0x9b","to":"0x0000000000000000000000000000000000000000","transactionIndex":"0x1","value":"0x0","type":"0x4","accessList":[],"chainId":"0xc72dd9d5e883e","authorizationList":[{"chainId":"0xc72dd9d5e883e","address":"0x58f8fe237b593c19546e1e758a2544561d04bfe0","nonce":"0x0","yParity":"0x1","r":"0xec6caeb1b7071f1b3ae36aeaa7bf0eaecb8e006e83b3e50d792870ea95af4c59","s":"0x1d1225f76d6faac3d904c0635193e83d3867c101b2e6f6c9bb7b1fdeeed923ab"}],"v":"0x1","r":"0x8ae3402e4f63751c895532b94aee0f7b6b8ff5d0b0a689f6d63b3dbd19d69059","s":"0x2e63e4d140b0d282d56289b34f3df82cbcb2f3aa385f5438a423584fe0c2b467","yParity":"0x1"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11170","gasPrice":"0x5763d65","hash":"0xddf234c5f149d2d1a4d01276d42e38a6234bfa7b987c49ba889b028b429aac8f","input":"0x696e766f6b6564","nonce":"0x9c","to":"0xeda8645ba6948855e3b3cd596bbb07596d59c603","transactionIndex":"0x2","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xfea7e18c82a1270f142572533bc2e6e33d6d41a3f1303403dd0a90dd7a4f35d","s":"0x4a4ab6c5bb4c31c3a5f8991ae45bad2303c45923404571f7b4c66adbd03b7936"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x249f0","gasPrice":"0x5763d65","maxFeePerGas":"0x5763d65","maxPriorityFeePerGas":"0x2","hash":"0x3d3d02e1bdc39a6eab20f7b44ed299ca61eb1d642806bfa07e3a7ee8edd700e5","input":"0xb917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80","nonce":"0x9d","to":"0x00000961ef480eb55e80d19ad83579a64c007002","transactionIndex":"0x3","value":"0x3b9aca00","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x5f8b300cf80f7fb7e511460fa1a803278b47223f2c0a82857c5c0e5f7c900d23","s":"0x290bf2495235a106352786403ed937df8385a2356472569020fd952913690ec9","yParity":"0x1"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x5763d65","hash":"0x195a09414344f56e7a202d1493b258b2394b9b93811ce4ee96212a7d34ffb04f","input":"0x6b3b937565afc29f656d6974","nonce":"0x9e","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x4","value":"0x2","type":"0x1","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xe8481f0a1ea7b2528784efff1d1b33cbd66ac97ebe2ae35c7997cacb2863430b"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x84f8b48ac6fbf39054c7794e6ff4e16a3bacbd0964b53d4d03ff668e7eda365","s":"0x2e4e86f2f5fbb8dad4ee8907eee4488f70c75bb646522b5197c4dcdc29ea31bf","yParity":"0x0"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x5763d65","hash":"0xdf66bea01c5cf47b48ec11453822d751a5daaf1d16959772c2196c5ab8cf8438","input":"0x","nonce":"0x9f","to":"0x4340ee1b812acb40a1eb561c019c327b243b92df","transactionIndex":"0x5","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0xec839e20a6f8ff0fb1043022e5816454191436ba7f6607bf6efe6517fdd1e2dd","s":"0x7903b3dd48963c0404f99807fd89cde2b66091c32178f66920120cb10981019","yParity":"0x1"}],"transactionsRoot":"0xc541c333ff4a96a17d3601f7d628ea27ecf4597a11077e5d9d1c4dbed6c7f401","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/integration_tests/spec/testing_buildBlockV1/build-block-with-transactions.io b/tests/integration_tests/spec/testing_buildBlockV1/build-block-with-transactions.io new file mode 100644 index 0000000000..2c0c6969d0 --- /dev/null +++ b/tests/integration_tests/spec/testing_buildBlockV1/build-block-with-transactions.io @@ -0,0 +1,3 @@ +// builds a block with specified transactions using testing_buildBlockV1 +>> {"jsonrpc":"2.0","id":1,"method":"testing_buildBlockV1","params":["0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2",{"parentBeaconBlockRoot":"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884365149a42212e8822","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","suggestedFeeRecipient":"0x0000000000000000000000000000000000000000","timestamp":"0x1ce","withdrawals":[]},["0x02f871870c72dd9d5e883e808201f48405763f58825208947dcd17433742f4c0ca53122ab541d0ba67fc27df8203e880c001a047f09855c4460b5e1377f2198e39e12916ece285a1a68f723057fe9e67763cd6a069c5013dba8cd32bdbb44edd13c0e526977e8216c41151f1907f30ae86a7aa35"],"0x746573745f6e616d65"]} +<< {"jsonrpc":"2.0","id":1,"result":{"executionPayload":{"parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","feeRecipient":"0x0000000000000000000000000000000000000000","stateRoot":"0x2c243683bdfcc19841050bf034b5f6292bfe611e9aeda2400f0eecec500d9503","receiptsRoot":"0x005fb2a0d0c8a6f3490f9594e6458703eea515262f1b69a1103492b61e8d0ee2","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x2e","gasLimit":"0x47d5ca2","gasUsed":"0x5208","timestamp":"0x1ce","extraData":"0x746573745f6e616d65","baseFeePerGas":"0x4c9114a","blockHash":"0x21f0e258619857b40ce7a84b96a2eed40472fcbee078bf67dd29332b02a564c9","transactions":["0x02f871870c72dd9d5e883e808201f48405763f58825208947dcd17433742f4c0ca53122ab541d0ba67fc27df8203e880c001a047f09855c4460b5e1377f2198e39e12916ece285a1a68f723057fe9e67763cd6a069c5013dba8cd32bdbb44edd13c0e526977e8216c41151f1907f30ae86a7aa35"],"withdrawals":[],"blobGasUsed":"0x0","excessBlobGas":"0x0"},"blockValue":"0xa037a0","blobsBundle":{"commitments":[],"proofs":[],"blobs":[]},"executionRequests":[],"shouldOverrideBuilder":false}} diff --git a/tests/integration_tests/spec/txpool_content/get-content.io b/tests/integration_tests/spec/txpool_content/get-content.io new file mode 100644 index 0000000000..8daf687963 --- /dev/null +++ b/tests/integration_tests/spec/txpool_content/get-content.io @@ -0,0 +1,4 @@ +// retrieves the transaction pool content +// speconly: client response is only checked for schema validity. +>> {"jsonrpc":"2.0","id":1,"method":"txpool_content"} +<< {"jsonrpc":"2.0","id":1,"result":{"pending":{"0x0c2c51a0990AeE1d73C1228de158688341557508":{"0":{"blockHash":null,"blockNumber":null,"blockTimestamp":null,"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0x61a8","gasPrice":"0x5763d65","hash":"0x66734e85ef096167acb887cf445946a1ed57b90b66ffe38af87e11294febbfa9","input":"0x5544","nonce":"0x0","to":"0xaa00000000000000000000000000000000000000","transactionIndex":null,"value":"0xa","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0xc8e3b4a0087357bd49d80a0ac24daf0c91191e71086c1e355fc62cfab2218873","s":"0x74f4636f740fa4d1697b6e736e5982b700be2c8b63031a24fa531ae4814b3af8"},"1":{"blockHash":null,"blockNumber":null,"blockTimestamp":null,"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0xea60","gasPrice":"0x5763f58","maxFeePerGas":"0x5763f58","maxPriorityFeePerGas":"0x1f4","hash":"0xfa245384e9eb7d6a4a40f3bf4bf70f1f44929d8bfcdf75762ce1a015389449e3","input":"0x3d602d80600a3d3981f3363d3d373d3d3d363d734d11c446473105a02b5c1ab9ebe9b03f33902a295af43d82803e903d91602b57fd5bf3","nonce":"0x1","to":null,"transactionIndex":null,"value":"0x2a","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0xfe6d380224a516b802717755d2f640163e81bae64a4ab5adbcf741267f20ad66","s":"0x15d9ceb9fecb47b342be00782b2485f42ab53715006d208897cc969d7c05ab67","yParity":"0x1"},"2":{"blockHash":null,"blockNumber":null,"blockTimestamp":null,"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0x15f90","gasPrice":"0x5763f58","hash":"0xd07a55a00aeb93c7825d1ca42238abdc3bc225de097ee1b8b2a4a9240ae55f9c","input":"0x010203","nonce":"0x2","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":null,"value":"0x0","type":"0x1","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x0100000000000000000000000000000000000000000000000000000000000000"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0xf9dc42e8bab0a70132fb8399cf03cf38e1c12cc47f736d19e6e7728356d97db3","s":"0x53daf342acd24da15073f5dac02bec0501a0716165984aab2df9694882b91fac","yParity":"0x0"},"3":{"blockHash":null,"blockNumber":null,"blockTimestamp":null,"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0x13880","gasPrice":"0x5763f58","maxFeePerGas":"0x5763f58","maxPriorityFeePerGas":"0x1f4","hash":"0x0baf604666cbc4d04263bbc98c048000451b8c188d93ec87ca5a86b044fd956c","input":"0x01020304","nonce":"0x3","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":null,"value":"0x0","type":"0x2","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x0100000000000000000000000000000000000000000000000000000000000000"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0xe56d869d8b32f767582fdcb03d1d9d3bcc47f3c7ae08984feafdcd57f2f205f5","s":"0x74134e4bf0fb11ff606b47259aff0d01bf7cb9ec68cb179b62576b9dd6631cf0","yParity":"0x0"}},"0x14e46043e63D0E3cdcf2530519f4cFAf35058Cb2":{"0":{"blockHash":null,"blockNumber":null,"blockTimestamp":null,"from":"0x14e46043e63d0e3cdcf2530519f4cfaf35058cb2","gas":"0x5208","gasPrice":"0x5763f58","maxFeePerGas":"0x5763f58","maxPriorityFeePerGas":"0x1f4","hash":"0x5acd356e2e5dcd345a43e8a714c0bba3138856c25ac0f9cec51f4ae6aad77c4d","input":"0x","nonce":"0x0","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":null,"value":"0x3e8","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x2ff0582cbfd9034c5fa5081d8e87689fca126ef89e764ed75b9377a5abc17174","s":"0x3f88569a957315fa1204dcc026fcc50cef44c6268642990b8f05b226d8f60a40","yParity":"0x0"}}},"queued":{}}} diff --git a/tests/integration_tests/spec/txpool_contentFrom/get-content-from-address.io b/tests/integration_tests/spec/txpool_contentFrom/get-content-from-address.io new file mode 100644 index 0000000000..c37abe3397 --- /dev/null +++ b/tests/integration_tests/spec/txpool_contentFrom/get-content-from-address.io @@ -0,0 +1,4 @@ +// retrieves pending transactions from a specific address +// speconly: client response is only checked for schema validity. +>> {"jsonrpc":"2.0","id":1,"method":"txpool_contentFrom","params":["0x0000000000000000000000000000000000000000"]} +<< {"jsonrpc":"2.0","id":1,"result":{"pending":{},"queued":{}}} diff --git a/tests/integration_tests/spec/txpool_status/get-status.io b/tests/integration_tests/spec/txpool_status/get-status.io new file mode 100644 index 0000000000..a07867f310 --- /dev/null +++ b/tests/integration_tests/spec/txpool_status/get-status.io @@ -0,0 +1,4 @@ +// retrieves the transaction pool status +// speconly: client response is only checked for schema validity. +>> {"jsonrpc":"2.0","id":1,"method":"txpool_status"} +<< {"jsonrpc":"2.0","id":1,"result":{"pending":"0x6","queued":"0x0"}} From 7de33c63267f30f0fadd4c63614deb382d808c7a Mon Sep 17 00:00:00 2001 From: Xinyu Date: Fri, 22 May 2026 15:14:27 +0800 Subject: [PATCH 02/32] feat: align eth_getStorageAt --- rpc/backend/account_info.go | 33 ++++++++++++++- rpc/backend/account_info_test.go | 41 ++++++++++++++++++- .../spec/test_rpc_spec_schema.py | 22 +++++++--- 3 files changed, 89 insertions(+), 7 deletions(-) diff --git a/rpc/backend/account_info.go b/rpc/backend/account_info.go index 9ec3b89ad9..d6353c2d8e 100644 --- a/rpc/backend/account_info.go +++ b/rpc/backend/account_info.go @@ -16,7 +16,11 @@ package backend import ( + "encoding/hex" + stderrors "errors" + "fmt" "math/big" + "strings" errorsmod "cosmossdk.io/errors" sdkmath "cosmossdk.io/math" @@ -133,6 +137,13 @@ func (b *Backend) GetProof(address common.Address, storageKeys []string, blockNr // GetStorageAt returns the contract storage at the given address, block number, and key. func (b *Backend) GetStorageAt(address common.Address, key string, blockNrOrHash rpctypes.BlockNumberOrHash) (hexutil.Bytes, error) { + storageKey, _, err := decodeStorageKey(key) + if err != nil { + return nil, &rpctypes.InvalidParamsError{ + Message: fmt.Sprintf("%v: %q", err, key), + } + } + blockNum, err := b.BlockNumberFromTendermint(blockNrOrHash) if err != nil { return nil, err @@ -140,7 +151,7 @@ func (b *Backend) GetStorageAt(address common.Address, key string, blockNrOrHash req := &evmtypes.QueryStorageRequest{ Address: address.String(), - Key: key, + Key: storageKey.Hex(), } res, err := b.queryClient.Storage(rpctypes.ContextWithHeight(blockNum.Int64()), req) @@ -152,6 +163,26 @@ func (b *Backend) GetStorageAt(address common.Address, key string, blockNrOrHash return value.Bytes(), nil } +// decodeStorageKey parses a hex-encoded 32-byte hash. +// For legacy compatibility reasons, we parse these keys leniently, +// with the 0x prefix being optional. +func decodeStorageKey(s string) (h common.Hash, inputLength int, err error) { + if strings.HasPrefix(s, "0x") || strings.HasPrefix(s, "0X") { + s = s[2:] + } + if (len(s) & 1) > 0 { + s = "0" + s + } + if len(s) > common.HashLength*2 { + return common.Hash{}, len(s) / 2, stderrors.New("storage key too long (want at most 32 bytes)") + } + b, err := hex.DecodeString(s) + if err != nil { + return common.Hash{}, 0, stderrors.New("invalid hex in storage key") + } + return common.BytesToHash(b), len(b), nil +} + // GetBalance returns the provided account's balance up to the provided block number. func (b *Backend) GetBalance(address common.Address, blockNrOrHash rpctypes.BlockNumberOrHash) (*hexutil.Big, error) { blockNum, err := b.BlockNumberFromTendermint(blockNrOrHash) diff --git a/rpc/backend/account_info_test.go b/rpc/backend/account_info_test.go index 296b1dc201..395085b232 100644 --- a/rpc/backend/account_info_test.go +++ b/rpc/backend/account_info_test.go @@ -191,24 +191,29 @@ func (suite *BackendTestSuite) TestGetStorageAt() { name string addr common.Address key string + queryKey string blockNrOrHash rpctypes.BlockNumberOrHash registerMock func(common.Address, string, string) expPass bool expStorage hexutil.Bytes + expErrCode int }{ { "fail - BlockHash and BlockNumber are both nil", tests.GenerateAddress(), "0x0", + "", rpctypes.BlockNumberOrHash{}, func(addr common.Address, key string, storage string) {}, false, nil, + 0, }, { "fail - query client errors on getting Storage", tests.GenerateAddress(), "0x0", + common.Hash{}.Hex(), rpctypes.BlockNumberOrHash{BlockNumber: &blockNr}, func(addr common.Address, key string, storage string) { queryClient := suite.backend.queryClient.QueryClient.(*mocks.EVMQueryClient) @@ -216,11 +221,35 @@ func (suite *BackendTestSuite) TestGetStorageAt() { }, false, nil, + 0, + }, + { + "fail - invalid storage key hex", + tests.GenerateAddress(), + "0xasdf", + "", + rpctypes.BlockNumberOrHash{BlockNumber: &blockNr}, + func(addr common.Address, key string, storage string) {}, + false, + nil, + rpctypes.ErrCodeInvalidParams, + }, + { + "fail - storage key too long", + tests.GenerateAddress(), + "0x00000000000000000000000000000000000000000000000000000000000000000", + "", + rpctypes.BlockNumberOrHash{BlockNumber: &blockNr}, + func(addr common.Address, key string, storage string) {}, + false, + nil, + rpctypes.ErrCodeInvalidParams, }, { "pass", tests.GenerateAddress(), "0x0", + common.Hash{}.Hex(), rpctypes.BlockNumberOrHash{BlockNumber: &blockNr}, func(addr common.Address, key string, storage string) { queryClient := suite.backend.queryClient.QueryClient.(*mocks.EVMQueryClient) @@ -228,12 +257,17 @@ func (suite *BackendTestSuite) TestGetStorageAt() { }, true, hexutil.Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, + 0, }, } for _, tc := range testCases { suite.Run(fmt.Sprintf("Case %s", tc.name), func() { suite.SetupTest() - tc.registerMock(tc.addr, tc.key, tc.expStorage.String()) + queryKey := tc.key + if tc.queryKey != "" { + queryKey = tc.queryKey + } + tc.registerMock(tc.addr, queryKey, tc.expStorage.String()) storage, err := suite.backend.GetStorageAt(tc.addr, tc.key, tc.blockNrOrHash) if tc.expPass { @@ -241,6 +275,11 @@ func (suite *BackendTestSuite) TestGetStorageAt() { suite.Require().Equal(tc.expStorage, storage) } else { suite.Require().Error(err) + if tc.expErrCode != 0 { + rpcErr, ok := err.(interface{ ErrorCode() int }) + suite.Require().True(ok) + suite.Require().Equal(tc.expErrCode, rpcErr.ErrorCode()) + } } }) } diff --git a/tests/integration_tests/spec/test_rpc_spec_schema.py b/tests/integration_tests/spec/test_rpc_spec_schema.py index 98da6dca31..76b29fca79 100644 --- a/tests/integration_tests/spec/test_rpc_spec_schema.py +++ b/tests/integration_tests/spec/test_rpc_spec_schema.py @@ -324,21 +324,25 @@ def _classify_schema(spec_name, request, expected, actual): expected_kind = _response_kind(expected) actual_kind = _response_kind(actual) - if actual_kind == "error" and _is_request_schema_error(actual): + if expected_kind == "error" and actual_kind == "result": return RpcSpecResult( spec_name, method, "request_schema_wrong", - f"expected {expected_kind}, got request validation error: " - f"{actual.get('error', {}).get('message')}", + "spec expects request rejection, ethermint accepted it", ) - if expected_kind == "error" and actual_kind == "result": + if ( + expected_kind == "result" + and actual_kind == "error" + and _is_request_schema_error(actual) + ): return RpcSpecResult( spec_name, method, "request_schema_wrong", - "spec expects request rejection, ethermint accepted it", + f"expected {expected_kind}, got request validation error: " + f"{actual.get('error', {}).get('message')}", ) if expected_kind != actual_kind: @@ -357,6 +361,14 @@ def _classify_schema(spec_name, request, expected, actual): _first_schema_mismatch(expected, actual) or "schema differs", ) + if actual_kind == "error" and _is_request_schema_error(actual): + return RpcSpecResult( + spec_name, + method, + "schema_correct", + "matching request validation error schema", + ) + return RpcSpecResult(spec_name, method, "schema_correct", "schema match") From 4232e8545fadd70f54cabb4b8e27847099f73ec4 Mon Sep 17 00:00:00 2001 From: songgaoye <217724508+songgaoye@users.noreply.github.com> Date: Tue, 26 May 2026 16:02:21 +0800 Subject: [PATCH 03/32] add eth-rpc-check.md --- eth-rpc-check.md | 525 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 525 insertions(+) create mode 100644 eth-rpc-check.md diff --git a/eth-rpc-check.md b/eth-rpc-check.md new file mode 100644 index 0000000000..b7cf3f5282 --- /dev/null +++ b/eth-rpc-check.md @@ -0,0 +1,525 @@ +# Ethermint JSON-RPC Methods vs Execution-APIs Spec + +Spec source: `~/Github/execution-apis/src/` + +Legend: ✅ in spec | ❌ missing from spec | ➕ extension (not in spec) + +--- + +## `eth_*` — [rpc/namespaces/ethereum/eth/api.go](rpc/namespaces/ethereum/eth/api.go) + +| JSON-RPC Method | Go Method | Line | Spec File | Status | +| --- | --- | --- | --- | --- | +| `eth_blockNumber` | `BlockNumber` | [160](rpc/namespaces/ethereum/eth/api.go#L160) | eth/client.yaml | ✅ | +| `eth_chainId` | `ChainId` | [364](rpc/namespaces/ethereum/eth/api.go#L364) | eth/client.yaml | ✅ | +| `eth_syncing` | `Syncing` | [404](rpc/namespaces/ethereum/eth/api.go#L404) | eth/client.yaml | ✅ | +| `eth_coinbase` | `Coinbase` | [410](rpc/namespaces/ethereum/eth/api.go#L410) | eth/client.yaml | ✅ | +| `eth_accounts` | `Accounts` | [255](rpc/namespaces/ethereum/eth/api.go#L255) | eth/client.yaml | ✅ | +| `eth_getBlockByHash` | `GetBlockByHash` | [172](rpc/namespaces/ethereum/eth/api.go#L172) | eth/block.yaml | ✅ | +| `eth_getBlockByNumber` | `GetBlockByNumber` | [166](rpc/namespaces/ethereum/eth/api.go#L166) | eth/block.yaml | ✅ | +| `eth_getBlockReceipts` | `GetBlockReceipts` | [229](rpc/namespaces/ethereum/eth/api.go#L229) | eth/block.yaml | ✅ | +| `eth_getBlockTransactionCountByHash` | `GetBlockTransactionCountByHash` | [205](rpc/namespaces/ethereum/eth/api.go#L205) | eth/block.yaml | ✅ | +| `eth_getBlockTransactionCountByNumber` | `GetBlockTransactionCountByNumber` | [211](rpc/namespaces/ethereum/eth/api.go#L211) | eth/block.yaml | ✅ | +| `eth_getTransactionByHash` | `GetTransactionByHash` | [182](rpc/namespaces/ethereum/eth/api.go#L182) | eth/transaction.yaml | ✅ | +| `eth_getTransactionByBlockHashAndIndex` | `GetTransactionByBlockHashAndIndex` | [217](rpc/namespaces/ethereum/eth/api.go#L217) | eth/transaction.yaml | ✅ | +| `eth_getTransactionByBlockNumberAndIndex` | `GetTransactionByBlockNumberAndIndex` | [223](rpc/namespaces/ethereum/eth/api.go#L223) | eth/transaction.yaml | ✅ | +| `eth_getTransactionReceipt` | `GetTransactionReceipt` | [198](rpc/namespaces/ethereum/eth/api.go#L198) | eth/transaction.yaml | ✅ | +| `eth_getBalance` | `GetBalance` | [261](rpc/namespaces/ethereum/eth/api.go#L261) | eth/state.yaml | ✅ | +| `eth_getCode` | `GetCode` | [273](rpc/namespaces/ethereum/eth/api.go#L273) | eth/state.yaml | ✅ | +| `eth_getStorageAt` | `GetStorageAt` | [267](rpc/namespaces/ethereum/eth/api.go#L267) | eth/state.yaml | ✅ | +| `eth_getTransactionCount` | `GetTransactionCount` | [188](rpc/namespaces/ethereum/eth/api.go#L188) | eth/state.yaml | ✅ | +| `eth_getProof` | `GetProof` | [279](rpc/namespaces/ethereum/eth/api.go#L279) | eth/state.yaml | ✅ | +| `eth_call` | `Call` | [292](rpc/namespaces/ethereum/eth/api.go#L292) | eth/execute.yaml | ✅ | +| `eth_estimateGas` | `EstimateGas` | [332](rpc/namespaces/ethereum/eth/api.go#L332) | eth/execute.yaml | ✅ | +| `eth_createAccessList` | `CreateAccessList` | [560](rpc/namespaces/ethereum/eth/api.go#L560) | eth/execute.yaml | ✅ | +| `eth_simulateV1` | `SimulateV1` | [509](rpc/namespaces/ethereum/eth/api.go#L509) | eth/execute.yaml | ✅ | +| `eth_gasPrice` | `GasPrice` | [326](rpc/namespaces/ethereum/eth/api.go#L326) | eth/fee_market.yaml | ✅ | +| `eth_maxPriorityFeePerGas` | `MaxPriorityFeePerGas` | [350](rpc/namespaces/ethereum/eth/api.go#L350) | eth/fee_market.yaml | ✅ | +| `eth_feeHistory` | `FeeHistory` | [341](rpc/namespaces/ethereum/eth/api.go#L341) | eth/fee_market.yaml | ✅ | +| `eth_sendRawTransaction` | `SendRawTransaction` | [239](rpc/namespaces/ethereum/eth/api.go#L239) | eth/submit.yaml | ✅ | +| `eth_sendTransaction` | `SendTransaction` | [245](rpc/namespaces/ethereum/eth/api.go#L245) | eth/submit.yaml | ✅ | +| `eth_sign` | `Sign` | [422](rpc/namespaces/ethereum/eth/api.go#L422) | eth/sign.yaml | ✅ | +| `eth_protocolVersion` | `ProtocolVersion` | [320](rpc/namespaces/ethereum/eth/api.go#L320) | — | ➕ extension | +| `eth_getUncleByBlockHashAndIndex` | `GetUncleByBlockHashAndIndex` | [374](rpc/namespaces/ethereum/eth/api.go#L374) | — | ➕ extension | +| `eth_getUncleByBlockNumberAndIndex` | `GetUncleByBlockNumberAndIndex` | [379](rpc/namespaces/ethereum/eth/api.go#L379) | — | ➕ extension | +| `eth_getUncleCountByBlockHash` | `GetUncleCountByBlockHash` | [384](rpc/namespaces/ethereum/eth/api.go#L384) | — | ➕ extension | +| `eth_getUncleCountByBlockNumber` | `GetUncleCountByBlockNumber` | [389](rpc/namespaces/ethereum/eth/api.go#L389) | — | ➕ extension | +| `eth_getTransactionLogs` | `GetTransactionLogs` | [428](rpc/namespaces/ethereum/eth/api.go#L428) | — | ➕ extension | +| `eth_signTypedData` | `SignTypedData` | [468](rpc/namespaces/ethereum/eth/api.go#L468) | — | ➕ extension | +| `eth_fillTransaction` | `FillTransaction` | [476](rpc/namespaces/ethereum/eth/api.go#L476) | — | ➕ extension | +| `eth_resend` | `Resend` | [499](rpc/namespaces/ethereum/eth/api.go#L499) | — | ➕ extension | +| `eth_getPendingTransactions` | `GetPendingTransactions` | [522](rpc/namespaces/ethereum/eth/api.go#L522) | — | ➕ extension | + +## `eth_*` filters — [rpc/namespaces/ethereum/eth/filters/api.go](rpc/namespaces/ethereum/eth/filters/api.go) + +| JSON-RPC Method | Go Method | Line | Spec File | Status | +| --- | --- | --- | --- | --- | +| `eth_newPendingTransactionFilter` | `NewPendingTransactionFilter` | [136](rpc/namespaces/ethereum/eth/filters/api.go#L136) | eth/filter.yaml | ✅ | +| `eth_newBlockFilter` | `NewBlockFilter` | [159](rpc/namespaces/ethereum/eth/filters/api.go#L159) | eth/filter.yaml | ✅ | +| `eth_newFilter` | `NewFilter` | [191](rpc/namespaces/ethereum/eth/filters/api.go#L191) | eth/filter.yaml | ✅ | +| `eth_getLogs` | `GetLogs` | [220](rpc/namespaces/ethereum/eth/filters/api.go#L220) | eth/filter.yaml | ✅ | +| `eth_uninstallFilter` | `UninstallFilter` | [251](rpc/namespaces/ethereum/eth/filters/api.go#L251) | eth/filter.yaml | ✅ | +| `eth_getFilterLogs` | `GetFilterLogs` | [266](rpc/namespaces/ethereum/eth/filters/api.go#L266) | eth/filter.yaml | ✅ | +| `eth_getFilterChanges` | `GetFilterChanges` | [328](rpc/namespaces/ethereum/eth/filters/api.go#L328) | eth/filter.yaml | ✅ | + +## `debug_*` — [rpc/namespaces/ethereum/debug/api.go](rpc/namespaces/ethereum/debug/api.go) + +The spec (`debug/getters.yaml`) defines 6 raw-data getters. Ethermint instead implements go-ethereum-style tracing and profiling — zero overlap. + +| JSON-RPC Method | Go Method | Line | Spec File | Status | +| --- | --- | --- | --- | --- | +| `debug_traceTransaction` | `TraceTransaction` | [78](rpc/namespaces/ethereum/debug/api.go#L78) | — | ➕ extension | +| `debug_traceBlockByNumber` | `TraceBlockByNumber` | [85](rpc/namespaces/ethereum/debug/api.go#L85) | — | ➕ extension | +| `debug_traceBlockByHash` | `TraceBlockByHash` | [102](rpc/namespaces/ethereum/debug/api.go#L102) | — | ➕ extension | +| `debug_traceCall` | `TraceCall` | [121](rpc/namespaces/ethereum/debug/api.go#L121) | — | ➕ extension | +| `debug_blockProfile` | `BlockProfile` | [140](rpc/namespaces/ethereum/debug/api.go#L140) | — | ➕ extension | +| `debug_cpuProfile` | `CpuProfile` | [155](rpc/namespaces/ethereum/debug/api.go#L155) | — | ➕ extension | +| `debug_gcStats` | `GcStats` | [169](rpc/namespaces/ethereum/debug/api.go#L169) | — | ➕ extension | +| `debug_goTrace` | `GoTrace` | [178](rpc/namespaces/ethereum/debug/api.go#L178) | — | ➕ extension | +| `debug_memStats` | `MemStats` | [192](rpc/namespaces/ethereum/debug/api.go#L192) | — | ➕ extension | +| `debug_setBlockProfileRate` | `SetBlockProfileRate` | [201](rpc/namespaces/ethereum/debug/api.go#L201) | — | ➕ extension | +| `debug_stacks` | `Stacks` | [207](rpc/namespaces/ethereum/debug/api.go#L207) | — | ➕ extension | +| `debug_startCPUProfile` | `StartCPUProfile` | [218](rpc/namespaces/ethereum/debug/api.go#L218) | — | ➕ extension | +| `debug_stopCPUProfile` | `StopCPUProfile` | [258](rpc/namespaces/ethereum/debug/api.go#L258) | — | ➕ extension | +| `debug_writeBlockProfile` | `WriteBlockProfile` | [284](rpc/namespaces/ethereum/debug/api.go#L284) | — | ➕ extension | +| `debug_writeMemProfile` | `WriteMemProfile` | [292](rpc/namespaces/ethereum/debug/api.go#L292) | — | ➕ extension | +| `debug_mutexProfile` | `MutexProfile` | [300](rpc/namespaces/ethereum/debug/api.go#L300) | — | ➕ extension | +| `debug_setMutexProfileFraction` | `SetMutexProfileFraction` | [313](rpc/namespaces/ethereum/debug/api.go#L313) | — | ➕ extension | +| `debug_writeMutexProfile` | `WriteMutexProfile` | [319](rpc/namespaces/ethereum/debug/api.go#L319) | — | ➕ extension | +| `debug_freeOSMemory` | `FreeOSMemory` | [325](rpc/namespaces/ethereum/debug/api.go#L325) | — | ➕ extension | +| `debug_setGCPercent` | `SetGCPercent` | [332](rpc/namespaces/ethereum/debug/api.go#L332) | — | ➕ extension | +| `debug_getHeaderRlp` | `GetHeaderRlp` | [338](rpc/namespaces/ethereum/debug/api.go#L338) | — | ➕ extension | +| `debug_getBlockRlp` | `GetBlockRlp` | [352](rpc/namespaces/ethereum/debug/api.go#L352) | — | ➕ extension | +| `debug_printBlock` | `PrintBlock` | [366](rpc/namespaces/ethereum/debug/api.go#L366) | — | ➕ extension | +| `debug_intermediateRoots` | `IntermediateRoots` | [380](rpc/namespaces/ethereum/debug/api.go#L380) | — | ➕ extension | +| `debug_startGoTrace` | `StartGoTrace` | [32](rpc/namespaces/ethereum/debug/trace.go#L32) | — | ➕ extension | +| `debug_stopGoTrace` | `StopGoTrace` | [97](rpc/namespaces/ethereum/debug/trace.go#L97) | — | ➕ extension | + +## `personal_*` — [rpc/namespaces/ethereum/personal/api.go](rpc/namespaces/ethereum/personal/api.go) + +Not part of execution-apis spec (deprecated go-ethereum namespace). + +| JSON-RPC Method | Go Method | Line | Status | +| --- | --- | --- | --- | +| `personal_importRawKey` | `ImportRawKey` | [74](rpc/namespaces/ethereum/personal/api.go#L74) | ➕ extension | +| `personal_listAccounts` | `ListAccounts` | [80](rpc/namespaces/ethereum/personal/api.go#L80) | ➕ extension | +| `personal_lockAccount` | `LockAccount` | [87](rpc/namespaces/ethereum/personal/api.go#L87) | ➕ extension | +| `personal_newAccount` | `NewAccount` | [95](rpc/namespaces/ethereum/personal/api.go#L95) | ➕ extension | +| `personal_unlockAccount` | `UnlockAccount` | [122](rpc/namespaces/ethereum/personal/api.go#L122) | ➕ extension | +| `personal_sendTransaction` | `SendTransaction` | [131](rpc/namespaces/ethereum/personal/api.go#L131) | ➕ extension | +| `personal_sign` | `Sign` | [145](rpc/namespaces/ethereum/personal/api.go#L145) | ➕ extension | +| `personal_ecRecover` | `EcRecover` | [160](rpc/namespaces/ethereum/personal/api.go#L160) | ➕ extension | +| `personal_unpair` | `Unpair` | [182](rpc/namespaces/ethereum/personal/api.go#L182) | ➕ extension | +| `personal_initializeWallet` | `InitializeWallet` | [190](rpc/namespaces/ethereum/personal/api.go#L190) | ➕ extension | +| `personal_listWallets` | `ListWallets` | [207](rpc/namespaces/ethereum/personal/api.go#L207) | ➕ extension | + +## `net_*` — [rpc/namespaces/ethereum/net/api.go](rpc/namespaces/ethereum/net/api.go) + +| JSON-RPC Method | Go Method | Line | Spec File | Status | +| --- | --- | --- | --- | --- | +| `net_version` | `Version` | [48](rpc/namespaces/ethereum/net/api.go#L48) | eth/client.yaml | ✅ | +| `net_listening` | `Listening` | [53](rpc/namespaces/ethereum/net/api.go#L53) | — | ➕ extension | +| `net_peerCount` | `PeerCount` | [63](rpc/namespaces/ethereum/net/api.go#L63) | — | ➕ extension | + +## `web3_*` — [rpc/namespaces/ethereum/web3/api.go](rpc/namespaces/ethereum/web3/api.go) + +Not part of execution-apis spec. + +| JSON-RPC Method | Go Method | Line | Status | +| --- | --- | --- | --- | +| `web3_clientVersion` | `ClientVersion` | [34](rpc/namespaces/ethereum/web3/api.go#L34) | ➕ extension | +| `web3_sha3` | `Sha3` | [39](rpc/namespaces/ethereum/web3/api.go#L39) | ➕ extension | + +## `txpool_*` — [rpc/namespaces/ethereum/txpool/api.go](rpc/namespaces/ethereum/txpool/api.go) + +| JSON-RPC Method | Go Method | Line | Spec File | Status | +| --- | --- | --- | --- | --- | +| `txpool_content` | `Content` | [40](rpc/namespaces/ethereum/txpool/api.go#L40) | txpool/pool.yaml | ✅ | +| `txpool_status` | `Status` | [60](rpc/namespaces/ethereum/txpool/api.go#L60) | txpool/pool.yaml | ✅ | +| `txpool_inspect` | `Inspect` | [50](rpc/namespaces/ethereum/txpool/api.go#L50) | — | ➕ extension | + +--- + +## Missing: In spec but NOT implemented + +### `eth_*` (eth/sign.yaml, eth/state.yaml, eth/execute.yaml, eth/fee_market.yaml, eth/client.yaml) + +| Spec Method | Spec File | Notes | +| --- | --- | --- | +| `eth_signTransaction` | eth/sign.yaml | Signs tx locally without broadcasting | +| `eth_getStorageValues` | eth/state.yaml | Batch storage slot reads | +| `eth_getBlockAccessList` | eth/block.yaml | Access list for a full block | +| `eth_blobBaseFee` | eth/fee_market.yaml | EIP-4844 blob base fee (no blob tx support) | +| `eth_config` | eth/client.yaml | Node configuration query | + +### `debug_*` (debug/getters.yaml) + +| Spec Method | Notes | +| --- | --- | +| `debug_getBadBlocks` | Known bad/invalid blocks | +| `debug_getRawBlock` | RLP-encoded block by number | +| `debug_getRawBlockAccessList` | Access list for a raw block | +| `debug_getRawHeader` | RLP-encoded block header | +| `debug_getRawReceipts` | Raw receipts for a block | +| `debug_getRawTransaction` | RLP-encoded transaction | + +### `txpool_*` (txpool/pool.yaml) + +| Spec Method | Notes | +| --- | --- | +| `txpool_contentFrom` | Filter pending/queued txs by sender address | + +### `engine_*` + +Not applicable — Ethermint uses Tendermint/CometBFT consensus, not the Ethereum Engine API. + +--- + +## Summary + +| Category | Count | +| --- | --- | +| Spec methods implemented | 39 | +| Extensions (not in spec) | 46 | +| **Total implemented** | **85** | +| Spec methods missing (`eth_*`) | 5 | +| Spec methods missing (`debug_*`) | 6 | +| Spec methods missing (`txpool_*`) | 1 | +| `engine_*` (N/A — Tendermint) | 25 | + +--- + +## 结论 + +**Ethermint 实现了绝大部分核心规范,但有 12 个缺口,且整个 debug 命名空间走错了方向。** + +### 缺失方法优先级 + +| 优先级 | 方法 | 影响 | +| --- | --- | --- | +| 高 | `eth_signTransaction` | 钱包/工具链常用,许多 dApp 会调用 | +| 高 | `eth_getStorageValues` | 批量存储读取,效率接口 | +| 高 | `txpool_contentFrom` | 按发送者过滤 mempool,DEX/MEV 工具依赖 | +| 中 | `debug_getRawBlock` / `debug_getRawHeader` / `debug_getRawReceipts` / `debug_getRawTransaction` / `debug_getRawBlockAccessList` / `debug_getBadBlocks` | 标准 debug 接口,区块链浏览器/索引器会用 | +| 中 | `eth_getBlockAccessList` | 较新接口,使用较少 | +| 低 | `eth_blobBaseFee` | EIP-4844 blob tx,Ethermint 本身不支持 blob,可暂不实现 | +| 低 | `eth_config` | 较新、使用少 | + +### debug 命名空间走偏了 + +规范定义的 `debug_*` 是**原始数据获取**(RLP 块、收据、header),而 Ethermint 实现的是 go-ethereum 的 **tracing/profiling** 接口。两者完全不重叠。这两类都有价值,但当前 Ethermint 没有实现任何一个规范要求的 `debug_*`。 + +### 总体评价 + +- 核心 `eth_*` 覆盖率高(29/36 核心方法 + 全部 7 个 filter 方法) +- 扩展丰富(46 个 go-ethereum 扩展),兼容性好 +- `engine_*` 不适用(Tendermint 共识) +- 最值得补的是:`eth_signTransaction`、`txpool_contentFrom`、6 个 `debug_getRaw*` + +--- + +## 错误码合规分析 + +### 规范定义的错误码 + +| 来源 | 错误码 | 含义 | +| --- | --- | --- | +| JSONRPCStandardErrors | -32700 / -32600 / -32601 / -32602 / -32603 | 解析错误、无效请求、方法不存在、无效参数、内部错误 | +| JSONRPCNonStandardErrors | -32000 ~ -32006 | 无效输入、资源未找到、资源不可用、交易被拒绝等 | +| ExecutionErrors | 1 (nonce too low) / 2 (nonce too high) / 3 (execution reverted) / 4 (invalid opcode) | EVM 执行错误 | +| GasErrors | 800~809 | 内在 gas 不足、gas 用尽、gas 价格过低、余额不足等 | +| TxPoolErrors | 1000 (already known) / 1001 (invalid sender) | mempool 错误 | +| PrunedHistory | 4444 | 历史数据已被裁剪 | +| eth_simulateV1 | -38010 ~ -38026 | 模拟专用错误(nonce、gas、EOA 检查等) | + +**根本机制**:go-ethereum 的 JSON-RPC 服务器只识别实现了 `ErrorCode() int` 接口的错误类型。所有 `fmt.Errorf`、`errors.New`、`errorsmod.ABCIError`、`status.Error(codes.Internal,...)` 均**不实现该接口**,一律变成 `-32603 Internal`。 + +--- + +### ✅ 符合规范的错误处理(3 处) + +| 方法 | 场景 | 实现 | 规范要求 | +| --- | --- | --- | --- | +| `eth_call` / `eth_estimateGas` | EVM revert | `RevertError.ErrorCode() = 3` + `ErrorData()` hex revert bytes ([errors.go:149](x/evm/types/errors.go#L149)) | code `3` + data ✅ | +| `eth_simulateV1` | nonce / gas / EOA 等 | `simulate_errors.go` 完整定义 -38010~-38026 | -38xxx ✅ | +| 块/交易查询 | 资源不存在 | 大多数路径返回 `nil, nil` → JSON `null` | `null` ✅ | + +--- + +### ❌ 不符合规范的错误处理 + +#### 问题一:10 个方法缺少 error code 4444(历史被裁剪) + +规范要求这些方法在访问已裁剪的历史数据时返回 code `4444`,Ethermint 全部没有实现,统一变成 `-32603`。 + +| 方法 | 规范文件 | 涉及代码位置 | +| --- | --- | --- | +| `eth_getBlockByHash` | block.yaml | [blocks.go:132](rpc/backend/blocks.go#L132) | +| `eth_getBlockByNumber` | block.yaml | [blocks.go:68](rpc/backend/blocks.go#L68) | +| `eth_getBlockTransactionCountByHash` | block.yaml | [blocks.go:160](rpc/backend/blocks.go#L160) | +| `eth_getBlockTransactionCountByNumber` | block.yaml | [blocks.go:181](rpc/backend/blocks.go#L181) | +| `eth_getBlockReceipts` | block.yaml | [blocks.go:95](rpc/backend/blocks.go#L95) | +| `eth_getTransactionByBlockHashAndIndex` | transaction.yaml | [tx_info.go:489](rpc/backend/tx_info.go#L489) | +| `eth_getTransactionByBlockNumberAndIndex` | transaction.yaml | [tx_info.go:512](rpc/backend/tx_info.go#L512) | +| `eth_getTransactionReceipt` | transaction.yaml | [tx_info.go:163](rpc/backend/tx_info.go#L163) | +| `eth_getLogs` | filter.yaml | [filters/api.go:220](rpc/namespaces/ethereum/eth/filters/api.go#L220) | +| `eth_getFilterLogs` | filter.yaml | [filters/api.go:266](rpc/namespaces/ethereum/eth/filters/api.go#L266) | + +**修复方向**:新增 `PrunedHistoryError` 类型实现 `ErrorCode() = 4444`,在检测到 pruned 状态时使用。 + +--- + +#### 问题二:`eth_sendRawTransaction` / `eth_sendTransaction` — 广播错误码全部丢失 + +交易广播失败时使用 `errorsmod.ABCIError(rsp.Codespace, rsp.Code, rsp.RawLog)` 包装([call_tx.go:169](rpc/backend/call_tx.go#L169)、[sign_tx.go:119](rpc/backend/sign_tx.go#L119)),该类型没有实现 `ErrorCode()`,所有失败场景统一变成 `-32603`。 + +| 失败场景 | 实际返回 | 规范要求 | +| --- | --- | --- | +| gas 不足 / 余额不足 | `-32603` | GasErrors 800~809 | +| nonce too low / too high | `-32603` | ExecutionErrors 1 / 2 | +| execution reverted (via broadcast) | `-32603` | ExecutionErrors 3 | +| 交易被拒绝 | `-32603` | -32003 | +| 已知交易 | `-32603` | TxPoolErrors 1000 | +| invalid sender | `-32603` | TxPoolErrors 1001 | + +**修复方向**:解析 ABCI codespace/code,映射到实现了 `ErrorCode()` 的包装类型。 + +--- + +#### 问题三:`eth_call` / `eth_estimateGas` — 非 revert VM 错误 + +`vmError != "execution reverted"` 时,`handleRevertError` 返回 `status.Error(codes.Internal, vmError)`([call_tx.go:317](rpc/backend/call_tx.go#L317)),变成 `-32603`。 + +| 失败场景 | 实际返回 | 规范要求 | +| --- | --- | --- | +| INVALID_OPCODE | `-32603` | ExecutionErrors 4 | +| 其他 VM 错误 | `-32603` | 视具体错误 | + +--- + +#### 问题四:`eth_newPendingTransactionFilter` / `eth_newBlockFilter` — 错误以 ID 字符串返回 + +Filter 数量超限时,这两个方法把错误消息直接编码为 filter ID 字符串返回([filters/api.go:141](rpc/namespaces/ethereum/eth/filters/api.go#L141)、[filters/api.go:164](rpc/namespaces/ethereum/eth/filters/api.go#L164)),而不是抛出 JSON-RPC error。客户端拿到的是一个"假 ID",后续用这个 ID 调用任何 filter 方法都会静默失败。 + +``` +return rpc.ID("error creating pending tx filter: max limit reached") +``` + +**修复方向**:返回类型改为 `(rpc.ID, error)`,或通过 context 传递错误。 + +--- + +#### 问题五:`eth_getLogs` / `eth_feeHistory` — 超限返回 -32603 而非 -32005 + +| 方法 | 超限场景 | 实际返回 | 规范要求 | 代码位置 | +| --- | --- | --- | --- | --- | +| `eth_getLogs` | 查询块范围超过 `RPCBlockRangeCap` | `-32603` | `-32005` | [filters.go:155](rpc/namespaces/ethereum/eth/filters/filters.go#L155) | +| `eth_getLogs` | 返回日志数超过 `RPCLogsCap` | `-32603` | `-32005` | [filters.go:186](rpc/namespaces/ethereum/eth/filters/filters.go#L186) | +| `eth_feeHistory` | 请求块数超过 `FeeHistoryCap` | `-32603` | `-32005` | [chain_info.go:217](rpc/backend/chain_info.go#L217) | + +Ethermint 代码库中没有定义 `-32005` 错误类型,`simulate_errors.go` 里虽有 `ErrCodeClientLimitExceeded = -38026`,但那是 `eth_simulateV1` 专用。 + +**修复方向**:新增 `LimitExceededError` 类型实现 `ErrorCode() = -32005`。 + +--- + +### 错误合规汇总(按方法) + +| 方法 | 场景 | 实际返回码 | 规范要求码 | 合规 | +| --- | --- | --- | --- | --- | +| `eth_call` / `eth_estimateGas` | EVM revert | `3` + data | `3` + data | ✅ | +| `eth_call` / `eth_estimateGas` | 非 revert VM 错误 | `-32603` | `4` | ❌ | +| `eth_sendRawTransaction` | gas / nonce / 余额 / pool 等所有失败 | `-32603` | 800~809 / 1~2 / -32003 / 1000 / 1001 | ❌ | +| `eth_sendTransaction` | 同上 | `-32603` | 同上 | ❌ | +| `eth_simulateV1` | nonce / gas / EOA 等 | `-38010~-38026` | `-38010~-38026` | ✅ | +| `eth_getBlockByHash` | 历史被裁剪 | `-32603` | `4444` | ❌ | +| `eth_getBlockByNumber` | 历史被裁剪 | `-32603` | `4444` | ❌ | +| `eth_getBlockTransactionCountByHash` | 历史被裁剪 | `-32603` | `4444` | ❌ | +| `eth_getBlockTransactionCountByNumber` | 历史被裁剪 | `-32603` | `4444` | ❌ | +| `eth_getBlockReceipts` | 历史被裁剪 | `-32603` | `4444` | ❌ | +| `eth_getTransactionByBlockHashAndIndex` | 历史被裁剪 | `-32603` | `4444` | ❌ | +| `eth_getTransactionByBlockNumberAndIndex` | 历史被裁剪 | `-32603` | `4444` | ❌ | +| `eth_getTransactionReceipt` | 历史被裁剪 | `-32603` | `4444` | ❌ | +| `eth_getLogs` | 历史被裁剪 | `-32603` | `4444` | ❌ | +| `eth_getFilterLogs` | 历史被裁剪 | `-32603` | `4444` | ❌ | +| `eth_newPendingTransactionFilter` | 超过 filter 数量上限 | 假 ID 字符串 | JSON-RPC error | ❌ | +| `eth_newBlockFilter` | 超过 filter 数量上限 | 假 ID 字符串 | JSON-RPC error | ❌ | +| `eth_getLogs` | 块范围 / 日志数超限 | `-32603` | `-32005` | ❌ | +| `eth_feeHistory` | 请求块数超限 | `-32603` | `-32005` | ❌ | +| `eth_getBalance` / `eth_getCode` / `eth_getStorageAt` / `eth_getTransactionCount` | 各类错误 | `-32603` | 规范未定义特定码 | ✅ | +| `eth_getTransactionByHash` | 不存在 | `null` | `null` | ✅ | +| 块/交易查询 | 资源不存在 | `null` | `null` | ✅ | + +--- + +## 返回值字段完整性 + +### `eth_getTransactionReceipt` — 缺少 EIP-4844 字段 + +实现位置:[tx_info.go](rpc/backend/tx_info.go) + +| 字段 | 规范要求 | 实现状态 | +| --- | --- | --- | +| `blockHash` | ✅ | ✅ | +| `blockNumber` | ✅ | ✅ | +| `from` | ✅ | ✅ | +| `cumulativeGasUsed` | ✅ | ✅ | +| `gasUsed` | ✅ | ✅ | +| `effectiveGasPrice` | ✅ | ✅ | +| `logs` / `logsBloom` | ✅ | ✅ | +| `status` / `type` | ✅ | ✅ | +| `contractAddress` | ✅ | ✅ | +| `blobGasUsed` | EIP-4844 必需 | ❌ 缺失 | +| `blobGasPrice` | EIP-4844 必需 | ❌ 缺失 | + +--- + +### `eth_getBlockByHash` / `eth_getBlockByNumber` — 缺少后 EIP-4895/4844/4788 字段 + +实现位置:[rpc/types/utils.go](rpc/types/utils.go) + +| 字段 | 引入版本 | 实现状态 | +| --- | --- | --- | +| `baseFeePerGas` | EIP-1559 | ✅ | +| `withdrawals` | EIP-4895 (Shanghai) | ❌ 缺失 | +| `withdrawalsRoot` | EIP-4895 (Shanghai) | ❌ 缺失 | +| `blobGasUsed` | EIP-4844 (Cancun) | ❌ 缺失 | +| `excessBlobGas` | EIP-4844 (Cancun) | ❌ 缺失 | +| `parentBeaconBlockRoot` | EIP-4788 (Cancun) | ❌ 缺失 | + +--- + +### `eth_getTransactionByHash` / block nested transactions — 缺少字段 + +实现位置:[rpc/types/types.go](rpc/types/types.go)、[rpc/types/utils.go](rpc/types/utils.go)(`NewRPCTransactionFromTx`) + +所有交易查询(`eth_getTransactionByHash`、`eth_getTransactionByBlockHashAndIndex`、`eth_getTransactionByBlockNumberAndIndex`)以及 `eth_getBlockByHash` / `eth_getBlockByNumber` 中 `fullTx=true` 时的内嵌交易对象,均通过同一函数 `NewRPCTransactionFromTx` 构造,共享以下字段缺口。 + +| 字段 | 规范要求 | 实现状态 | +| --- | --- | --- | +| `accessList` | EIP-2930 | ✅ | +| `maxFeePerGas` / `maxPriorityFeePerGas` | EIP-1559 | ✅ | +| `type` / `chainId` / `yParity` | EIP-2718 | ✅ | +| `authorizationList` | EIP-7702 | ✅ | +| `blockTimestamp` | `TransactionInfo` schema required | ❌ 缺失(`RPCTransaction` 结构体无此字段) | +| `blobVersionedHashes` | EIP-4844 | ❌ 缺失(架构差距) | +| `maxFeePerBlobGas` | EIP-4844 | ❌ 缺失(架构差距) | + +--- + +### `eth_createAccessList` — 响应缺少 `error` 字段 + +实现位置:[x/evm/types/access_list.go:72](x/evm/types/access_list.go#L72) + +规范要求返回 `{ accessList, error, gasUsed }` 三个字段,其中 `error` 是一个字符串,用于在 access list 计算遇到 EVM 错误时(如 revert)将错误信息内联到响应体中(而不是抛出 JSON-RPC error)。Ethermint 的 `AccessListResult` 只有两个字段: + +```go +type AccessListResult struct { + Accesslist ethtypes.AccessList `json:"accessList"` + GasUsed uint64 `json:"gasUsed"` + // 缺少:Error string `json:"error,omitempty"` +} +``` + +客户端无法得知 access list 计算过程中发生的 EVM 错误。 + +--- + +--- + +### 字段缺失说明 + +- **架构差距(不可修复)**:EIP-4844 blob 字段(`blobVersionedHashes`、`maxFeePerBlobGas`、`blobGasUsed`、`blobGasPrice`)及 EIP-4895 withdrawals 字段,Ethermint 基于 Tendermint 共识,不支持这些特性,客户端不应期望这些字段。 +- **可修复 bug**:`eth_createAccessList` 缺少 `error` 字段,与架构无关,应补齐。 + +--- + +## 问题方法汇总(共 19 个) + +| # | 方法 | 问题类型 | 可修复 | +| --- | --- | --- | --- | +| 1 | `eth_sendRawTransaction` | 广播错误码全部丢失(→ -32603) | ✅ | +| 2 | `eth_sendTransaction` | 广播错误码全部丢失(→ -32603) | ✅ | +| 3 | `eth_call` | 非 revert VM 错误返回 -32603,应为 4 | ✅ | +| 4 | `eth_estimateGas` | 非 revert VM 错误返回 -32603,应为 4 | ✅ | +| 5 | `eth_getBlockByHash` | 4444 缺失 + 5 个字段缺失 + 内嵌交易缺少 `blockTimestamp` | 部分 | +| 6 | `eth_getBlockByNumber` | 4444 缺失 + 5 个字段缺失 + 内嵌交易缺少 `blockTimestamp` | 部分 | +| 7 | `eth_getBlockTransactionCountByHash` | 4444 缺失 | ✅ | +| 8 | `eth_getBlockTransactionCountByNumber` | 4444 缺失 | ✅ | +| 9 | `eth_getBlockReceipts` | 4444 缺失 | ✅ | +| 10 | `eth_getTransactionByBlockHashAndIndex` | 4444 缺失 + `blockTimestamp` 缺失 | ✅ | +| 11 | `eth_getTransactionByBlockNumberAndIndex` | 4444 缺失 + `blockTimestamp` 缺失 | ✅ | +| 12 | `eth_getTransactionReceipt` | 4444 缺失 + 2 个字段缺失 | 部分 | +| 13 | `eth_getLogs` | 4444 缺失 + -32005 缺失 | ✅ | +| 14 | `eth_getFilterLogs` | 4444 缺失 | ✅ | +| 15 | `eth_newPendingTransactionFilter` | 错误塞进 ID 字符串 | ✅ | +| 16 | `eth_newBlockFilter` | 错误塞进 ID 字符串 | ✅ | +| 17 | `eth_feeHistory` | -32005 缺失 | ✅ | +| 18 | `eth_getTransactionByHash` | `blockTimestamp` 缺失(必需)+ 2 个 EIP-4844 字段缺失(架构差距) | 部分 | +| 19 | `eth_createAccessList` | 响应缺少 `error` 字段 | ✅ | + +--- + +## 返回数据格式合规分析 + +以下检查每个字段的**编码格式**是否符合规范(数值是否为 hex 字符串、长度是否正确、类型是否匹配等)。 + +### ✅ 格式正确 + +| 方法 | 字段 | 规范类型 | 实现 | +| --- | --- | --- | --- | +| `eth_getBalance` | 返回值 | uint256(hex) | `*hexutil.Big` ✅ | +| `eth_getTransactionCount` | 返回值 | uint64(hex) | `hexutil.Uint64` ✅ | +| `eth_feeHistory` | baseFeePerGas | uint[](hex) | `[]*hexutil.Big` ✅ | +| `eth_feeHistory` | gasUsedRatio | float[] | `[]float64` ✅ | +| `eth_feeHistory` | reward | uint[][](hex) | `[][]*hexutil.Big` ✅ | +| `eth_getTransactionReceipt` | status | uint("0x0"/"0x1") | `hexutil.Uint` ✅ | +| `eth_getTransactionReceipt` | contractAddress | address or null | nil / address ✅ | +| `eth_syncing` | 不同步时 | false(bool) | `false` ✅ | +| `eth_getFilterChanges` | block filter | hash32[] | `[]common.Hash` ✅ | + +--- + +### ❌ 格式错误 + +#### 1. `eth_getTransactionReceipt` — `effectiveGasPrice` 仅对 EIP-1559 交易设置 + +**问题**:`effectiveGasPrice` 只在 `DynamicFeeTxType` 时写入([rpc/backend/tx_info.go:475](rpc/backend/tx_info.go#L475)),legacy 交易和 EIP-2930 交易的 receipt 中缺少该字段。规范要求所有类型的交易都必须包含此字段。 + +**修复方向**:移除 `DynamicFeeTxType` 类型守卫,对所有交易类型无条件设置 `effectiveGasPrice`。`GetEffectiveGasPrice`([x/evm/types/msg.go:279](x/evm/types/msg.go#L279))已经处理了所有类型:`baseFee == nil` 时直接返回 `tx.GasPrice()`(适用于 legacy/EIP-2930),有 baseFee 时用 `min(tip+base, feeCap)` 公式(对 legacy 退化为 gasPrice)。单行修复,无行为变更风险。 + +--- + +#### 4. `eth_syncing` — 同步中时缺少 `highestBlock` 字段 + +**问题**:节点同步中时,响应体只包含 `startingBlock` 和 `currentBlock`,缺少规范要求的 `highestBlock`([rpc/backend/node_info.go:89](rpc/backend/node_info.go#L89))。客户端无法计算同步进度百分比。 + +--- + +#### 5. Log 对象 — `blockTimestamp` 字段 + +**说明**:规范 Log schema 中 `blockTimestamp` 是可选属性(未列入 `required`),Ethermint 使用 go-ethereum 原生 `ethtypes.Log` 结构(无此字段),所有 log 响应(`eth_getLogs`、`eth_getFilterChanges`、receipt 中的 logs)均不返回该字段。这不是规范违规,但客户端若依赖此字段需额外查询块时间戳。 + +--- + +#### 6. 所有交易查询 + block 内嵌交易 — 缺少必需字段 `blockTimestamp` + +**问题**:规范 `TransactionInfo` schema 将 `blockTimestamp` 列在 `required` 数组中,是**强制字段**。Ethermint 的 `RPCTransaction` 结构体([rpc/types/types.go:55](rpc/types/types.go#L55))和构造函数 `NewRPCTransactionFromTx`([rpc/types/utils.go:201](rpc/types/utils.go#L201))均无此字段,导致以下方法的返回值缺少必需字段: + +- `eth_getTransactionByHash` +- `eth_getTransactionByBlockHashAndIndex` +- `eth_getTransactionByBlockNumberAndIndex` +- `eth_getBlockByHash` / `eth_getBlockByNumber`(`fullTx=true` 时的内嵌交易) + +**修复方向**:在 `RPCTransaction` 结构体中添加 `BlockTimestamp *hexutil.Uint64 \`json:"blockTimestamp,omitempty"\`` 字段,并在 `NewRPCTransactionFromTx` 中(已有 `blockHash != (common.Hash{})` 分支处)填充该值。块时间戳可通过调用方传入或从 block header 读取。 + +--- + +### 返回格式问题汇总 + +| # | 方法 | 字段 | 实际返回 | 规范要求 | 严重程度 | +| --- | --- | --- | --- | --- | --- | +| 1 | `eth_getTransactionReceipt` | `effectiveGasPrice` | legacy/2930 交易缺失 | 所有类型必须有 | 高 | +| 2 | `eth_syncing` | `highestBlock` | 缺失 | uint(hex) | 高 | +| 3 | `eth_getLogs` / `eth_getFilterChanges` / receipts 中的 logs | `blockTimestamp` | 缺失 | uint(hex,可选) | 低 | +| 4 | 所有交易查询 + `eth_getBlockByHash`/`eth_getBlockByNumber`(fullTx) | `blockTimestamp` | 缺失 | uint(hex,**必需**) | **高** | From 9afff7536d81e631734621bebe0e7780c75da113 Mon Sep 17 00:00:00 2001 From: Xinyu Date: Tue, 16 Jun 2026 14:32:54 +0800 Subject: [PATCH 04/32] fix: create access list without gas should success --- x/evm/keeper/grpc_query.go | 17 +++++++++-------- x/evm/keeper/grpc_query_test.go | 26 ++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 8 deletions(-) diff --git a/x/evm/keeper/grpc_query.go b/x/evm/keeper/grpc_query.go index 04a20920ca..c53370c648 100644 --- a/x/evm/keeper/grpc_query.go +++ b/x/evm/keeper/grpc_query.go @@ -1040,14 +1040,15 @@ func (k Keeper) getAccessListExcludes(ctx sdk.Context, args types.TransactionArg addressesToExclude[addr] = struct{}{} } - // check if enough gas was provided to cover all authorization lists - if args.Gas == nil { - return nil, errors.New("gas must be set when using authorization list") - } - maxAuthorizations := uint64(*args.Gas) / ethparams.CallNewAccountGas - if uint64(len(args.AuthorizationList)) > maxAuthorizations { - k.Logger(ctx).Error("insufficient gas to process all authorizations", "maxAuthorizations", maxAuthorizations) - return nil, errors.New("insufficient gas to process all authorizations") + if len(args.AuthorizationList) > 0 { + if args.Gas == nil { + return nil, errors.New("gas must be set when using authorization list") + } + maxAuthorizations := uint64(*args.Gas) / ethparams.CallNewAccountGas + if uint64(len(args.AuthorizationList)) > maxAuthorizations { + k.Logger(ctx).Error("insufficient gas to process all authorizations", "maxAuthorizations", maxAuthorizations) + return nil, errors.New("insufficient gas to process all authorizations") + } } for _, auth := range args.AuthorizationList { diff --git a/x/evm/keeper/grpc_query_test.go b/x/evm/keeper/grpc_query_test.go index 9ee52c0b80..df85ac0619 100644 --- a/x/evm/keeper/grpc_query_test.go +++ b/x/evm/keeper/grpc_query_test.go @@ -2782,6 +2782,32 @@ func (suite *GRPCServerTestSuiteSuite) TestCreateAccessList() { } } +func (suite *GRPCServerTestSuiteSuite) TestCreateAccessListWithoutGas() { + suite.App.EvmKeeper.SetBalance(suite.Ctx, suite.Address, *uint256.NewInt(1000000000000000000), types.DefaultEVMDenom) + + to := tests.GenerateAddress() + value := (*hexutil.Big)(big.NewInt(10)) + args, err := json.Marshal(&types.TransactionArgs{ + From: &suite.Address, + To: &to, + Value: value, + }) + suite.Require().NoError(err) + + res, err := suite.App.EvmKeeper.CreateAccessList(suite.Ctx, &types.EthCallRequest{ + Args: args, + GasCap: uint64(config.DefaultGasCap), + }) + suite.Require().NoError(err) + suite.Require().NotNil(res) + + var result types.AccessListResult + suite.Require().NoError(json.Unmarshal(res.Data, &result)) + suite.Require().Empty(result.AccessList) + suite.Require().NotZero(uint64(result.GasUsed)) + suite.Require().Empty(result.Error) +} + func (suite *GRPCServerTestSuiteSuite) TestCreateAccessList_VmError() { contractAddr := suite.deployTestContract(suite.Address) suite.Commit(suite.T()) From b89f618415c9b4473c4c9802c06ae83a96b2a4e0 Mon Sep 17 00:00:00 2001 From: Xinyu Date: Tue, 16 Jun 2026 14:33:12 +0800 Subject: [PATCH 05/32] test: patch test input for ethermint(simulateV1) --- tests/integration_tests/spec/test_rpc_spec.py | 28 +++- .../spec/test_rpc_spec_schema.py | 143 +++++++++++++++++- tests/integration_tests/spec/test_simulate.py | 7 + 3 files changed, 169 insertions(+), 9 deletions(-) diff --git a/tests/integration_tests/spec/test_rpc_spec.py b/tests/integration_tests/spec/test_rpc_spec.py index 86df56e7c9..642caa7da3 100644 --- a/tests/integration_tests/spec/test_rpc_spec.py +++ b/tests/integration_tests/spec/test_rpc_spec.py @@ -3,6 +3,7 @@ import urllib.error import urllib.request from collections import defaultdict +from copy import deepcopy from pathlib import Path import pytest @@ -27,6 +28,10 @@ def _collect_spec_files(): SPEC_FILES = _collect_spec_files() +ETH_SIMULATE_FUTURE_BLOCK_SPEC = ( + "eth_simulateV1/ethSimulate-empty-with-block-num-set-plus1" +) +ETH_SIMULATE_FUTURE_BLOCK_NUMBER = "0x111" class RpcSpecSummary: @@ -172,6 +177,21 @@ def _send_rpc(endpoint, request_body): } +def _rewrite_request_for_ethermint_runtime_fixture(spec_name, request): + if spec_name != ETH_SIMULATE_FUTURE_BLOCK_SPEC: + return request, None + + rewritten = deepcopy(request) + params = rewritten.get("params") + if isinstance(params, list) and len(params) >= 2: + params[1] = ETH_SIMULATE_FUTURE_BLOCK_NUMBER + return ( + rewritten, + "request block number rewritten to an Ethermint future block", + ) + return request, None + + def _response_kind(response): if "result" in response: return "result" @@ -376,7 +396,13 @@ def test_ethermint_rpc_matches_execution_api_spec( request = json.loads(request_body) expected = json.loads(expected_body) - actual = _send_rpc(rpc_endpoint, request_body) + rpc_request, runtime_rewrite_note = _rewrite_request_for_ethermint_runtime_fixture( + spec_name, request + ) + if runtime_rewrite_note: + actual = _send_rpc(rpc_endpoint, json.dumps(rpc_request)) + else: + actual = _send_rpc(rpc_endpoint, request_body) result = _classify(spec_name, request, expected, actual) rpc_spec_summary.add(result) diff --git a/tests/integration_tests/spec/test_rpc_spec_schema.py b/tests/integration_tests/spec/test_rpc_spec_schema.py index 76b29fca79..5e79e07b50 100644 --- a/tests/integration_tests/spec/test_rpc_spec_schema.py +++ b/tests/integration_tests/spec/test_rpc_spec_schema.py @@ -15,6 +15,7 @@ _is_not_implemented, _is_request_schema_error, _parse_spec_file, + _rewrite_request_for_ethermint_runtime_fixture, _response_kind, _same_schema, _send_rpc, @@ -26,6 +27,38 @@ **CATEGORY_TITLES, "schema_correct": "correct implemented by schema", } +UNIMPLEMENTED_RPC_METHODS = { + "debug_getRawBlock", + "debug_getRawHeader", + "debug_getRawReceipts", + "debug_getRawTransaction", + "eth_blobBaseFee", + "eth_config", + "eth_getStorageValues", + "testing_buildBlockV1", + "txpool_contentFrom", +} +SCHEMA_MISMATCH_WHITELIST = { + "response_schema_wrong": { + "eth_createAccessList", + "eth_feeHistory", + "eth_getBalance", + "eth_getBlockByHash", + "eth_getBlockByNumber", + "eth_getBlockReceipts", + "eth_getLogs", + "eth_getProof", + "eth_getTransactionByBlockHashAndIndex", + "eth_getTransactionByBlockNumberAndIndex", + "eth_getTransactionByHash", + "eth_getTransactionReceipt", + "eth_sendRawTransaction", + "txpool_content", + }, + "mixed_wrong": { + "eth_simulateV1", + }, +} @pytest.fixture(scope="module") @@ -105,6 +138,8 @@ def report(self): lines.extend(self._markdown_method_summary()) lines.extend(["", "## Null Result Summary", ""]) lines.extend(self._markdown_null_result_summary()) + lines.extend(["", "## Expected Failure Whitelist", ""]) + lines.extend(self._markdown_expected_failure_whitelist()) lines.extend(["", "## Detailed Mismatches", ""]) lines.extend(self._markdown_details()) return "\n".join(lines).rstrip() + "\n" @@ -199,6 +234,35 @@ def _markdown_null_result_summary(self): ] return lines + def _markdown_expected_failure_whitelist(self): + lines = [ + "These method-level lists document known gaps that are currently " + "excluded from the schema test failure condition. Reduce these lists " + "as methods are implemented or response schemas are fixed.", + "", + "### Unimplemented RPC Methods", + "", + ] + lines.extend(f"- `{method}`" for method in sorted(UNIMPLEMENTED_RPC_METHODS)) + lines.extend( + [ + "", + "### Schema Mismatch Whitelist", + "", + "| Category | RPC Methods |", + "| --- | --- |", + ] + ) + for category in ["response_schema_wrong", "mixed_wrong"]: + methods = sorted(SCHEMA_MISMATCH_WHITELIST[category]) + lines.append( + "| {} | {} |".format( + SCHEMA_CATEGORY_TITLES[category], + ", ".join(f"`{method}`" for method in methods), + ) + ) + return lines + def _markdown_details(self): lines = [] for attr in [ @@ -309,6 +373,15 @@ def _method_verdict(results): return next(iter(wrong_categories)) return "mixed_wrong" + def method_verdicts(self): + by_method = defaultdict(list) + for result in self._all_results(): + by_method[result.method].append(result) + return { + method: self._method_verdict(results) + for method, results in by_method.items() + } + def _classify_schema(spec_name, request, expected, actual): method = request.get("method", "") @@ -416,6 +489,9 @@ def _run_spec_case(rpc_context, spec_name): request = json.loads(request_body) expected = json.loads(expected_body) + request, runtime_rewrite_note = _rewrite_request_for_ethermint_runtime_fixture( + spec_name, request + ) request, rewritten = _rewrite_request_for_local_schema_fixture( request, expected, rpc_context ) @@ -423,11 +499,65 @@ def _run_spec_case(rpc_context, spec_name): result = _classify_schema(spec_name, request, expected, actual) context = comments[0] if comments else "" + if runtime_rewrite_note: + context = f"{context} ({runtime_rewrite_note})" if rewritten: context = f"{context} (request rewritten to local Ethermint fixture hash)" return _attach_details(result, request, expected, actual, context) +def _format_method_set(methods): + return ", ".join(f"`{method}`" for method in sorted(methods)) or "-" + + +def _expected_failure_drift(summary): + verdicts = summary.method_verdicts() + expected_by_verdict = { + "not_implemented": UNIMPLEMENTED_RPC_METHODS, + **SCHEMA_MISMATCH_WHITELIST, + } + actual_by_verdict = { + verdict: {method for method, actual in verdicts.items() if actual == verdict} + for verdict in expected_by_verdict + } + + drift = [] + for verdict, expected_methods in expected_by_verdict.items(): + actual_methods = actual_by_verdict[verdict] + unexpected = actual_methods - expected_methods + stale = expected_methods - actual_methods + if unexpected: + drift.append( + "{} has unlisted methods: {}".format( + SCHEMA_CATEGORY_TITLES[verdict], + _format_method_set(unexpected), + ) + ) + if stale: + drift.append( + "{} whitelist has stale methods: {}".format( + SCHEMA_CATEGORY_TITLES[verdict], + _format_method_set(stale), + ) + ) + + allowed_wrong_verdicts = set(expected_by_verdict) + unexpected_wrong_verdicts = { + verdict + for verdict in verdicts.values() + if verdict != "schema_correct" and verdict not in allowed_wrong_verdicts + } + for verdict in sorted(unexpected_wrong_verdicts): + methods = {method for method, actual in verdicts.items() if actual == verdict} + drift.append( + "{} has no whitelist: {}".format( + SCHEMA_CATEGORY_TITLES[verdict], + _format_method_set(methods), + ) + ) + return drift + + def test_ethermint_rpc_matches_execution_api_schema(rpc_context): summary = RpcSpecSchemaSummary() for spec_name in SPEC_FILES: @@ -441,12 +571,9 @@ def test_ethermint_rpc_matches_execution_api_schema(rpc_context): print("") print(f"wrote schema report: {REPORT_PATH}") - failures = ( - summary.not_implemented - + summary.request_schema_wrong - + summary.response_schema_wrong - ) - assert not failures, ( - f"{len(failures)} schema mismatches found. " - f"See detailed report: {REPORT_PATH}" + drift = _expected_failure_drift(summary) + assert not drift, ( + "RPC schema expected-failure whitelist drifted:\n" + + "\n".join(f"- {line}" for line in drift) + + f"\nSee detailed report: {REPORT_PATH}" ) diff --git a/tests/integration_tests/spec/test_simulate.py b/tests/integration_tests/spec/test_simulate.py index f51cc8b611..34efeacd9e 100644 --- a/tests/integration_tests/spec/test_simulate.py +++ b/tests/integration_tests/spec/test_simulate.py @@ -5,6 +5,8 @@ import pytest +from test_rpc_spec import _rewrite_request_for_ethermint_runtime_fixture + SPEC_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "eth_simulateV1") @@ -168,6 +170,11 @@ def test_eth_simulate_spec(rpc_endpoint, base_timestamp, spec_name): if "result" in expected: request_body = _adjust_timestamps(request_body, base_timestamp) + request, runtime_rewrite_note = _rewrite_request_for_ethermint_runtime_fixture( + f"eth_simulateV1/{spec_name}", json.loads(request_body) + ) + if runtime_rewrite_note: + request_body = json.dumps(request) actual = _send_rpc(rpc_endpoint, request_body) mismatch = _compare_results(expected, actual) From c1917b544f5a13111a423b331538adcc0410823b Mon Sep 17 00:00:00 2001 From: Xinyu Date: Tue, 16 Jun 2026 15:29:36 +0800 Subject: [PATCH 06/32] fix: json number --- tests/integration_tests/spec/test_rpc_spec.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/integration_tests/spec/test_rpc_spec.py b/tests/integration_tests/spec/test_rpc_spec.py index 642caa7da3..da73630807 100644 --- a/tests/integration_tests/spec/test_rpc_spec.py +++ b/tests/integration_tests/spec/test_rpc_spec.py @@ -241,9 +241,15 @@ def _same_schema(expected, actual): if not expected or not actual: return True return all(_same_schema(exp, act) for exp, act in zip(expected, actual)) + if _is_json_number(expected) and _is_json_number(actual): + return True return type(expected) is type(actual) +def _is_json_number(value): + return type(value) in (int, float) + + def _first_schema_mismatch(expected, actual, path="$"): if isinstance(expected, dict) and isinstance(actual, dict): expected_keys = set(expected) @@ -269,6 +275,8 @@ def _first_schema_mismatch(expected, actual, path="$"): if mismatch: return mismatch return None + if _is_json_number(expected) and _is_json_number(actual): + return None if type(expected) is not type(actual): return ( f"{path}: expected {type(expected).__name__}, " From 0e8376a4e308692a9ceb646d958b6f14c3b40294 Mon Sep 17 00:00:00 2001 From: Xinyu Date: Tue, 16 Jun 2026 16:09:35 +0800 Subject: [PATCH 07/32] test: eth_getBalance testcase patch for ethermint --- .../spec/test_rpc_spec_schema.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/tests/integration_tests/spec/test_rpc_spec_schema.py b/tests/integration_tests/spec/test_rpc_spec_schema.py index 5e79e07b50..6146acb28f 100644 --- a/tests/integration_tests/spec/test_rpc_spec_schema.py +++ b/tests/integration_tests/spec/test_rpc_spec_schema.py @@ -40,9 +40,6 @@ } SCHEMA_MISMATCH_WHITELIST = { "response_schema_wrong": { - "eth_createAccessList", - "eth_feeHistory", - "eth_getBalance", "eth_getBlockByHash", "eth_getBlockByNumber", "eth_getBlockReceipts", @@ -53,11 +50,10 @@ "eth_getTransactionByHash", "eth_getTransactionReceipt", "eth_sendRawTransaction", - "txpool_content", - }, - "mixed_wrong": { "eth_simulateV1", + "txpool_content", }, + "mixed_wrong": set(), } @@ -475,6 +471,17 @@ def _rewrite_request_for_local_schema_fixture(request, expected, context): params[0] = context["block_number"] elif method in {"eth_getTransactionByHash", "eth_getTransactionReceipt"}: params[0] = context["tx_hash"] + elif ( + # The copied execution-api fixture uses a geth block hash. For the + # Ethermint schema test, replace it with a block hash produced by this + # local test chain so eth_getBalance queries an existing historical state. + method == "eth_getBalance" + and len(params) >= 2 + and isinstance(params[1], str) + and len(params[1]) == 66 + and params[1].startswith("0x") + ): + params[1] = context["block_hash"] else: return request, False From 67e9a12b3b66e535cde255a9c5f8fab24139a464 Mon Sep 17 00:00:00 2001 From: Xinyu Date: Thu, 18 Jun 2026 14:39:53 +0800 Subject: [PATCH 08/32] test: exclude past fork cases for eth_getBlockByNumber --- tests/integration_tests/spec/test_rpc_spec.py | 14 +- .../spec/test_rpc_spec_schema.py | 285 ++++++++++++++++-- 2 files changed, 279 insertions(+), 20 deletions(-) diff --git a/tests/integration_tests/spec/test_rpc_spec.py b/tests/integration_tests/spec/test_rpc_spec.py index da73630807..a277f082c8 100644 --- a/tests/integration_tests/spec/test_rpc_spec.py +++ b/tests/integration_tests/spec/test_rpc_spec.py @@ -307,13 +307,21 @@ def _first_value_mismatch(expected, actual, path="$"): return f"{path}: expected {expected!r}, got {actual!r}" -def _compact_json(value, limit=1200): - text = json.dumps(value, sort_keys=True) - if len(text) <= limit: +def _format_json(value, limit=1200, indent=None): + text = json.dumps(value, sort_keys=True, indent=indent) + if limit is None or len(text) <= limit: return text return f"{text[:limit]}... " +def _compact_json(value, limit=1200): + return _format_json(value, limit=limit) + + +def _markdown_json(value): + return _format_json(value, limit=None, indent=2) + + def _classify(spec_name, request, expected, actual): method = request.get("method", "") if expected == actual: diff --git a/tests/integration_tests/spec/test_rpc_spec_schema.py b/tests/integration_tests/spec/test_rpc_spec_schema.py index 6146acb28f..5b48082f95 100644 --- a/tests/integration_tests/spec/test_rpc_spec_schema.py +++ b/tests/integration_tests/spec/test_rpc_spec_schema.py @@ -10,11 +10,10 @@ SPEC_FILES, CATEGORY_TITLES, RpcSpecResult, - _compact_json, _first_schema_mismatch, _is_not_implemented, _is_request_schema_error, - _parse_spec_file, + _markdown_json, _rewrite_request_for_ethermint_runtime_fixture, _response_kind, _same_schema, @@ -40,8 +39,6 @@ } SCHEMA_MISMATCH_WHITELIST = { "response_schema_wrong": { - "eth_getBlockByHash", - "eth_getBlockByNumber", "eth_getBlockReceipts", "eth_getLogs", "eth_getProof", @@ -55,6 +52,179 @@ }, "mixed_wrong": set(), } +ETHERMINT_MODERN_BLOCK_FIELD_SCHEMA_EXCEPTIONS = { + # Genesis is a pre-fork block in the copied Geth fixture. Ethermint currently + # returns Prague-era block fields for it, so ignore only those extra fields + # until the block formatter becomes fork-aware for historical heights. + "eth_getBlockByNumber/get-genesis", + # The copied geth block-hash fixture is also from an old fork era, but this + # test rewrites the hash to a local Ethermint block before comparing schema. + "eth_getBlockByHash/get-block-by-hash", +} +ETHERMINT_LOCAL_TX_SCHEMA_EXCEPTIONS = { + "eth_getBlockByHash/get-block-by-hash", +} +RELAXED_BLOCK_TRANSACTION_SCHEMA_EXCEPTIONS = { + # These block tags resolve against the local Ethermint chain, not the copied + # Geth fixture chain. Keep checking the block response envelope, but do not + # require per-transaction object schemas to line up when the actual + # transactions are from a different chain and can be different tx types. + "eth_getBlockByNumber/get-finalized", + "eth_getBlockByNumber/get-latest", + "eth_getBlockByNumber/get-safe", +} +MODERN_BLOCK_FIELDS = { + "baseFeePerGas", + "blobGasUsed", + "excessBlobGas", + "parentBeaconBlockRoot", + "requestsHash", + "withdrawals", + "withdrawalsRoot", +} +LOCAL_FIXTURE_TX_FIELDS = { + "chainId", +} +EXCLUDED_SCHEMA_SPEC_CASES = { + # Ethermint currently emits Prague-era block fields for historical blocks. + # Exclude these explicitly fork-scoped Geth fixtures instead of treating + # their expected older response shape as a current Ethermint schema failure. + "eth_getBlockByNumber/get-block-london-fork", + "eth_getBlockByNumber/get-block-merge-fork", + "eth_getBlockByNumber/get-block-shanghai-fork", + "eth_getBlockByNumber/get-block-cancun-fork", +} + + +def _parse_spec_interactions(spec_name): + filepath = Path(__file__).parent / f"{spec_name}.io" + request_line = None + comments = [] + interactions = [] + with filepath.open() as f: + for line in f: + line = line.strip() + if line.startswith("//"): + comments.append(line[2:].strip()) + elif line.startswith(">> "): + request_line = line[3:] + elif line.startswith("<< "): + assert request_line, f"response without request in {spec_name}.io" + interactions.append((request_line, line[3:])) + request_line = None + + return interactions, comments + + +def _json_type_name(value): + if value is None: + return "null" + if isinstance(value, bool): + return "boolean" + if type(value) in (int, float): + return "number" + if isinstance(value, str): + return "string" + if isinstance(value, list): + return "array" + if isinstance(value, dict): + return "object" + return type(value).__name__ + + +def _schema_differences(expected, actual, path="$"): + if isinstance(expected, dict) and isinstance(actual, dict): + differences = [] + expected_keys = set(expected) + actual_keys = set(actual) + missing = sorted(expected_keys - actual_keys) + extra = sorted(actual_keys - expected_keys) + if missing: + differences.append(f"{path}: expected-only keys {missing}") + if extra: + differences.append(f"{path}: actual-only keys {extra}") + for key in sorted(expected_keys & actual_keys): + differences.extend( + _schema_differences(expected[key], actual[key], f"{path}.{key}") + ) + return differences + + if isinstance(expected, list) and isinstance(actual, list): + if not expected or not actual: + return [] + differences = [] + for index, (exp, act) in enumerate(zip(expected, actual)): + differences.extend(_schema_differences(exp, act, f"{path}[{index}]")) + return differences + + if type(expected) in (int, float) and type(actual) in (int, float): + return [] + + if type(expected) is not type(actual): + return [ + f"{path}: expected {_json_type_name(expected)}, " + f"got {_json_type_name(actual)}" + ] + + return [] + + +def _format_schema_differences(expected, actual): + differences = _schema_differences(expected, actual) + return "\n".join(differences) if differences else "-" + + +def _normalize_historical_block_schema_exception(spec_name, expected, actual): + if ( + spec_name not in ETHERMINT_MODERN_BLOCK_FIELD_SCHEMA_EXCEPTIONS + and spec_name not in ETHERMINT_LOCAL_TX_SCHEMA_EXCEPTIONS + and spec_name not in RELAXED_BLOCK_TRANSACTION_SCHEMA_EXCEPTIONS + ): + return expected, actual + + normalized_expected = deepcopy(expected) + normalized_actual = deepcopy(actual) + expected_result = normalized_expected.get("result") + actual_result = normalized_actual.get("result") + if not isinstance(expected_result, dict) or not isinstance(actual_result, dict): + return normalized_expected, normalized_actual + + if spec_name in ETHERMINT_MODERN_BLOCK_FIELD_SCHEMA_EXCEPTIONS: + # Geth formats historical blocks according to the fork active at that block. + # Ethermint currently derives Ethereum RPC headers from CometBFT blocks and + # populates modern fork fields even for historical blocks. Keep these old + # fork fixtures useful for the schema test by ignoring only those known + # extra fields until Ethermint's RPC block formatter is fork-aware. + for field in MODERN_BLOCK_FIELDS: + actual_result.pop(field, None) + + if spec_name in RELAXED_BLOCK_TRANSACTION_SCHEMA_EXCEPTIONS: + expected_txs = expected_result.get("transactions") + actual_txs = actual_result.get("transactions") + if isinstance(expected_txs, list) and isinstance(actual_txs, list): + expected_result["transactions"] = [] + actual_result["transactions"] = [] + + if spec_name not in ETHERMINT_LOCAL_TX_SCHEMA_EXCEPTIONS: + return normalized_expected, normalized_actual + + # This test rewrites the original Geth block hash to a local Ethermint block. + # The local transfer transaction can include modern transaction-only fields + # and a non-null `to`, while the copied fixture's first transactions are + # contract creations. Normalize those local fixture artifacts separately from + # the block-header fork fields above. + expected_txs = expected_result.get("transactions", []) + actual_txs = actual_result.get("transactions", []) + if isinstance(expected_txs, list) and isinstance(actual_txs, list): + for expected_tx, actual_tx in zip(expected_txs, actual_txs): + if not isinstance(expected_tx, dict) or not isinstance(actual_tx, dict): + continue + for field in LOCAL_FIXTURE_TX_FIELDS: + actual_tx.pop(field, None) + if expected_tx.get("to") is None and isinstance(actual_tx.get("to"), str): + actual_tx["to"] = None + + return normalized_expected, normalized_actual @pytest.fixture(scope="module") @@ -126,9 +296,24 @@ def report(self): "execution-apis `.io` fixtures by schema only. Values are ignored, " "but response kind, object keys, and JSON value types must match.", "", - "## Case Summary", + "## Excluded Cases", + "", + "These fork-specific block-number fixtures are skipped because " + "Ethermint currently returns Prague-era block fields for historical " + "blocks, while Geth formats each block response according to the " + "fork active at the queried block.", "", ] + lines.extend( + f"- `{spec_name}`" for spec_name in sorted(EXCLUDED_SCHEMA_SPEC_CASES) + ) + lines.extend( + [ + "", + "## Case Summary", + "", + ] + ) lines.extend(self._markdown_case_summary()) lines.extend(["", "## Method Summary", ""]) lines.extend(self._markdown_method_summary()) @@ -281,22 +466,37 @@ def _markdown_details(self): f"- Reason: {result.reason}", f"- Comment: {result.comment or '-'}", "", + ] + ) + if result.category == "response_schema_wrong": + lines.extend( + [ + "Schema differences:", + "", + "```text", + _format_schema_differences(result.expected, result.actual), + "```", + "", + ] + ) + lines.extend( + [ "Request:", "", "```json", - _compact_json(result.request), + _markdown_json(result.request), "```", "", "Expected:", "", "```json", - _compact_json(result.expected), + _markdown_json(result.expected), "```", "", "Actual:", "", "```json", - _compact_json(result.actual), + _markdown_json(result.actual), "```", "", ] @@ -422,12 +622,15 @@ def _classify_schema(spec_name, request, expected, actual): f"expected {expected_kind} response, got {actual_kind}", ) - if not _same_schema(expected, actual): + schema_expected, schema_actual = _normalize_historical_block_schema_exception( + spec_name, expected, actual + ) + if not _same_schema(schema_expected, schema_actual): return RpcSpecResult( spec_name, method, "response_schema_wrong", - _first_schema_mismatch(expected, actual) or "schema differs", + _first_schema_mismatch(schema_expected, schema_actual) or "schema differs", ) if actual_kind == "error" and _is_request_schema_error(actual): @@ -489,11 +692,7 @@ def _rewrite_request_for_local_schema_fixture(request, expected, context): return rewritten, True -def _run_spec_case(rpc_context, spec_name): - request_body, expected_body, comments = _parse_spec_file(spec_name) - assert request_body, f"no request line (>> ...) in {spec_name}.io" - assert expected_body, f"no expected response line (<< ...) in {spec_name}.io" - +def _prepare_schema_request(spec_name, request_body, expected_body, rpc_context): request = json.loads(request_body) expected = json.loads(expected_body) request, runtime_rewrite_note = _rewrite_request_for_ethermint_runtime_fixture( @@ -502,14 +701,64 @@ def _run_spec_case(rpc_context, spec_name): request, rewritten = _rewrite_request_for_local_schema_fixture( request, expected, rpc_context ) - actual = _send_rpc(rpc_context["endpoint"], json.dumps(request)) + return request, expected, runtime_rewrite_note, rewritten - result = _classify_schema(spec_name, request, expected, actual) + +def _format_case_context(comments, runtime_rewrite_note, rewritten, extra_note=None): context = comments[0] if comments else "" if runtime_rewrite_note: context = f"{context} ({runtime_rewrite_note})" if rewritten: context = f"{context} (request rewritten to local Ethermint fixture hash)" + if extra_note: + context = f"{context} ({extra_note})" + return context + + +def _skip_followups_after_unimplemented_first_request( + rpc_context, spec_name, interactions, comments +): + if len(interactions) < 2: + return None + + first_request = json.loads(interactions[0][0]) + if first_request.get("method") not in UNIMPLEMENTED_RPC_METHODS: + return None + + request, expected, runtime_rewrite_note, rewritten = _prepare_schema_request( + spec_name, interactions[0][0], interactions[0][1], rpc_context + ) + actual = _send_rpc(rpc_context["endpoint"], json.dumps(request)) + if not _is_not_implemented(actual): + return None + + result = _classify_schema(spec_name, request, expected, actual) + context = _format_case_context( + comments, + runtime_rewrite_note, + rewritten, + "skipped dependent requests because first request was not implemented", + ) + return _attach_details(result, request, expected, actual, context) + + +def _run_spec_case(rpc_context, spec_name): + interactions, comments = _parse_spec_interactions(spec_name) + assert interactions, f"no request/response pair in {spec_name}.io" + + skipped_result = _skip_followups_after_unimplemented_first_request( + rpc_context, spec_name, interactions, comments + ) + if skipped_result is not None: + return skipped_result + + request, expected, runtime_rewrite_note, rewritten = _prepare_schema_request( + spec_name, interactions[-1][0], interactions[-1][1], rpc_context + ) + actual = _send_rpc(rpc_context["endpoint"], json.dumps(request)) + + result = _classify_schema(spec_name, request, expected, actual) + context = _format_case_context(comments, runtime_rewrite_note, rewritten) return _attach_details(result, request, expected, actual, context) @@ -568,6 +817,8 @@ def _expected_failure_drift(summary): def test_ethermint_rpc_matches_execution_api_schema(rpc_context): summary = RpcSpecSchemaSummary() for spec_name in SPEC_FILES: + if spec_name in EXCLUDED_SCHEMA_SPEC_CASES: + continue summary.add(_run_spec_case(rpc_context, spec_name)) report = summary.report() From 08f48c095abb4ecc8aaaf028f4746400a4bd97c6 Mon Sep 17 00:00:00 2001 From: Xinyu Date: Thu, 18 Jun 2026 15:34:39 +0800 Subject: [PATCH 09/32] test: normalize local eth_getBlockReceipts schema fixtures --- .../spec/test_rpc_spec_schema.py | 125 +++++++++++++++++- 1 file changed, 120 insertions(+), 5 deletions(-) diff --git a/tests/integration_tests/spec/test_rpc_spec_schema.py b/tests/integration_tests/spec/test_rpc_spec_schema.py index 5b48082f95..65ba56ecad 100644 --- a/tests/integration_tests/spec/test_rpc_spec_schema.py +++ b/tests/integration_tests/spec/test_rpc_spec_schema.py @@ -39,7 +39,6 @@ } SCHEMA_MISMATCH_WHITELIST = { "response_schema_wrong": { - "eth_getBlockReceipts", "eth_getLogs", "eth_getProof", "eth_getTransactionByBlockHashAndIndex", @@ -85,6 +84,17 @@ LOCAL_FIXTURE_TX_FIELDS = { "chainId", } +LOCAL_RECEIPT_SCHEMA_EXCEPTIONS = { + "eth_getBlockReceipts/get-block-receipts-by-hash", + "eth_getBlockReceipts/get-block-receipts-latest", +} +LOCAL_RECEIPT_FUTURE_NULL_RESULT_ERROR_EXCEPTIONS = { + "eth_getBlockReceipts/get-block-receipts-future", +} +LOCAL_FIXTURE_RECEIPT_ADDRESS_FIELDS = { + "contractAddress", + "to", +} EXCLUDED_SCHEMA_SPEC_CASES = { # Ethermint currently emits Prague-era block fields for historical blocks. # Exclude these explicitly fork-scoped Geth fixtures instead of treating @@ -227,6 +237,53 @@ def _normalize_historical_block_schema_exception(spec_name, expected, actual): return normalized_expected, normalized_actual +def _normalize_local_receipt_schema_exception(spec_name, expected, actual): + if spec_name not in LOCAL_RECEIPT_SCHEMA_EXCEPTIONS: + return expected, actual + + normalized_expected = deepcopy(expected) + normalized_actual = deepcopy(actual) + expected_result = normalized_expected.get("result") + actual_result = normalized_actual.get("result") + if not isinstance(expected_result, list) or not isinstance(actual_result, list): + return normalized_expected, normalized_actual + + for expected_receipt, actual_receipt in zip(expected_result, actual_result): + if not isinstance(expected_receipt, dict) or not isinstance( + actual_receipt, dict + ): + continue + + for field in LOCAL_FIXTURE_RECEIPT_ADDRESS_FIELDS: + if field not in expected_receipt or field not in actual_receipt: + continue + + expected_value = expected_receipt[field] + actual_value = actual_receipt[field] + if ( + (expected_value is None and isinstance(actual_value, str)) + or (actual_value is None and isinstance(expected_value, str)) + ): + expected_receipt[field] = None + actual_receipt[field] = None + + return normalized_expected, normalized_actual + + +def _is_local_receipt_future_null_result_error(spec_name, expected, actual): + if spec_name not in LOCAL_RECEIPT_FUTURE_NULL_RESULT_ERROR_EXCEPTIONS: + return False + if expected.get("result") is not None: + return False + + error = actual.get("error") or {} + message = str(error.get("message", "")).lower() + return ( + error.get("code") == -32000 + and "must be less than or equal to the current blockchain height" in message + ) + + @pytest.fixture(scope="module") def rpc_context(rpc_endpoint): import sys @@ -240,10 +297,15 @@ def rpc_context(rpc_endpoint): {"to": ADDRS["community"], "value": 1, "gasPrice": w3.eth.gas_price}, KEYS["validator"], ) + block_one = w3.eth.get_block(1) return { "endpoint": rpc_endpoint, "block_hash": Web3.to_hex(receipt.blockHash), "block_number": hex(receipt.blockNumber), + "fixture_block_hashes": { + "0x1": Web3.to_hex(block_one.hash), + }, + "future_block_number": hex(receipt.blockNumber + 1000), "tx_hash": Web3.to_hex(receipt.transactionHash), } @@ -590,6 +652,14 @@ def _classify_schema(spec_name, request, expected, actual): actual.get("error", {}).get("message", "method not implemented"), ) + if _is_local_receipt_future_null_result_error(spec_name, expected, actual): + return RpcSpecResult( + spec_name, + method, + "schema_correct", + "matching future block not found response", + ) + expected_kind = _response_kind(expected) actual_kind = _response_kind(actual) @@ -625,6 +695,9 @@ def _classify_schema(spec_name, request, expected, actual): schema_expected, schema_actual = _normalize_historical_block_schema_exception( spec_name, expected, actual ) + schema_expected, schema_actual = _normalize_local_receipt_schema_exception( + spec_name, schema_expected, schema_actual + ) if not _same_schema(schema_expected, schema_actual): return RpcSpecResult( spec_name, @@ -656,13 +729,55 @@ def _has_non_null_result(expected): return expected.get("result") is not None -def _rewrite_request_for_local_schema_fixture(request, expected, context): - if not _has_non_null_result(expected): - return request, False +def _first_receipt_block_number(expected): + result = expected.get("result") + if not isinstance(result, list) or not result: + return None + first_receipt = result[0] + if not isinstance(first_receipt, dict): + return None + + block_number = first_receipt.get("blockNumber") + return block_number if isinstance(block_number, str) else None + + +def _is_hex_quantity(value): + return isinstance(value, str) and value.startswith("0x") and len(value) < 66 + + +def _rewrite_request_for_local_schema_fixture(request, expected, context): rewritten = deepcopy(request) method = rewritten.get("method") params = rewritten.get("params") or [] + if not params: + return request, False + + if method == "eth_getBlockReceipts": + block_id = params[0] + expected_result = expected.get("result") + + if isinstance(expected_result, list) and expected_result: + if block_id == "latest": + params[0] = context["block_number"] + elif isinstance(block_id, str) and len(block_id) == 66: + block_number = _first_receipt_block_number(expected) + block_hash = context["fixture_block_hashes"].get(block_number) + if block_hash is None: + return request, False + params[0] = block_hash + else: + return request, False + elif expected_result is None and _is_hex_quantity(block_id): + params[0] = context["future_block_number"] + else: + return request, False + + rewritten["params"] = params + return rewritten, True + + if not _has_non_null_result(expected): + return request, False if method in { "eth_getBlockByHash", @@ -709,7 +824,7 @@ def _format_case_context(comments, runtime_rewrite_note, rewritten, extra_note=N if runtime_rewrite_note: context = f"{context} ({runtime_rewrite_note})" if rewritten: - context = f"{context} (request rewritten to local Ethermint fixture hash)" + context = f"{context} (request rewritten to local Ethermint fixture identifier)" if extra_note: context = f"{context} ({extra_note})" return context From 503c1a5241f9e59468454cd9f3f1d211676db468 Mon Sep 17 00:00:00 2001 From: Xinyu Date: Thu, 18 Jun 2026 16:28:07 +0800 Subject: [PATCH 10/32] test: eth_getProof, eth_getLogs --- .../spec/test_rpc_spec_schema.py | 51 +++++++++++++++++-- 1 file changed, 47 insertions(+), 4 deletions(-) diff --git a/tests/integration_tests/spec/test_rpc_spec_schema.py b/tests/integration_tests/spec/test_rpc_spec_schema.py index 65ba56ecad..23136cbf56 100644 --- a/tests/integration_tests/spec/test_rpc_spec_schema.py +++ b/tests/integration_tests/spec/test_rpc_spec_schema.py @@ -39,8 +39,6 @@ } SCHEMA_MISMATCH_WHITELIST = { "response_schema_wrong": { - "eth_getLogs", - "eth_getProof", "eth_getTransactionByBlockHashAndIndex", "eth_getTransactionByBlockNumberAndIndex", "eth_getTransactionByHash", @@ -91,6 +89,13 @@ LOCAL_RECEIPT_FUTURE_NULL_RESULT_ERROR_EXCEPTIONS = { "eth_getBlockReceipts/get-block-receipts-future", } +LOCAL_LOG_SCHEMA_EXCEPTIONS = { + "eth_getLogs/filter-with-blockHash", + "eth_getLogs/filter-with-blockHash-and-topics", +} +LOCAL_PROOF_SCHEMA_EXCEPTIONS = { + "eth_getProof/get-account-proof-blockhash", +} LOCAL_FIXTURE_RECEIPT_ADDRESS_FIELDS = { "contractAddress", "to", @@ -298,12 +303,14 @@ def rpc_context(rpc_endpoint): KEYS["validator"], ) block_one = w3.eth.get_block(1) + block_four = w3.eth.get_block(4) return { "endpoint": rpc_endpoint, "block_hash": Web3.to_hex(receipt.blockHash), "block_number": hex(receipt.blockNumber), "fixture_block_hashes": { "0x1": Web3.to_hex(block_one.hash), + "0x4": Web3.to_hex(block_four.hash), }, "future_block_number": hex(receipt.blockNumber + 1000), "tx_hash": Web3.to_hex(receipt.transactionHash), @@ -742,11 +749,24 @@ def _first_receipt_block_number(expected): return block_number if isinstance(block_number, str) else None +def _first_log_block_number(expected): + result = expected.get("result") + if not isinstance(result, list) or not result: + return None + + first_log = result[0] + if not isinstance(first_log, dict): + return None + + block_number = first_log.get("blockNumber") + return block_number if isinstance(block_number, str) else None + + def _is_hex_quantity(value): return isinstance(value, str) and value.startswith("0x") and len(value) < 66 -def _rewrite_request_for_local_schema_fixture(request, expected, context): +def _rewrite_request_for_local_schema_fixture(spec_name, request, expected, context): rewritten = deepcopy(request) method = rewritten.get("method") params = rewritten.get("params") or [] @@ -776,6 +796,29 @@ def _rewrite_request_for_local_schema_fixture(request, expected, context): rewritten["params"] = params return rewritten, True + if method == "eth_getLogs" and spec_name in LOCAL_LOG_SCHEMA_EXCEPTIONS: + filter_params = params[0] + if not isinstance(filter_params, dict): + return request, False + if not isinstance(filter_params.get("blockHash"), str): + return request, False + + block_number = _first_log_block_number(expected) + block_hash = context["fixture_block_hashes"].get(block_number) + if block_hash is None: + return request, False + + filter_params["blockHash"] = block_hash + rewritten["params"] = params + return rewritten, True + + if method == "eth_getProof" and spec_name in LOCAL_PROOF_SCHEMA_EXCEPTIONS: + if len(params) < 3 or not isinstance(params[2], str) or len(params[2]) != 66: + return request, False + params[2] = context["block_hash"] + rewritten["params"] = params + return rewritten, True + if not _has_non_null_result(expected): return request, False @@ -814,7 +857,7 @@ def _prepare_schema_request(spec_name, request_body, expected_body, rpc_context) spec_name, request ) request, rewritten = _rewrite_request_for_local_schema_fixture( - request, expected, rpc_context + spec_name, request, expected, rpc_context ) return request, expected, runtime_rewrite_note, rewritten From a82508bd0058262d4ff36e569bf2c1a7b8a77021 Mon Sep 17 00:00:00 2001 From: Xinyu Date: Thu, 18 Jun 2026 17:37:14 +0800 Subject: [PATCH 11/32] test: receipt differences --- .../spec/test_rpc_spec_schema.py | 49 +++++++++++++++++-- 1 file changed, 44 insertions(+), 5 deletions(-) diff --git a/tests/integration_tests/spec/test_rpc_spec_schema.py b/tests/integration_tests/spec/test_rpc_spec_schema.py index 23136cbf56..986062c7b7 100644 --- a/tests/integration_tests/spec/test_rpc_spec_schema.py +++ b/tests/integration_tests/spec/test_rpc_spec_schema.py @@ -82,6 +82,10 @@ LOCAL_FIXTURE_TX_FIELDS = { "chainId", } +LOCAL_TRANSACTION_SCHEMA_EXCEPTIONS = { + "eth_getTransactionByBlockHashAndIndex/get-block-n", + "eth_getTransactionByBlockNumberAndIndex/get-block-n", +} LOCAL_RECEIPT_SCHEMA_EXCEPTIONS = { "eth_getBlockReceipts/get-block-receipts-by-hash", "eth_getBlockReceipts/get-block-receipts-latest", @@ -275,6 +279,27 @@ def _normalize_local_receipt_schema_exception(spec_name, expected, actual): return normalized_expected, normalized_actual +def _normalize_local_transaction_schema_exception(spec_name, expected, actual): + if spec_name not in LOCAL_TRANSACTION_SCHEMA_EXCEPTIONS: + return expected, actual + + normalized_expected = deepcopy(expected) + normalized_actual = deepcopy(actual) + expected_result = normalized_expected.get("result") + actual_result = normalized_actual.get("result") + if not isinstance(expected_result, dict) or not isinstance(actual_result, dict): + return normalized_expected, normalized_actual + + # These copied Geth fixtures query historical unprotected transactions whose + # transaction response omits `chainId`. Ethermint currently formats historical + # transaction responses with the latest field set, so ignore that local-only + # field when the request is rewritten to an Ethermint block/transaction. + if "chainId" not in expected_result: + actual_result.pop("chainId", None) + + return normalized_expected, normalized_actual + + def _is_local_receipt_future_null_result_error(spec_name, expected, actual): if spec_name not in LOCAL_RECEIPT_FUTURE_NULL_RESULT_ERROR_EXCEPTIONS: return False @@ -543,7 +568,9 @@ def _markdown_details(self): "Schema differences:", "", "```text", - _format_schema_differences(result.expected, result.actual), + _format_schema_differences( + result.schema_expected, result.schema_actual + ), "```", "", ] @@ -699,12 +726,9 @@ def _classify_schema(spec_name, request, expected, actual): f"expected {expected_kind} response, got {actual_kind}", ) - schema_expected, schema_actual = _normalize_historical_block_schema_exception( + schema_expected, schema_actual = _normalize_schema_exceptions( spec_name, expected, actual ) - schema_expected, schema_actual = _normalize_local_receipt_schema_exception( - spec_name, schema_expected, schema_actual - ) if not _same_schema(schema_expected, schema_actual): return RpcSpecResult( spec_name, @@ -724,10 +748,25 @@ def _classify_schema(spec_name, request, expected, actual): return RpcSpecResult(spec_name, method, "schema_correct", "schema match") +def _normalize_schema_exceptions(spec_name, expected, actual): + schema_expected, schema_actual = _normalize_historical_block_schema_exception( + spec_name, expected, actual + ) + schema_expected, schema_actual = _normalize_local_receipt_schema_exception( + spec_name, schema_expected, schema_actual + ) + return _normalize_local_transaction_schema_exception( + spec_name, schema_expected, schema_actual + ) + + def _attach_details(result, request, expected, actual, comment): result.request = request result.expected = expected result.actual = actual + result.schema_expected, result.schema_actual = _normalize_schema_exceptions( + result.spec_name, expected, actual + ) result.comment = comment return result From 0c68a42663fc5179d23d6fef03c854362c4dc93b Mon Sep 17 00:00:00 2001 From: Xinyu Date: Mon, 22 Jun 2026 18:27:34 +0800 Subject: [PATCH 12/32] fix: tests --- .../spec/test_rpc_spec_schema.py | 635 +++++++++++++++++- 1 file changed, 608 insertions(+), 27 deletions(-) diff --git a/tests/integration_tests/spec/test_rpc_spec_schema.py b/tests/integration_tests/spec/test_rpc_spec_schema.py index 986062c7b7..b05fbb4cb9 100644 --- a/tests/integration_tests/spec/test_rpc_spec_schema.py +++ b/tests/integration_tests/spec/test_rpc_spec_schema.py @@ -3,6 +3,7 @@ from collections import defaultdict from pathlib import Path +from eth_account import Account import pytest from web3 import Web3 @@ -21,7 +22,7 @@ rpc_endpoint, ) -REPORT_PATH = Path(__file__).with_name("rpc_schema_report.md") +REPORT_FILENAME = "rpc_schema_report.md" SCHEMA_CATEGORY_TITLES = { **CATEGORY_TITLES, "schema_correct": "correct implemented by schema", @@ -35,18 +36,18 @@ "eth_config", "eth_getStorageValues", "testing_buildBlockV1", + "txpool_content", "txpool_contentFrom", } +INCOMPLETE_UNIMPLEMENTED_RPC_METHODS = { + # Ethermint exposes this method, but currently returns an incomplete txpool + # shape compared with the execution-apis fixture. Track it with the other + # unimplemented RPC gaps until the full response schema is supported. + "txpool_content", +} SCHEMA_MISMATCH_WHITELIST = { - "response_schema_wrong": { - "eth_getTransactionByBlockHashAndIndex", - "eth_getTransactionByBlockNumberAndIndex", - "eth_getTransactionByHash", - "eth_getTransactionReceipt", - "eth_sendRawTransaction", - "eth_simulateV1", - "txpool_content", - }, + "request_schema_wrong": set(), + "response_schema_wrong": set(), "mixed_wrong": set(), } ETHERMINT_MODERN_BLOCK_FIELD_SCHEMA_EXCEPTIONS = { @@ -79,17 +80,37 @@ "withdrawals", "withdrawalsRoot", } +ETH_SIMULATE_BLOCK_HARDFORK_FIELDS = MODERN_BLOCK_FIELDS +ETH_SIMULATE_TRANSACTION_HARDFORK_FIELDS = { + "accessList", + "authorizationList", + "blobVersionedHashes", + "chainId", + "maxFeePerBlobGas", + "maxFeePerGas", + "maxPriorityFeePerGas", + "yParity", +} +ETH_SIMULATE_TIMESTAMP_HEADROOM = 120 LOCAL_FIXTURE_TX_FIELDS = { "chainId", } LOCAL_TRANSACTION_SCHEMA_EXCEPTIONS = { "eth_getTransactionByBlockHashAndIndex/get-block-n", "eth_getTransactionByBlockNumberAndIndex/get-block-n", + "eth_getTransactionByHash/get-legacy-create", + "eth_getTransactionByHash/get-legacy-input", + "eth_getTransactionByHash/get-legacy-tx", } LOCAL_RECEIPT_SCHEMA_EXCEPTIONS = { "eth_getBlockReceipts/get-block-receipts-by-hash", "eth_getBlockReceipts/get-block-receipts-latest", } +LEGACY_RECEIPT_ROOT_STATUS_SCHEMA_EXCEPTIONS = { + "eth_getTransactionReceipt/get-legacy-contract", + "eth_getTransactionReceipt/get-legacy-input", + "eth_getTransactionReceipt/get-legacy-receipt", +} LOCAL_RECEIPT_FUTURE_NULL_RESULT_ERROR_EXCEPTIONS = { "eth_getBlockReceipts/get-block-receipts-future", } @@ -97,6 +118,9 @@ "eth_getLogs/filter-with-blockHash", "eth_getLogs/filter-with-blockHash-and-topics", } +LOCAL_LOG_FUTURE_BLOCK_RANGE_EXCEPTIONS = { + "eth_getLogs/filter-error-future-block-range", +} LOCAL_PROOF_SCHEMA_EXCEPTIONS = { "eth_getProof/get-account-proof-blockhash", } @@ -113,6 +137,40 @@ "eth_getBlockByNumber/get-block-shanghai-fork", "eth_getBlockByNumber/get-block-cancun-fork", } +TRANSACTION_BY_HASH_LOCAL_TX_KEYS = { + "eth_getTransactionByHash/get-access-list": "access_list", + "eth_getTransactionByHash/get-blob-tx": "blob", + "eth_getTransactionByHash/get-dynamic-fee": "dynamic_fee", + "eth_getTransactionByHash/get-legacy-create": "legacy_create", + "eth_getTransactionByHash/get-legacy-input": "legacy_create", + "eth_getTransactionByHash/get-legacy-tx": "legacy", + "eth_getTransactionByHash/get-setcode-tx": "setcode", +} +TRANSACTION_RECEIPT_LOCAL_TX_KEYS = { + "eth_getTransactionReceipt/get-access-list": "access_list", + "eth_getTransactionReceipt/get-blob-tx": "blob", + "eth_getTransactionReceipt/get-dynamic-fee": "dynamic_fee", + "eth_getTransactionReceipt/get-legacy-contract": "legacy_create", + "eth_getTransactionReceipt/get-legacy-input": "legacy_create", + "eth_getTransactionReceipt/get-legacy-receipt": "legacy", + "eth_getTransactionReceipt/get-setcode-tx": "setcode", +} +SEND_RAW_TRANSACTION_LOCAL_TX_KEYS = { + "eth_sendRawTransaction/send-access-list-transaction": "access_list", + "eth_sendRawTransaction/send-blob-tx": "blob", + "eth_sendRawTransaction/send-dynamic-fee-access-list-transaction": ( + "dynamic_fee_access_list" + ), + "eth_sendRawTransaction/send-dynamic-fee-transaction": "dynamic_fee_create", + "eth_sendRawTransaction/send-legacy-transaction": "legacy", +} +LEGACY_CREATE_BYTECODE = ( + "0x600d380380600d6000396000f360004381526020014681526020014181526020014" + "881526020014481526020013281526020013481526020016000f3" +) +BLOB_VERSIONED_HASH = ( + "0x0100000000000000000000000000000000000000000000000000000000000000" +) def _parse_spec_interactions(spec_name): @@ -269,9 +327,8 @@ def _normalize_local_receipt_schema_exception(spec_name, expected, actual): expected_value = expected_receipt[field] actual_value = actual_receipt[field] - if ( - (expected_value is None and isinstance(actual_value, str)) - or (actual_value is None and isinstance(expected_value, str)) + if (expected_value is None and isinstance(actual_value, str)) or ( + actual_value is None and isinstance(expected_value, str) ): expected_receipt[field] = None actual_receipt[field] = None @@ -279,6 +336,32 @@ def _normalize_local_receipt_schema_exception(spec_name, expected, actual): return normalized_expected, normalized_actual +def _normalize_legacy_receipt_schema_exception(spec_name, expected, actual): + if spec_name not in LEGACY_RECEIPT_ROOT_STATUS_SCHEMA_EXCEPTIONS: + return expected, actual + + normalized_expected = deepcopy(expected) + normalized_actual = deepcopy(actual) + expected_result = normalized_expected.get("result") + actual_result = normalized_actual.get("result") + if not isinstance(expected_result, dict) or not isinstance(actual_result, dict): + return normalized_expected, normalized_actual + + # The copied Geth legacy receipt fixtures use the pre-Byzantium `root` + # field, while local Ethermint receipts expose the modern `status` field. + # Keep the rest of the receipt schema comparison strict. + if ( + "root" in expected_result + and "status" not in expected_result + and "status" in actual_result + and "root" not in actual_result + ): + expected_result.pop("root") + actual_result.pop("status") + + return normalized_expected, normalized_actual + + def _normalize_local_transaction_schema_exception(spec_name, expected, actual): if spec_name not in LOCAL_TRANSACTION_SCHEMA_EXCEPTIONS: return expected, actual @@ -297,6 +380,62 @@ def _normalize_local_transaction_schema_exception(spec_name, expected, actual): if "chainId" not in expected_result: actual_result.pop("chainId", None) + # The copied Geth transaction is contract creation (`to: null`), but the + # local Ethermint transaction at the rewritten block/index can be a normal + # transfer. Keep the comparison focused on RPC schema fields, not tx kind. + expected_to = expected_result.get("to") + actual_to = actual_result.get("to") + if (expected_to is None and isinstance(actual_to, str)) or ( + actual_to is None and isinstance(expected_to, str) + ): + expected_result["to"] = None + actual_result["to"] = None + + return normalized_expected, normalized_actual + + +def _drop_asymmetric_fields(expected, actual, fields): + for field in fields: + if field in expected and field in actual: + continue + expected.pop(field, None) + actual.pop(field, None) + + +def _normalize_eth_simulate_schema_exception(spec_name, expected, actual): + if not spec_name.startswith("eth_simulateV1/"): + return expected, actual + + normalized_expected = deepcopy(expected) + normalized_actual = deepcopy(actual) + expected_result = normalized_expected.get("result") + actual_result = normalized_actual.get("result") + if not isinstance(expected_result, list) or not isinstance(actual_result, list): + return normalized_expected, normalized_actual + + for expected_block, actual_block in zip(expected_result, actual_result): + if not isinstance(expected_block, dict) or not isinstance(actual_block, dict): + continue + + # Ethermint may format simulated blocks/transactions with the latest + # hardfork field set even when the copied Geth fixture was generated for + # an earlier fork. Keep non-hardfork schema comparison strict. + _drop_asymmetric_fields( + expected_block, actual_block, ETH_SIMULATE_BLOCK_HARDFORK_FIELDS + ) + + expected_txs = expected_block.get("transactions") + actual_txs = actual_block.get("transactions") + if not isinstance(expected_txs, list) or not isinstance(actual_txs, list): + continue + + for expected_tx, actual_tx in zip(expected_txs, actual_txs): + if not isinstance(expected_tx, dict) or not isinstance(actual_tx, dict): + continue + _drop_asymmetric_fields( + expected_tx, actual_tx, ETH_SIMULATE_TRANSACTION_HARDFORK_FIELDS + ) + return normalized_expected, normalized_actual @@ -314,23 +453,278 @@ def _is_local_receipt_future_null_result_error(spec_name, expected, actual): ) +def _eip1559_fees(w3): + latest = w3.eth.get_block("latest") + base_fee = int(latest.get("baseFeePerGas") or w3.eth.gas_price) + max_priority_fee = 10000 + max_fee = max(base_fee * 2 + max_priority_fee, int(w3.eth.gas_price) * 2) + return max_fee, max_priority_fee + + +def _tx_hash(receipt): + return Web3.to_hex(receipt.transactionHash) + + +def _assert_successful_receipt(receipt): + assert receipt.status == 1, f"transaction failed: {receipt}" + return receipt + + +def _send_dynamic_fee_transaction(w3, to, key, *, access_list=None): + account = Account.from_key(key) + max_fee, max_priority_fee = _eip1559_fees(w3) + return _assert_successful_receipt( + w3.eth.wait_for_transaction_receipt( + w3.eth.send_raw_transaction( + account.sign_transaction( + { + "chainId": w3.eth.chain_id, + "type": 2, + "to": to, + "value": 1, + "gas": 100000, + "maxFeePerGas": max_fee, + "maxPriorityFeePerGas": max_priority_fee, + "nonce": w3.eth.get_transaction_count(account.address), + "data": "0x1ee8f6de", + "accessList": access_list or [], + } + ).raw_transaction + ), + timeout=30, + ) + ) + + +def _send_blob_transaction(w3, to, key, *, access_list=None): + account = Account.from_key(key) + max_fee, max_priority_fee = _eip1559_fees(w3) + return _assert_successful_receipt( + w3.eth.wait_for_transaction_receipt( + w3.eth.send_raw_transaction( + account.sign_transaction( + { + "chainId": w3.eth.chain_id, + "type": 3, + "to": to, + "value": 1, + "gas": 100000, + "maxFeePerGas": max_fee, + "maxPriorityFeePerGas": max_priority_fee, + "maxFeePerBlobGas": 1, + "blobVersionedHashes": [BLOB_VERSIONED_HASH], + "nonce": w3.eth.get_transaction_count(account.address), + "data": "0x29db6825", + "accessList": access_list or [], + } + ).raw_transaction + ), + timeout=30, + ) + ) + + +def _send_setcode_transaction(w3, sender, delegate): + nonce = w3.eth.get_transaction_count(sender.address) + max_fee, max_priority_fee = _eip1559_fees(w3) + signed_auth = sender.sign_authorization( + { + "chainId": w3.eth.chain_id, + "address": delegate.address, + "nonce": nonce + 1, + } + ) + signed_tx = sender.sign_transaction( + { + "chainId": w3.eth.chain_id, + "type": 4, + "to": sender.address, + "value": 0, + "gas": 100000, + "maxFeePerGas": max_fee, + "maxPriorityFeePerGas": max_priority_fee, + "nonce": nonce, + "accessList": [], + "authorizationList": [signed_auth], + } + ) + return _assert_successful_receipt( + w3.eth.wait_for_transaction_receipt( + w3.eth.send_raw_transaction(signed_tx.raw_transaction), + timeout=30, + ) + ) + + +def _sign_raw_transaction(w3, account, tx): + signed = account.sign_transaction( + { + **tx, + "chainId": w3.eth.chain_id, + "nonce": w3.eth.get_transaction_count(account.address), + } + ) + return Web3.to_hex(signed.raw_transaction) + + +def _build_send_raw_transactions(w3, to, accounts, access_list): + max_fee, max_priority_fee = _eip1559_fees(w3) + return { + "access_list": _sign_raw_transaction( + w3, + accounts["access_list"], + { + "type": 1, + "to": to, + "value": 1, + "gas": 100000, + "gasPrice": w3.eth.gas_price, + "accessList": access_list, + }, + ), + "blob": _sign_raw_transaction( + w3, + accounts["blob"], + { + "type": 3, + "to": to, + "value": 1, + "gas": 100000, + "maxFeePerGas": max_fee, + "maxPriorityFeePerGas": max_priority_fee, + "maxFeePerBlobGas": 1, + "blobVersionedHashes": [BLOB_VERSIONED_HASH], + "data": "0x29db6825", + "accessList": access_list, + }, + ), + "dynamic_fee_access_list": _sign_raw_transaction( + w3, + accounts["dynamic_fee_access_list"], + { + "type": 2, + "to": to, + "value": 1, + "gas": 100000, + "maxFeePerGas": max_fee, + "maxPriorityFeePerGas": max_priority_fee, + "data": "0x1ee8f6de", + "accessList": access_list, + }, + ), + "dynamic_fee_create": _sign_raw_transaction( + w3, + accounts["dynamic_fee_create"], + { + "type": 2, + "value": 0, + "gas": 100000, + "maxFeePerGas": max_fee, + "maxPriorityFeePerGas": max_priority_fee, + "data": LEGACY_CREATE_BYTECODE, + }, + ), + "legacy": _sign_raw_transaction( + w3, + accounts["legacy"], + { + "to": to, + "value": 1, + "gas": 100000, + "gasPrice": w3.eth.gas_price, + }, + ), + } + + @pytest.fixture(scope="module") -def rpc_context(rpc_endpoint): +def rpc_context(rpc_endpoint, ethermint): import sys sys.path.append(str(Path(__file__).parents[1])) - from utils import ADDRS, KEYS, send_transaction + from utils import ADDRS, KEYS, derive_new_account, fund_acc, send_transaction w3 = Web3(Web3.HTTPProvider(rpc_endpoint)) - receipt = send_transaction( - w3, - {"to": ADDRS["community"], "value": 1, "gasPrice": w3.eth.gas_price}, - KEYS["validator"], + access_list = [ + { + "address": ADDRS["community"], + "storageKeys": [ + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + } + ] + legacy_receipt = _assert_successful_receipt( + send_transaction( + w3, + {"to": ADDRS["community"], "value": 1, "gasPrice": w3.eth.gas_price}, + KEYS["validator"], + ) ) + legacy_create_receipt = _assert_successful_receipt( + send_transaction( + w3, + { + "value": 0, + "gas": 100000, + "gasPrice": w3.eth.gas_price, + "data": LEGACY_CREATE_BYTECODE, + }, + KEYS["validator"], + ) + ) + access_list_receipt = _assert_successful_receipt( + send_transaction( + w3, + { + "to": ADDRS["community"], + "value": 1, + "gas": 100000, + "gasPrice": w3.eth.gas_price, + "accessList": access_list, + }, + KEYS["validator"], + ) + ) + dynamic_fee_receipt = _send_dynamic_fee_transaction( + w3, ADDRS["community"], KEYS["validator"], access_list=access_list + ) + blob_receipt = _send_blob_transaction( + w3, ADDRS["community"], KEYS["validator"], access_list=access_list + ) + + setcode_sender = derive_new_account(n=7702) + setcode_delegate = derive_new_account(n=7703) + fund_acc(w3, setcode_sender) + setcode_receipt = _send_setcode_transaction(w3, setcode_sender, setcode_delegate) + + send_raw_accounts = { + "access_list": derive_new_account(n=7800), + "blob": derive_new_account(n=7801), + "dynamic_fee_access_list": derive_new_account(n=7802), + "dynamic_fee_create": derive_new_account(n=7803), + "legacy": derive_new_account(n=7804), + } + for account in send_raw_accounts.values(): + fund_acc(w3, account) + send_raw_txs = _build_send_raw_transactions( + w3, ADDRS["community"], send_raw_accounts, access_list + ) + + receipt = legacy_receipt + tx_hashes = { + "access_list": _tx_hash(access_list_receipt), + "blob": _tx_hash(blob_receipt), + "dynamic_fee": _tx_hash(dynamic_fee_receipt), + "legacy": _tx_hash(legacy_receipt), + "legacy_create": _tx_hash(legacy_create_receipt), + "setcode": _tx_hash(setcode_receipt), + } block_one = w3.eth.get_block(1) block_four = w3.eth.get_block(4) return { + "w3": w3, "endpoint": rpc_endpoint, + "report_path": ethermint.base_dir.parent / REPORT_FILENAME, "block_hash": Web3.to_hex(receipt.blockHash), "block_number": hex(receipt.blockNumber), "fixture_block_hashes": { @@ -338,7 +732,9 @@ def rpc_context(rpc_endpoint): "0x4": Web3.to_hex(block_four.hash), }, "future_block_number": hex(receipt.blockNumber + 1000), - "tx_hash": Web3.to_hex(receipt.transactionHash), + "tx_hash": _tx_hash(receipt), + "tx_hashes": tx_hashes, + "send_raw_txs": send_raw_txs, } @@ -528,12 +924,16 @@ def _markdown_expected_failure_whitelist(self): "| --- | --- |", ] ) - for category in ["response_schema_wrong", "mixed_wrong"]: + for category in [ + "request_schema_wrong", + "response_schema_wrong", + "mixed_wrong", + ]: methods = sorted(SCHEMA_MISMATCH_WHITELIST[category]) lines.append( "| {} | {} |".format( SCHEMA_CATEGORY_TITLES[category], - ", ".join(f"`{method}`" for method in methods), + ", ".join(f"`{method}`" for method in methods) or "-", ) ) return lines @@ -719,6 +1119,14 @@ def _classify_schema(spec_name, request, expected, actual): ) if expected_kind != actual_kind: + if method in INCOMPLETE_UNIMPLEMENTED_RPC_METHODS: + return RpcSpecResult( + spec_name, + method, + "not_implemented", + f"incomplete implementation: expected {expected_kind} response, " + f"got {actual_kind}", + ) return RpcSpecResult( spec_name, method, @@ -730,11 +1138,21 @@ def _classify_schema(spec_name, request, expected, actual): spec_name, expected, actual ) if not _same_schema(schema_expected, schema_actual): + mismatch = ( + _first_schema_mismatch(schema_expected, schema_actual) or "schema differs" + ) + if method in INCOMPLETE_UNIMPLEMENTED_RPC_METHODS: + return RpcSpecResult( + spec_name, + method, + "not_implemented", + f"incomplete implementation: {mismatch}", + ) return RpcSpecResult( spec_name, method, "response_schema_wrong", - _first_schema_mismatch(schema_expected, schema_actual) or "schema differs", + mismatch, ) if actual_kind == "error" and _is_request_schema_error(actual): @@ -755,7 +1173,13 @@ def _normalize_schema_exceptions(spec_name, expected, actual): schema_expected, schema_actual = _normalize_local_receipt_schema_exception( spec_name, schema_expected, schema_actual ) - return _normalize_local_transaction_schema_exception( + schema_expected, schema_actual = _normalize_legacy_receipt_schema_exception( + spec_name, schema_expected, schema_actual + ) + schema_expected, schema_actual = _normalize_local_transaction_schema_exception( + spec_name, schema_expected, schema_actual + ) + return _normalize_eth_simulate_schema_exception( spec_name, schema_expected, schema_actual ) @@ -805,6 +1229,115 @@ def _is_hex_quantity(value): return isinstance(value, str) and value.startswith("0x") and len(value) < 66 +def _hex_quantity_to_int(value): + if not _is_hex_quantity(value): + return None + try: + return int(value, 16) + except ValueError: + return None + + +def _eth_simulate_block_state_calls(request): + params = request.get("params") + if not isinstance(params, list) or not params: + return None + + options = params[0] + if not isinstance(options, dict): + return None + + block_state_calls = options.get("blockStateCalls") + return block_state_calls if isinstance(block_state_calls, list) else None + + +def _block_override_values(block_state_calls, key): + values = [] + for block_state_call in block_state_calls: + if not isinstance(block_state_call, dict): + continue + + block_overrides = block_state_call.get("blockOverrides") + if not isinstance(block_overrides, dict): + continue + + value = _hex_quantity_to_int(block_overrides.get(key)) + if value is not None: + values.append(value) + return values + + +def _shift_block_override_values(block_state_calls, key, base_value): + values = _block_override_values(block_state_calls, key) + if not values: + return False + + first_value = min(values) + for block_state_call in block_state_calls: + if not isinstance(block_state_call, dict): + continue + + block_overrides = block_state_call.get("blockOverrides") + if not isinstance(block_overrides, dict): + continue + + value = _hex_quantity_to_int(block_overrides.get(key)) + if value is not None: + block_overrides[key] = hex(base_value + value - first_value) + + return True + + +def _first_eth_simulate_result_quantity(expected, key): + result = expected.get("result") + if not isinstance(result, list) or not result: + return None + + first_block = result[0] + if not isinstance(first_block, dict): + return None + + return _hex_quantity_to_int(first_block.get(key)) + + +def _rewrite_eth_simulate_request_for_local_schema_fixture(request, expected, context): + if "result" not in expected or expected.get("result") is None: + return request, False + + block_state_calls = _eth_simulate_block_state_calls(request) + if block_state_calls is None: + return request, False + + number_values = _block_override_values(block_state_calls, "number") + time_values = _block_override_values(block_state_calls, "time") + if not number_values and not time_values: + return request, False + + rewritten = deepcopy(request) + rewritten_block_state_calls = _eth_simulate_block_state_calls(rewritten) + latest_block = context["w3"].eth.get_block("latest") + rewritten_any = False + + if number_values: + first_result_number = _first_eth_simulate_result_quantity(expected, "number") + leading_block_count = 0 + if first_result_number is not None: + leading_block_count = max(0, min(number_values) - first_result_number) + number_base = int(latest_block.number) + 1 + leading_block_count + rewritten_any |= _shift_block_override_values( + rewritten_block_state_calls, "number", number_base + ) + + if time_values: + next_safe_time = int(latest_block.timestamp) + ETH_SIMULATE_TIMESTAMP_HEADROOM + time_base = max(min(time_values), next_safe_time) + rewritten_any |= _shift_block_override_values( + rewritten_block_state_calls, "time", time_base + ) + + return rewritten, rewritten_any + + def _rewrite_request_for_local_schema_fixture(spec_name, request, expected, context): rewritten = deepcopy(request) method = rewritten.get("method") @@ -812,6 +1345,11 @@ def _rewrite_request_for_local_schema_fixture(spec_name, request, expected, cont if not params: return request, False + if method == "eth_simulateV1": + return _rewrite_eth_simulate_request_for_local_schema_fixture( + request, expected, context + ) + if method == "eth_getBlockReceipts": block_id = params[0] expected_result = expected.get("result") @@ -851,6 +1389,16 @@ def _rewrite_request_for_local_schema_fixture(spec_name, request, expected, cont rewritten["params"] = params return rewritten, True + if method == "eth_getLogs" and spec_name in LOCAL_LOG_FUTURE_BLOCK_RANGE_EXCEPTIONS: + filter_params = params[0] + if not isinstance(filter_params, dict): + return request, False + + filter_params["fromBlock"] = context["block_number"] + filter_params["toBlock"] = context["future_block_number"] + rewritten["params"] = params + return rewritten, True + if method == "eth_getProof" and spec_name in LOCAL_PROOF_SCHEMA_EXCEPTIONS: if len(params) < 3 or not isinstance(params[2], str) or len(params[2]) != 66: return request, False @@ -869,6 +1417,23 @@ def _rewrite_request_for_local_schema_fixture(spec_name, request, expected, cont params[0] = context["block_hash"] elif method == "eth_getTransactionByBlockNumberAndIndex": params[0] = context["block_number"] + elif ( + method == "eth_getTransactionByHash" + and spec_name in TRANSACTION_BY_HASH_LOCAL_TX_KEYS + ): + params[0] = context["tx_hashes"][TRANSACTION_BY_HASH_LOCAL_TX_KEYS[spec_name]] + elif ( + method == "eth_getTransactionReceipt" + and spec_name in TRANSACTION_RECEIPT_LOCAL_TX_KEYS + ): + params[0] = context["tx_hashes"][TRANSACTION_RECEIPT_LOCAL_TX_KEYS[spec_name]] + elif ( + method == "eth_sendRawTransaction" + and spec_name in SEND_RAW_TRANSACTION_LOCAL_TX_KEYS + ): + params[0] = context["send_raw_txs"][ + SEND_RAW_TRANSACTION_LOCAL_TX_KEYS[spec_name] + ] elif method in {"eth_getTransactionByHash", "eth_getTransactionReceipt"}: params[0] = context["tx_hash"] elif ( @@ -963,6 +1528,14 @@ def _format_method_set(methods): return ", ".join(f"`{method}`" for method in sorted(methods)) or "-" +def _schema_mismatches(summary): + mismatches = summary.request_schema_wrong + summary.response_schema_wrong + return [ + f"{result.spec_name} ({result.method}): {result.reason}" + for result in mismatches + ] + + def _expected_failure_drift(summary): verdicts = summary.method_verdicts() expected_by_verdict = { @@ -1019,16 +1592,24 @@ def test_ethermint_rpc_matches_execution_api_schema(rpc_context): summary.add(_run_spec_case(rpc_context, spec_name)) report = summary.report() - REPORT_PATH.write_text(report) + report_path = rpc_context["report_path"] + report_path.write_text(report) print("") print(summary.format()) print("") - print(f"wrote schema report: {REPORT_PATH}") + print(f"wrote schema report: {report_path}") + + schema_mismatches = _schema_mismatches(summary) + assert not schema_mismatches, ( + "RPC schema mismatches detected:\n" + + "\n".join(f"- {line}" for line in schema_mismatches) + + f"\nSee detailed report: {report_path}" + ) drift = _expected_failure_drift(summary) assert not drift, ( "RPC schema expected-failure whitelist drifted:\n" + "\n".join(f"- {line}" for line in drift) - + f"\nSee detailed report: {REPORT_PATH}" + + f"\nSee detailed report: {report_path}" ) From 7e892a593c94c088a6192f1c90c392c584eccdc2 Mon Sep 17 00:00:00 2001 From: Xinyu Date: Tue, 23 Jun 2026 11:11:57 +0800 Subject: [PATCH 13/32] fix: review --- tests/integration_tests/spec/conftest.py | 20 +++++++- tests/integration_tests/spec/test_rpc_spec.py | 17 ------- .../spec/test_rpc_spec_schema.py | 46 ++++++++++++------- tests/integration_tests/spec/test_simulate.py | 1 - 4 files changed, 48 insertions(+), 36 deletions(-) diff --git a/tests/integration_tests/spec/conftest.py b/tests/integration_tests/spec/conftest.py index 855bdc9cb2..4e3cb6973b 100644 --- a/tests/integration_tests/spec/conftest.py +++ b/tests/integration_tests/spec/conftest.py @@ -1,7 +1,8 @@ import os -import signal import shutil +import signal import subprocess +import time from pathlib import Path import pytest @@ -180,3 +181,20 @@ def ethermint(tmp_path_factory): finally: os.killpg(os.getpgid(proc.pid), signal.SIGTERM) proc.wait() + + +@pytest.fixture(scope="module") +def rpc_endpoint(ethermint): + """Wait for the chain to reach the highest block used by the copied specs.""" + w3 = ethermint.w3 + for _ in range(480): + try: + if w3.eth.block_number >= 45: + break + except Exception: + # The RPC endpoint can reject early requests while the node starts. + pass + time.sleep(0.5) + else: + raise TimeoutError("ethermint did not reach block 45 within timeout") + return ethermint.w3_http_endpoint diff --git a/tests/integration_tests/spec/test_rpc_spec.py b/tests/integration_tests/spec/test_rpc_spec.py index a277f082c8..40eac28293 100644 --- a/tests/integration_tests/spec/test_rpc_spec.py +++ b/tests/integration_tests/spec/test_rpc_spec.py @@ -1,5 +1,4 @@ import json -import time import urllib.error import urllib.request from collections import defaultdict @@ -379,22 +378,6 @@ def _classify(spec_name, request, expected, actual): ) -@pytest.fixture(scope="module") -def rpc_endpoint(ethermint): - """Wait for the chain to reach the highest block used by the copied specs.""" - w3 = ethermint.w3 - for _ in range(480): - try: - if w3.eth.block_number >= 45: - break - except Exception: - pass - time.sleep(0.5) - else: - raise TimeoutError("ethermint did not reach block 45 within timeout") - return ethermint.w3_http_endpoint - - @pytest.fixture(scope="module") def rpc_spec_summary(): summary = RpcSpecSummary() diff --git a/tests/integration_tests/spec/test_rpc_spec_schema.py b/tests/integration_tests/spec/test_rpc_spec_schema.py index b05fbb4cb9..228d1a1ac8 100644 --- a/tests/integration_tests/spec/test_rpc_spec_schema.py +++ b/tests/integration_tests/spec/test_rpc_spec_schema.py @@ -1,26 +1,24 @@ import json -from copy import deepcopy from collections import defaultdict +from copy import deepcopy from pathlib import Path -from eth_account import Account import pytest -from web3 import Web3 - +from eth_account import Account from test_rpc_spec import ( - SPEC_FILES, CATEGORY_TITLES, + SPEC_FILES, RpcSpecResult, _first_schema_mismatch, _is_not_implemented, _is_request_schema_error, _markdown_json, - _rewrite_request_for_ethermint_runtime_fixture, _response_kind, + _rewrite_request_for_ethermint_runtime_fixture, _same_schema, _send_rpc, - rpc_endpoint, ) +from web3 import Web3 REPORT_FILENAME = "rpc_schema_report.md" SCHEMA_CATEGORY_TITLES = { @@ -782,16 +780,25 @@ def report(self): "", "Generated by `spec/test_rpc_spec_schema.py`.", "", - "This report compares Ethermint JSON-RPC responses with the copied " - "execution-apis `.io` fixtures by schema only. Values are ignored, " - "but response kind, object keys, and JSON value types must match.", + " ".join( + [ + "This report compares Ethermint JSON-RPC responses with the", + "copied execution-apis `.io` fixtures by schema only. Values", + "are ignored, but response kind, object keys, and JSON value", + "types must match.", + ] + ), "", "## Excluded Cases", "", - "These fork-specific block-number fixtures are skipped because " - "Ethermint currently returns Prague-era block fields for historical " - "blocks, while Geth formats each block response according to the " - "fork active at the queried block.", + " ".join( + [ + "These fork-specific block-number fixtures are skipped", + "because Ethermint currently returns Prague-era block fields", + "for historical blocks, while Geth formats each block", + "response according to the fork active at the queried block.", + ] + ), "", ] lines.extend( @@ -907,9 +914,14 @@ def _markdown_null_result_summary(self): def _markdown_expected_failure_whitelist(self): lines = [ - "These method-level lists document known gaps that are currently " - "excluded from the schema test failure condition. Reduce these lists " - "as methods are implemented or response schemas are fixed.", + " ".join( + [ + "These method-level lists document known gaps that are", + "currently excluded from the schema test failure condition.", + "Reduce these lists as methods are implemented or response", + "schemas are fixed.", + ] + ), "", "### Unimplemented RPC Methods", "", diff --git a/tests/integration_tests/spec/test_simulate.py b/tests/integration_tests/spec/test_simulate.py index 34efeacd9e..d0abc3ce52 100644 --- a/tests/integration_tests/spec/test_simulate.py +++ b/tests/integration_tests/spec/test_simulate.py @@ -4,7 +4,6 @@ import urllib.request import pytest - from test_rpc_spec import _rewrite_request_for_ethermint_runtime_fixture SPEC_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "eth_simulateV1") From 2084e0cb9d1cc785d09997e7e18c6acafbea88ae Mon Sep 17 00:00:00 2001 From: Xinyu Date: Wed, 24 Jun 2026 11:17:05 +0800 Subject: [PATCH 14/32] test: --- eth-rpc-check.md | 525 ------------------ tests/integration_tests/spec/conftest.py | 7 +- .../spec/test_rpc_spec_schema.py | 54 +- 3 files changed, 26 insertions(+), 560 deletions(-) delete mode 100644 eth-rpc-check.md diff --git a/eth-rpc-check.md b/eth-rpc-check.md deleted file mode 100644 index b7cf3f5282..0000000000 --- a/eth-rpc-check.md +++ /dev/null @@ -1,525 +0,0 @@ -# Ethermint JSON-RPC Methods vs Execution-APIs Spec - -Spec source: `~/Github/execution-apis/src/` - -Legend: ✅ in spec | ❌ missing from spec | ➕ extension (not in spec) - ---- - -## `eth_*` — [rpc/namespaces/ethereum/eth/api.go](rpc/namespaces/ethereum/eth/api.go) - -| JSON-RPC Method | Go Method | Line | Spec File | Status | -| --- | --- | --- | --- | --- | -| `eth_blockNumber` | `BlockNumber` | [160](rpc/namespaces/ethereum/eth/api.go#L160) | eth/client.yaml | ✅ | -| `eth_chainId` | `ChainId` | [364](rpc/namespaces/ethereum/eth/api.go#L364) | eth/client.yaml | ✅ | -| `eth_syncing` | `Syncing` | [404](rpc/namespaces/ethereum/eth/api.go#L404) | eth/client.yaml | ✅ | -| `eth_coinbase` | `Coinbase` | [410](rpc/namespaces/ethereum/eth/api.go#L410) | eth/client.yaml | ✅ | -| `eth_accounts` | `Accounts` | [255](rpc/namespaces/ethereum/eth/api.go#L255) | eth/client.yaml | ✅ | -| `eth_getBlockByHash` | `GetBlockByHash` | [172](rpc/namespaces/ethereum/eth/api.go#L172) | eth/block.yaml | ✅ | -| `eth_getBlockByNumber` | `GetBlockByNumber` | [166](rpc/namespaces/ethereum/eth/api.go#L166) | eth/block.yaml | ✅ | -| `eth_getBlockReceipts` | `GetBlockReceipts` | [229](rpc/namespaces/ethereum/eth/api.go#L229) | eth/block.yaml | ✅ | -| `eth_getBlockTransactionCountByHash` | `GetBlockTransactionCountByHash` | [205](rpc/namespaces/ethereum/eth/api.go#L205) | eth/block.yaml | ✅ | -| `eth_getBlockTransactionCountByNumber` | `GetBlockTransactionCountByNumber` | [211](rpc/namespaces/ethereum/eth/api.go#L211) | eth/block.yaml | ✅ | -| `eth_getTransactionByHash` | `GetTransactionByHash` | [182](rpc/namespaces/ethereum/eth/api.go#L182) | eth/transaction.yaml | ✅ | -| `eth_getTransactionByBlockHashAndIndex` | `GetTransactionByBlockHashAndIndex` | [217](rpc/namespaces/ethereum/eth/api.go#L217) | eth/transaction.yaml | ✅ | -| `eth_getTransactionByBlockNumberAndIndex` | `GetTransactionByBlockNumberAndIndex` | [223](rpc/namespaces/ethereum/eth/api.go#L223) | eth/transaction.yaml | ✅ | -| `eth_getTransactionReceipt` | `GetTransactionReceipt` | [198](rpc/namespaces/ethereum/eth/api.go#L198) | eth/transaction.yaml | ✅ | -| `eth_getBalance` | `GetBalance` | [261](rpc/namespaces/ethereum/eth/api.go#L261) | eth/state.yaml | ✅ | -| `eth_getCode` | `GetCode` | [273](rpc/namespaces/ethereum/eth/api.go#L273) | eth/state.yaml | ✅ | -| `eth_getStorageAt` | `GetStorageAt` | [267](rpc/namespaces/ethereum/eth/api.go#L267) | eth/state.yaml | ✅ | -| `eth_getTransactionCount` | `GetTransactionCount` | [188](rpc/namespaces/ethereum/eth/api.go#L188) | eth/state.yaml | ✅ | -| `eth_getProof` | `GetProof` | [279](rpc/namespaces/ethereum/eth/api.go#L279) | eth/state.yaml | ✅ | -| `eth_call` | `Call` | [292](rpc/namespaces/ethereum/eth/api.go#L292) | eth/execute.yaml | ✅ | -| `eth_estimateGas` | `EstimateGas` | [332](rpc/namespaces/ethereum/eth/api.go#L332) | eth/execute.yaml | ✅ | -| `eth_createAccessList` | `CreateAccessList` | [560](rpc/namespaces/ethereum/eth/api.go#L560) | eth/execute.yaml | ✅ | -| `eth_simulateV1` | `SimulateV1` | [509](rpc/namespaces/ethereum/eth/api.go#L509) | eth/execute.yaml | ✅ | -| `eth_gasPrice` | `GasPrice` | [326](rpc/namespaces/ethereum/eth/api.go#L326) | eth/fee_market.yaml | ✅ | -| `eth_maxPriorityFeePerGas` | `MaxPriorityFeePerGas` | [350](rpc/namespaces/ethereum/eth/api.go#L350) | eth/fee_market.yaml | ✅ | -| `eth_feeHistory` | `FeeHistory` | [341](rpc/namespaces/ethereum/eth/api.go#L341) | eth/fee_market.yaml | ✅ | -| `eth_sendRawTransaction` | `SendRawTransaction` | [239](rpc/namespaces/ethereum/eth/api.go#L239) | eth/submit.yaml | ✅ | -| `eth_sendTransaction` | `SendTransaction` | [245](rpc/namespaces/ethereum/eth/api.go#L245) | eth/submit.yaml | ✅ | -| `eth_sign` | `Sign` | [422](rpc/namespaces/ethereum/eth/api.go#L422) | eth/sign.yaml | ✅ | -| `eth_protocolVersion` | `ProtocolVersion` | [320](rpc/namespaces/ethereum/eth/api.go#L320) | — | ➕ extension | -| `eth_getUncleByBlockHashAndIndex` | `GetUncleByBlockHashAndIndex` | [374](rpc/namespaces/ethereum/eth/api.go#L374) | — | ➕ extension | -| `eth_getUncleByBlockNumberAndIndex` | `GetUncleByBlockNumberAndIndex` | [379](rpc/namespaces/ethereum/eth/api.go#L379) | — | ➕ extension | -| `eth_getUncleCountByBlockHash` | `GetUncleCountByBlockHash` | [384](rpc/namespaces/ethereum/eth/api.go#L384) | — | ➕ extension | -| `eth_getUncleCountByBlockNumber` | `GetUncleCountByBlockNumber` | [389](rpc/namespaces/ethereum/eth/api.go#L389) | — | ➕ extension | -| `eth_getTransactionLogs` | `GetTransactionLogs` | [428](rpc/namespaces/ethereum/eth/api.go#L428) | — | ➕ extension | -| `eth_signTypedData` | `SignTypedData` | [468](rpc/namespaces/ethereum/eth/api.go#L468) | — | ➕ extension | -| `eth_fillTransaction` | `FillTransaction` | [476](rpc/namespaces/ethereum/eth/api.go#L476) | — | ➕ extension | -| `eth_resend` | `Resend` | [499](rpc/namespaces/ethereum/eth/api.go#L499) | — | ➕ extension | -| `eth_getPendingTransactions` | `GetPendingTransactions` | [522](rpc/namespaces/ethereum/eth/api.go#L522) | — | ➕ extension | - -## `eth_*` filters — [rpc/namespaces/ethereum/eth/filters/api.go](rpc/namespaces/ethereum/eth/filters/api.go) - -| JSON-RPC Method | Go Method | Line | Spec File | Status | -| --- | --- | --- | --- | --- | -| `eth_newPendingTransactionFilter` | `NewPendingTransactionFilter` | [136](rpc/namespaces/ethereum/eth/filters/api.go#L136) | eth/filter.yaml | ✅ | -| `eth_newBlockFilter` | `NewBlockFilter` | [159](rpc/namespaces/ethereum/eth/filters/api.go#L159) | eth/filter.yaml | ✅ | -| `eth_newFilter` | `NewFilter` | [191](rpc/namespaces/ethereum/eth/filters/api.go#L191) | eth/filter.yaml | ✅ | -| `eth_getLogs` | `GetLogs` | [220](rpc/namespaces/ethereum/eth/filters/api.go#L220) | eth/filter.yaml | ✅ | -| `eth_uninstallFilter` | `UninstallFilter` | [251](rpc/namespaces/ethereum/eth/filters/api.go#L251) | eth/filter.yaml | ✅ | -| `eth_getFilterLogs` | `GetFilterLogs` | [266](rpc/namespaces/ethereum/eth/filters/api.go#L266) | eth/filter.yaml | ✅ | -| `eth_getFilterChanges` | `GetFilterChanges` | [328](rpc/namespaces/ethereum/eth/filters/api.go#L328) | eth/filter.yaml | ✅ | - -## `debug_*` — [rpc/namespaces/ethereum/debug/api.go](rpc/namespaces/ethereum/debug/api.go) - -The spec (`debug/getters.yaml`) defines 6 raw-data getters. Ethermint instead implements go-ethereum-style tracing and profiling — zero overlap. - -| JSON-RPC Method | Go Method | Line | Spec File | Status | -| --- | --- | --- | --- | --- | -| `debug_traceTransaction` | `TraceTransaction` | [78](rpc/namespaces/ethereum/debug/api.go#L78) | — | ➕ extension | -| `debug_traceBlockByNumber` | `TraceBlockByNumber` | [85](rpc/namespaces/ethereum/debug/api.go#L85) | — | ➕ extension | -| `debug_traceBlockByHash` | `TraceBlockByHash` | [102](rpc/namespaces/ethereum/debug/api.go#L102) | — | ➕ extension | -| `debug_traceCall` | `TraceCall` | [121](rpc/namespaces/ethereum/debug/api.go#L121) | — | ➕ extension | -| `debug_blockProfile` | `BlockProfile` | [140](rpc/namespaces/ethereum/debug/api.go#L140) | — | ➕ extension | -| `debug_cpuProfile` | `CpuProfile` | [155](rpc/namespaces/ethereum/debug/api.go#L155) | — | ➕ extension | -| `debug_gcStats` | `GcStats` | [169](rpc/namespaces/ethereum/debug/api.go#L169) | — | ➕ extension | -| `debug_goTrace` | `GoTrace` | [178](rpc/namespaces/ethereum/debug/api.go#L178) | — | ➕ extension | -| `debug_memStats` | `MemStats` | [192](rpc/namespaces/ethereum/debug/api.go#L192) | — | ➕ extension | -| `debug_setBlockProfileRate` | `SetBlockProfileRate` | [201](rpc/namespaces/ethereum/debug/api.go#L201) | — | ➕ extension | -| `debug_stacks` | `Stacks` | [207](rpc/namespaces/ethereum/debug/api.go#L207) | — | ➕ extension | -| `debug_startCPUProfile` | `StartCPUProfile` | [218](rpc/namespaces/ethereum/debug/api.go#L218) | — | ➕ extension | -| `debug_stopCPUProfile` | `StopCPUProfile` | [258](rpc/namespaces/ethereum/debug/api.go#L258) | — | ➕ extension | -| `debug_writeBlockProfile` | `WriteBlockProfile` | [284](rpc/namespaces/ethereum/debug/api.go#L284) | — | ➕ extension | -| `debug_writeMemProfile` | `WriteMemProfile` | [292](rpc/namespaces/ethereum/debug/api.go#L292) | — | ➕ extension | -| `debug_mutexProfile` | `MutexProfile` | [300](rpc/namespaces/ethereum/debug/api.go#L300) | — | ➕ extension | -| `debug_setMutexProfileFraction` | `SetMutexProfileFraction` | [313](rpc/namespaces/ethereum/debug/api.go#L313) | — | ➕ extension | -| `debug_writeMutexProfile` | `WriteMutexProfile` | [319](rpc/namespaces/ethereum/debug/api.go#L319) | — | ➕ extension | -| `debug_freeOSMemory` | `FreeOSMemory` | [325](rpc/namespaces/ethereum/debug/api.go#L325) | — | ➕ extension | -| `debug_setGCPercent` | `SetGCPercent` | [332](rpc/namespaces/ethereum/debug/api.go#L332) | — | ➕ extension | -| `debug_getHeaderRlp` | `GetHeaderRlp` | [338](rpc/namespaces/ethereum/debug/api.go#L338) | — | ➕ extension | -| `debug_getBlockRlp` | `GetBlockRlp` | [352](rpc/namespaces/ethereum/debug/api.go#L352) | — | ➕ extension | -| `debug_printBlock` | `PrintBlock` | [366](rpc/namespaces/ethereum/debug/api.go#L366) | — | ➕ extension | -| `debug_intermediateRoots` | `IntermediateRoots` | [380](rpc/namespaces/ethereum/debug/api.go#L380) | — | ➕ extension | -| `debug_startGoTrace` | `StartGoTrace` | [32](rpc/namespaces/ethereum/debug/trace.go#L32) | — | ➕ extension | -| `debug_stopGoTrace` | `StopGoTrace` | [97](rpc/namespaces/ethereum/debug/trace.go#L97) | — | ➕ extension | - -## `personal_*` — [rpc/namespaces/ethereum/personal/api.go](rpc/namespaces/ethereum/personal/api.go) - -Not part of execution-apis spec (deprecated go-ethereum namespace). - -| JSON-RPC Method | Go Method | Line | Status | -| --- | --- | --- | --- | -| `personal_importRawKey` | `ImportRawKey` | [74](rpc/namespaces/ethereum/personal/api.go#L74) | ➕ extension | -| `personal_listAccounts` | `ListAccounts` | [80](rpc/namespaces/ethereum/personal/api.go#L80) | ➕ extension | -| `personal_lockAccount` | `LockAccount` | [87](rpc/namespaces/ethereum/personal/api.go#L87) | ➕ extension | -| `personal_newAccount` | `NewAccount` | [95](rpc/namespaces/ethereum/personal/api.go#L95) | ➕ extension | -| `personal_unlockAccount` | `UnlockAccount` | [122](rpc/namespaces/ethereum/personal/api.go#L122) | ➕ extension | -| `personal_sendTransaction` | `SendTransaction` | [131](rpc/namespaces/ethereum/personal/api.go#L131) | ➕ extension | -| `personal_sign` | `Sign` | [145](rpc/namespaces/ethereum/personal/api.go#L145) | ➕ extension | -| `personal_ecRecover` | `EcRecover` | [160](rpc/namespaces/ethereum/personal/api.go#L160) | ➕ extension | -| `personal_unpair` | `Unpair` | [182](rpc/namespaces/ethereum/personal/api.go#L182) | ➕ extension | -| `personal_initializeWallet` | `InitializeWallet` | [190](rpc/namespaces/ethereum/personal/api.go#L190) | ➕ extension | -| `personal_listWallets` | `ListWallets` | [207](rpc/namespaces/ethereum/personal/api.go#L207) | ➕ extension | - -## `net_*` — [rpc/namespaces/ethereum/net/api.go](rpc/namespaces/ethereum/net/api.go) - -| JSON-RPC Method | Go Method | Line | Spec File | Status | -| --- | --- | --- | --- | --- | -| `net_version` | `Version` | [48](rpc/namespaces/ethereum/net/api.go#L48) | eth/client.yaml | ✅ | -| `net_listening` | `Listening` | [53](rpc/namespaces/ethereum/net/api.go#L53) | — | ➕ extension | -| `net_peerCount` | `PeerCount` | [63](rpc/namespaces/ethereum/net/api.go#L63) | — | ➕ extension | - -## `web3_*` — [rpc/namespaces/ethereum/web3/api.go](rpc/namespaces/ethereum/web3/api.go) - -Not part of execution-apis spec. - -| JSON-RPC Method | Go Method | Line | Status | -| --- | --- | --- | --- | -| `web3_clientVersion` | `ClientVersion` | [34](rpc/namespaces/ethereum/web3/api.go#L34) | ➕ extension | -| `web3_sha3` | `Sha3` | [39](rpc/namespaces/ethereum/web3/api.go#L39) | ➕ extension | - -## `txpool_*` — [rpc/namespaces/ethereum/txpool/api.go](rpc/namespaces/ethereum/txpool/api.go) - -| JSON-RPC Method | Go Method | Line | Spec File | Status | -| --- | --- | --- | --- | --- | -| `txpool_content` | `Content` | [40](rpc/namespaces/ethereum/txpool/api.go#L40) | txpool/pool.yaml | ✅ | -| `txpool_status` | `Status` | [60](rpc/namespaces/ethereum/txpool/api.go#L60) | txpool/pool.yaml | ✅ | -| `txpool_inspect` | `Inspect` | [50](rpc/namespaces/ethereum/txpool/api.go#L50) | — | ➕ extension | - ---- - -## Missing: In spec but NOT implemented - -### `eth_*` (eth/sign.yaml, eth/state.yaml, eth/execute.yaml, eth/fee_market.yaml, eth/client.yaml) - -| Spec Method | Spec File | Notes | -| --- | --- | --- | -| `eth_signTransaction` | eth/sign.yaml | Signs tx locally without broadcasting | -| `eth_getStorageValues` | eth/state.yaml | Batch storage slot reads | -| `eth_getBlockAccessList` | eth/block.yaml | Access list for a full block | -| `eth_blobBaseFee` | eth/fee_market.yaml | EIP-4844 blob base fee (no blob tx support) | -| `eth_config` | eth/client.yaml | Node configuration query | - -### `debug_*` (debug/getters.yaml) - -| Spec Method | Notes | -| --- | --- | -| `debug_getBadBlocks` | Known bad/invalid blocks | -| `debug_getRawBlock` | RLP-encoded block by number | -| `debug_getRawBlockAccessList` | Access list for a raw block | -| `debug_getRawHeader` | RLP-encoded block header | -| `debug_getRawReceipts` | Raw receipts for a block | -| `debug_getRawTransaction` | RLP-encoded transaction | - -### `txpool_*` (txpool/pool.yaml) - -| Spec Method | Notes | -| --- | --- | -| `txpool_contentFrom` | Filter pending/queued txs by sender address | - -### `engine_*` - -Not applicable — Ethermint uses Tendermint/CometBFT consensus, not the Ethereum Engine API. - ---- - -## Summary - -| Category | Count | -| --- | --- | -| Spec methods implemented | 39 | -| Extensions (not in spec) | 46 | -| **Total implemented** | **85** | -| Spec methods missing (`eth_*`) | 5 | -| Spec methods missing (`debug_*`) | 6 | -| Spec methods missing (`txpool_*`) | 1 | -| `engine_*` (N/A — Tendermint) | 25 | - ---- - -## 结论 - -**Ethermint 实现了绝大部分核心规范,但有 12 个缺口,且整个 debug 命名空间走错了方向。** - -### 缺失方法优先级 - -| 优先级 | 方法 | 影响 | -| --- | --- | --- | -| 高 | `eth_signTransaction` | 钱包/工具链常用,许多 dApp 会调用 | -| 高 | `eth_getStorageValues` | 批量存储读取,效率接口 | -| 高 | `txpool_contentFrom` | 按发送者过滤 mempool,DEX/MEV 工具依赖 | -| 中 | `debug_getRawBlock` / `debug_getRawHeader` / `debug_getRawReceipts` / `debug_getRawTransaction` / `debug_getRawBlockAccessList` / `debug_getBadBlocks` | 标准 debug 接口,区块链浏览器/索引器会用 | -| 中 | `eth_getBlockAccessList` | 较新接口,使用较少 | -| 低 | `eth_blobBaseFee` | EIP-4844 blob tx,Ethermint 本身不支持 blob,可暂不实现 | -| 低 | `eth_config` | 较新、使用少 | - -### debug 命名空间走偏了 - -规范定义的 `debug_*` 是**原始数据获取**(RLP 块、收据、header),而 Ethermint 实现的是 go-ethereum 的 **tracing/profiling** 接口。两者完全不重叠。这两类都有价值,但当前 Ethermint 没有实现任何一个规范要求的 `debug_*`。 - -### 总体评价 - -- 核心 `eth_*` 覆盖率高(29/36 核心方法 + 全部 7 个 filter 方法) -- 扩展丰富(46 个 go-ethereum 扩展),兼容性好 -- `engine_*` 不适用(Tendermint 共识) -- 最值得补的是:`eth_signTransaction`、`txpool_contentFrom`、6 个 `debug_getRaw*` - ---- - -## 错误码合规分析 - -### 规范定义的错误码 - -| 来源 | 错误码 | 含义 | -| --- | --- | --- | -| JSONRPCStandardErrors | -32700 / -32600 / -32601 / -32602 / -32603 | 解析错误、无效请求、方法不存在、无效参数、内部错误 | -| JSONRPCNonStandardErrors | -32000 ~ -32006 | 无效输入、资源未找到、资源不可用、交易被拒绝等 | -| ExecutionErrors | 1 (nonce too low) / 2 (nonce too high) / 3 (execution reverted) / 4 (invalid opcode) | EVM 执行错误 | -| GasErrors | 800~809 | 内在 gas 不足、gas 用尽、gas 价格过低、余额不足等 | -| TxPoolErrors | 1000 (already known) / 1001 (invalid sender) | mempool 错误 | -| PrunedHistory | 4444 | 历史数据已被裁剪 | -| eth_simulateV1 | -38010 ~ -38026 | 模拟专用错误(nonce、gas、EOA 检查等) | - -**根本机制**:go-ethereum 的 JSON-RPC 服务器只识别实现了 `ErrorCode() int` 接口的错误类型。所有 `fmt.Errorf`、`errors.New`、`errorsmod.ABCIError`、`status.Error(codes.Internal,...)` 均**不实现该接口**,一律变成 `-32603 Internal`。 - ---- - -### ✅ 符合规范的错误处理(3 处) - -| 方法 | 场景 | 实现 | 规范要求 | -| --- | --- | --- | --- | -| `eth_call` / `eth_estimateGas` | EVM revert | `RevertError.ErrorCode() = 3` + `ErrorData()` hex revert bytes ([errors.go:149](x/evm/types/errors.go#L149)) | code `3` + data ✅ | -| `eth_simulateV1` | nonce / gas / EOA 等 | `simulate_errors.go` 完整定义 -38010~-38026 | -38xxx ✅ | -| 块/交易查询 | 资源不存在 | 大多数路径返回 `nil, nil` → JSON `null` | `null` ✅ | - ---- - -### ❌ 不符合规范的错误处理 - -#### 问题一:10 个方法缺少 error code 4444(历史被裁剪) - -规范要求这些方法在访问已裁剪的历史数据时返回 code `4444`,Ethermint 全部没有实现,统一变成 `-32603`。 - -| 方法 | 规范文件 | 涉及代码位置 | -| --- | --- | --- | -| `eth_getBlockByHash` | block.yaml | [blocks.go:132](rpc/backend/blocks.go#L132) | -| `eth_getBlockByNumber` | block.yaml | [blocks.go:68](rpc/backend/blocks.go#L68) | -| `eth_getBlockTransactionCountByHash` | block.yaml | [blocks.go:160](rpc/backend/blocks.go#L160) | -| `eth_getBlockTransactionCountByNumber` | block.yaml | [blocks.go:181](rpc/backend/blocks.go#L181) | -| `eth_getBlockReceipts` | block.yaml | [blocks.go:95](rpc/backend/blocks.go#L95) | -| `eth_getTransactionByBlockHashAndIndex` | transaction.yaml | [tx_info.go:489](rpc/backend/tx_info.go#L489) | -| `eth_getTransactionByBlockNumberAndIndex` | transaction.yaml | [tx_info.go:512](rpc/backend/tx_info.go#L512) | -| `eth_getTransactionReceipt` | transaction.yaml | [tx_info.go:163](rpc/backend/tx_info.go#L163) | -| `eth_getLogs` | filter.yaml | [filters/api.go:220](rpc/namespaces/ethereum/eth/filters/api.go#L220) | -| `eth_getFilterLogs` | filter.yaml | [filters/api.go:266](rpc/namespaces/ethereum/eth/filters/api.go#L266) | - -**修复方向**:新增 `PrunedHistoryError` 类型实现 `ErrorCode() = 4444`,在检测到 pruned 状态时使用。 - ---- - -#### 问题二:`eth_sendRawTransaction` / `eth_sendTransaction` — 广播错误码全部丢失 - -交易广播失败时使用 `errorsmod.ABCIError(rsp.Codespace, rsp.Code, rsp.RawLog)` 包装([call_tx.go:169](rpc/backend/call_tx.go#L169)、[sign_tx.go:119](rpc/backend/sign_tx.go#L119)),该类型没有实现 `ErrorCode()`,所有失败场景统一变成 `-32603`。 - -| 失败场景 | 实际返回 | 规范要求 | -| --- | --- | --- | -| gas 不足 / 余额不足 | `-32603` | GasErrors 800~809 | -| nonce too low / too high | `-32603` | ExecutionErrors 1 / 2 | -| execution reverted (via broadcast) | `-32603` | ExecutionErrors 3 | -| 交易被拒绝 | `-32603` | -32003 | -| 已知交易 | `-32603` | TxPoolErrors 1000 | -| invalid sender | `-32603` | TxPoolErrors 1001 | - -**修复方向**:解析 ABCI codespace/code,映射到实现了 `ErrorCode()` 的包装类型。 - ---- - -#### 问题三:`eth_call` / `eth_estimateGas` — 非 revert VM 错误 - -`vmError != "execution reverted"` 时,`handleRevertError` 返回 `status.Error(codes.Internal, vmError)`([call_tx.go:317](rpc/backend/call_tx.go#L317)),变成 `-32603`。 - -| 失败场景 | 实际返回 | 规范要求 | -| --- | --- | --- | -| INVALID_OPCODE | `-32603` | ExecutionErrors 4 | -| 其他 VM 错误 | `-32603` | 视具体错误 | - ---- - -#### 问题四:`eth_newPendingTransactionFilter` / `eth_newBlockFilter` — 错误以 ID 字符串返回 - -Filter 数量超限时,这两个方法把错误消息直接编码为 filter ID 字符串返回([filters/api.go:141](rpc/namespaces/ethereum/eth/filters/api.go#L141)、[filters/api.go:164](rpc/namespaces/ethereum/eth/filters/api.go#L164)),而不是抛出 JSON-RPC error。客户端拿到的是一个"假 ID",后续用这个 ID 调用任何 filter 方法都会静默失败。 - -``` -return rpc.ID("error creating pending tx filter: max limit reached") -``` - -**修复方向**:返回类型改为 `(rpc.ID, error)`,或通过 context 传递错误。 - ---- - -#### 问题五:`eth_getLogs` / `eth_feeHistory` — 超限返回 -32603 而非 -32005 - -| 方法 | 超限场景 | 实际返回 | 规范要求 | 代码位置 | -| --- | --- | --- | --- | --- | -| `eth_getLogs` | 查询块范围超过 `RPCBlockRangeCap` | `-32603` | `-32005` | [filters.go:155](rpc/namespaces/ethereum/eth/filters/filters.go#L155) | -| `eth_getLogs` | 返回日志数超过 `RPCLogsCap` | `-32603` | `-32005` | [filters.go:186](rpc/namespaces/ethereum/eth/filters/filters.go#L186) | -| `eth_feeHistory` | 请求块数超过 `FeeHistoryCap` | `-32603` | `-32005` | [chain_info.go:217](rpc/backend/chain_info.go#L217) | - -Ethermint 代码库中没有定义 `-32005` 错误类型,`simulate_errors.go` 里虽有 `ErrCodeClientLimitExceeded = -38026`,但那是 `eth_simulateV1` 专用。 - -**修复方向**:新增 `LimitExceededError` 类型实现 `ErrorCode() = -32005`。 - ---- - -### 错误合规汇总(按方法) - -| 方法 | 场景 | 实际返回码 | 规范要求码 | 合规 | -| --- | --- | --- | --- | --- | -| `eth_call` / `eth_estimateGas` | EVM revert | `3` + data | `3` + data | ✅ | -| `eth_call` / `eth_estimateGas` | 非 revert VM 错误 | `-32603` | `4` | ❌ | -| `eth_sendRawTransaction` | gas / nonce / 余额 / pool 等所有失败 | `-32603` | 800~809 / 1~2 / -32003 / 1000 / 1001 | ❌ | -| `eth_sendTransaction` | 同上 | `-32603` | 同上 | ❌ | -| `eth_simulateV1` | nonce / gas / EOA 等 | `-38010~-38026` | `-38010~-38026` | ✅ | -| `eth_getBlockByHash` | 历史被裁剪 | `-32603` | `4444` | ❌ | -| `eth_getBlockByNumber` | 历史被裁剪 | `-32603` | `4444` | ❌ | -| `eth_getBlockTransactionCountByHash` | 历史被裁剪 | `-32603` | `4444` | ❌ | -| `eth_getBlockTransactionCountByNumber` | 历史被裁剪 | `-32603` | `4444` | ❌ | -| `eth_getBlockReceipts` | 历史被裁剪 | `-32603` | `4444` | ❌ | -| `eth_getTransactionByBlockHashAndIndex` | 历史被裁剪 | `-32603` | `4444` | ❌ | -| `eth_getTransactionByBlockNumberAndIndex` | 历史被裁剪 | `-32603` | `4444` | ❌ | -| `eth_getTransactionReceipt` | 历史被裁剪 | `-32603` | `4444` | ❌ | -| `eth_getLogs` | 历史被裁剪 | `-32603` | `4444` | ❌ | -| `eth_getFilterLogs` | 历史被裁剪 | `-32603` | `4444` | ❌ | -| `eth_newPendingTransactionFilter` | 超过 filter 数量上限 | 假 ID 字符串 | JSON-RPC error | ❌ | -| `eth_newBlockFilter` | 超过 filter 数量上限 | 假 ID 字符串 | JSON-RPC error | ❌ | -| `eth_getLogs` | 块范围 / 日志数超限 | `-32603` | `-32005` | ❌ | -| `eth_feeHistory` | 请求块数超限 | `-32603` | `-32005` | ❌ | -| `eth_getBalance` / `eth_getCode` / `eth_getStorageAt` / `eth_getTransactionCount` | 各类错误 | `-32603` | 规范未定义特定码 | ✅ | -| `eth_getTransactionByHash` | 不存在 | `null` | `null` | ✅ | -| 块/交易查询 | 资源不存在 | `null` | `null` | ✅ | - ---- - -## 返回值字段完整性 - -### `eth_getTransactionReceipt` — 缺少 EIP-4844 字段 - -实现位置:[tx_info.go](rpc/backend/tx_info.go) - -| 字段 | 规范要求 | 实现状态 | -| --- | --- | --- | -| `blockHash` | ✅ | ✅ | -| `blockNumber` | ✅ | ✅ | -| `from` | ✅ | ✅ | -| `cumulativeGasUsed` | ✅ | ✅ | -| `gasUsed` | ✅ | ✅ | -| `effectiveGasPrice` | ✅ | ✅ | -| `logs` / `logsBloom` | ✅ | ✅ | -| `status` / `type` | ✅ | ✅ | -| `contractAddress` | ✅ | ✅ | -| `blobGasUsed` | EIP-4844 必需 | ❌ 缺失 | -| `blobGasPrice` | EIP-4844 必需 | ❌ 缺失 | - ---- - -### `eth_getBlockByHash` / `eth_getBlockByNumber` — 缺少后 EIP-4895/4844/4788 字段 - -实现位置:[rpc/types/utils.go](rpc/types/utils.go) - -| 字段 | 引入版本 | 实现状态 | -| --- | --- | --- | -| `baseFeePerGas` | EIP-1559 | ✅ | -| `withdrawals` | EIP-4895 (Shanghai) | ❌ 缺失 | -| `withdrawalsRoot` | EIP-4895 (Shanghai) | ❌ 缺失 | -| `blobGasUsed` | EIP-4844 (Cancun) | ❌ 缺失 | -| `excessBlobGas` | EIP-4844 (Cancun) | ❌ 缺失 | -| `parentBeaconBlockRoot` | EIP-4788 (Cancun) | ❌ 缺失 | - ---- - -### `eth_getTransactionByHash` / block nested transactions — 缺少字段 - -实现位置:[rpc/types/types.go](rpc/types/types.go)、[rpc/types/utils.go](rpc/types/utils.go)(`NewRPCTransactionFromTx`) - -所有交易查询(`eth_getTransactionByHash`、`eth_getTransactionByBlockHashAndIndex`、`eth_getTransactionByBlockNumberAndIndex`)以及 `eth_getBlockByHash` / `eth_getBlockByNumber` 中 `fullTx=true` 时的内嵌交易对象,均通过同一函数 `NewRPCTransactionFromTx` 构造,共享以下字段缺口。 - -| 字段 | 规范要求 | 实现状态 | -| --- | --- | --- | -| `accessList` | EIP-2930 | ✅ | -| `maxFeePerGas` / `maxPriorityFeePerGas` | EIP-1559 | ✅ | -| `type` / `chainId` / `yParity` | EIP-2718 | ✅ | -| `authorizationList` | EIP-7702 | ✅ | -| `blockTimestamp` | `TransactionInfo` schema required | ❌ 缺失(`RPCTransaction` 结构体无此字段) | -| `blobVersionedHashes` | EIP-4844 | ❌ 缺失(架构差距) | -| `maxFeePerBlobGas` | EIP-4844 | ❌ 缺失(架构差距) | - ---- - -### `eth_createAccessList` — 响应缺少 `error` 字段 - -实现位置:[x/evm/types/access_list.go:72](x/evm/types/access_list.go#L72) - -规范要求返回 `{ accessList, error, gasUsed }` 三个字段,其中 `error` 是一个字符串,用于在 access list 计算遇到 EVM 错误时(如 revert)将错误信息内联到响应体中(而不是抛出 JSON-RPC error)。Ethermint 的 `AccessListResult` 只有两个字段: - -```go -type AccessListResult struct { - Accesslist ethtypes.AccessList `json:"accessList"` - GasUsed uint64 `json:"gasUsed"` - // 缺少:Error string `json:"error,omitempty"` -} -``` - -客户端无法得知 access list 计算过程中发生的 EVM 错误。 - ---- - ---- - -### 字段缺失说明 - -- **架构差距(不可修复)**:EIP-4844 blob 字段(`blobVersionedHashes`、`maxFeePerBlobGas`、`blobGasUsed`、`blobGasPrice`)及 EIP-4895 withdrawals 字段,Ethermint 基于 Tendermint 共识,不支持这些特性,客户端不应期望这些字段。 -- **可修复 bug**:`eth_createAccessList` 缺少 `error` 字段,与架构无关,应补齐。 - ---- - -## 问题方法汇总(共 19 个) - -| # | 方法 | 问题类型 | 可修复 | -| --- | --- | --- | --- | -| 1 | `eth_sendRawTransaction` | 广播错误码全部丢失(→ -32603) | ✅ | -| 2 | `eth_sendTransaction` | 广播错误码全部丢失(→ -32603) | ✅ | -| 3 | `eth_call` | 非 revert VM 错误返回 -32603,应为 4 | ✅ | -| 4 | `eth_estimateGas` | 非 revert VM 错误返回 -32603,应为 4 | ✅ | -| 5 | `eth_getBlockByHash` | 4444 缺失 + 5 个字段缺失 + 内嵌交易缺少 `blockTimestamp` | 部分 | -| 6 | `eth_getBlockByNumber` | 4444 缺失 + 5 个字段缺失 + 内嵌交易缺少 `blockTimestamp` | 部分 | -| 7 | `eth_getBlockTransactionCountByHash` | 4444 缺失 | ✅ | -| 8 | `eth_getBlockTransactionCountByNumber` | 4444 缺失 | ✅ | -| 9 | `eth_getBlockReceipts` | 4444 缺失 | ✅ | -| 10 | `eth_getTransactionByBlockHashAndIndex` | 4444 缺失 + `blockTimestamp` 缺失 | ✅ | -| 11 | `eth_getTransactionByBlockNumberAndIndex` | 4444 缺失 + `blockTimestamp` 缺失 | ✅ | -| 12 | `eth_getTransactionReceipt` | 4444 缺失 + 2 个字段缺失 | 部分 | -| 13 | `eth_getLogs` | 4444 缺失 + -32005 缺失 | ✅ | -| 14 | `eth_getFilterLogs` | 4444 缺失 | ✅ | -| 15 | `eth_newPendingTransactionFilter` | 错误塞进 ID 字符串 | ✅ | -| 16 | `eth_newBlockFilter` | 错误塞进 ID 字符串 | ✅ | -| 17 | `eth_feeHistory` | -32005 缺失 | ✅ | -| 18 | `eth_getTransactionByHash` | `blockTimestamp` 缺失(必需)+ 2 个 EIP-4844 字段缺失(架构差距) | 部分 | -| 19 | `eth_createAccessList` | 响应缺少 `error` 字段 | ✅ | - ---- - -## 返回数据格式合规分析 - -以下检查每个字段的**编码格式**是否符合规范(数值是否为 hex 字符串、长度是否正确、类型是否匹配等)。 - -### ✅ 格式正确 - -| 方法 | 字段 | 规范类型 | 实现 | -| --- | --- | --- | --- | -| `eth_getBalance` | 返回值 | uint256(hex) | `*hexutil.Big` ✅ | -| `eth_getTransactionCount` | 返回值 | uint64(hex) | `hexutil.Uint64` ✅ | -| `eth_feeHistory` | baseFeePerGas | uint[](hex) | `[]*hexutil.Big` ✅ | -| `eth_feeHistory` | gasUsedRatio | float[] | `[]float64` ✅ | -| `eth_feeHistory` | reward | uint[][](hex) | `[][]*hexutil.Big` ✅ | -| `eth_getTransactionReceipt` | status | uint("0x0"/"0x1") | `hexutil.Uint` ✅ | -| `eth_getTransactionReceipt` | contractAddress | address or null | nil / address ✅ | -| `eth_syncing` | 不同步时 | false(bool) | `false` ✅ | -| `eth_getFilterChanges` | block filter | hash32[] | `[]common.Hash` ✅ | - ---- - -### ❌ 格式错误 - -#### 1. `eth_getTransactionReceipt` — `effectiveGasPrice` 仅对 EIP-1559 交易设置 - -**问题**:`effectiveGasPrice` 只在 `DynamicFeeTxType` 时写入([rpc/backend/tx_info.go:475](rpc/backend/tx_info.go#L475)),legacy 交易和 EIP-2930 交易的 receipt 中缺少该字段。规范要求所有类型的交易都必须包含此字段。 - -**修复方向**:移除 `DynamicFeeTxType` 类型守卫,对所有交易类型无条件设置 `effectiveGasPrice`。`GetEffectiveGasPrice`([x/evm/types/msg.go:279](x/evm/types/msg.go#L279))已经处理了所有类型:`baseFee == nil` 时直接返回 `tx.GasPrice()`(适用于 legacy/EIP-2930),有 baseFee 时用 `min(tip+base, feeCap)` 公式(对 legacy 退化为 gasPrice)。单行修复,无行为变更风险。 - ---- - -#### 4. `eth_syncing` — 同步中时缺少 `highestBlock` 字段 - -**问题**:节点同步中时,响应体只包含 `startingBlock` 和 `currentBlock`,缺少规范要求的 `highestBlock`([rpc/backend/node_info.go:89](rpc/backend/node_info.go#L89))。客户端无法计算同步进度百分比。 - ---- - -#### 5. Log 对象 — `blockTimestamp` 字段 - -**说明**:规范 Log schema 中 `blockTimestamp` 是可选属性(未列入 `required`),Ethermint 使用 go-ethereum 原生 `ethtypes.Log` 结构(无此字段),所有 log 响应(`eth_getLogs`、`eth_getFilterChanges`、receipt 中的 logs)均不返回该字段。这不是规范违规,但客户端若依赖此字段需额外查询块时间戳。 - ---- - -#### 6. 所有交易查询 + block 内嵌交易 — 缺少必需字段 `blockTimestamp` - -**问题**:规范 `TransactionInfo` schema 将 `blockTimestamp` 列在 `required` 数组中,是**强制字段**。Ethermint 的 `RPCTransaction` 结构体([rpc/types/types.go:55](rpc/types/types.go#L55))和构造函数 `NewRPCTransactionFromTx`([rpc/types/utils.go:201](rpc/types/utils.go#L201))均无此字段,导致以下方法的返回值缺少必需字段: - -- `eth_getTransactionByHash` -- `eth_getTransactionByBlockHashAndIndex` -- `eth_getTransactionByBlockNumberAndIndex` -- `eth_getBlockByHash` / `eth_getBlockByNumber`(`fullTx=true` 时的内嵌交易) - -**修复方向**:在 `RPCTransaction` 结构体中添加 `BlockTimestamp *hexutil.Uint64 \`json:"blockTimestamp,omitempty"\`` 字段,并在 `NewRPCTransactionFromTx` 中(已有 `blockHash != (common.Hash{})` 分支处)填充该值。块时间戳可通过调用方传入或从 block header 读取。 - ---- - -### 返回格式问题汇总 - -| # | 方法 | 字段 | 实际返回 | 规范要求 | 严重程度 | -| --- | --- | --- | --- | --- | --- | -| 1 | `eth_getTransactionReceipt` | `effectiveGasPrice` | legacy/2930 交易缺失 | 所有类型必须有 | 高 | -| 2 | `eth_syncing` | `highestBlock` | 缺失 | uint(hex) | 高 | -| 3 | `eth_getLogs` / `eth_getFilterChanges` / receipts 中的 logs | `blockTimestamp` | 缺失 | uint(hex,可选) | 低 | -| 4 | 所有交易查询 + `eth_getBlockByHash`/`eth_getBlockByNumber`(fullTx) | `blockTimestamp` | 缺失 | uint(hex,**必需**) | **高** | diff --git a/tests/integration_tests/spec/conftest.py b/tests/integration_tests/spec/conftest.py index 4e3cb6973b..438e13c53b 100644 --- a/tests/integration_tests/spec/conftest.py +++ b/tests/integration_tests/spec/conftest.py @@ -1,3 +1,4 @@ +import json import os import shutil import signal @@ -72,8 +73,6 @@ def _merge_evm_accounts(genesis, overlay): def _patch_genesis_with_execution_api_state(chain_home): - import json - overlay = json.loads( (EXECUTION_API_FIXTURE_DIR / "ethermint_genesis_overlay.json").read_text() ) @@ -91,8 +90,6 @@ def _patch_genesis_with_execution_api_state(chain_home): def _w3_wait_for_block(w3, target=1, timeout=240): - import time - for _ in range(timeout * 2): try: if w3.eth.block_number >= target: @@ -110,8 +107,6 @@ def __init__(self, base_dir): @property def w3_http_endpoint(self, i=0): - import json - config = json.loads((self.base_dir / "config.json").read_text()) port = ports.evmrpc_port(config["validators"][i]["base_port"]) return f"http://localhost:{port}" diff --git a/tests/integration_tests/spec/test_rpc_spec_schema.py b/tests/integration_tests/spec/test_rpc_spec_schema.py index 228d1a1ac8..4c8dda6943 100644 --- a/tests/integration_tests/spec/test_rpc_spec_schema.py +++ b/tests/integration_tests/spec/test_rpc_spec_schema.py @@ -25,6 +25,15 @@ **CATEGORY_TITLES, "schema_correct": "correct implemented by schema", } +# Methods with a partial implementation: the endpoint exists but the response +# schema doesn't yet match the execution-apis spec. Classified as not_implemented +# so they are excluded from schema-mismatch assertions until the shape is complete. +INCOMPLETE_UNIMPLEMENTED_RPC_METHODS = { + # Returns an incomplete txpool shape compared with the execution-apis fixture. + "txpool_content", +} +# Full set of methods whose not_implemented verdict is expected and allowed. +# Includes all partially-implemented methods (above) plus those not implemented at all. UNIMPLEMENTED_RPC_METHODS = { "debug_getRawBlock", "debug_getRawHeader", @@ -34,15 +43,8 @@ "eth_config", "eth_getStorageValues", "testing_buildBlockV1", - "txpool_content", "txpool_contentFrom", -} -INCOMPLETE_UNIMPLEMENTED_RPC_METHODS = { - # Ethermint exposes this method, but currently returns an incomplete txpool - # shape compared with the execution-apis fixture. Track it with the other - # unimplemented RPC gaps until the full response schema is supported. - "txpool_content", -} +} | INCOMPLETE_UNIMPLEMENTED_RPC_METHODS SCHEMA_MISMATCH_WHITELIST = { "request_schema_wrong": set(), "response_schema_wrong": set(), @@ -780,24 +782,20 @@ def report(self): "", "Generated by `spec/test_rpc_spec_schema.py`.", "", - " ".join( - [ - "This report compares Ethermint JSON-RPC responses with the", - "copied execution-apis `.io` fixtures by schema only. Values", - "are ignored, but response kind, object keys, and JSON value", - "types must match.", - ] + ( + "This report compares Ethermint JSON-RPC responses with the " + "copied execution-apis `.io` fixtures by schema only. Values " + "are ignored, but response kind, object keys, and JSON value " + "types must match." ), "", "## Excluded Cases", "", - " ".join( - [ - "These fork-specific block-number fixtures are skipped", - "because Ethermint currently returns Prague-era block fields", - "for historical blocks, while Geth formats each block", - "response according to the fork active at the queried block.", - ] + ( + "These fork-specific block-number fixtures are skipped " + "because Ethermint currently returns Prague-era block fields " + "for historical blocks, while Geth formats each block " + "response according to the fork active at the queried block." ), "", ] @@ -914,13 +912,11 @@ def _markdown_null_result_summary(self): def _markdown_expected_failure_whitelist(self): lines = [ - " ".join( - [ - "These method-level lists document known gaps that are", - "currently excluded from the schema test failure condition.", - "Reduce these lists as methods are implemented or response", - "schemas are fixed.", - ] + ( + "These method-level lists document known gaps that are " + "currently excluded from the schema test failure condition. " + "Reduce these lists as methods are implemented or response " + "schemas are fixed." ), "", "### Unimplemented RPC Methods", From 4d977a2d48aad578daca3a99c60ef67a763e9cda Mon Sep 17 00:00:00 2001 From: Xinyu Date: Wed, 24 Jun 2026 11:36:42 +0800 Subject: [PATCH 15/32] test: split file --- .../spec/_schema_constants.py | 162 +++ .../spec/_schema_normalize.py | 406 ++++++ .../integration_tests/spec/_schema_report.py | 416 ++++++ .../integration_tests/spec/_schema_rewrite.py | 297 ++++ .../spec/test_rpc_spec_schema.py | 1274 +---------------- 5 files changed, 1319 insertions(+), 1236 deletions(-) create mode 100644 tests/integration_tests/spec/_schema_constants.py create mode 100644 tests/integration_tests/spec/_schema_normalize.py create mode 100644 tests/integration_tests/spec/_schema_report.py create mode 100644 tests/integration_tests/spec/_schema_rewrite.py diff --git a/tests/integration_tests/spec/_schema_constants.py b/tests/integration_tests/spec/_schema_constants.py new file mode 100644 index 0000000000..ade056db27 --- /dev/null +++ b/tests/integration_tests/spec/_schema_constants.py @@ -0,0 +1,162 @@ +from test_rpc_spec import CATEGORY_TITLES + +REPORT_FILENAME = "rpc_schema_report.md" +SCHEMA_CATEGORY_TITLES = { + **CATEGORY_TITLES, + "schema_correct": "correct implemented by schema", +} + +# Methods with a partial implementation: the endpoint exists but the response +# schema doesn't yet match the execution-apis spec. Classified as not_implemented +# so they are excluded from schema-mismatch assertions until the shape is complete. +INCOMPLETE_UNIMPLEMENTED_RPC_METHODS = { + # Returns an incomplete txpool shape compared with the execution-apis fixture. + "txpool_content", +} + +# Full set of methods whose not_implemented verdict is expected and allowed. +# Includes all partially-implemented methods (above) plus those not implemented at all. +UNIMPLEMENTED_RPC_METHODS = { + "debug_getRawBlock", + "debug_getRawHeader", + "debug_getRawReceipts", + "debug_getRawTransaction", + "eth_blobBaseFee", + "eth_config", + "eth_getStorageValues", + "testing_buildBlockV1", + "txpool_contentFrom", +} | INCOMPLETE_UNIMPLEMENTED_RPC_METHODS + +SCHEMA_MISMATCH_WHITELIST = { + "request_schema_wrong": set(), + "response_schema_wrong": set(), + "mixed_wrong": set(), +} + +ETHERMINT_MODERN_BLOCK_FIELD_SCHEMA_EXCEPTIONS = { + # Genesis is a pre-fork block in the copied Geth fixture. Ethermint currently + # returns Prague-era block fields for it, so ignore only those extra fields + # until the block formatter becomes fork-aware for historical heights. + "eth_getBlockByNumber/get-genesis", + # The copied geth block-hash fixture is also from an old fork era, but this + # test rewrites the hash to a local Ethermint block before comparing schema. + "eth_getBlockByHash/get-block-by-hash", +} +ETHERMINT_LOCAL_TX_SCHEMA_EXCEPTIONS = { + "eth_getBlockByHash/get-block-by-hash", +} +RELAXED_BLOCK_TRANSACTION_SCHEMA_EXCEPTIONS = { + # These block tags resolve against the local Ethermint chain, not the copied + # Geth fixture chain. Keep checking the block response envelope, but do not + # require per-transaction object schemas to line up when the actual + # transactions are from a different chain and can be different tx types. + "eth_getBlockByNumber/get-finalized", + "eth_getBlockByNumber/get-latest", + "eth_getBlockByNumber/get-safe", +} + +MODERN_BLOCK_FIELDS = { + "baseFeePerGas", + "blobGasUsed", + "excessBlobGas", + "parentBeaconBlockRoot", + "requestsHash", + "withdrawals", + "withdrawalsRoot", +} +ETH_SIMULATE_BLOCK_HARDFORK_FIELDS = MODERN_BLOCK_FIELDS +ETH_SIMULATE_TRANSACTION_HARDFORK_FIELDS = { + "accessList", + "authorizationList", + "blobVersionedHashes", + "chainId", + "maxFeePerBlobGas", + "maxFeePerGas", + "maxPriorityFeePerGas", + "yParity", +} +ETH_SIMULATE_TIMESTAMP_HEADROOM = 120 + +LOCAL_FIXTURE_TX_FIELDS = { + "chainId", +} +LOCAL_TRANSACTION_SCHEMA_EXCEPTIONS = { + "eth_getTransactionByBlockHashAndIndex/get-block-n", + "eth_getTransactionByBlockNumberAndIndex/get-block-n", + "eth_getTransactionByHash/get-legacy-create", + "eth_getTransactionByHash/get-legacy-input", + "eth_getTransactionByHash/get-legacy-tx", +} +LOCAL_RECEIPT_SCHEMA_EXCEPTIONS = { + "eth_getBlockReceipts/get-block-receipts-by-hash", + "eth_getBlockReceipts/get-block-receipts-latest", +} +LEGACY_RECEIPT_ROOT_STATUS_SCHEMA_EXCEPTIONS = { + "eth_getTransactionReceipt/get-legacy-contract", + "eth_getTransactionReceipt/get-legacy-input", + "eth_getTransactionReceipt/get-legacy-receipt", +} +LOCAL_RECEIPT_FUTURE_NULL_RESULT_ERROR_EXCEPTIONS = { + "eth_getBlockReceipts/get-block-receipts-future", +} +LOCAL_LOG_SCHEMA_EXCEPTIONS = { + "eth_getLogs/filter-with-blockHash", + "eth_getLogs/filter-with-blockHash-and-topics", +} +LOCAL_LOG_FUTURE_BLOCK_RANGE_EXCEPTIONS = { + "eth_getLogs/filter-error-future-block-range", +} +LOCAL_PROOF_SCHEMA_EXCEPTIONS = { + "eth_getProof/get-account-proof-blockhash", +} +LOCAL_FIXTURE_RECEIPT_ADDRESS_FIELDS = { + "contractAddress", + "to", +} + +EXCLUDED_SCHEMA_SPEC_CASES = { + # Ethermint currently emits Prague-era block fields for historical blocks. + # Exclude these explicitly fork-scoped Geth fixtures instead of treating + # their expected older response shape as a current Ethermint schema failure. + "eth_getBlockByNumber/get-block-london-fork", + "eth_getBlockByNumber/get-block-merge-fork", + "eth_getBlockByNumber/get-block-shanghai-fork", + "eth_getBlockByNumber/get-block-cancun-fork", +} + +TRANSACTION_BY_HASH_LOCAL_TX_KEYS = { + "eth_getTransactionByHash/get-access-list": "access_list", + "eth_getTransactionByHash/get-blob-tx": "blob", + "eth_getTransactionByHash/get-dynamic-fee": "dynamic_fee", + "eth_getTransactionByHash/get-legacy-create": "legacy_create", + "eth_getTransactionByHash/get-legacy-input": "legacy_create", + "eth_getTransactionByHash/get-legacy-tx": "legacy", + "eth_getTransactionByHash/get-setcode-tx": "setcode", +} +TRANSACTION_RECEIPT_LOCAL_TX_KEYS = { + "eth_getTransactionReceipt/get-access-list": "access_list", + "eth_getTransactionReceipt/get-blob-tx": "blob", + "eth_getTransactionReceipt/get-dynamic-fee": "dynamic_fee", + "eth_getTransactionReceipt/get-legacy-contract": "legacy_create", + "eth_getTransactionReceipt/get-legacy-input": "legacy_create", + "eth_getTransactionReceipt/get-legacy-receipt": "legacy", + "eth_getTransactionReceipt/get-setcode-tx": "setcode", +} +SEND_RAW_TRANSACTION_LOCAL_TX_KEYS = { + "eth_sendRawTransaction/send-access-list-transaction": "access_list", + "eth_sendRawTransaction/send-blob-tx": "blob", + "eth_sendRawTransaction/send-dynamic-fee-access-list-transaction": ( + "dynamic_fee_access_list" + ), + "eth_sendRawTransaction/send-dynamic-fee-transaction": "dynamic_fee_create", + "eth_sendRawTransaction/send-legacy-transaction": "legacy", +} + +LEGACY_CREATE_BYTECODE = ( + "0x600d380380600d6000396000f360004381526020014681526020014181526020014" + "881526020014481526020013281526020013481526020016000f3" +) +BLOB_VERSIONED_HASH = ( + "0x0100000000000000000000000000000000000000000000000000000000000000" +) diff --git a/tests/integration_tests/spec/_schema_normalize.py b/tests/integration_tests/spec/_schema_normalize.py new file mode 100644 index 0000000000..ce6f74d0fe --- /dev/null +++ b/tests/integration_tests/spec/_schema_normalize.py @@ -0,0 +1,406 @@ +from copy import deepcopy + +from test_rpc_spec import ( + RpcSpecResult, + _first_schema_mismatch, + _is_not_implemented, + _is_request_schema_error, + _response_kind, + _same_schema, +) + +from _schema_constants import ( + ETHERMINT_LOCAL_TX_SCHEMA_EXCEPTIONS, + ETHERMINT_MODERN_BLOCK_FIELD_SCHEMA_EXCEPTIONS, + ETH_SIMULATE_BLOCK_HARDFORK_FIELDS, + ETH_SIMULATE_TRANSACTION_HARDFORK_FIELDS, + INCOMPLETE_UNIMPLEMENTED_RPC_METHODS, + LEGACY_RECEIPT_ROOT_STATUS_SCHEMA_EXCEPTIONS, + LOCAL_FIXTURE_RECEIPT_ADDRESS_FIELDS, + LOCAL_FIXTURE_TX_FIELDS, + LOCAL_RECEIPT_FUTURE_NULL_RESULT_ERROR_EXCEPTIONS, + LOCAL_RECEIPT_SCHEMA_EXCEPTIONS, + LOCAL_TRANSACTION_SCHEMA_EXCEPTIONS, + MODERN_BLOCK_FIELDS, + RELAXED_BLOCK_TRANSACTION_SCHEMA_EXCEPTIONS, +) + + +def _json_type_name(value): + if value is None: + return "null" + if isinstance(value, bool): + return "boolean" + if type(value) in (int, float): + return "number" + if isinstance(value, str): + return "string" + if isinstance(value, list): + return "array" + if isinstance(value, dict): + return "object" + return type(value).__name__ + + +def _schema_differences(expected, actual, path="$"): + if isinstance(expected, dict) and isinstance(actual, dict): + differences = [] + expected_keys = set(expected) + actual_keys = set(actual) + missing = sorted(expected_keys - actual_keys) + extra = sorted(actual_keys - expected_keys) + if missing: + differences.append(f"{path}: expected-only keys {missing}") + if extra: + differences.append(f"{path}: actual-only keys {extra}") + for key in sorted(expected_keys & actual_keys): + differences.extend( + _schema_differences(expected[key], actual[key], f"{path}.{key}") + ) + return differences + + if isinstance(expected, list) and isinstance(actual, list): + if not expected or not actual: + return [] + differences = [] + for index, (exp, act) in enumerate(zip(expected, actual)): + differences.extend(_schema_differences(exp, act, f"{path}[{index}]")) + return differences + + if type(expected) in (int, float) and type(actual) in (int, float): + return [] + + if type(expected) is not type(actual): + return [ + f"{path}: expected {_json_type_name(expected)}, " + f"got {_json_type_name(actual)}" + ] + + return [] + + +def _format_schema_differences(expected, actual): + differences = _schema_differences(expected, actual) + return "\n".join(differences) if differences else "-" + + +def _is_local_receipt_future_null_result_error(spec_name, expected, actual): + if spec_name not in LOCAL_RECEIPT_FUTURE_NULL_RESULT_ERROR_EXCEPTIONS: + return False + if expected.get("result") is not None: + return False + + error = actual.get("error") or {} + message = str(error.get("message", "")).lower() + return ( + error.get("code") == -32000 + and "must be less than or equal to the current blockchain height" in message + ) + + +def _drop_asymmetric_fields(expected, actual, fields): + for field in fields: + if field in expected and field in actual: + continue + expected.pop(field, None) + actual.pop(field, None) + + +def _normalize_historical_block_schema_exception(spec_name, expected, actual): + if ( + spec_name not in ETHERMINT_MODERN_BLOCK_FIELD_SCHEMA_EXCEPTIONS + and spec_name not in ETHERMINT_LOCAL_TX_SCHEMA_EXCEPTIONS + and spec_name not in RELAXED_BLOCK_TRANSACTION_SCHEMA_EXCEPTIONS + ): + return expected, actual + + normalized_expected = deepcopy(expected) + normalized_actual = deepcopy(actual) + expected_result = normalized_expected.get("result") + actual_result = normalized_actual.get("result") + if not isinstance(expected_result, dict) or not isinstance(actual_result, dict): + return normalized_expected, normalized_actual + + if spec_name in ETHERMINT_MODERN_BLOCK_FIELD_SCHEMA_EXCEPTIONS: + # Geth formats historical blocks according to the fork active at that block. + # Ethermint currently derives Ethereum RPC headers from CometBFT blocks and + # populates modern fork fields even for historical blocks. Keep these old + # fork fixtures useful for the schema test by ignoring only those known + # extra fields until Ethermint's RPC block formatter is fork-aware. + for field in MODERN_BLOCK_FIELDS: + actual_result.pop(field, None) + + if spec_name in RELAXED_BLOCK_TRANSACTION_SCHEMA_EXCEPTIONS: + expected_txs = expected_result.get("transactions") + actual_txs = actual_result.get("transactions") + if isinstance(expected_txs, list) and isinstance(actual_txs, list): + expected_result["transactions"] = [] + actual_result["transactions"] = [] + + if spec_name not in ETHERMINT_LOCAL_TX_SCHEMA_EXCEPTIONS: + return normalized_expected, normalized_actual + + # This test rewrites the original Geth block hash to a local Ethermint block. + # The local transfer transaction can include modern transaction-only fields + # and a non-null `to`, while the copied fixture's first transactions are + # contract creations. Normalize those local fixture artifacts separately from + # the block-header fork fields above. + expected_txs = expected_result.get("transactions", []) + actual_txs = actual_result.get("transactions", []) + if isinstance(expected_txs, list) and isinstance(actual_txs, list): + for expected_tx, actual_tx in zip(expected_txs, actual_txs): + if not isinstance(expected_tx, dict) or not isinstance(actual_tx, dict): + continue + for field in LOCAL_FIXTURE_TX_FIELDS: + actual_tx.pop(field, None) + if expected_tx.get("to") is None and isinstance(actual_tx.get("to"), str): + actual_tx["to"] = None + + return normalized_expected, normalized_actual + + +def _normalize_local_receipt_schema_exception(spec_name, expected, actual): + if spec_name not in LOCAL_RECEIPT_SCHEMA_EXCEPTIONS: + return expected, actual + + normalized_expected = deepcopy(expected) + normalized_actual = deepcopy(actual) + expected_result = normalized_expected.get("result") + actual_result = normalized_actual.get("result") + if not isinstance(expected_result, list) or not isinstance(actual_result, list): + return normalized_expected, normalized_actual + + for expected_receipt, actual_receipt in zip(expected_result, actual_result): + if not isinstance(expected_receipt, dict) or not isinstance( + actual_receipt, dict + ): + continue + + for field in LOCAL_FIXTURE_RECEIPT_ADDRESS_FIELDS: + if field not in expected_receipt or field not in actual_receipt: + continue + + expected_value = expected_receipt[field] + actual_value = actual_receipt[field] + if (expected_value is None and isinstance(actual_value, str)) or ( + actual_value is None and isinstance(expected_value, str) + ): + expected_receipt[field] = None + actual_receipt[field] = None + + return normalized_expected, normalized_actual + + +def _normalize_legacy_receipt_schema_exception(spec_name, expected, actual): + if spec_name not in LEGACY_RECEIPT_ROOT_STATUS_SCHEMA_EXCEPTIONS: + return expected, actual + + normalized_expected = deepcopy(expected) + normalized_actual = deepcopy(actual) + expected_result = normalized_expected.get("result") + actual_result = normalized_actual.get("result") + if not isinstance(expected_result, dict) or not isinstance(actual_result, dict): + return normalized_expected, normalized_actual + + # The copied Geth legacy receipt fixtures use the pre-Byzantium `root` + # field, while local Ethermint receipts expose the modern `status` field. + # Keep the rest of the receipt schema comparison strict. + if ( + "root" in expected_result + and "status" not in expected_result + and "status" in actual_result + and "root" not in actual_result + ): + expected_result.pop("root") + actual_result.pop("status") + + return normalized_expected, normalized_actual + + +def _normalize_local_transaction_schema_exception(spec_name, expected, actual): + if spec_name not in LOCAL_TRANSACTION_SCHEMA_EXCEPTIONS: + return expected, actual + + normalized_expected = deepcopy(expected) + normalized_actual = deepcopy(actual) + expected_result = normalized_expected.get("result") + actual_result = normalized_actual.get("result") + if not isinstance(expected_result, dict) or not isinstance(actual_result, dict): + return normalized_expected, normalized_actual + + # These copied Geth fixtures query historical unprotected transactions whose + # transaction response omits `chainId`. Ethermint currently formats historical + # transaction responses with the latest field set, so ignore that local-only + # field when the request is rewritten to an Ethermint block/transaction. + if "chainId" not in expected_result: + actual_result.pop("chainId", None) + + # The copied Geth transaction is contract creation (`to: null`), but the + # local Ethermint transaction at the rewritten block/index can be a normal + # transfer. Keep the comparison focused on RPC schema fields, not tx kind. + expected_to = expected_result.get("to") + actual_to = actual_result.get("to") + if (expected_to is None and isinstance(actual_to, str)) or ( + actual_to is None and isinstance(expected_to, str) + ): + expected_result["to"] = None + actual_result["to"] = None + + return normalized_expected, normalized_actual + + +def _normalize_eth_simulate_schema_exception(spec_name, expected, actual): + if not spec_name.startswith("eth_simulateV1/"): + return expected, actual + + normalized_expected = deepcopy(expected) + normalized_actual = deepcopy(actual) + expected_result = normalized_expected.get("result") + actual_result = normalized_actual.get("result") + if not isinstance(expected_result, list) or not isinstance(actual_result, list): + return normalized_expected, normalized_actual + + for expected_block, actual_block in zip(expected_result, actual_result): + if not isinstance(expected_block, dict) or not isinstance(actual_block, dict): + continue + + # Ethermint may format simulated blocks/transactions with the latest + # hardfork field set even when the copied Geth fixture was generated for + # an earlier fork. Keep non-hardfork schema comparison strict. + _drop_asymmetric_fields( + expected_block, actual_block, ETH_SIMULATE_BLOCK_HARDFORK_FIELDS + ) + + expected_txs = expected_block.get("transactions") + actual_txs = actual_block.get("transactions") + if not isinstance(expected_txs, list) or not isinstance(actual_txs, list): + continue + + for expected_tx, actual_tx in zip(expected_txs, actual_txs): + if not isinstance(expected_tx, dict) or not isinstance(actual_tx, dict): + continue + _drop_asymmetric_fields( + expected_tx, actual_tx, ETH_SIMULATE_TRANSACTION_HARDFORK_FIELDS + ) + + return normalized_expected, normalized_actual + + +def _normalize_schema_exceptions(spec_name, expected, actual): + schema_expected, schema_actual = _normalize_historical_block_schema_exception( + spec_name, expected, actual + ) + schema_expected, schema_actual = _normalize_local_receipt_schema_exception( + spec_name, schema_expected, schema_actual + ) + schema_expected, schema_actual = _normalize_legacy_receipt_schema_exception( + spec_name, schema_expected, schema_actual + ) + schema_expected, schema_actual = _normalize_local_transaction_schema_exception( + spec_name, schema_expected, schema_actual + ) + return _normalize_eth_simulate_schema_exception( + spec_name, schema_expected, schema_actual + ) + + +def _classify_schema(spec_name, request, expected, actual): + method = request.get("method", "") + + if _is_not_implemented(actual): + return RpcSpecResult( + spec_name, + method, + "not_implemented", + actual.get("error", {}).get("message", "method not implemented"), + ) + + if _is_local_receipt_future_null_result_error(spec_name, expected, actual): + return RpcSpecResult( + spec_name, + method, + "schema_correct", + "matching future block not found response", + ) + + expected_kind = _response_kind(expected) + actual_kind = _response_kind(actual) + + if expected_kind == "error" and actual_kind == "result": + return RpcSpecResult( + spec_name, + method, + "request_schema_wrong", + "spec expects request rejection, ethermint accepted it", + ) + + if ( + expected_kind == "result" + and actual_kind == "error" + and _is_request_schema_error(actual) + ): + return RpcSpecResult( + spec_name, + method, + "request_schema_wrong", + f"expected {expected_kind}, got request validation error: " + f"{actual.get('error', {}).get('message')}", + ) + + if expected_kind != actual_kind: + if method in INCOMPLETE_UNIMPLEMENTED_RPC_METHODS: + return RpcSpecResult( + spec_name, + method, + "not_implemented", + f"incomplete implementation: expected {expected_kind} response, " + f"got {actual_kind}", + ) + return RpcSpecResult( + spec_name, + method, + "response_schema_wrong", + f"expected {expected_kind} response, got {actual_kind}", + ) + + schema_expected, schema_actual = _normalize_schema_exceptions( + spec_name, expected, actual + ) + if not _same_schema(schema_expected, schema_actual): + mismatch = ( + _first_schema_mismatch(schema_expected, schema_actual) or "schema differs" + ) + if method in INCOMPLETE_UNIMPLEMENTED_RPC_METHODS: + return RpcSpecResult( + spec_name, + method, + "not_implemented", + f"incomplete implementation: {mismatch}", + ) + return RpcSpecResult( + spec_name, + method, + "response_schema_wrong", + mismatch, + ) + + if actual_kind == "error" and _is_request_schema_error(actual): + return RpcSpecResult( + spec_name, + method, + "schema_correct", + "matching request validation error schema", + ) + + return RpcSpecResult(spec_name, method, "schema_correct", "schema match") + + +def _attach_details(result, request, expected, actual, comment): + result.request = request + result.expected = expected + result.actual = actual + result.schema_expected, result.schema_actual = _normalize_schema_exceptions( + result.spec_name, expected, actual + ) + result.comment = comment + return result diff --git a/tests/integration_tests/spec/_schema_report.py b/tests/integration_tests/spec/_schema_report.py new file mode 100644 index 0000000000..49f14e132f --- /dev/null +++ b/tests/integration_tests/spec/_schema_report.py @@ -0,0 +1,416 @@ +from collections import defaultdict + +from test_rpc_spec import _markdown_json + +from _schema_constants import ( + EXCLUDED_SCHEMA_SPEC_CASES, + SCHEMA_CATEGORY_TITLES, + SCHEMA_MISMATCH_WHITELIST, + UNIMPLEMENTED_RPC_METHODS, +) +from _schema_normalize import _format_schema_differences + + +class RpcSpecSchemaSummary: + def __init__(self): + self.schema_correct = [] + self.not_implemented = [] + self.request_schema_wrong = [] + self.response_schema_wrong = [] + + def add(self, result): + getattr(self, result.category).append(result) + + def format(self): + lines = ["ethermint RPC spec schema case summary"] + for attr in [ + "schema_correct", + "not_implemented", + "request_schema_wrong", + "response_schema_wrong", + ]: + results = getattr(self, attr) + lines.append(f"- {SCHEMA_CATEGORY_TITLES[attr]}: {len(results)}") + by_method = defaultdict(int) + examples = [] + for result in results: + by_method[result.method] += 1 + if len(examples) < 8: + examples.append(result) + if by_method: + method_counts = ", ".join( + f"{method}={count}" for method, count in sorted(by_method.items()) + ) + lines.append(f" methods: {method_counts}") + for result in examples: + lines.append(f" example: {result.spec_name}: {result.reason}") + if len(results) > len(examples): + lines.append(f" ... {len(results) - len(examples)} more") + lines.extend(self._format_method_summary()) + return "\n".join(lines) + + def report(self): + lines = [ + "# Ethermint RPC Schema Spec Report", + "", + "Generated by `spec/test_rpc_spec_schema.py`.", + "", + ( + "This report compares Ethermint JSON-RPC responses with the " + "copied execution-apis `.io` fixtures by schema only. Values " + "are ignored, but response kind, object keys, and JSON value " + "types must match." + ), + "", + "## Excluded Cases", + "", + ( + "These fork-specific block-number fixtures are skipped " + "because Ethermint currently returns Prague-era block fields " + "for historical blocks, while Geth formats each block " + "response according to the fork active at the queried block." + ), + "", + ] + lines.extend( + f"- `{spec_name}`" for spec_name in sorted(EXCLUDED_SCHEMA_SPEC_CASES) + ) + lines.extend( + [ + "", + "## Case Summary", + "", + ] + ) + lines.extend(self._markdown_case_summary()) + lines.extend(["", "## Method Summary", ""]) + lines.extend(self._markdown_method_summary()) + lines.extend(["", "## Null Result Summary", ""]) + lines.extend(self._markdown_null_result_summary()) + lines.extend(["", "## Expected Failure Whitelist", ""]) + lines.extend(self._markdown_expected_failure_whitelist()) + lines.extend(["", "## Detailed Mismatches", ""]) + lines.extend(self._markdown_details()) + return "\n".join(lines).rstrip() + "\n" + + def _markdown_case_summary(self): + lines = ["| Category | Cases | Methods |", "| --- | ---: | --- |"] + for attr in [ + "schema_correct", + "not_implemented", + "request_schema_wrong", + "response_schema_wrong", + ]: + results = getattr(self, attr) + methods = sorted({result.method for result in results}) + lines.append( + "| {} | {} | {} |".format( + SCHEMA_CATEGORY_TITLES[attr], + len(results), + ", ".join(methods) if methods else "-", + ) + ) + return lines + + def _markdown_method_summary(self): + by_method = defaultdict(list) + for result in self._all_results(): + by_method[result.method].append(result) + + by_verdict = defaultdict(list) + for method, results in sorted(by_method.items()): + by_verdict[self._method_verdict(results)].append((method, results)) + + lines = ["| Category | Methods | Details |", "| --- | ---: | --- |"] + for verdict in [ + "schema_correct", + "not_implemented", + "request_schema_wrong", + "response_schema_wrong", + "mixed_wrong", + ]: + methods = by_verdict.get(verdict, []) + details = [] + for method, results in methods: + counts = defaultdict(int) + for result in results: + counts[result.category] += 1 + count_text = ", ".join( + f"{category}={counts[category]}" for category in sorted(counts) + ) + details.append(f"`{method}` ({count_text})") + lines.append( + "| {} | {} | {} |".format( + SCHEMA_CATEGORY_TITLES[verdict], + len(methods), + "
".join(details) if details else "-", + ) + ) + return lines + + def _markdown_null_result_summary(self): + expected_null = [] + unexpected_null = [] + for result in self._all_results(): + expected = getattr(result, "expected", {}) + actual = getattr(result, "actual", {}) + if ( + "result" in expected + and "result" in actual + and expected.get("result") is None + and actual.get("result") is None + ): + expected_null.append(result) + elif ( + "result" in expected + and "result" in actual + and expected.get("result") is not None + and actual.get("result") is None + ): + unexpected_null.append(result) + + lines = [ + "| Category | Cases | Details |", + "| --- | ---: | --- |", + "| expected `result: null` | {} | {} |".format( + len(expected_null), + ", ".join(f"`{result.spec_name}`" for result in expected_null) or "-", + ), + "| unexpected `result: null` | {} | {} |".format( + len(unexpected_null), + ", ".join(f"`{result.spec_name}`" for result in unexpected_null) or "-", + ), + ] + return lines + + def _markdown_expected_failure_whitelist(self): + lines = [ + ( + "These method-level lists document known gaps that are " + "currently excluded from the schema test failure condition. " + "Reduce these lists as methods are implemented or response " + "schemas are fixed." + ), + "", + "### Unimplemented RPC Methods", + "", + ] + lines.extend(f"- `{method}`" for method in sorted(UNIMPLEMENTED_RPC_METHODS)) + lines.extend( + [ + "", + "### Schema Mismatch Whitelist", + "", + "| Category | RPC Methods |", + "| --- | --- |", + ] + ) + for category in [ + "request_schema_wrong", + "response_schema_wrong", + "mixed_wrong", + ]: + methods = sorted(SCHEMA_MISMATCH_WHITELIST[category]) + lines.append( + "| {} | {} |".format( + SCHEMA_CATEGORY_TITLES[category], + ", ".join(f"`{method}`" for method in methods) or "-", + ) + ) + return lines + + def _markdown_details(self): + lines = [] + for attr in [ + "not_implemented", + "request_schema_wrong", + "response_schema_wrong", + ]: + results = getattr(self, attr) + lines.extend([f"### {SCHEMA_CATEGORY_TITLES[attr]}", ""]) + if not results: + lines.extend(["No cases.", ""]) + continue + + for result in results: + lines.extend( + [ + f"#### `{result.spec_name}`", + "", + f"- Method: `{result.method}`", + f"- Reason: {result.reason}", + f"- Comment: {result.comment or '-'}", + "", + ] + ) + if result.category == "response_schema_wrong": + lines.extend( + [ + "Schema differences:", + "", + "```text", + _format_schema_differences( + result.schema_expected, result.schema_actual + ), + "```", + "", + ] + ) + lines.extend( + [ + "Request:", + "", + "```json", + _markdown_json(result.request), + "```", + "", + "Expected:", + "", + "```json", + _markdown_json(result.expected), + "```", + "", + "Actual:", + "", + "```json", + _markdown_json(result.actual), + "```", + "", + ] + ) + return lines + + def _format_method_summary(self): + by_method = defaultdict(list) + for result in self._all_results(): + by_method[result.method].append(result) + + by_verdict = defaultdict(list) + for method, results in sorted(by_method.items()): + verdict = self._method_verdict(results) + by_verdict[verdict].append((method, results)) + + lines = ["", "ethermint RPC spec schema method summary (exclusive)"] + for verdict in [ + "schema_correct", + "not_implemented", + "request_schema_wrong", + "response_schema_wrong", + "mixed_wrong", + ]: + methods = by_verdict.get(verdict, []) + lines.append(f"- {SCHEMA_CATEGORY_TITLES[verdict]}: {len(methods)}") + for method, results in methods: + counts = defaultdict(int) + for result in results: + counts[result.category] += 1 + details = ", ".join( + f"{category}={counts[category]}" for category in sorted(counts) + ) + lines.append(f" {method}: {details}") + unexpected_null = [ + result + for result in self._all_results() + if "result" in getattr(result, "expected", {}) + and "result" in getattr(result, "actual", {}) + and getattr(result, "expected", {}).get("result") is not None + and getattr(result, "actual", {}).get("result") is None + ] + lines.extend( + [ + "", + "ethermint RPC spec schema null-result summary", + f"- unexpected result: null: {len(unexpected_null)}", + ] + ) + return lines + + def _all_results(self): + return ( + self.schema_correct + + self.not_implemented + + self.request_schema_wrong + + self.response_schema_wrong + ) + + @staticmethod + def _method_verdict(results): + categories = {result.category for result in results} + if categories == {"schema_correct"}: + return "schema_correct" + if categories == {"not_implemented"}: + return "not_implemented" + + wrong_categories = categories - {"schema_correct"} + if len(wrong_categories) == 1: + return next(iter(wrong_categories)) + return "mixed_wrong" + + def method_verdicts(self): + by_method = defaultdict(list) + for result in self._all_results(): + by_method[result.method].append(result) + return { + method: self._method_verdict(results) + for method, results in by_method.items() + } + + +def _format_method_set(methods): + return ", ".join(f"`{method}`" for method in sorted(methods)) or "-" + + +def _schema_mismatches(summary): + mismatches = summary.request_schema_wrong + summary.response_schema_wrong + return [ + f"{result.spec_name} ({result.method}): {result.reason}" + for result in mismatches + ] + + +def _expected_failure_drift(summary): + verdicts = summary.method_verdicts() + expected_by_verdict = { + "not_implemented": UNIMPLEMENTED_RPC_METHODS, + **SCHEMA_MISMATCH_WHITELIST, + } + actual_by_verdict = { + verdict: {method for method, actual in verdicts.items() if actual == verdict} + for verdict in expected_by_verdict + } + + drift = [] + for verdict, expected_methods in expected_by_verdict.items(): + actual_methods = actual_by_verdict[verdict] + unexpected = actual_methods - expected_methods + stale = expected_methods - actual_methods + if unexpected: + drift.append( + "{} has unlisted methods: {}".format( + SCHEMA_CATEGORY_TITLES[verdict], + _format_method_set(unexpected), + ) + ) + if stale: + drift.append( + "{} whitelist has stale methods: {}".format( + SCHEMA_CATEGORY_TITLES[verdict], + _format_method_set(stale), + ) + ) + + allowed_wrong_verdicts = set(expected_by_verdict) + unexpected_wrong_verdicts = { + verdict + for verdict in verdicts.values() + if verdict != "schema_correct" and verdict not in allowed_wrong_verdicts + } + for verdict in sorted(unexpected_wrong_verdicts): + methods = {method for method, actual in verdicts.items() if actual == verdict} + drift.append( + "{} has no whitelist: {}".format( + SCHEMA_CATEGORY_TITLES[verdict], + _format_method_set(methods), + ) + ) + return drift diff --git a/tests/integration_tests/spec/_schema_rewrite.py b/tests/integration_tests/spec/_schema_rewrite.py new file mode 100644 index 0000000000..33e84abb93 --- /dev/null +++ b/tests/integration_tests/spec/_schema_rewrite.py @@ -0,0 +1,297 @@ +from copy import deepcopy + +from test_rpc_spec import _rewrite_request_for_ethermint_runtime_fixture + +from _schema_constants import ( + ETH_SIMULATE_TIMESTAMP_HEADROOM, + LOCAL_LOG_FUTURE_BLOCK_RANGE_EXCEPTIONS, + LOCAL_LOG_SCHEMA_EXCEPTIONS, + LOCAL_PROOF_SCHEMA_EXCEPTIONS, + SEND_RAW_TRANSACTION_LOCAL_TX_KEYS, + TRANSACTION_BY_HASH_LOCAL_TX_KEYS, + TRANSACTION_RECEIPT_LOCAL_TX_KEYS, +) + + +def _has_non_null_result(expected): + return expected.get("result") is not None + + +def _first_receipt_block_number(expected): + result = expected.get("result") + if not isinstance(result, list) or not result: + return None + + first_receipt = result[0] + if not isinstance(first_receipt, dict): + return None + + block_number = first_receipt.get("blockNumber") + return block_number if isinstance(block_number, str) else None + + +def _first_log_block_number(expected): + result = expected.get("result") + if not isinstance(result, list) or not result: + return None + + first_log = result[0] + if not isinstance(first_log, dict): + return None + + block_number = first_log.get("blockNumber") + return block_number if isinstance(block_number, str) else None + + +def _is_hex_quantity(value): + return isinstance(value, str) and value.startswith("0x") and len(value) < 66 + + +def _hex_quantity_to_int(value): + if not _is_hex_quantity(value): + return None + try: + return int(value, 16) + except ValueError: + return None + + +def _eth_simulate_block_state_calls(request): + params = request.get("params") + if not isinstance(params, list) or not params: + return None + + options = params[0] + if not isinstance(options, dict): + return None + + block_state_calls = options.get("blockStateCalls") + return block_state_calls if isinstance(block_state_calls, list) else None + + +def _block_override_values(block_state_calls, key): + values = [] + for block_state_call in block_state_calls: + if not isinstance(block_state_call, dict): + continue + + block_overrides = block_state_call.get("blockOverrides") + if not isinstance(block_overrides, dict): + continue + + value = _hex_quantity_to_int(block_overrides.get(key)) + if value is not None: + values.append(value) + return values + + +def _shift_block_override_values(block_state_calls, key, base_value): + values = _block_override_values(block_state_calls, key) + if not values: + return False + + first_value = min(values) + for block_state_call in block_state_calls: + if not isinstance(block_state_call, dict): + continue + + block_overrides = block_state_call.get("blockOverrides") + if not isinstance(block_overrides, dict): + continue + + value = _hex_quantity_to_int(block_overrides.get(key)) + if value is not None: + block_overrides[key] = hex(base_value + value - first_value) + + return True + + +def _first_eth_simulate_result_quantity(expected, key): + result = expected.get("result") + if not isinstance(result, list) or not result: + return None + + first_block = result[0] + if not isinstance(first_block, dict): + return None + + return _hex_quantity_to_int(first_block.get(key)) + + +def _rewrite_eth_simulate_request_for_local_schema_fixture(request, expected, context): + if "result" not in expected or expected.get("result") is None: + return request, False + + block_state_calls = _eth_simulate_block_state_calls(request) + if block_state_calls is None: + return request, False + + number_values = _block_override_values(block_state_calls, "number") + time_values = _block_override_values(block_state_calls, "time") + if not number_values and not time_values: + return request, False + + rewritten = deepcopy(request) + rewritten_block_state_calls = _eth_simulate_block_state_calls(rewritten) + latest_block = context["w3"].eth.get_block("latest") + rewritten_any = False + + if number_values: + first_result_number = _first_eth_simulate_result_quantity(expected, "number") + leading_block_count = 0 + if first_result_number is not None: + leading_block_count = max(0, min(number_values) - first_result_number) + number_base = int(latest_block.number) + 1 + leading_block_count + rewritten_any |= _shift_block_override_values( + rewritten_block_state_calls, "number", number_base + ) + + if time_values: + next_safe_time = int(latest_block.timestamp) + ETH_SIMULATE_TIMESTAMP_HEADROOM + time_base = max(min(time_values), next_safe_time) + rewritten_any |= _shift_block_override_values( + rewritten_block_state_calls, "time", time_base + ) + + return rewritten, rewritten_any + + +def _rewrite_request_for_local_schema_fixture(spec_name, request, expected, context): + rewritten = deepcopy(request) + method = rewritten.get("method") + params = rewritten.get("params") or [] + if not params: + return request, False + + if method == "eth_simulateV1": + return _rewrite_eth_simulate_request_for_local_schema_fixture( + request, expected, context + ) + + if method == "eth_getBlockReceipts": + block_id = params[0] + expected_result = expected.get("result") + + if isinstance(expected_result, list) and expected_result: + if block_id == "latest": + params[0] = context["block_number"] + elif isinstance(block_id, str) and len(block_id) == 66: + block_number = _first_receipt_block_number(expected) + block_hash = context["fixture_block_hashes"].get(block_number) + if block_hash is None: + return request, False + params[0] = block_hash + else: + return request, False + elif expected_result is None and _is_hex_quantity(block_id): + params[0] = context["future_block_number"] + else: + return request, False + + rewritten["params"] = params + return rewritten, True + + if method == "eth_getLogs" and spec_name in LOCAL_LOG_SCHEMA_EXCEPTIONS: + filter_params = params[0] + if not isinstance(filter_params, dict): + return request, False + if not isinstance(filter_params.get("blockHash"), str): + return request, False + + block_number = _first_log_block_number(expected) + block_hash = context["fixture_block_hashes"].get(block_number) + if block_hash is None: + return request, False + + filter_params["blockHash"] = block_hash + rewritten["params"] = params + return rewritten, True + + if method == "eth_getLogs" and spec_name in LOCAL_LOG_FUTURE_BLOCK_RANGE_EXCEPTIONS: + filter_params = params[0] + if not isinstance(filter_params, dict): + return request, False + + filter_params["fromBlock"] = context["block_number"] + filter_params["toBlock"] = context["future_block_number"] + rewritten["params"] = params + return rewritten, True + + if method == "eth_getProof" and spec_name in LOCAL_PROOF_SCHEMA_EXCEPTIONS: + if len(params) < 3 or not isinstance(params[2], str) or len(params[2]) != 66: + return request, False + params[2] = context["block_hash"] + rewritten["params"] = params + return rewritten, True + + if not _has_non_null_result(expected): + return request, False + + if method in { + "eth_getBlockByHash", + "eth_getBlockTransactionCountByHash", + "eth_getTransactionByBlockHashAndIndex", + }: + params[0] = context["block_hash"] + elif method == "eth_getTransactionByBlockNumberAndIndex": + params[0] = context["block_number"] + elif ( + method == "eth_getTransactionByHash" + and spec_name in TRANSACTION_BY_HASH_LOCAL_TX_KEYS + ): + params[0] = context["tx_hashes"][TRANSACTION_BY_HASH_LOCAL_TX_KEYS[spec_name]] + elif ( + method == "eth_getTransactionReceipt" + and spec_name in TRANSACTION_RECEIPT_LOCAL_TX_KEYS + ): + params[0] = context["tx_hashes"][TRANSACTION_RECEIPT_LOCAL_TX_KEYS[spec_name]] + elif ( + method == "eth_sendRawTransaction" + and spec_name in SEND_RAW_TRANSACTION_LOCAL_TX_KEYS + ): + params[0] = context["send_raw_txs"][ + SEND_RAW_TRANSACTION_LOCAL_TX_KEYS[spec_name] + ] + elif method in {"eth_getTransactionByHash", "eth_getTransactionReceipt"}: + params[0] = context["tx_hash"] + elif ( + # The copied execution-api fixture uses a geth block hash. For the + # Ethermint schema test, replace it with a block hash produced by this + # local test chain so eth_getBalance queries an existing historical state. + method == "eth_getBalance" + and len(params) >= 2 + and isinstance(params[1], str) + and len(params[1]) == 66 + and params[1].startswith("0x") + ): + params[1] = context["block_hash"] + else: + return request, False + + rewritten["params"] = params + return rewritten, True + + +def _prepare_schema_request(spec_name, request_body, expected_body, rpc_context): + import json + + request = json.loads(request_body) + expected = json.loads(expected_body) + request, runtime_rewrite_note = _rewrite_request_for_ethermint_runtime_fixture( + spec_name, request + ) + request, rewritten = _rewrite_request_for_local_schema_fixture( + spec_name, request, expected, rpc_context + ) + return request, expected, runtime_rewrite_note, rewritten + + +def _format_case_context(comments, runtime_rewrite_note, rewritten, extra_note=None): + context = comments[0] if comments else "" + if runtime_rewrite_note: + context = f"{context} ({runtime_rewrite_note})" + if rewritten: + context = f"{context} (request rewritten to local Ethermint fixture identifier)" + if extra_note: + context = f"{context} ({extra_note})" + return context diff --git a/tests/integration_tests/spec/test_rpc_spec_schema.py b/tests/integration_tests/spec/test_rpc_spec_schema.py index 4c8dda6943..15dee270e0 100644 --- a/tests/integration_tests/spec/test_rpc_spec_schema.py +++ b/tests/integration_tests/spec/test_rpc_spec_schema.py @@ -1,176 +1,47 @@ +"""Schema-level test for Ethermint JSON-RPC against execution-apis fixtures. + +Each `.io` fixture file in the sub-directories of this `spec/` folder encodes one +request/response pair from the ethereum/execution-apis test suite. This test +replays every fixture against a live Ethermint node and checks that the schema +of the response (key set + JSON value types) matches — without requiring exact values, +because many fields (block hash, gas price, …) are chain-specific. + +Running the test +---------------- +nix-shell ./tests/integration_tests/shell.nix --run "pytest -vv --basetemp=/tmp/eth -s -k test_rpc_spec_schema --session-timeout=6000 --timeout=6000" + +Reading the report +------------------ +After the run a Markdown report is written to: + + /tmp/eth/ethermintcurrent/rpc_schema_report.md +""" + import json -from collections import defaultdict -from copy import deepcopy +import sys from pathlib import Path import pytest -from eth_account import Account -from test_rpc_spec import ( - CATEGORY_TITLES, - SPEC_FILES, - RpcSpecResult, - _first_schema_mismatch, - _is_not_implemented, - _is_request_schema_error, - _markdown_json, - _response_kind, - _rewrite_request_for_ethermint_runtime_fixture, - _same_schema, - _send_rpc, -) -from web3 import Web3 - -REPORT_FILENAME = "rpc_schema_report.md" -SCHEMA_CATEGORY_TITLES = { - **CATEGORY_TITLES, - "schema_correct": "correct implemented by schema", -} -# Methods with a partial implementation: the endpoint exists but the response -# schema doesn't yet match the execution-apis spec. Classified as not_implemented -# so they are excluded from schema-mismatch assertions until the shape is complete. -INCOMPLETE_UNIMPLEMENTED_RPC_METHODS = { - # Returns an incomplete txpool shape compared with the execution-apis fixture. - "txpool_content", -} -# Full set of methods whose not_implemented verdict is expected and allowed. -# Includes all partially-implemented methods (above) plus those not implemented at all. -UNIMPLEMENTED_RPC_METHODS = { - "debug_getRawBlock", - "debug_getRawHeader", - "debug_getRawReceipts", - "debug_getRawTransaction", - "eth_blobBaseFee", - "eth_config", - "eth_getStorageValues", - "testing_buildBlockV1", - "txpool_contentFrom", -} | INCOMPLETE_UNIMPLEMENTED_RPC_METHODS -SCHEMA_MISMATCH_WHITELIST = { - "request_schema_wrong": set(), - "response_schema_wrong": set(), - "mixed_wrong": set(), -} -ETHERMINT_MODERN_BLOCK_FIELD_SCHEMA_EXCEPTIONS = { - # Genesis is a pre-fork block in the copied Geth fixture. Ethermint currently - # returns Prague-era block fields for it, so ignore only those extra fields - # until the block formatter becomes fork-aware for historical heights. - "eth_getBlockByNumber/get-genesis", - # The copied geth block-hash fixture is also from an old fork era, but this - # test rewrites the hash to a local Ethermint block before comparing schema. - "eth_getBlockByHash/get-block-by-hash", -} -ETHERMINT_LOCAL_TX_SCHEMA_EXCEPTIONS = { - "eth_getBlockByHash/get-block-by-hash", -} -RELAXED_BLOCK_TRANSACTION_SCHEMA_EXCEPTIONS = { - # These block tags resolve against the local Ethermint chain, not the copied - # Geth fixture chain. Keep checking the block response envelope, but do not - # require per-transaction object schemas to line up when the actual - # transactions are from a different chain and can be different tx types. - "eth_getBlockByNumber/get-finalized", - "eth_getBlockByNumber/get-latest", - "eth_getBlockByNumber/get-safe", -} -MODERN_BLOCK_FIELDS = { - "baseFeePerGas", - "blobGasUsed", - "excessBlobGas", - "parentBeaconBlockRoot", - "requestsHash", - "withdrawals", - "withdrawalsRoot", -} -ETH_SIMULATE_BLOCK_HARDFORK_FIELDS = MODERN_BLOCK_FIELDS -ETH_SIMULATE_TRANSACTION_HARDFORK_FIELDS = { - "accessList", - "authorizationList", - "blobVersionedHashes", - "chainId", - "maxFeePerBlobGas", - "maxFeePerGas", - "maxPriorityFeePerGas", - "yParity", -} -ETH_SIMULATE_TIMESTAMP_HEADROOM = 120 -LOCAL_FIXTURE_TX_FIELDS = { - "chainId", -} -LOCAL_TRANSACTION_SCHEMA_EXCEPTIONS = { - "eth_getTransactionByBlockHashAndIndex/get-block-n", - "eth_getTransactionByBlockNumberAndIndex/get-block-n", - "eth_getTransactionByHash/get-legacy-create", - "eth_getTransactionByHash/get-legacy-input", - "eth_getTransactionByHash/get-legacy-tx", -} -LOCAL_RECEIPT_SCHEMA_EXCEPTIONS = { - "eth_getBlockReceipts/get-block-receipts-by-hash", - "eth_getBlockReceipts/get-block-receipts-latest", -} -LEGACY_RECEIPT_ROOT_STATUS_SCHEMA_EXCEPTIONS = { - "eth_getTransactionReceipt/get-legacy-contract", - "eth_getTransactionReceipt/get-legacy-input", - "eth_getTransactionReceipt/get-legacy-receipt", -} -LOCAL_RECEIPT_FUTURE_NULL_RESULT_ERROR_EXCEPTIONS = { - "eth_getBlockReceipts/get-block-receipts-future", -} -LOCAL_LOG_SCHEMA_EXCEPTIONS = { - "eth_getLogs/filter-with-blockHash", - "eth_getLogs/filter-with-blockHash-and-topics", -} -LOCAL_LOG_FUTURE_BLOCK_RANGE_EXCEPTIONS = { - "eth_getLogs/filter-error-future-block-range", -} -LOCAL_PROOF_SCHEMA_EXCEPTIONS = { - "eth_getProof/get-account-proof-blockhash", -} -LOCAL_FIXTURE_RECEIPT_ADDRESS_FIELDS = { - "contractAddress", - "to", -} -EXCLUDED_SCHEMA_SPEC_CASES = { - # Ethermint currently emits Prague-era block fields for historical blocks. - # Exclude these explicitly fork-scoped Geth fixtures instead of treating - # their expected older response shape as a current Ethermint schema failure. - "eth_getBlockByNumber/get-block-london-fork", - "eth_getBlockByNumber/get-block-merge-fork", - "eth_getBlockByNumber/get-block-shanghai-fork", - "eth_getBlockByNumber/get-block-cancun-fork", -} -TRANSACTION_BY_HASH_LOCAL_TX_KEYS = { - "eth_getTransactionByHash/get-access-list": "access_list", - "eth_getTransactionByHash/get-blob-tx": "blob", - "eth_getTransactionByHash/get-dynamic-fee": "dynamic_fee", - "eth_getTransactionByHash/get-legacy-create": "legacy_create", - "eth_getTransactionByHash/get-legacy-input": "legacy_create", - "eth_getTransactionByHash/get-legacy-tx": "legacy", - "eth_getTransactionByHash/get-setcode-tx": "setcode", -} -TRANSACTION_RECEIPT_LOCAL_TX_KEYS = { - "eth_getTransactionReceipt/get-access-list": "access_list", - "eth_getTransactionReceipt/get-blob-tx": "blob", - "eth_getTransactionReceipt/get-dynamic-fee": "dynamic_fee", - "eth_getTransactionReceipt/get-legacy-contract": "legacy_create", - "eth_getTransactionReceipt/get-legacy-input": "legacy_create", - "eth_getTransactionReceipt/get-legacy-receipt": "legacy", - "eth_getTransactionReceipt/get-setcode-tx": "setcode", -} -SEND_RAW_TRANSACTION_LOCAL_TX_KEYS = { - "eth_sendRawTransaction/send-access-list-transaction": "access_list", - "eth_sendRawTransaction/send-blob-tx": "blob", - "eth_sendRawTransaction/send-dynamic-fee-access-list-transaction": ( - "dynamic_fee_access_list" - ), - "eth_sendRawTransaction/send-dynamic-fee-transaction": "dynamic_fee_create", - "eth_sendRawTransaction/send-legacy-transaction": "legacy", -} -LEGACY_CREATE_BYTECODE = ( - "0x600d380380600d6000396000f360004381526020014681526020014181526020014" - "881526020014481526020013281526020013481526020016000f3" +from _schema_constants import ( + BLOB_VERSIONED_HASH, + EXCLUDED_SCHEMA_SPEC_CASES, + LEGACY_CREATE_BYTECODE, + REPORT_FILENAME, + SEND_RAW_TRANSACTION_LOCAL_TX_KEYS, + TRANSACTION_BY_HASH_LOCAL_TX_KEYS, + TRANSACTION_RECEIPT_LOCAL_TX_KEYS, + UNIMPLEMENTED_RPC_METHODS, ) -BLOB_VERSIONED_HASH = ( - "0x0100000000000000000000000000000000000000000000000000000000000000" +from _schema_normalize import _attach_details, _classify_schema +from _schema_report import ( + RpcSpecSchemaSummary, + _expected_failure_drift, + _schema_mismatches, ) +from _schema_rewrite import _format_case_context, _prepare_schema_request +from eth_account import Account +from test_rpc_spec import SPEC_FILES, _is_not_implemented, _send_rpc +from web3 import Web3 def _parse_spec_interactions(spec_name): @@ -193,266 +64,6 @@ def _parse_spec_interactions(spec_name): return interactions, comments -def _json_type_name(value): - if value is None: - return "null" - if isinstance(value, bool): - return "boolean" - if type(value) in (int, float): - return "number" - if isinstance(value, str): - return "string" - if isinstance(value, list): - return "array" - if isinstance(value, dict): - return "object" - return type(value).__name__ - - -def _schema_differences(expected, actual, path="$"): - if isinstance(expected, dict) and isinstance(actual, dict): - differences = [] - expected_keys = set(expected) - actual_keys = set(actual) - missing = sorted(expected_keys - actual_keys) - extra = sorted(actual_keys - expected_keys) - if missing: - differences.append(f"{path}: expected-only keys {missing}") - if extra: - differences.append(f"{path}: actual-only keys {extra}") - for key in sorted(expected_keys & actual_keys): - differences.extend( - _schema_differences(expected[key], actual[key], f"{path}.{key}") - ) - return differences - - if isinstance(expected, list) and isinstance(actual, list): - if not expected or not actual: - return [] - differences = [] - for index, (exp, act) in enumerate(zip(expected, actual)): - differences.extend(_schema_differences(exp, act, f"{path}[{index}]")) - return differences - - if type(expected) in (int, float) and type(actual) in (int, float): - return [] - - if type(expected) is not type(actual): - return [ - f"{path}: expected {_json_type_name(expected)}, " - f"got {_json_type_name(actual)}" - ] - - return [] - - -def _format_schema_differences(expected, actual): - differences = _schema_differences(expected, actual) - return "\n".join(differences) if differences else "-" - - -def _normalize_historical_block_schema_exception(spec_name, expected, actual): - if ( - spec_name not in ETHERMINT_MODERN_BLOCK_FIELD_SCHEMA_EXCEPTIONS - and spec_name not in ETHERMINT_LOCAL_TX_SCHEMA_EXCEPTIONS - and spec_name not in RELAXED_BLOCK_TRANSACTION_SCHEMA_EXCEPTIONS - ): - return expected, actual - - normalized_expected = deepcopy(expected) - normalized_actual = deepcopy(actual) - expected_result = normalized_expected.get("result") - actual_result = normalized_actual.get("result") - if not isinstance(expected_result, dict) or not isinstance(actual_result, dict): - return normalized_expected, normalized_actual - - if spec_name in ETHERMINT_MODERN_BLOCK_FIELD_SCHEMA_EXCEPTIONS: - # Geth formats historical blocks according to the fork active at that block. - # Ethermint currently derives Ethereum RPC headers from CometBFT blocks and - # populates modern fork fields even for historical blocks. Keep these old - # fork fixtures useful for the schema test by ignoring only those known - # extra fields until Ethermint's RPC block formatter is fork-aware. - for field in MODERN_BLOCK_FIELDS: - actual_result.pop(field, None) - - if spec_name in RELAXED_BLOCK_TRANSACTION_SCHEMA_EXCEPTIONS: - expected_txs = expected_result.get("transactions") - actual_txs = actual_result.get("transactions") - if isinstance(expected_txs, list) and isinstance(actual_txs, list): - expected_result["transactions"] = [] - actual_result["transactions"] = [] - - if spec_name not in ETHERMINT_LOCAL_TX_SCHEMA_EXCEPTIONS: - return normalized_expected, normalized_actual - - # This test rewrites the original Geth block hash to a local Ethermint block. - # The local transfer transaction can include modern transaction-only fields - # and a non-null `to`, while the copied fixture's first transactions are - # contract creations. Normalize those local fixture artifacts separately from - # the block-header fork fields above. - expected_txs = expected_result.get("transactions", []) - actual_txs = actual_result.get("transactions", []) - if isinstance(expected_txs, list) and isinstance(actual_txs, list): - for expected_tx, actual_tx in zip(expected_txs, actual_txs): - if not isinstance(expected_tx, dict) or not isinstance(actual_tx, dict): - continue - for field in LOCAL_FIXTURE_TX_FIELDS: - actual_tx.pop(field, None) - if expected_tx.get("to") is None and isinstance(actual_tx.get("to"), str): - actual_tx["to"] = None - - return normalized_expected, normalized_actual - - -def _normalize_local_receipt_schema_exception(spec_name, expected, actual): - if spec_name not in LOCAL_RECEIPT_SCHEMA_EXCEPTIONS: - return expected, actual - - normalized_expected = deepcopy(expected) - normalized_actual = deepcopy(actual) - expected_result = normalized_expected.get("result") - actual_result = normalized_actual.get("result") - if not isinstance(expected_result, list) or not isinstance(actual_result, list): - return normalized_expected, normalized_actual - - for expected_receipt, actual_receipt in zip(expected_result, actual_result): - if not isinstance(expected_receipt, dict) or not isinstance( - actual_receipt, dict - ): - continue - - for field in LOCAL_FIXTURE_RECEIPT_ADDRESS_FIELDS: - if field not in expected_receipt or field not in actual_receipt: - continue - - expected_value = expected_receipt[field] - actual_value = actual_receipt[field] - if (expected_value is None and isinstance(actual_value, str)) or ( - actual_value is None and isinstance(expected_value, str) - ): - expected_receipt[field] = None - actual_receipt[field] = None - - return normalized_expected, normalized_actual - - -def _normalize_legacy_receipt_schema_exception(spec_name, expected, actual): - if spec_name not in LEGACY_RECEIPT_ROOT_STATUS_SCHEMA_EXCEPTIONS: - return expected, actual - - normalized_expected = deepcopy(expected) - normalized_actual = deepcopy(actual) - expected_result = normalized_expected.get("result") - actual_result = normalized_actual.get("result") - if not isinstance(expected_result, dict) or not isinstance(actual_result, dict): - return normalized_expected, normalized_actual - - # The copied Geth legacy receipt fixtures use the pre-Byzantium `root` - # field, while local Ethermint receipts expose the modern `status` field. - # Keep the rest of the receipt schema comparison strict. - if ( - "root" in expected_result - and "status" not in expected_result - and "status" in actual_result - and "root" not in actual_result - ): - expected_result.pop("root") - actual_result.pop("status") - - return normalized_expected, normalized_actual - - -def _normalize_local_transaction_schema_exception(spec_name, expected, actual): - if spec_name not in LOCAL_TRANSACTION_SCHEMA_EXCEPTIONS: - return expected, actual - - normalized_expected = deepcopy(expected) - normalized_actual = deepcopy(actual) - expected_result = normalized_expected.get("result") - actual_result = normalized_actual.get("result") - if not isinstance(expected_result, dict) or not isinstance(actual_result, dict): - return normalized_expected, normalized_actual - - # These copied Geth fixtures query historical unprotected transactions whose - # transaction response omits `chainId`. Ethermint currently formats historical - # transaction responses with the latest field set, so ignore that local-only - # field when the request is rewritten to an Ethermint block/transaction. - if "chainId" not in expected_result: - actual_result.pop("chainId", None) - - # The copied Geth transaction is contract creation (`to: null`), but the - # local Ethermint transaction at the rewritten block/index can be a normal - # transfer. Keep the comparison focused on RPC schema fields, not tx kind. - expected_to = expected_result.get("to") - actual_to = actual_result.get("to") - if (expected_to is None and isinstance(actual_to, str)) or ( - actual_to is None and isinstance(expected_to, str) - ): - expected_result["to"] = None - actual_result["to"] = None - - return normalized_expected, normalized_actual - - -def _drop_asymmetric_fields(expected, actual, fields): - for field in fields: - if field in expected and field in actual: - continue - expected.pop(field, None) - actual.pop(field, None) - - -def _normalize_eth_simulate_schema_exception(spec_name, expected, actual): - if not spec_name.startswith("eth_simulateV1/"): - return expected, actual - - normalized_expected = deepcopy(expected) - normalized_actual = deepcopy(actual) - expected_result = normalized_expected.get("result") - actual_result = normalized_actual.get("result") - if not isinstance(expected_result, list) or not isinstance(actual_result, list): - return normalized_expected, normalized_actual - - for expected_block, actual_block in zip(expected_result, actual_result): - if not isinstance(expected_block, dict) or not isinstance(actual_block, dict): - continue - - # Ethermint may format simulated blocks/transactions with the latest - # hardfork field set even when the copied Geth fixture was generated for - # an earlier fork. Keep non-hardfork schema comparison strict. - _drop_asymmetric_fields( - expected_block, actual_block, ETH_SIMULATE_BLOCK_HARDFORK_FIELDS - ) - - expected_txs = expected_block.get("transactions") - actual_txs = actual_block.get("transactions") - if not isinstance(expected_txs, list) or not isinstance(actual_txs, list): - continue - - for expected_tx, actual_tx in zip(expected_txs, actual_txs): - if not isinstance(expected_tx, dict) or not isinstance(actual_tx, dict): - continue - _drop_asymmetric_fields( - expected_tx, actual_tx, ETH_SIMULATE_TRANSACTION_HARDFORK_FIELDS - ) - - return normalized_expected, normalized_actual - - -def _is_local_receipt_future_null_result_error(spec_name, expected, actual): - if spec_name not in LOCAL_RECEIPT_FUTURE_NULL_RESULT_ERROR_EXCEPTIONS: - return False - if expected.get("result") is not None: - return False - - error = actual.get("error") or {} - message = str(error.get("message", "")).lower() - return ( - error.get("code") == -32000 - and "must be less than or equal to the current blockchain height" in message - ) - - def _eip1559_fees(w3): latest = w3.eth.get_block("latest") base_fee = int(latest.get("baseFeePerGas") or w3.eth.gas_price) @@ -639,8 +250,6 @@ def _build_send_raw_transactions(w3, to, accounts, access_list): @pytest.fixture(scope="module") def rpc_context(rpc_endpoint, ethermint): - import sys - sys.path.append(str(Path(__file__).parents[1])) from utils import ADDRS, KEYS, derive_new_account, fund_acc, send_transaction @@ -738,753 +347,6 @@ def rpc_context(rpc_endpoint, ethermint): } -class RpcSpecSchemaSummary: - def __init__(self): - self.schema_correct = [] - self.not_implemented = [] - self.request_schema_wrong = [] - self.response_schema_wrong = [] - - def add(self, result): - getattr(self, result.category).append(result) - - def format(self): - lines = ["ethermint RPC spec schema case summary"] - for attr in [ - "schema_correct", - "not_implemented", - "request_schema_wrong", - "response_schema_wrong", - ]: - results = getattr(self, attr) - lines.append(f"- {SCHEMA_CATEGORY_TITLES[attr]}: {len(results)}") - by_method = defaultdict(int) - examples = [] - for result in results: - by_method[result.method] += 1 - if len(examples) < 8: - examples.append(result) - if by_method: - method_counts = ", ".join( - f"{method}={count}" for method, count in sorted(by_method.items()) - ) - lines.append(f" methods: {method_counts}") - for result in examples: - lines.append(f" example: {result.spec_name}: {result.reason}") - if len(results) > len(examples): - lines.append(f" ... {len(results) - len(examples)} more") - lines.extend(self._format_method_summary()) - return "\n".join(lines) - - def report(self): - lines = [ - "# Ethermint RPC Schema Spec Report", - "", - "Generated by `spec/test_rpc_spec_schema.py`.", - "", - ( - "This report compares Ethermint JSON-RPC responses with the " - "copied execution-apis `.io` fixtures by schema only. Values " - "are ignored, but response kind, object keys, and JSON value " - "types must match." - ), - "", - "## Excluded Cases", - "", - ( - "These fork-specific block-number fixtures are skipped " - "because Ethermint currently returns Prague-era block fields " - "for historical blocks, while Geth formats each block " - "response according to the fork active at the queried block." - ), - "", - ] - lines.extend( - f"- `{spec_name}`" for spec_name in sorted(EXCLUDED_SCHEMA_SPEC_CASES) - ) - lines.extend( - [ - "", - "## Case Summary", - "", - ] - ) - lines.extend(self._markdown_case_summary()) - lines.extend(["", "## Method Summary", ""]) - lines.extend(self._markdown_method_summary()) - lines.extend(["", "## Null Result Summary", ""]) - lines.extend(self._markdown_null_result_summary()) - lines.extend(["", "## Expected Failure Whitelist", ""]) - lines.extend(self._markdown_expected_failure_whitelist()) - lines.extend(["", "## Detailed Mismatches", ""]) - lines.extend(self._markdown_details()) - return "\n".join(lines).rstrip() + "\n" - - def _markdown_case_summary(self): - lines = ["| Category | Cases | Methods |", "| --- | ---: | --- |"] - for attr in [ - "schema_correct", - "not_implemented", - "request_schema_wrong", - "response_schema_wrong", - ]: - results = getattr(self, attr) - methods = sorted({result.method for result in results}) - lines.append( - "| {} | {} | {} |".format( - SCHEMA_CATEGORY_TITLES[attr], - len(results), - ", ".join(methods) if methods else "-", - ) - ) - return lines - - def _markdown_method_summary(self): - by_method = defaultdict(list) - for result in self._all_results(): - by_method[result.method].append(result) - - by_verdict = defaultdict(list) - for method, results in sorted(by_method.items()): - by_verdict[self._method_verdict(results)].append((method, results)) - - lines = ["| Category | Methods | Details |", "| --- | ---: | --- |"] - for verdict in [ - "schema_correct", - "not_implemented", - "request_schema_wrong", - "response_schema_wrong", - "mixed_wrong", - ]: - methods = by_verdict.get(verdict, []) - details = [] - for method, results in methods: - counts = defaultdict(int) - for result in results: - counts[result.category] += 1 - count_text = ", ".join( - f"{category}={counts[category]}" for category in sorted(counts) - ) - details.append(f"`{method}` ({count_text})") - lines.append( - "| {} | {} | {} |".format( - SCHEMA_CATEGORY_TITLES[verdict], - len(methods), - "
".join(details) if details else "-", - ) - ) - return lines - - def _markdown_null_result_summary(self): - expected_null = [] - unexpected_null = [] - for result in self._all_results(): - expected = getattr(result, "expected", {}) - actual = getattr(result, "actual", {}) - if ( - "result" in expected - and "result" in actual - and expected.get("result") is None - and actual.get("result") is None - ): - expected_null.append(result) - elif ( - "result" in expected - and "result" in actual - and expected.get("result") is not None - and actual.get("result") is None - ): - unexpected_null.append(result) - - lines = [ - "| Category | Cases | Details |", - "| --- | ---: | --- |", - "| expected `result: null` | {} | {} |".format( - len(expected_null), - ", ".join(f"`{result.spec_name}`" for result in expected_null) or "-", - ), - "| unexpected `result: null` | {} | {} |".format( - len(unexpected_null), - ", ".join(f"`{result.spec_name}`" for result in unexpected_null) or "-", - ), - ] - return lines - - def _markdown_expected_failure_whitelist(self): - lines = [ - ( - "These method-level lists document known gaps that are " - "currently excluded from the schema test failure condition. " - "Reduce these lists as methods are implemented or response " - "schemas are fixed." - ), - "", - "### Unimplemented RPC Methods", - "", - ] - lines.extend(f"- `{method}`" for method in sorted(UNIMPLEMENTED_RPC_METHODS)) - lines.extend( - [ - "", - "### Schema Mismatch Whitelist", - "", - "| Category | RPC Methods |", - "| --- | --- |", - ] - ) - for category in [ - "request_schema_wrong", - "response_schema_wrong", - "mixed_wrong", - ]: - methods = sorted(SCHEMA_MISMATCH_WHITELIST[category]) - lines.append( - "| {} | {} |".format( - SCHEMA_CATEGORY_TITLES[category], - ", ".join(f"`{method}`" for method in methods) or "-", - ) - ) - return lines - - def _markdown_details(self): - lines = [] - for attr in [ - "not_implemented", - "request_schema_wrong", - "response_schema_wrong", - ]: - results = getattr(self, attr) - lines.extend([f"### {SCHEMA_CATEGORY_TITLES[attr]}", ""]) - if not results: - lines.extend(["No cases.", ""]) - continue - - for result in results: - lines.extend( - [ - f"#### `{result.spec_name}`", - "", - f"- Method: `{result.method}`", - f"- Reason: {result.reason}", - f"- Comment: {result.comment or '-'}", - "", - ] - ) - if result.category == "response_schema_wrong": - lines.extend( - [ - "Schema differences:", - "", - "```text", - _format_schema_differences( - result.schema_expected, result.schema_actual - ), - "```", - "", - ] - ) - lines.extend( - [ - "Request:", - "", - "```json", - _markdown_json(result.request), - "```", - "", - "Expected:", - "", - "```json", - _markdown_json(result.expected), - "```", - "", - "Actual:", - "", - "```json", - _markdown_json(result.actual), - "```", - "", - ] - ) - return lines - - def _format_method_summary(self): - by_method = defaultdict(list) - for result in self._all_results(): - by_method[result.method].append(result) - - by_verdict = defaultdict(list) - for method, results in sorted(by_method.items()): - verdict = self._method_verdict(results) - by_verdict[verdict].append((method, results)) - - lines = ["", "ethermint RPC spec schema method summary (exclusive)"] - for verdict in [ - "schema_correct", - "not_implemented", - "request_schema_wrong", - "response_schema_wrong", - "mixed_wrong", - ]: - methods = by_verdict.get(verdict, []) - lines.append(f"- {SCHEMA_CATEGORY_TITLES[verdict]}: {len(methods)}") - for method, results in methods: - counts = defaultdict(int) - for result in results: - counts[result.category] += 1 - details = ", ".join( - f"{category}={counts[category]}" for category in sorted(counts) - ) - lines.append(f" {method}: {details}") - unexpected_null = [ - result - for result in self._all_results() - if "result" in getattr(result, "expected", {}) - and "result" in getattr(result, "actual", {}) - and getattr(result, "expected", {}).get("result") is not None - and getattr(result, "actual", {}).get("result") is None - ] - lines.extend( - [ - "", - "ethermint RPC spec schema null-result summary", - f"- unexpected result: null: {len(unexpected_null)}", - ] - ) - return lines - - def _all_results(self): - return ( - self.schema_correct - + self.not_implemented - + self.request_schema_wrong - + self.response_schema_wrong - ) - - @staticmethod - def _method_verdict(results): - categories = {result.category for result in results} - if categories == {"schema_correct"}: - return "schema_correct" - if categories == {"not_implemented"}: - return "not_implemented" - - wrong_categories = categories - {"schema_correct"} - if len(wrong_categories) == 1: - return next(iter(wrong_categories)) - return "mixed_wrong" - - def method_verdicts(self): - by_method = defaultdict(list) - for result in self._all_results(): - by_method[result.method].append(result) - return { - method: self._method_verdict(results) - for method, results in by_method.items() - } - - -def _classify_schema(spec_name, request, expected, actual): - method = request.get("method", "") - - if _is_not_implemented(actual): - return RpcSpecResult( - spec_name, - method, - "not_implemented", - actual.get("error", {}).get("message", "method not implemented"), - ) - - if _is_local_receipt_future_null_result_error(spec_name, expected, actual): - return RpcSpecResult( - spec_name, - method, - "schema_correct", - "matching future block not found response", - ) - - expected_kind = _response_kind(expected) - actual_kind = _response_kind(actual) - - if expected_kind == "error" and actual_kind == "result": - return RpcSpecResult( - spec_name, - method, - "request_schema_wrong", - "spec expects request rejection, ethermint accepted it", - ) - - if ( - expected_kind == "result" - and actual_kind == "error" - and _is_request_schema_error(actual) - ): - return RpcSpecResult( - spec_name, - method, - "request_schema_wrong", - f"expected {expected_kind}, got request validation error: " - f"{actual.get('error', {}).get('message')}", - ) - - if expected_kind != actual_kind: - if method in INCOMPLETE_UNIMPLEMENTED_RPC_METHODS: - return RpcSpecResult( - spec_name, - method, - "not_implemented", - f"incomplete implementation: expected {expected_kind} response, " - f"got {actual_kind}", - ) - return RpcSpecResult( - spec_name, - method, - "response_schema_wrong", - f"expected {expected_kind} response, got {actual_kind}", - ) - - schema_expected, schema_actual = _normalize_schema_exceptions( - spec_name, expected, actual - ) - if not _same_schema(schema_expected, schema_actual): - mismatch = ( - _first_schema_mismatch(schema_expected, schema_actual) or "schema differs" - ) - if method in INCOMPLETE_UNIMPLEMENTED_RPC_METHODS: - return RpcSpecResult( - spec_name, - method, - "not_implemented", - f"incomplete implementation: {mismatch}", - ) - return RpcSpecResult( - spec_name, - method, - "response_schema_wrong", - mismatch, - ) - - if actual_kind == "error" and _is_request_schema_error(actual): - return RpcSpecResult( - spec_name, - method, - "schema_correct", - "matching request validation error schema", - ) - - return RpcSpecResult(spec_name, method, "schema_correct", "schema match") - - -def _normalize_schema_exceptions(spec_name, expected, actual): - schema_expected, schema_actual = _normalize_historical_block_schema_exception( - spec_name, expected, actual - ) - schema_expected, schema_actual = _normalize_local_receipt_schema_exception( - spec_name, schema_expected, schema_actual - ) - schema_expected, schema_actual = _normalize_legacy_receipt_schema_exception( - spec_name, schema_expected, schema_actual - ) - schema_expected, schema_actual = _normalize_local_transaction_schema_exception( - spec_name, schema_expected, schema_actual - ) - return _normalize_eth_simulate_schema_exception( - spec_name, schema_expected, schema_actual - ) - - -def _attach_details(result, request, expected, actual, comment): - result.request = request - result.expected = expected - result.actual = actual - result.schema_expected, result.schema_actual = _normalize_schema_exceptions( - result.spec_name, expected, actual - ) - result.comment = comment - return result - - -def _has_non_null_result(expected): - return expected.get("result") is not None - - -def _first_receipt_block_number(expected): - result = expected.get("result") - if not isinstance(result, list) or not result: - return None - - first_receipt = result[0] - if not isinstance(first_receipt, dict): - return None - - block_number = first_receipt.get("blockNumber") - return block_number if isinstance(block_number, str) else None - - -def _first_log_block_number(expected): - result = expected.get("result") - if not isinstance(result, list) or not result: - return None - - first_log = result[0] - if not isinstance(first_log, dict): - return None - - block_number = first_log.get("blockNumber") - return block_number if isinstance(block_number, str) else None - - -def _is_hex_quantity(value): - return isinstance(value, str) and value.startswith("0x") and len(value) < 66 - - -def _hex_quantity_to_int(value): - if not _is_hex_quantity(value): - return None - try: - return int(value, 16) - except ValueError: - return None - - -def _eth_simulate_block_state_calls(request): - params = request.get("params") - if not isinstance(params, list) or not params: - return None - - options = params[0] - if not isinstance(options, dict): - return None - - block_state_calls = options.get("blockStateCalls") - return block_state_calls if isinstance(block_state_calls, list) else None - - -def _block_override_values(block_state_calls, key): - values = [] - for block_state_call in block_state_calls: - if not isinstance(block_state_call, dict): - continue - - block_overrides = block_state_call.get("blockOverrides") - if not isinstance(block_overrides, dict): - continue - - value = _hex_quantity_to_int(block_overrides.get(key)) - if value is not None: - values.append(value) - return values - - -def _shift_block_override_values(block_state_calls, key, base_value): - values = _block_override_values(block_state_calls, key) - if not values: - return False - - first_value = min(values) - for block_state_call in block_state_calls: - if not isinstance(block_state_call, dict): - continue - - block_overrides = block_state_call.get("blockOverrides") - if not isinstance(block_overrides, dict): - continue - - value = _hex_quantity_to_int(block_overrides.get(key)) - if value is not None: - block_overrides[key] = hex(base_value + value - first_value) - - return True - - -def _first_eth_simulate_result_quantity(expected, key): - result = expected.get("result") - if not isinstance(result, list) or not result: - return None - - first_block = result[0] - if not isinstance(first_block, dict): - return None - - return _hex_quantity_to_int(first_block.get(key)) - - -def _rewrite_eth_simulate_request_for_local_schema_fixture(request, expected, context): - if "result" not in expected or expected.get("result") is None: - return request, False - - block_state_calls = _eth_simulate_block_state_calls(request) - if block_state_calls is None: - return request, False - - number_values = _block_override_values(block_state_calls, "number") - time_values = _block_override_values(block_state_calls, "time") - if not number_values and not time_values: - return request, False - - rewritten = deepcopy(request) - rewritten_block_state_calls = _eth_simulate_block_state_calls(rewritten) - latest_block = context["w3"].eth.get_block("latest") - rewritten_any = False - - if number_values: - first_result_number = _first_eth_simulate_result_quantity(expected, "number") - leading_block_count = 0 - if first_result_number is not None: - leading_block_count = max(0, min(number_values) - first_result_number) - number_base = int(latest_block.number) + 1 + leading_block_count - rewritten_any |= _shift_block_override_values( - rewritten_block_state_calls, "number", number_base - ) - - if time_values: - next_safe_time = int(latest_block.timestamp) + ETH_SIMULATE_TIMESTAMP_HEADROOM - time_base = max(min(time_values), next_safe_time) - rewritten_any |= _shift_block_override_values( - rewritten_block_state_calls, "time", time_base - ) - - return rewritten, rewritten_any - - -def _rewrite_request_for_local_schema_fixture(spec_name, request, expected, context): - rewritten = deepcopy(request) - method = rewritten.get("method") - params = rewritten.get("params") or [] - if not params: - return request, False - - if method == "eth_simulateV1": - return _rewrite_eth_simulate_request_for_local_schema_fixture( - request, expected, context - ) - - if method == "eth_getBlockReceipts": - block_id = params[0] - expected_result = expected.get("result") - - if isinstance(expected_result, list) and expected_result: - if block_id == "latest": - params[0] = context["block_number"] - elif isinstance(block_id, str) and len(block_id) == 66: - block_number = _first_receipt_block_number(expected) - block_hash = context["fixture_block_hashes"].get(block_number) - if block_hash is None: - return request, False - params[0] = block_hash - else: - return request, False - elif expected_result is None and _is_hex_quantity(block_id): - params[0] = context["future_block_number"] - else: - return request, False - - rewritten["params"] = params - return rewritten, True - - if method == "eth_getLogs" and spec_name in LOCAL_LOG_SCHEMA_EXCEPTIONS: - filter_params = params[0] - if not isinstance(filter_params, dict): - return request, False - if not isinstance(filter_params.get("blockHash"), str): - return request, False - - block_number = _first_log_block_number(expected) - block_hash = context["fixture_block_hashes"].get(block_number) - if block_hash is None: - return request, False - - filter_params["blockHash"] = block_hash - rewritten["params"] = params - return rewritten, True - - if method == "eth_getLogs" and spec_name in LOCAL_LOG_FUTURE_BLOCK_RANGE_EXCEPTIONS: - filter_params = params[0] - if not isinstance(filter_params, dict): - return request, False - - filter_params["fromBlock"] = context["block_number"] - filter_params["toBlock"] = context["future_block_number"] - rewritten["params"] = params - return rewritten, True - - if method == "eth_getProof" and spec_name in LOCAL_PROOF_SCHEMA_EXCEPTIONS: - if len(params) < 3 or not isinstance(params[2], str) or len(params[2]) != 66: - return request, False - params[2] = context["block_hash"] - rewritten["params"] = params - return rewritten, True - - if not _has_non_null_result(expected): - return request, False - - if method in { - "eth_getBlockByHash", - "eth_getBlockTransactionCountByHash", - "eth_getTransactionByBlockHashAndIndex", - }: - params[0] = context["block_hash"] - elif method == "eth_getTransactionByBlockNumberAndIndex": - params[0] = context["block_number"] - elif ( - method == "eth_getTransactionByHash" - and spec_name in TRANSACTION_BY_HASH_LOCAL_TX_KEYS - ): - params[0] = context["tx_hashes"][TRANSACTION_BY_HASH_LOCAL_TX_KEYS[spec_name]] - elif ( - method == "eth_getTransactionReceipt" - and spec_name in TRANSACTION_RECEIPT_LOCAL_TX_KEYS - ): - params[0] = context["tx_hashes"][TRANSACTION_RECEIPT_LOCAL_TX_KEYS[spec_name]] - elif ( - method == "eth_sendRawTransaction" - and spec_name in SEND_RAW_TRANSACTION_LOCAL_TX_KEYS - ): - params[0] = context["send_raw_txs"][ - SEND_RAW_TRANSACTION_LOCAL_TX_KEYS[spec_name] - ] - elif method in {"eth_getTransactionByHash", "eth_getTransactionReceipt"}: - params[0] = context["tx_hash"] - elif ( - # The copied execution-api fixture uses a geth block hash. For the - # Ethermint schema test, replace it with a block hash produced by this - # local test chain so eth_getBalance queries an existing historical state. - method == "eth_getBalance" - and len(params) >= 2 - and isinstance(params[1], str) - and len(params[1]) == 66 - and params[1].startswith("0x") - ): - params[1] = context["block_hash"] - else: - return request, False - - rewritten["params"] = params - return rewritten, True - - -def _prepare_schema_request(spec_name, request_body, expected_body, rpc_context): - request = json.loads(request_body) - expected = json.loads(expected_body) - request, runtime_rewrite_note = _rewrite_request_for_ethermint_runtime_fixture( - spec_name, request - ) - request, rewritten = _rewrite_request_for_local_schema_fixture( - spec_name, request, expected, rpc_context - ) - return request, expected, runtime_rewrite_note, rewritten - - -def _format_case_context(comments, runtime_rewrite_note, rewritten, extra_note=None): - context = comments[0] if comments else "" - if runtime_rewrite_note: - context = f"{context} ({runtime_rewrite_note})" - if rewritten: - context = f"{context} (request rewritten to local Ethermint fixture identifier)" - if extra_note: - context = f"{context} ({extra_note})" - return context - - def _skip_followups_after_unimplemented_first_request( rpc_context, spec_name, interactions, comments ): @@ -1532,66 +394,6 @@ def _run_spec_case(rpc_context, spec_name): return _attach_details(result, request, expected, actual, context) -def _format_method_set(methods): - return ", ".join(f"`{method}`" for method in sorted(methods)) or "-" - - -def _schema_mismatches(summary): - mismatches = summary.request_schema_wrong + summary.response_schema_wrong - return [ - f"{result.spec_name} ({result.method}): {result.reason}" - for result in mismatches - ] - - -def _expected_failure_drift(summary): - verdicts = summary.method_verdicts() - expected_by_verdict = { - "not_implemented": UNIMPLEMENTED_RPC_METHODS, - **SCHEMA_MISMATCH_WHITELIST, - } - actual_by_verdict = { - verdict: {method for method, actual in verdicts.items() if actual == verdict} - for verdict in expected_by_verdict - } - - drift = [] - for verdict, expected_methods in expected_by_verdict.items(): - actual_methods = actual_by_verdict[verdict] - unexpected = actual_methods - expected_methods - stale = expected_methods - actual_methods - if unexpected: - drift.append( - "{} has unlisted methods: {}".format( - SCHEMA_CATEGORY_TITLES[verdict], - _format_method_set(unexpected), - ) - ) - if stale: - drift.append( - "{} whitelist has stale methods: {}".format( - SCHEMA_CATEGORY_TITLES[verdict], - _format_method_set(stale), - ) - ) - - allowed_wrong_verdicts = set(expected_by_verdict) - unexpected_wrong_verdicts = { - verdict - for verdict in verdicts.values() - if verdict != "schema_correct" and verdict not in allowed_wrong_verdicts - } - for verdict in sorted(unexpected_wrong_verdicts): - methods = {method for method, actual in verdicts.items() if actual == verdict} - drift.append( - "{} has no whitelist: {}".format( - SCHEMA_CATEGORY_TITLES[verdict], - _format_method_set(methods), - ) - ) - return drift - - def test_ethermint_rpc_matches_execution_api_schema(rpc_context): summary = RpcSpecSchemaSummary() for spec_name in SPEC_FILES: From fb5d15048942b04b874e729d53e117a42dc7fb66 Mon Sep 17 00:00:00 2001 From: Xinyu Date: Wed, 24 Jun 2026 12:27:00 +0800 Subject: [PATCH 16/32] test: fix RPC schema lint --- gomod2nix.toml | 71 ++++++++++--------- .../spec/_schema_normalize.py | 21 +++--- .../integration_tests/spec/_schema_report.py | 3 +- .../integration_tests/spec/_schema_rewrite.py | 3 +- .../spec/test_rpc_spec_schema.py | 11 ++- 5 files changed, 54 insertions(+), 55 deletions(-) diff --git a/gomod2nix.toml b/gomod2nix.toml index 2296447ae4..4a6382b619 100644 --- a/gomod2nix.toml +++ b/gomod2nix.toml @@ -177,8 +177,8 @@ schema = 3 version = "v2.3.5" hash = "sha256-stpoaGQ1PNPqtLYIQc96YH24s8owcV+PoSo6xREi9LI=" [mod."github.com/btcsuite/btcd/btcutil"] - version = "v1.1.6" - hash = "sha256-TYbwJLNX/+63nm+b3RqPH3ZIvTBnsm9peqJP05v9Z90=" + version = "v1.2.0" + hash = "sha256-XT3GG5PoTBNhnRDnmj1kf6YsYoVW6MJB/XJq0aKxtys=" [mod."github.com/btcsuite/btcd/chaincfg/chainhash"] version = "v1.1.0" hash = "sha256-F+EqvufC+KBslZV/vL8ph6MqDoVD5ic5rVaM27reDqo=" @@ -268,8 +268,8 @@ schema = 3 version = "v1.2.8" hash = "sha256-9eqXqTs5UjfYmxFiTVR6sm8/56gGSq3WKoN3xss/OFk=" [mod."github.com/cosmos/ibc-go/v11"] - version = "v11.0.0" - hash = "sha256-quFHU6vHmDigd2BxwH/khZebwjqYADvdx0vE073IEqk=" + version = "v11.1.0" + hash = "sha256-wNqlnX3OXFspJlRTmIKd+SjbpU+lCzI5pmv+6sEBiJc=" [mod."github.com/cosmos/ics23/go"] version = "v0.11.0" hash = "sha256-mgU/pqp4kASmW/bP0z6PzssfjRp7GU9ioyvNlDdGC+E=" @@ -431,8 +431,8 @@ schema = 3 version = "v0.0.1" hash = "sha256-KrExYovtUQrHGI1mPQf57jGw8soz7eWOC2xqEaV0uGk=" [mod."github.com/google/pprof"] - version = "v0.0.0-20260115054156-294ebfa9ad83" - hash = "sha256-fhalKl/thSt1gdsHZmFyNGF1Gwxb0YLXV0pBv65EZjE=" + version = "v0.0.0-20260402051712-545e8a4df936" + hash = "sha256-DBaCmfVLei1HComa+xJN76IpPFTUaDfUEhc1U9gmW8g=" [mod."github.com/google/s2a-go"] version = "v0.1.9" hash = "sha256-0AdSpSTso4bATmM/9qamWzKrVtOLDf7afvDhoiT/UpA=" @@ -538,6 +538,9 @@ schema = 3 [mod."github.com/jmhodges/levigo"] version = "v1.0.0" hash = "sha256-xEd0mDBeq3eR/GYeXjoTVb2sPs8sTCosn5ayWkcgENI=" + [mod."github.com/kcalvinalvin/anet"] + version = "v0.0.0-20251112173137-d8ddc1f6dbee" + hash = "sha256-GBQuTXh6oQI4caoM6gJgWXolh7c/fTCNiYnFNfGeRaU=" [mod."github.com/klauspost/compress"] version = "v1.18.5" hash = "sha256-H9b5iFJf4XbEnkGQCjGQAJ3aYhVDiolKrDewTbhuzQo=" @@ -677,11 +680,11 @@ schema = 3 version = "v0.0.5" hash = "sha256-/5i70IkH/qSW5KjGzv8aQNKh9tHoz98tqtL0K2DMFn4=" [mod."github.com/onsi/ginkgo/v2"] - version = "v2.28.0" - hash = "sha256-p5cif8IrShko0DyGHkdjnDaHc+S8ZiQ9dKsOz8nogzQ=" + version = "v2.32.0" + hash = "sha256-EHQbD61XSnuHx36LFDwp0OPnmefB7KyifgkfqoIJcEs=" [mod."github.com/onsi/gomega"] - version = "v1.39.1" - hash = "sha256-ZlbQhUVwQBzmhBWCQ9iPWoJOVr+OqqIHB4iCNDFMEds=" + version = "v1.40.0" + hash = "sha256-FbdhUXLOJrEmiUOJqkWr9TT0ci8pJQBhGtBmRCsvR7U=" [mod."github.com/pbnjay/memory"] version = "v0.0.0-20210728143218-7b4eea64cf58" hash = "sha256-QI+F1oPLOOtwNp8+m45OOoSfYFs3QVjGzE0rFdpF/IA=" @@ -800,8 +803,8 @@ schema = 3 version = "v1.11.1" hash = "sha256-0z4aFR5VjuVYn+XnANbjui0ADcdG7gU56A9Y/NtrzCQ=" [mod."github.com/rs/zerolog"] - version = "v1.35.0" - hash = "sha256-HMu0f8l3MQPH7gsm7rNZ7iJoWOgWcw+vEcnTgmEkwQA=" + version = "v1.35.1" + hash = "sha256-JMry/37tnOV0ZUCeWRsduxb3WehvbLxUUZfF2l+Cz/s=" [mod."github.com/sagikazarmark/locafero"] version = "v0.11.0" hash = "sha256-PUX8dzJtkD8YDZFNqpHnl4qgb0tE1W/DLnL7V+/d1z4=" @@ -864,8 +867,8 @@ schema = 3 version = "v1.8.1" hash = "sha256-QsYonFnbD/zaxUYAJMzDNI3ju0TjcBJrh8/DBhaJfbM=" [mod."github.com/tidwall/gjson"] - version = "v1.18.0" - hash = "sha256-CO6hqDu8Y58Po6A01e5iTpwiUBQ5khUZsw7czaJHw0I=" + version = "v1.19.0" + hash = "sha256-H0tqaftwuKVjuvlPov1Fr1a5W0JZmWUkOlPxY5qtSTE=" [mod."github.com/tidwall/match"] version = "v1.1.1" hash = "sha256-M2klhPId3Q3T3VGkSbOkYl/2nLHnsG+yMbXkPkyrRdg=" @@ -1026,41 +1029,41 @@ schema = 3 version = "v0.26.0" hash = "sha256-xssXQRlEa2O2Dv4lfLsshYIn2r67nhBPOdvL58MnEXo=" [mod."golang.org/x/crypto"] - version = "v0.51.0" - hash = "sha256-/R74sc1mcOaOuBeXRQzrXrHAgA5VhNWc6SfQJaxb17U=" + version = "v0.53.0" + hash = "sha256-TWcccM4d5t0ZbDyHXEm4elxKk5uzlo29i85lVHSZcNw=" [mod."golang.org/x/exp"] version = "v0.0.0-20260312153236-7ab1446f8b90" hash = "sha256-q4a4MK4pVmaazKo9DTOwocH6Fvo8NsO96YeY9FJmNyo=" [mod."golang.org/x/mod"] - version = "v0.35.0" - hash = "sha256-ICEQxokHywOFInDPqoP+go9l1tZSz3roknF5SXPtNV4=" + version = "v0.36.0" + hash = "sha256-ZhyOvy9ptbV+pna/CNyQFr5cKRn5O+B2QzkQAISKgco=" [mod."golang.org/x/net"] - version = "v0.55.0" - hash = "sha256-Phi2mSmBGOJcvqPPAit3uqF3UP8SKRI9dHj6yTM3s5s=" + version = "v0.56.0" + hash = "sha256-JUORjxDZqZanYWo2yunaDpQ2/zvHiFb0TnF1Jw6D+30=" [mod."golang.org/x/oauth2"] version = "v0.36.0" hash = "sha256-evS7WkMrpgonmTcqtWFpC5rSKZN8O+vnAhNUs1MS9kw=" [mod."golang.org/x/sync"] - version = "v0.20.0" - hash = "sha256-ybcjhCfK6lroUM0yswUvWooW8MOQZBXyiSqoxG6Uy0Y=" + version = "v0.21.0" + hash = "sha256-2n7PVb1krz7UpnXYGVmCrxV0fZBnjQdVVt6eVudEPYY=" [mod."golang.org/x/sys"] - version = "v0.45.0" - hash = "sha256-hkBoNazrDA67ER6sWhb+EKxx9nJ24+nz3zGy+zT5Hvw=" + version = "v0.46.0" + hash = "sha256-NzRXMSEk6upeudJvUEPVnw6clJ3d8UdC/vdfANWAc8g=" [mod."golang.org/x/telemetry"] - version = "v0.0.0-20260409153401-be6f6cb8b1fa" - hash = "sha256-NH3t7QaWURhZnwukd4+/w2VdFYpaF0dFTyKlKXuuKew=" + version = "v0.0.0-20260508192327-42602be52be6" + hash = "sha256-jK+VMNDRQd4CLjTMX59k+6QMwWxdRQF9ErEgsQN5D+s=" [mod."golang.org/x/term"] - version = "v0.43.0" - hash = "sha256-gFV1oGgs/vpRamvDWmu93voN57iyZMk/hh+oL8L9VrQ=" + version = "v0.44.0" + hash = "sha256-nzbvOgvGRbx1qpq1rbk7b6zNsNeNj8mOGoyZLtnzq3w=" [mod."golang.org/x/text"] - version = "v0.37.0" - hash = "sha256-8XDOnlPIybcDRy89fkjG5VqtIt5Ku+LmaqYhgKl7i1E=" + version = "v0.38.0" + hash = "sha256-PzREcn7yzTAJ0WBvyYL/2/r+tfoeKTY/E5HVXi/CJsU=" [mod."golang.org/x/time"] version = "v0.15.0" hash = "sha256-5D24A65wn7k93Jj3+918UKjB9ccmGHPBEqjD2XDB92E=" [mod."golang.org/x/tools"] - version = "v0.44.0" - hash = "sha256-xuj5FLtSJsAojLLTLXtPdLAIFNTKoVFbDMuqRXmj2W4=" + version = "v0.45.0" + hash = "sha256-fKsYC186cbOCJROZGUqU6UMSxvK2DZ44hlCEytLvp5c=" [mod."google.golang.org/api"] version = "v0.276.0" hash = "sha256-qXHX3iYmJD3Pb1vaCaTwSoqvTdbnNljndShDM8sSJUM=" @@ -1074,8 +1077,8 @@ schema = 3 version = "v0.0.0-20260414002931-afd174a4e478" hash = "sha256-ldJTTb7hhj1mdmzTn9IEkQVwCoj3KRlENZtUSEKHABU=" [mod."google.golang.org/grpc"] - version = "v1.80.0" - hash = "sha256-+p50KGJvGWdpB/4f0h477dCAfoOL5m2PzG8BGOekVgY=" + version = "v1.81.1" + hash = "sha256-YZ5KMHmN1HvsMxyIBIl3SmFmL3r+6bwjzzFLxUFhm1o=" [mod."google.golang.org/protobuf"] version = "v1.36.11" hash = "sha256-7W+6jntfI/awWL3JP6yQedxqP5S9o3XvPgJ2XxxsIeE=" diff --git a/tests/integration_tests/spec/_schema_normalize.py b/tests/integration_tests/spec/_schema_normalize.py index ce6f74d0fe..a8aeedfd1e 100644 --- a/tests/integration_tests/spec/_schema_normalize.py +++ b/tests/integration_tests/spec/_schema_normalize.py @@ -1,19 +1,10 @@ from copy import deepcopy -from test_rpc_spec import ( - RpcSpecResult, - _first_schema_mismatch, - _is_not_implemented, - _is_request_schema_error, - _response_kind, - _same_schema, -) - from _schema_constants import ( - ETHERMINT_LOCAL_TX_SCHEMA_EXCEPTIONS, - ETHERMINT_MODERN_BLOCK_FIELD_SCHEMA_EXCEPTIONS, ETH_SIMULATE_BLOCK_HARDFORK_FIELDS, ETH_SIMULATE_TRANSACTION_HARDFORK_FIELDS, + ETHERMINT_LOCAL_TX_SCHEMA_EXCEPTIONS, + ETHERMINT_MODERN_BLOCK_FIELD_SCHEMA_EXCEPTIONS, INCOMPLETE_UNIMPLEMENTED_RPC_METHODS, LEGACY_RECEIPT_ROOT_STATUS_SCHEMA_EXCEPTIONS, LOCAL_FIXTURE_RECEIPT_ADDRESS_FIELDS, @@ -24,6 +15,14 @@ MODERN_BLOCK_FIELDS, RELAXED_BLOCK_TRANSACTION_SCHEMA_EXCEPTIONS, ) +from test_rpc_spec import ( + RpcSpecResult, + _first_schema_mismatch, + _is_not_implemented, + _is_request_schema_error, + _response_kind, + _same_schema, +) def _json_type_name(value): diff --git a/tests/integration_tests/spec/_schema_report.py b/tests/integration_tests/spec/_schema_report.py index 49f14e132f..1c902d69f0 100644 --- a/tests/integration_tests/spec/_schema_report.py +++ b/tests/integration_tests/spec/_schema_report.py @@ -1,7 +1,5 @@ from collections import defaultdict -from test_rpc_spec import _markdown_json - from _schema_constants import ( EXCLUDED_SCHEMA_SPEC_CASES, SCHEMA_CATEGORY_TITLES, @@ -9,6 +7,7 @@ UNIMPLEMENTED_RPC_METHODS, ) from _schema_normalize import _format_schema_differences +from test_rpc_spec import _markdown_json class RpcSpecSchemaSummary: diff --git a/tests/integration_tests/spec/_schema_rewrite.py b/tests/integration_tests/spec/_schema_rewrite.py index 33e84abb93..25c2e2456a 100644 --- a/tests/integration_tests/spec/_schema_rewrite.py +++ b/tests/integration_tests/spec/_schema_rewrite.py @@ -1,7 +1,5 @@ from copy import deepcopy -from test_rpc_spec import _rewrite_request_for_ethermint_runtime_fixture - from _schema_constants import ( ETH_SIMULATE_TIMESTAMP_HEADROOM, LOCAL_LOG_FUTURE_BLOCK_RANGE_EXCEPTIONS, @@ -11,6 +9,7 @@ TRANSACTION_BY_HASH_LOCAL_TX_KEYS, TRANSACTION_RECEIPT_LOCAL_TX_KEYS, ) +from test_rpc_spec import _rewrite_request_for_ethermint_runtime_fixture def _has_non_null_result(expected): diff --git a/tests/integration_tests/spec/test_rpc_spec_schema.py b/tests/integration_tests/spec/test_rpc_spec_schema.py index 15dee270e0..ec534dfdec 100644 --- a/tests/integration_tests/spec/test_rpc_spec_schema.py +++ b/tests/integration_tests/spec/test_rpc_spec_schema.py @@ -3,12 +3,14 @@ Each `.io` fixture file in the sub-directories of this `spec/` folder encodes one request/response pair from the ethereum/execution-apis test suite. This test replays every fixture against a live Ethermint node and checks that the schema -of the response (key set + JSON value types) matches — without requiring exact values, -because many fields (block hash, gas price, …) are chain-specific. +of the response (key set + JSON value types) matches — without requiring exact +values, because many fields (block hash, gas price, …) are chain-specific. Running the test ---------------- -nix-shell ./tests/integration_tests/shell.nix --run "pytest -vv --basetemp=/tmp/eth -s -k test_rpc_spec_schema --session-timeout=6000 --timeout=6000" +nix-shell ./tests/integration_tests/shell.nix --run \ + "pytest -vv --basetemp=/tmp/eth -s -k test_rpc_spec_schema \ + --session-timeout=6000 --timeout=6000" Reading the report ------------------ @@ -27,9 +29,6 @@ EXCLUDED_SCHEMA_SPEC_CASES, LEGACY_CREATE_BYTECODE, REPORT_FILENAME, - SEND_RAW_TRANSACTION_LOCAL_TX_KEYS, - TRANSACTION_BY_HASH_LOCAL_TX_KEYS, - TRANSACTION_RECEIPT_LOCAL_TX_KEYS, UNIMPLEMENTED_RPC_METHODS, ) from _schema_normalize import _attach_details, _classify_schema From 05edaf70bb362da5ef7efb637b76aa677fc9e6fd Mon Sep 17 00:00:00 2001 From: Xinyu Date: Wed, 24 Jun 2026 14:07:04 +0800 Subject: [PATCH 17/32] test: sync execution-apis fixtures before schema test --- tests/integration_tests/spec/README.md | 5 + .../spec/_execution_apis_sync.py | 126 ++++++++++++++++++ tests/integration_tests/spec/conftest.py | 9 ++ 3 files changed, 140 insertions(+) create mode 100644 tests/integration_tests/spec/_execution_apis_sync.py diff --git a/tests/integration_tests/spec/README.md b/tests/integration_tests/spec/README.md index 6686d24743..a439a9687c 100644 --- a/tests/integration_tests/spec/README.md +++ b/tests/integration_tests/spec/README.md @@ -1,3 +1,8 @@ # execution-apis The specs are copied from the [ethereum/execution-apis](https://github.com/ethereum/execution-apis/tree/main/tests) repository. + +Before the RPC schema tests are collected, `spec/conftest.py` syncs the local +`.io` fixtures and execution-apis chain fixture files from upstream. Set +`EXECUTION_APIS_REF` to test against a specific branch, tag, or commit. Set +`EXECUTION_APIS_SYNC=0` to use the checked-in fixture snapshot. diff --git a/tests/integration_tests/spec/_execution_apis_sync.py b/tests/integration_tests/spec/_execution_apis_sync.py new file mode 100644 index 0000000000..a866a3f9e2 --- /dev/null +++ b/tests/integration_tests/spec/_execution_apis_sync.py @@ -0,0 +1,126 @@ +import os +import shutil +import sys +import tempfile +import urllib.request +import zipfile +from pathlib import Path + +SPEC_ROOT = Path(__file__).parent +EXECUTION_APIS_FIXTURE_DIR = SPEC_ROOT / "fixtures" / "execution_apis" + +DEFAULT_EXECUTION_APIS_REF = "main" +EXECUTION_APIS_ARCHIVE_URL = ( + "https://github.com/ethereum/execution-apis/archive/{ref}.zip" +) + +TEST_FIXTURE_FILES = [ + "chain.rlp", + "forkenv.json", + "genesis.json", + "headfcu.json", +] +TOOL_CHAIN_FIXTURE_FILES = [ + "accounts.json", + "headstate.json", + "txinfo.json", +] + + +def _env_disabled(value): + return str(value).lower() in {"0", "false", "no", "off"} + + +def _download_archive(ref, archive_path): + archive_url = os.environ.get("EXECUTION_APIS_ARCHIVE_URL") + if archive_url is None: + archive_url = EXECUTION_APIS_ARCHIVE_URL.format(ref=ref) + + request = urllib.request.Request( + archive_url, + headers={"User-Agent": "ethermint-rpc-schema-tests"}, + ) + with urllib.request.urlopen(request, timeout=120) as response: + archive_path.write_bytes(response.read()) + return archive_url + + +def _extract_archive(archive_path, extract_dir): + with zipfile.ZipFile(archive_path) as archive: + for member in archive.infolist(): + path = Path(member.filename) + if path.is_absolute() or ".." in path.parts: + raise ValueError(f"unsafe archive path: {member.filename}") + archive.extractall(extract_dir) + + roots = [path for path in extract_dir.iterdir() if path.is_dir()] + if len(roots) != 1: + raise ValueError(f"expected one execution-apis archive root, got {roots}") + return roots[0] + + +def _remove_copied_io_fixtures(): + for child in SPEC_ROOT.iterdir(): + if child.is_dir() and any(child.glob("*.io")): + shutil.rmtree(child) + + +def _copy_io_fixtures(source_tests_dir): + _remove_copied_io_fixtures() + copied = 0 + for source in sorted(source_tests_dir.glob("*/*.io")): + target = SPEC_ROOT / source.relative_to(source_tests_dir) + target.parent.mkdir(parents=True, exist_ok=True) + shutil.copy2(source, target) + copied += 1 + if copied == 0: + raise ValueError(f"no execution-apis .io fixtures found in {source_tests_dir}") + return copied + + +def _copy_required_files(source_dir, target_dir, names): + for name in names: + source = source_dir / name + if not source.exists(): + raise FileNotFoundError(f"execution-apis fixture missing: {source}") + target_dir.mkdir(parents=True, exist_ok=True) + shutil.copy2(source, target_dir / name) + + +def _regenerate_ethermint_genesis_overlay(): + sys.path.insert(0, str(EXECUTION_APIS_FIXTURE_DIR)) + try: + from generate_ethermint_genesis import main as generate_overlay + + generate_overlay() + finally: + sys.path.remove(str(EXECUTION_APIS_FIXTURE_DIR)) + + +def sync_execution_apis(): + if _env_disabled(os.environ.get("EXECUTION_APIS_SYNC", "1")): + return "execution-apis sync disabled by EXECUTION_APIS_SYNC" + + ref = os.environ.get("EXECUTION_APIS_REF", DEFAULT_EXECUTION_APIS_REF) + with tempfile.TemporaryDirectory(prefix="execution-apis-") as tmp: + tmp_path = Path(tmp) + archive_path = tmp_path / "execution-apis.zip" + archive_url = _download_archive(ref, archive_path) + upstream_root = _extract_archive(archive_path, tmp_path / "src") + + source_tests_dir = upstream_root / "tests" + source_tools_chain_dir = upstream_root / "tools" / "chain" + copied = _copy_io_fixtures(source_tests_dir) + _copy_required_files( + source_tests_dir, + EXECUTION_APIS_FIXTURE_DIR, + TEST_FIXTURE_FILES, + ) + _copy_required_files( + source_tools_chain_dir, + EXECUTION_APIS_FIXTURE_DIR, + TOOL_CHAIN_FIXTURE_FILES, + ) + _regenerate_ethermint_genesis_overlay() + + return f"synced {copied} execution-apis fixtures from {archive_url}" diff --git a/tests/integration_tests/spec/conftest.py b/tests/integration_tests/spec/conftest.py index 438e13c53b..0cf9abd0f5 100644 --- a/tests/integration_tests/spec/conftest.py +++ b/tests/integration_tests/spec/conftest.py @@ -7,6 +7,7 @@ from pathlib import Path import pytest +from _execution_apis_sync import sync_execution_apis from pystarport import ports from web3 import Web3 from web3.middleware import ExtraDataToPOAMiddleware @@ -17,6 +18,14 @@ EXECUTION_API_FIXTURE_DIR = Path(__file__).parent / "fixtures" / "execution_apis" +def pytest_configure(config): + markexpr = (getattr(config.option, "markexpr", "") or "").strip() + if markexpr in {"filter", "upgrade", "filter or upgrade", "upgrade or filter"}: + return + + print(sync_execution_apis()) + + def _merge_auth_accounts(genesis, overlay): accounts = genesis["app_state"]["auth"]["accounts"] by_address = { From 6a51bcc6f80954a14443cc5632091d59de357c08 Mon Sep 17 00:00:00 2001 From: Xinyu Date: Wed, 24 Jun 2026 16:55:28 +0800 Subject: [PATCH 18/32] test: sync spec fixtures from upstream --- .gitignore | 4 + tests/integration_tests/spec/README.md | 3 +- .../spec/_execution_apis_sync.py | 155 +- .../spec/_schema_constants.py | 1 + .../integration_tests/spec/_schema_rewrite.py | 3 +- .../spec/debug_getRawBlock/get-block-n.io | 3 - .../spec/debug_getRawBlock/get-genesis.io | 3 - .../debug_getRawBlock/get-invalid-number.io | 3 - .../spec/debug_getRawHeader/get-block-n.io | 3 - .../spec/debug_getRawHeader/get-genesis.io | 3 - .../debug_getRawHeader/get-invalid-number.io | 3 - .../spec/debug_getRawReceipts/get-block-n.io | 3 - .../spec/debug_getRawReceipts/get-genesis.io | 3 - .../get-invalid-number.io | 3 - .../get-invalid-hash.io | 3 - .../spec/debug_getRawTransaction/get-tx.io | 3 - .../eth_blobBaseFee/get-current-blobfee.io | 3 - .../spec/eth_blockNumber/simple-test.io | 3 - .../eth_call/call-callenv-options-eip1559.io | 5 - .../spec/eth_call/call-callenv.io | 4 - .../spec/eth_call/call-contract.io | 3 - .../spec/eth_call/call-eip7702-delegation.io | 3 - .../spec/eth_call/call-revert-abi-error.io | 3 - .../spec/eth_call/call-revert-abi-panic.io | 3 - .../spec/eth_chainId/get-chain-id.io | 3 - .../spec/eth_config/get-config.io | 3 - .../create-al-abi-revert.io | 6 - .../create-al-contract-eip1559.io | 5 - .../create-al-contract.io | 4 - .../create-al-value-transfer.io | 3 - .../estimate-call-abi-error.io | 4 - .../eth_estimateGas/estimate-failed-call.io | 4 - .../estimate-simple-transfer.io | 3 - .../estimate-successful-call.io | 4 - .../eth_estimateGas/estimate-with-eip4844.io | 4 - .../eth_estimateGas/estimate-with-eip7702.io | 6 - .../spec/eth_feeHistory/fee-history.io | 4 - .../eth_getBalance/get-balance-blockhash.io | 3 - .../get-balance-unknown-account.io | 3 - .../spec/eth_getBalance/get-balance.io | 3 - .../get-block-by-empty-hash.io | 3 - .../eth_getBlockByHash/get-block-by-hash.io | 3 - .../get-block-by-notfound-hash.io | 3 - .../get-block-cancun-fork.io | 3 - .../get-block-london-fork.io | 3 - .../get-block-merge-fork.io | 3 - .../get-block-notfound.io | 3 - .../get-block-prague-fork.io | 3 - .../get-block-shanghai-fork.io | 3 - .../eth_getBlockByNumber/get-finalized.io | 3 - .../spec/eth_getBlockByNumber/get-genesis.io | 3 - .../spec/eth_getBlockByNumber/get-latest.io | 3 - .../spec/eth_getBlockByNumber/get-safe.io | 3 - .../get-block-receipts-0.io | 3 - .../get-block-receipts-by-hash.io | 3 - .../get-block-receipts-earliest.io | 3 - .../get-block-receipts-empty.io | 3 - .../get-block-receipts-future.io | 3 - .../get-block-receipts-latest.io | 3 - .../get-block-receipts-n.io | 3 - .../get-block-receipts-not-found.io | 3 - .../get-block-n.io | 3 - .../get-genesis.io | 3 - .../get-block-n.io | 3 - .../get-genesis.io | 3 - .../get-code-eip7702-delegation.io | 4 - .../eth_getCode/get-code-unknown-account.io | 3 - .../spec/eth_getCode/get-code.io | 3 - .../spec/eth_getLogs/contract-addr.io | 3 - .../filter-error-future-block-range.io | 3 - ...ilter-error-invalid-blockHash-and-range.io | 3 - .../filter-error-reversed-block-range.io | 3 - .../filter-with-blockHash-and-topics.io | 3 - .../spec/eth_getLogs/filter-with-blockHash.io | 3 - .../spec/eth_getLogs/no-topics.io | 3 - .../spec/eth_getLogs/topic-exact-match.io | 3 - .../spec/eth_getLogs/topic-wildcard.io | 3 - .../get-account-proof-blockhash.io | 3 - .../eth_getProof/get-account-proof-latest.io | 3 - .../get-account-proof-with-storage.io | 3 - .../get-storage-invalid-key-too-large.io | 3 - .../get-storage-invalid-key.io | 3 - .../get-storage-unknown-account.io | 3 - .../spec/eth_getStorageAt/get-storage.io | 3 - .../get-storage-values-empty-request.io | 3 - .../get-storage-values-multiple-addresses.io | 3 - .../get-storage-values-unknown-account.io | 3 - .../get-storage-values.io | 3 - .../get-block-n.io | 3 - .../get-block-n.io | 3 - .../get-access-list.io | 3 - .../eth_getTransactionByHash/get-blob-tx.io | 3 - .../get-dynamic-fee.io | 3 - .../eth_getTransactionByHash/get-empty-tx.io | 3 - .../get-legacy-create.io | 3 - .../get-legacy-input.io | 3 - .../eth_getTransactionByHash/get-legacy-tx.io | 3 - .../get-notfound-tx.io | 3 - .../get-setcode-tx.io | 3 - .../get-nonce-eip7702-account.io | 4 - .../get-nonce-unknown-account.io | 3 - .../spec/eth_getTransactionCount/get-nonce.io | 3 - .../get-access-list.io | 3 - .../eth_getTransactionReceipt/get-blob-tx.io | 3 - .../get-dynamic-fee.io | 3 - .../eth_getTransactionReceipt/get-empty-tx.io | 3 - .../get-legacy-contract.io | 3 - .../get-legacy-input.io | 3 - .../get-legacy-receipt.io | 3 - .../get-notfound-tx.io | 3 - .../get-setcode-tx.io | 3 - .../send-access-list-transaction.io | 3 - .../eth_sendRawTransaction/send-blob-tx.io | 3 - ...end-dynamic-fee-access-list-transaction.io | 3 - .../send-dynamic-fee-transaction.io | 3 - .../send-legacy-transaction.io | 3 - ...ockStateCalls-than-fit-but-now-with-fit.io | 3 - ...re-non-defined-BlockStateCalls-than-fit.io | 3 - ...e-basefee-too-low-with-validation-38012.io | 3 - ...lidation-38012-without-basefee-override.io | 3 - ...asefee-too-low-without-validation-38012.io | 3 - ...ethSimulate-big-block-state-calls-array.io | 3 - .../spec/eth_simulateV1/ethSimulate-blobs.io | 3 - .../ethSimulate-block-num-order-38020.io | 3 - ...k-override-reflected-in-contract-simple.io | 3 - ...te-block-override-reflected-in-contract.io | 3 - ...Simulate-block-timestamp-auto-increment.io | 3 - ...hSimulate-block-timestamp-non-increment.io | 3 - ...ethSimulate-block-timestamp-order-38021.io | 3 - ...hSimulate-block-timestamps-incrementing.io | 3 - .../ethSimulate-blockhash-complex.io | 3 - .../ethSimulate-blockhash-simple.io | 3 - ...ethSimulate-blockhash-start-before-head.io | 3 - .../ethSimulate-blocknumber-increment.io | 3 - .../ethSimulate-check-invalid-nonce.io | 3 - ...k-that-balance-is-there-after-new-block.io | 3 - .../ethSimulate-check-that-nonce-increases.io | 3 - .../ethSimulate-contract-calls-itself.io | 3 - ...e-empty-calls-and-overrides-ethSimulate.io | 3 - .../ethSimulate-empty-validation.io | 3 - ...mulate-empty-with-block-num-set-current.io | 3 - ...ate-empty-with-block-num-set-firstblock.io | 3 - ...ulate-empty-with-block-num-set-minusone.io | 3 - ...Simulate-empty-with-block-num-set-plus1.io | 3 - .../spec/eth_simulateV1/ethSimulate-empty.io | 3 - ...send-should-not-produce-logs-by-default.io | 3 - ...-send-should-not-produce-logs-on-revert.io | 3 - ...thSimulate-eth-send-should-produce-logs.io | 3 - ...end-should-produce-more-logs-on-forward.io | 3 - ...hould-produce-no-logs-on-forward-revert.io | 3 - ...hSimulate-extcodehash-existing-contract.io | 3 - .../ethSimulate-extcodehash-override.io | 3 - .../ethSimulate-extcodehash-precompile.io | 3 - ...hSimulate-fee-recipient-receiving-funds.io | 3 - ...s-and-value-error-38014-with-validation.io | 3 - ...Simulate-gas-fees-and-value-error-38014.io | 3 - .../ethSimulate-get-block-properties.io | 3 - .../ethSimulate-instrict-gas-38013.io | 3 - .../spec/eth_simulateV1/ethSimulate-logs.io | 3 - ...ethSimulate-make-call-with-future-block.io | 3 - ...ate-move-ecrecover-and-call-old-and-new.io | 3 - .../ethSimulate-move-ecrecover-and-call.io | 3 - ...hSimulate-move-ecrecover-twice-and-call.io | 3 - ...-move-to-address-itself-reference-38022.io | 3 - ...imulate-move-two-accounts-to-same-38023.io | 3 - ...ve-two-non-precompiles-accounts-to-same.io | 3 - .../ethSimulate-no-fields-call.io | 3 - .../ethSimulate-only-from-to-transaction.io | 3 - .../ethSimulate-only-from-transaction.io | 3 - .../ethSimulate-overflow-nonce-validation.io | 3 - .../ethSimulate-overflow-nonce.io | 3 - ...dress-twice-in-separate-BlockStateCalls.io | 3 - .../ethSimulate-override-address-twice.io | 3 - ...imulate-override-all-in-BlockStateCalls.io | 3 - .../ethSimulate-override-block-num.io | 3 - .../ethSimulate-override-ecrecover.io | 3 - .../ethSimulate-override-identity.io | 3 - .../ethSimulate-override-sha256.io | 3 - .../ethSimulate-override-storage-slots.io | 3 - ...ethSimulate-overwrite-existing-contract.io | 3 - ...ulate-precompile-is-sending-transaction.io | 3 - .../ethSimulate-run-gas-spending.io | 3 - ...hSimulate-run-out-of-gas-in-block-38015.io | 3 - ...imulate-self-destructing-state-override.io | 3 - ...self-destructive-contract-produces-logs.io | 3 - ...ulate-send-eth-and-delegate-call-to-eoa.io | 3 - ...th-and-delegate-call-to-payble-contract.io | 3 - .../ethSimulate-send-eth-and-delegate-call.io | 3 - .../ethSimulate-set-read-storage.io | 3 - ...ethSimulate-simple-more-params-validate.io | 3 - ...e-simple-no-funds-with-balance-querying.io | 3 - ...no-funds-with-validation-without-nonces.io | 3 - ...imulate-simple-no-funds-with-validation.io | 3 - .../ethSimulate-simple-no-funds.io | 3 - ...te-simple-send-from-contract-no-balance.io | 3 - ...mple-send-from-contract-with-validation.io | 3 - .../ethSimulate-simple-send-from-contract.io | 3 - .../ethSimulate-simple-state-diff.io | 3 - .../ethSimulate-simple-validation-fulltx.io | 3 - ...imulate-simple-with-validation-no-funds.io | 3 - .../spec/eth_simulateV1/ethSimulate-simple.io | 3 - .../ethSimulate-transaction-too-high-nonce.io | 3 - ...imulate-transaction-too-low-nonce-38010.io | 3 - ...hSimulate-transfer-over-BlockStateCalls.io | 3 - .../ethSimulate-try-to-move-non-precompile.io | 3 - ...late-two-blocks-with-complete-eth-sends.io | 3 - ...mulate-use-as-many-features-as-possible.io | 3 - .../spec/eth_syncing/check-syncing.io | 3 - .../fixtures/execution_apis/accounts.json | 62 - .../spec/fixtures/execution_apis/chain.rlp | Bin 54615 -> 0 bytes .../ethermint_genesis_overlay.json | 2356 ----------------- .../spec/fixtures/execution_apis/forkenv.json | 27 - .../generate_ethermint_genesis.py | 150 -- .../spec/fixtures/execution_apis/genesis.json | 141 - .../spec/fixtures/execution_apis/headfcu.json | 13 - .../fixtures/execution_apis/headstate.json | 1039 -------- .../spec/fixtures/execution_apis/txinfo.json | 745 ------ .../spec/net_version/get-network-id.io | 3 - .../build-block-empty-transactions.io | 3 - .../build-block-from-mempool.io | 6 - .../build-block-invalid-transaction.io | 5 - .../build-block-with-transactions.io | 3 - .../spec/txpool_content/get-content.io | 4 - .../get-content-from-address.io | 4 - .../spec/txpool_status/get-status.io | 4 - 225 files changed, 157 insertions(+), 5202 deletions(-) delete mode 100644 tests/integration_tests/spec/debug_getRawBlock/get-block-n.io delete mode 100644 tests/integration_tests/spec/debug_getRawBlock/get-genesis.io delete mode 100644 tests/integration_tests/spec/debug_getRawBlock/get-invalid-number.io delete mode 100644 tests/integration_tests/spec/debug_getRawHeader/get-block-n.io delete mode 100644 tests/integration_tests/spec/debug_getRawHeader/get-genesis.io delete mode 100644 tests/integration_tests/spec/debug_getRawHeader/get-invalid-number.io delete mode 100644 tests/integration_tests/spec/debug_getRawReceipts/get-block-n.io delete mode 100644 tests/integration_tests/spec/debug_getRawReceipts/get-genesis.io delete mode 100644 tests/integration_tests/spec/debug_getRawReceipts/get-invalid-number.io delete mode 100644 tests/integration_tests/spec/debug_getRawTransaction/get-invalid-hash.io delete mode 100644 tests/integration_tests/spec/debug_getRawTransaction/get-tx.io delete mode 100644 tests/integration_tests/spec/eth_blobBaseFee/get-current-blobfee.io delete mode 100644 tests/integration_tests/spec/eth_blockNumber/simple-test.io delete mode 100644 tests/integration_tests/spec/eth_call/call-callenv-options-eip1559.io delete mode 100644 tests/integration_tests/spec/eth_call/call-callenv.io delete mode 100644 tests/integration_tests/spec/eth_call/call-contract.io delete mode 100644 tests/integration_tests/spec/eth_call/call-eip7702-delegation.io delete mode 100644 tests/integration_tests/spec/eth_call/call-revert-abi-error.io delete mode 100644 tests/integration_tests/spec/eth_call/call-revert-abi-panic.io delete mode 100644 tests/integration_tests/spec/eth_chainId/get-chain-id.io delete mode 100644 tests/integration_tests/spec/eth_config/get-config.io delete mode 100644 tests/integration_tests/spec/eth_createAccessList/create-al-abi-revert.io delete mode 100644 tests/integration_tests/spec/eth_createAccessList/create-al-contract-eip1559.io delete mode 100644 tests/integration_tests/spec/eth_createAccessList/create-al-contract.io delete mode 100644 tests/integration_tests/spec/eth_createAccessList/create-al-value-transfer.io delete mode 100644 tests/integration_tests/spec/eth_estimateGas/estimate-call-abi-error.io delete mode 100644 tests/integration_tests/spec/eth_estimateGas/estimate-failed-call.io delete mode 100644 tests/integration_tests/spec/eth_estimateGas/estimate-simple-transfer.io delete mode 100644 tests/integration_tests/spec/eth_estimateGas/estimate-successful-call.io delete mode 100644 tests/integration_tests/spec/eth_estimateGas/estimate-with-eip4844.io delete mode 100644 tests/integration_tests/spec/eth_estimateGas/estimate-with-eip7702.io delete mode 100644 tests/integration_tests/spec/eth_feeHistory/fee-history.io delete mode 100644 tests/integration_tests/spec/eth_getBalance/get-balance-blockhash.io delete mode 100644 tests/integration_tests/spec/eth_getBalance/get-balance-unknown-account.io delete mode 100644 tests/integration_tests/spec/eth_getBalance/get-balance.io delete mode 100644 tests/integration_tests/spec/eth_getBlockByHash/get-block-by-empty-hash.io delete mode 100644 tests/integration_tests/spec/eth_getBlockByHash/get-block-by-hash.io delete mode 100644 tests/integration_tests/spec/eth_getBlockByHash/get-block-by-notfound-hash.io delete mode 100644 tests/integration_tests/spec/eth_getBlockByNumber/get-block-cancun-fork.io delete mode 100644 tests/integration_tests/spec/eth_getBlockByNumber/get-block-london-fork.io delete mode 100644 tests/integration_tests/spec/eth_getBlockByNumber/get-block-merge-fork.io delete mode 100644 tests/integration_tests/spec/eth_getBlockByNumber/get-block-notfound.io delete mode 100644 tests/integration_tests/spec/eth_getBlockByNumber/get-block-prague-fork.io delete mode 100644 tests/integration_tests/spec/eth_getBlockByNumber/get-block-shanghai-fork.io delete mode 100644 tests/integration_tests/spec/eth_getBlockByNumber/get-finalized.io delete mode 100644 tests/integration_tests/spec/eth_getBlockByNumber/get-genesis.io delete mode 100644 tests/integration_tests/spec/eth_getBlockByNumber/get-latest.io delete mode 100644 tests/integration_tests/spec/eth_getBlockByNumber/get-safe.io delete mode 100644 tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-0.io delete mode 100644 tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-by-hash.io delete mode 100644 tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-earliest.io delete mode 100644 tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-empty.io delete mode 100644 tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-future.io delete mode 100644 tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-latest.io delete mode 100644 tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-n.io delete mode 100644 tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-not-found.io delete mode 100644 tests/integration_tests/spec/eth_getBlockTransactionCountByHash/get-block-n.io delete mode 100644 tests/integration_tests/spec/eth_getBlockTransactionCountByHash/get-genesis.io delete mode 100644 tests/integration_tests/spec/eth_getBlockTransactionCountByNumber/get-block-n.io delete mode 100644 tests/integration_tests/spec/eth_getBlockTransactionCountByNumber/get-genesis.io delete mode 100644 tests/integration_tests/spec/eth_getCode/get-code-eip7702-delegation.io delete mode 100644 tests/integration_tests/spec/eth_getCode/get-code-unknown-account.io delete mode 100644 tests/integration_tests/spec/eth_getCode/get-code.io delete mode 100644 tests/integration_tests/spec/eth_getLogs/contract-addr.io delete mode 100644 tests/integration_tests/spec/eth_getLogs/filter-error-future-block-range.io delete mode 100644 tests/integration_tests/spec/eth_getLogs/filter-error-invalid-blockHash-and-range.io delete mode 100644 tests/integration_tests/spec/eth_getLogs/filter-error-reversed-block-range.io delete mode 100644 tests/integration_tests/spec/eth_getLogs/filter-with-blockHash-and-topics.io delete mode 100644 tests/integration_tests/spec/eth_getLogs/filter-with-blockHash.io delete mode 100644 tests/integration_tests/spec/eth_getLogs/no-topics.io delete mode 100644 tests/integration_tests/spec/eth_getLogs/topic-exact-match.io delete mode 100644 tests/integration_tests/spec/eth_getLogs/topic-wildcard.io delete mode 100644 tests/integration_tests/spec/eth_getProof/get-account-proof-blockhash.io delete mode 100644 tests/integration_tests/spec/eth_getProof/get-account-proof-latest.io delete mode 100644 tests/integration_tests/spec/eth_getProof/get-account-proof-with-storage.io delete mode 100644 tests/integration_tests/spec/eth_getStorageAt/get-storage-invalid-key-too-large.io delete mode 100644 tests/integration_tests/spec/eth_getStorageAt/get-storage-invalid-key.io delete mode 100644 tests/integration_tests/spec/eth_getStorageAt/get-storage-unknown-account.io delete mode 100644 tests/integration_tests/spec/eth_getStorageAt/get-storage.io delete mode 100644 tests/integration_tests/spec/eth_getStorageValues/get-storage-values-empty-request.io delete mode 100644 tests/integration_tests/spec/eth_getStorageValues/get-storage-values-multiple-addresses.io delete mode 100644 tests/integration_tests/spec/eth_getStorageValues/get-storage-values-unknown-account.io delete mode 100644 tests/integration_tests/spec/eth_getStorageValues/get-storage-values.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionByBlockHashAndIndex/get-block-n.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionByBlockNumberAndIndex/get-block-n.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionByHash/get-access-list.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionByHash/get-blob-tx.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionByHash/get-dynamic-fee.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionByHash/get-empty-tx.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-create.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-input.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-tx.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionByHash/get-notfound-tx.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionByHash/get-setcode-tx.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionCount/get-nonce-eip7702-account.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionCount/get-nonce-unknown-account.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionCount/get-nonce.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionReceipt/get-access-list.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionReceipt/get-blob-tx.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionReceipt/get-dynamic-fee.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionReceipt/get-empty-tx.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-contract.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-input.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-receipt.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionReceipt/get-notfound-tx.io delete mode 100644 tests/integration_tests/spec/eth_getTransactionReceipt/get-setcode-tx.io delete mode 100644 tests/integration_tests/spec/eth_sendRawTransaction/send-access-list-transaction.io delete mode 100644 tests/integration_tests/spec/eth_sendRawTransaction/send-blob-tx.io delete mode 100644 tests/integration_tests/spec/eth_sendRawTransaction/send-dynamic-fee-access-list-transaction.io delete mode 100644 tests/integration_tests/spec/eth_sendRawTransaction/send-dynamic-fee-transaction.io delete mode 100644 tests/integration_tests/spec/eth_sendRawTransaction/send-legacy-transaction.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-add-more-non-defined-BlockStateCalls-than-fit-but-now-with-fit.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-add-more-non-defined-BlockStateCalls-than-fit.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-basefee-too-low-with-validation-38012.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-basefee-too-low-without-validation-38012-without-basefee-override.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-basefee-too-low-without-validation-38012.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-big-block-state-calls-array.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-blobs.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-num-order-38020.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-override-reflected-in-contract-simple.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-override-reflected-in-contract.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-timestamp-auto-increment.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-timestamp-non-increment.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-timestamp-order-38021.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-timestamps-incrementing.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-blockhash-complex.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-blockhash-simple.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-blockhash-start-before-head.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-blocknumber-increment.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-check-invalid-nonce.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-check-that-balance-is-there-after-new-block.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-check-that-nonce-increases.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-contract-calls-itself.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-calls-and-overrides-ethSimulate.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-validation.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-with-block-num-set-current.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-with-block-num-set-firstblock.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-with-block-num-set-minusone.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-with-block-num-set-plus1.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-eth-send-should-not-produce-logs-by-default.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-eth-send-should-not-produce-logs-on-revert.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-eth-send-should-produce-logs.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-eth-send-should-produce-more-logs-on-forward.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-eth-send-should-produce-no-logs-on-forward-revert.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-extcodehash-existing-contract.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-extcodehash-override.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-extcodehash-precompile.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-fee-recipient-receiving-funds.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-gas-fees-and-value-error-38014-with-validation.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-gas-fees-and-value-error-38014.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-get-block-properties.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-instrict-gas-38013.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-logs.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-make-call-with-future-block.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-ecrecover-and-call-old-and-new.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-ecrecover-and-call.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-ecrecover-twice-and-call.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-to-address-itself-reference-38022.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-two-accounts-to-same-38023.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-two-non-precompiles-accounts-to-same.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-no-fields-call.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-only-from-to-transaction.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-only-from-transaction.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-overflow-nonce-validation.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-overflow-nonce.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-address-twice-in-separate-BlockStateCalls.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-address-twice.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-all-in-BlockStateCalls.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-block-num.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-ecrecover.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-identity.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-sha256.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-storage-slots.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-overwrite-existing-contract.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-precompile-is-sending-transaction.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-run-gas-spending.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-run-out-of-gas-in-block-38015.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-self-destructing-state-override.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-self-destructive-contract-produces-logs.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-send-eth-and-delegate-call-to-eoa.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-send-eth-and-delegate-call-to-payble-contract.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-send-eth-and-delegate-call.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-set-read-storage.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-more-params-validate.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-no-funds-with-balance-querying.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-no-funds-with-validation-without-nonces.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-no-funds-with-validation.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-no-funds.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-send-from-contract-no-balance.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-send-from-contract-with-validation.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-send-from-contract.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-state-diff.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-validation-fulltx.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-with-validation-no-funds.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-transaction-too-high-nonce.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-transaction-too-low-nonce-38010.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-transfer-over-BlockStateCalls.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-try-to-move-non-precompile.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-two-blocks-with-complete-eth-sends.io delete mode 100644 tests/integration_tests/spec/eth_simulateV1/ethSimulate-use-as-many-features-as-possible.io delete mode 100644 tests/integration_tests/spec/eth_syncing/check-syncing.io delete mode 100644 tests/integration_tests/spec/fixtures/execution_apis/accounts.json delete mode 100644 tests/integration_tests/spec/fixtures/execution_apis/chain.rlp delete mode 100644 tests/integration_tests/spec/fixtures/execution_apis/ethermint_genesis_overlay.json delete mode 100644 tests/integration_tests/spec/fixtures/execution_apis/forkenv.json delete mode 100644 tests/integration_tests/spec/fixtures/execution_apis/generate_ethermint_genesis.py delete mode 100644 tests/integration_tests/spec/fixtures/execution_apis/genesis.json delete mode 100644 tests/integration_tests/spec/fixtures/execution_apis/headfcu.json delete mode 100644 tests/integration_tests/spec/fixtures/execution_apis/headstate.json delete mode 100644 tests/integration_tests/spec/fixtures/execution_apis/txinfo.json delete mode 100644 tests/integration_tests/spec/net_version/get-network-id.io delete mode 100644 tests/integration_tests/spec/testing_buildBlockV1/build-block-empty-transactions.io delete mode 100644 tests/integration_tests/spec/testing_buildBlockV1/build-block-from-mempool.io delete mode 100644 tests/integration_tests/spec/testing_buildBlockV1/build-block-invalid-transaction.io delete mode 100644 tests/integration_tests/spec/testing_buildBlockV1/build-block-with-transactions.io delete mode 100644 tests/integration_tests/spec/txpool_content/get-content.io delete mode 100644 tests/integration_tests/spec/txpool_contentFrom/get-content-from-address.io delete mode 100644 tests/integration_tests/spec/txpool_status/get-status.io diff --git a/.gitignore b/.gitignore index 4b1097261f..e020f0f251 100644 --- a/.gitignore +++ b/.gitignore @@ -51,6 +51,10 @@ sim_log_file tests/**/tmp/* yarn.lock +# Generated execution-apis RPC schema fixtures +/tests/integration_tests/spec/*/*.io +/tests/integration_tests/spec/fixtures/execution_apis/ + # Vagrant .vagrant/ *.box diff --git a/tests/integration_tests/spec/README.md b/tests/integration_tests/spec/README.md index a439a9687c..7e54d4e629 100644 --- a/tests/integration_tests/spec/README.md +++ b/tests/integration_tests/spec/README.md @@ -5,4 +5,5 @@ The specs are copied from the [ethereum/execution-apis](https://github.com/ether Before the RPC schema tests are collected, `spec/conftest.py` syncs the local `.io` fixtures and execution-apis chain fixture files from upstream. Set `EXECUTION_APIS_REF` to test against a specific branch, tag, or commit. Set -`EXECUTION_APIS_SYNC=0` to use the checked-in fixture snapshot. +`EXECUTION_APIS_SYNC=0` to skip the network sync and use fixtures already +generated in the local working tree. diff --git a/tests/integration_tests/spec/_execution_apis_sync.py b/tests/integration_tests/spec/_execution_apis_sync.py index a866a3f9e2..492233924f 100644 --- a/tests/integration_tests/spec/_execution_apis_sync.py +++ b/tests/integration_tests/spec/_execution_apis_sync.py @@ -1,11 +1,13 @@ +import json import os import shutil -import sys import tempfile import urllib.request import zipfile from pathlib import Path +import bech32 + SPEC_ROOT = Path(__file__).parent EXECUTION_APIS_FIXTURE_DIR = SPEC_ROOT / "fixtures" / "execution_apis" @@ -26,6 +28,13 @@ "txinfo.json", ] +DENOM = "aphoton" +PREFIX = "ethm" +EMPTY_CODE_HASH = "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" +INIT_VALIDATOR_COUNT = 2 +INIT_VALIDATOR_APHOTON_BALANCE = 10_000_000_000_000_000_000_000 +INIT_VALIDATOR_STAKE_BALANCE = 1_000_000_000_000_000_000 + def _env_disabled(value): return str(value).lower() in {"0", "false", "no", "off"} @@ -87,14 +96,146 @@ def _copy_required_files(source_dir, target_dir, names): shutil.copy2(source, target_dir / name) +def _eth_to_bech32(addr): + addr = addr.removeprefix("0x") + data = bech32.convertbits(bytes.fromhex(addr), 8, 5) + return bech32.bech32_encode(PREFIX, data) + + +def _quantity_to_int(value): + if value is None: + return 0 + if isinstance(value, int): + return value + if isinstance(value, str) and value.startswith("0x"): + return int(value, 16) + return int(value) + + +def _storage_items(storage): + return [ + { + "key": key, + "value": value if value.startswith("0x") else f"0x{value}", + } + for key, value in sorted((storage or {}).items()) + ] + + +def _chain_config(geth_genesis): + config = geth_genesis["config"] + return { + "homestead_block": str(config["homesteadBlock"]), + "dao_fork_block": "0", + "dao_fork_support": True, + "eip150_block": str(config["eip150Block"]), + "eip150_hash": config.get( + "eip150Hash", + "0x0000000000000000000000000000000000000000000000000000000000000000", + ), + "eip155_block": str(config["eip155Block"]), + "eip158_block": str(config["eip158Block"]), + "byzantium_block": str(config["byzantiumBlock"]), + "constantinople_block": str(config["constantinopleBlock"]), + "petersburg_block": str(config["petersburgBlock"]), + "istanbul_block": str(config["istanbulBlock"]), + "muir_glacier_block": str(config["muirGlacierBlock"]), + "berlin_block": str(config["berlinBlock"]), + "london_block": str(config["londonBlock"]), + "arrow_glacier_block": str(config["arrowGlacierBlock"]), + "gray_glacier_block": str(config["grayGlacierBlock"]), + "merge_netsplit_block": str(config["mergeNetsplitBlock"]), + "shanghai_time": str(config["shanghaiTime"]), + "cancun_time": str(config["cancunTime"]), + "prague_time": str(config["pragueTime"]), + } + + def _regenerate_ethermint_genesis_overlay(): - sys.path.insert(0, str(EXECUTION_APIS_FIXTURE_DIR)) - try: - from generate_ethermint_genesis import main as generate_overlay + geth_genesis = json_load(EXECUTION_APIS_FIXTURE_DIR / "genesis.json") + headstate = json_load(EXECUTION_APIS_FIXTURE_DIR / "headstate.json")["accounts"] + + auth_accounts = [] + bank_balances = [] + evm_accounts = [] + imported_aphoton_supply = 0 + + for account_number, (raw_addr, account) in enumerate(sorted(headstate.items())): + eth_addr = f"0x{raw_addr.removeprefix('0x').lower()}" + balance = _quantity_to_int(account.get("balance")) + nonce = _quantity_to_int(account.get("nonce")) + code = account.get("code", "").removeprefix("0x") + code_hash = account.get("codeHash") or EMPTY_CODE_HASH + + auth_accounts.append( + { + "@type": "/ethermint.types.v1.EthAccount", + "base_account": { + "address": _eth_to_bech32(eth_addr), + "pub_key": None, + "account_number": str(account_number), + "sequence": str(nonce), + }, + "code_hash": code_hash, + } + ) + + if balance > 0: + imported_aphoton_supply += balance + bank_balances.append( + { + "address": _eth_to_bech32(eth_addr), + "coins": [{"denom": DENOM, "amount": str(balance)}], + } + ) + + evm_accounts.append( + { + "address": eth_addr, + "code": code, + "storage": _storage_items(account.get("storage")), + } + ) + + output = { + "source": { + "genesis": "genesis.json", + "headstate": "headstate.json", + "chain": "chain.rlp", + "note": ( + "Ethermint can import this head EVM state at genesis, but it " + "cannot replay geth chain.rlp blocks without a dedicated importer." + ), + }, + "auth_accounts": auth_accounts, + "bank_balances": bank_balances, + "bank_supply": [ + { + "denom": DENOM, + "amount": str( + INIT_VALIDATOR_COUNT * INIT_VALIDATOR_APHOTON_BALANCE + + imported_aphoton_supply + ), + }, + { + "denom": "stake", + "amount": str(INIT_VALIDATOR_COUNT * INIT_VALIDATOR_STAKE_BALANCE), + }, + ], + "evm_accounts": evm_accounts, + "chain_config": _chain_config(geth_genesis), + } + (EXECUTION_APIS_FIXTURE_DIR / "ethermint_genesis_overlay.json").write_text( + json_dumps(output) + ) + + +def json_load(path): + return json.loads(path.read_text()) + - generate_overlay() - finally: - sys.path.remove(str(EXECUTION_APIS_FIXTURE_DIR)) +def json_dumps(value): + return json.dumps(value, indent=2, sort_keys=True) + "\n" def sync_execution_apis(): diff --git a/tests/integration_tests/spec/_schema_constants.py b/tests/integration_tests/spec/_schema_constants.py index ade056db27..d4dfb20e04 100644 --- a/tests/integration_tests/spec/_schema_constants.py +++ b/tests/integration_tests/spec/_schema_constants.py @@ -22,6 +22,7 @@ "debug_getRawReceipts", "debug_getRawTransaction", "eth_blobBaseFee", + "eth_capabilities", "eth_config", "eth_getStorageValues", "testing_buildBlockV1", diff --git a/tests/integration_tests/spec/_schema_rewrite.py b/tests/integration_tests/spec/_schema_rewrite.py index 25c2e2456a..ebfe748aa8 100644 --- a/tests/integration_tests/spec/_schema_rewrite.py +++ b/tests/integration_tests/spec/_schema_rewrite.py @@ -227,6 +227,7 @@ def _rewrite_request_for_local_schema_fixture(spec_name, request, expected, cont return request, False if method in { + "debug_traceBlockByHash", "eth_getBlockByHash", "eth_getBlockTransactionCountByHash", "eth_getTransactionByBlockHashAndIndex", @@ -251,7 +252,7 @@ def _rewrite_request_for_local_schema_fixture(spec_name, request, expected, cont params[0] = context["send_raw_txs"][ SEND_RAW_TRANSACTION_LOCAL_TX_KEYS[spec_name] ] - elif method in {"eth_getTransactionByHash", "eth_getTransactionReceipt"}: + elif method in {"debug_traceTransaction", "eth_getTransactionByHash", "eth_getTransactionReceipt"}: params[0] = context["tx_hash"] elif ( # The copied execution-api fixture uses a geth block hash. For the diff --git a/tests/integration_tests/spec/debug_getRawBlock/get-block-n.io b/tests/integration_tests/spec/debug_getRawBlock/get-block-n.io deleted file mode 100644 index 0d30c849e6..0000000000 --- a/tests/integration_tests/spec/debug_getRawBlock/get-block-n.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets non-zero block ->> {"jsonrpc":"2.0","id":1,"method":"debug_getRawBlock","params":["0x3"]} -<< {"jsonrpc":"2.0","id":1,"result":"0xf90555f901f7a0558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1aa096377383a9fbc55b61cdc5d8b16d9ab626d8c4c29431096b7f0c97ab187d5d24940000000000000000000000000000000000000000a08cb1064825ded2b824ec5084334cce87c74818b8ce22f8af25c36e77697c5de8a0491543f00ab597a6ef1842d4c781ea320bb9157dafcf7818cd4de4c594c65cc1a07a12cc9a7abec50253db90b9fb6dc431b90172fa195811309ec2b9bdfb77b24eb9010040000000000000804000004800000000000000000000000000002000000000400200000000000000000000000008000010000000000200000000200000000004000000000000000000000000000000000000000000010000000000000400000000000000000003000000004000000040000000000000080000000000100000000000000000000000000000000000000002000040000000000001000000000000000000000000000000000000004020000000000000000000000000000000000000000000000000000000000000000080080000000000000000000000000000000000001000000000000000000000000000002000080100000000000000000010830200000384023f3e20830467131e80a00000000000000000000000000000000000000000000000000000000000000000880000000000000000f9014df87a08018301c4a08080ae43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f31ba04087f4cb6ba2484aa6c2ed335576ba912a94426bdd567e04ad85500ca8f987c4a018a68511767c648cab2dcea0ecebed28b812509d2b4018d92bd0a8c5646dd4ebf87109018301263c8080a54360005260006020525b604060002060208051600101905260206020a15a612710106009571ca027cea1712bbcd17136f1cc9d0199a49a21b9187c43f744fd60b355772bc36c9aa03714bc0de9105f4d3ddcebdd8a0be27d687405f4d5e370ed826a023882221525f85c0a0183020bc8808090435b8080556001015a6161a8106001571ca001d99027cebe900895e5bddad07c12db78315199808f6591baa4918a96da4046a012c12e76a968f478a104856a15448b5a21b56778e53cf81e6fb20bfdc987864bf90208f90205a079ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2fa01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200000284023f3e20801e9168697665636861696e20756e636c652030a00000000000000000000000000000000000000000000000000000000000000000880000000000000000"} diff --git a/tests/integration_tests/spec/debug_getRawBlock/get-genesis.io b/tests/integration_tests/spec/debug_getRawBlock/get-genesis.io deleted file mode 100644 index 2459f4c435..0000000000 --- a/tests/integration_tests/spec/debug_getRawBlock/get-genesis.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets block 0 ->> {"jsonrpc":"2.0","id":1,"method":"debug_getRawBlock","params":["0x0"]} -<< {"jsonrpc":"2.0","id":1,"result":"0xf90202f901fda00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e5d8b049a78427be8c23ebd6811ed436b3a36cc117954b496848b90f0c654844a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008084023f3e2080808968697665636861696ea00000000000000000000000000000000000000000000000000000000000000000880000000000000000c0c0"} diff --git a/tests/integration_tests/spec/debug_getRawBlock/get-invalid-number.io b/tests/integration_tests/spec/debug_getRawBlock/get-invalid-number.io deleted file mode 100644 index f2964dc18b..0000000000 --- a/tests/integration_tests/spec/debug_getRawBlock/get-invalid-number.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets block with invalid number formatting ->> {"jsonrpc":"2.0","id":1,"method":"debug_getRawBlock","params":["2"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"invalid argument 0: hex string without 0x prefix"}} diff --git a/tests/integration_tests/spec/debug_getRawHeader/get-block-n.io b/tests/integration_tests/spec/debug_getRawHeader/get-block-n.io deleted file mode 100644 index 0c838ee29f..0000000000 --- a/tests/integration_tests/spec/debug_getRawHeader/get-block-n.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets non-zero block ->> {"jsonrpc":"2.0","id":1,"method":"debug_getRawHeader","params":["0x3"]} -<< {"jsonrpc":"2.0","id":1,"result":"0xf901f7a0558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1aa096377383a9fbc55b61cdc5d8b16d9ab626d8c4c29431096b7f0c97ab187d5d24940000000000000000000000000000000000000000a08cb1064825ded2b824ec5084334cce87c74818b8ce22f8af25c36e77697c5de8a0491543f00ab597a6ef1842d4c781ea320bb9157dafcf7818cd4de4c594c65cc1a07a12cc9a7abec50253db90b9fb6dc431b90172fa195811309ec2b9bdfb77b24eb9010040000000000000804000004800000000000000000000000000002000000000400200000000000000000000000008000010000000000200000000200000000004000000000000000000000000000000000000000000010000000000000400000000000000000003000000004000000040000000000000080000000000100000000000000000000000000000000000000002000040000000000001000000000000000000000000000000000000004020000000000000000000000000000000000000000000000000000000000000000080080000000000000000000000000000000000001000000000000000000000000000002000080100000000000000000010830200000384023f3e20830467131e80a00000000000000000000000000000000000000000000000000000000000000000880000000000000000"} diff --git a/tests/integration_tests/spec/debug_getRawHeader/get-genesis.io b/tests/integration_tests/spec/debug_getRawHeader/get-genesis.io deleted file mode 100644 index 4aa422bd84..0000000000 --- a/tests/integration_tests/spec/debug_getRawHeader/get-genesis.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets block 0 ->> {"jsonrpc":"2.0","id":1,"method":"debug_getRawHeader","params":["0x0"]} -<< {"jsonrpc":"2.0","id":1,"result":"0xf901fda00000000000000000000000000000000000000000000000000000000000000000a01dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347940000000000000000000000000000000000000000a0e5d8b049a78427be8c23ebd6811ed436b3a36cc117954b496848b90f0c654844a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000830200008084023f3e2080808968697665636861696ea00000000000000000000000000000000000000000000000000000000000000000880000000000000000"} diff --git a/tests/integration_tests/spec/debug_getRawHeader/get-invalid-number.io b/tests/integration_tests/spec/debug_getRawHeader/get-invalid-number.io deleted file mode 100644 index 7a2692f9ee..0000000000 --- a/tests/integration_tests/spec/debug_getRawHeader/get-invalid-number.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets block with invalid number formatting ->> {"jsonrpc":"2.0","id":1,"method":"debug_getRawHeader","params":["2"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"invalid argument 0: hex string without 0x prefix"}} diff --git a/tests/integration_tests/spec/debug_getRawReceipts/get-block-n.io b/tests/integration_tests/spec/debug_getRawReceipts/get-block-n.io deleted file mode 100644 index 0e147f0525..0000000000 --- a/tests/integration_tests/spec/debug_getRawReceipts/get-block-n.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets receipts non-zero block ->> {"jsonrpc":"2.0","id":1,"method":"debug_getRawReceipts","params":["0x3"]} -<< {"jsonrpc":"2.0","id":1,"result":["0xf90129a0eb94aa547caeb9bbc9a28873ac22484b8558c29c1482b1dfc6214476c6385b358301a5bab9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0","0xf904afa0d8d47639c4145e1a431418c21066a775bc51f2baab85c7ea3119de9e40e270588302a903b9010040000000000000804000004800000000000000000000000000002000000000400200000000000000000000000008000010000000000200000000200000000004000000000000000000000000000000000000000000010000000000000400000000000000000003000000004000000040000000000000080000000000100000000000000000000000000000000000000002000040000000000001000000000000000000000000000000000000004020000000000000000000000000000000000000000000000000000000000000000080080000000000000000000000000000000000001000000000000000000000000000002000080100000000000000000010f90384f85894a788ca96a910bac854f95b794776c1ad847dcdd5e1a0101e368776582e57ab3d116ffe2517c0a585cd5b23174b01e275c2d8329c3d83a00000000000000000000000000000000000000000000000000000000000000001f85894a788ca96a910bac854f95b794776c1ad847dcdd5e1a07dfe757ecd65cbd7922a9c0161e935dd7fdbcc0e999689c7d31633896b1fc60ba00000000000000000000000000000000000000000000000000000000000000002f85894a788ca96a910bac854f95b794776c1ad847dcdd5e1a088601476d11616a71c5be67555bd1dff4b1cbf21533d2669b768b61518cfe1c3a00000000000000000000000000000000000000000000000000000000000000003f85894a788ca96a910bac854f95b794776c1ad847dcdd5e1a0cbc4e5fb02c3d1de23a9f1e014b4d2ee5aeaea9505df5e855c9210bf472495afa00000000000000000000000000000000000000000000000000000000000000004f85894a788ca96a910bac854f95b794776c1ad847dcdd5e1a02e174c10e159ea99b867ce3205125c24a42d128804e4070ed6fcc8cc98166aa0a00000000000000000000000000000000000000000000000000000000000000005f85894a788ca96a910bac854f95b794776c1ad847dcdd5e1a0a9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc0a00000000000000000000000000000000000000000000000000000000000000006f85894a788ca96a910bac854f95b794776c1ad847dcdd5e1a075f96ab15d697e93042dc45b5c896c4b27e89bb6eaf39475c5c371cb2513f7d2a00000000000000000000000000000000000000000000000000000000000000007f85894a788ca96a910bac854f95b794776c1ad847dcdd5e1a03be6fd20d5acfde5b873b48692cd31f4d3c7e8ee8a813af4696af8859e5ca6c6a00000000000000000000000000000000000000000000000000000000000000008f85894a788ca96a910bac854f95b794776c1ad847dcdd5e1a0625b35f5e76f098dd7c3a05b10e2e5e78a4a01228d60c3b143426cdf36d26455a00000000000000000000000000000000000000000000000000000000000000009f85894a788ca96a910bac854f95b794776c1ad847dcdd5e1a0c575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e7a0000000000000000000000000000000000000000000000000000000000000000a","0xf90129a0450cab79b65afd357994f71bc1d915bc26557762bfb6bd050d586c82405efb7683046713b9010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0"]} diff --git a/tests/integration_tests/spec/debug_getRawReceipts/get-genesis.io b/tests/integration_tests/spec/debug_getRawReceipts/get-genesis.io deleted file mode 100644 index f6fe2eae0f..0000000000 --- a/tests/integration_tests/spec/debug_getRawReceipts/get-genesis.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets receipts for block 0 ->> {"jsonrpc":"2.0","id":1,"method":"debug_getRawReceipts","params":["0x0"]} -<< {"jsonrpc":"2.0","id":1,"result":[]} diff --git a/tests/integration_tests/spec/debug_getRawReceipts/get-invalid-number.io b/tests/integration_tests/spec/debug_getRawReceipts/get-invalid-number.io deleted file mode 100644 index 654eb9409b..0000000000 --- a/tests/integration_tests/spec/debug_getRawReceipts/get-invalid-number.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets receipts with invalid number formatting ->> {"jsonrpc":"2.0","id":1,"method":"debug_getRawReceipts","params":["2"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"invalid argument 0: hex string without 0x prefix"}} diff --git a/tests/integration_tests/spec/debug_getRawTransaction/get-invalid-hash.io b/tests/integration_tests/spec/debug_getRawTransaction/get-invalid-hash.io deleted file mode 100644 index 1be1076542..0000000000 --- a/tests/integration_tests/spec/debug_getRawTransaction/get-invalid-hash.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets tx with hash missing 0x prefix ->> {"jsonrpc":"2.0","id":1,"method":"debug_getRawTransaction","params":["1000000000000000000000000000000000000000000000000000000000000001"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"invalid argument 0: json: cannot unmarshal hex string without 0x prefix into Go value of type common.Hash"}} diff --git a/tests/integration_tests/spec/debug_getRawTransaction/get-tx.io b/tests/integration_tests/spec/debug_getRawTransaction/get-tx.io deleted file mode 100644 index 21c79656f9..0000000000 --- a/tests/integration_tests/spec/debug_getRawTransaction/get-tx.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets tx rlp by hash ->> {"jsonrpc":"2.0","id":1,"method":"debug_getRawTransaction","params":["0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e"]} -<< {"jsonrpc":"2.0","id":1,"result":"0xf889800183013a548080b83c600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f31ca0d642ba4d1f9388c5fd312bb9fb42d189a0b3c796de55093c85f30802a85147c8a037aa8680923f811a6988c03dd414ca00cd25d6876ba5925c7ca8ac6aad21669d"} diff --git a/tests/integration_tests/spec/eth_blobBaseFee/get-current-blobfee.io b/tests/integration_tests/spec/eth_blobBaseFee/get-current-blobfee.io deleted file mode 100644 index 9b03cc5068..0000000000 --- a/tests/integration_tests/spec/eth_blobBaseFee/get-current-blobfee.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets the current blob fee in wei ->> {"jsonrpc":"2.0","id":1,"method":"eth_blobBaseFee"} -<< {"jsonrpc":"2.0","id":1,"result":"0x1"} diff --git a/tests/integration_tests/spec/eth_blockNumber/simple-test.io b/tests/integration_tests/spec/eth_blockNumber/simple-test.io deleted file mode 100644 index e06bd36711..0000000000 --- a/tests/integration_tests/spec/eth_blockNumber/simple-test.io +++ /dev/null @@ -1,3 +0,0 @@ -// retrieves the client's current block number ->> {"jsonrpc":"2.0","id":1,"method":"eth_blockNumber"} -<< {"jsonrpc":"2.0","id":1,"result":"0x2d"} diff --git a/tests/integration_tests/spec/eth_call/call-callenv-options-eip1559.io b/tests/integration_tests/spec/eth_call/call-callenv-options-eip1559.io deleted file mode 100644 index 133cd44429..0000000000 --- a/tests/integration_tests/spec/eth_call/call-callenv-options-eip1559.io +++ /dev/null @@ -1,5 +0,0 @@ -// Performs a call to the callenv contract, which echoes the EVM transaction environment. -// This call uses EIP1559 transaction options. -// See https://github.com/ethereum/hive/tree/master/cmd/hivechain/contracts/callenv.eas for the output structure. ->> {"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"from":"0x14e46043e63d0e3cdcf2530519f4cfaf35058cb2","gas":"0xea60","input":"0x333435","maxFeePerGas":"0x5763d65","maxPriorityFeePerGas":"0xb","to":"0x9344b07175800259691961298ca11c824e65032d","value":"0x17"},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x000000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000c72dd9d5e883e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005763d64000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014e46043e63d0e3cdcf2530519f4cfaf35058cb20000000000000000000000000000000000000000000000000000000000000017"} diff --git a/tests/integration_tests/spec/eth_call/call-callenv.io b/tests/integration_tests/spec/eth_call/call-callenv.io deleted file mode 100644 index 32f15199b9..0000000000 --- a/tests/integration_tests/spec/eth_call/call-callenv.io +++ /dev/null @@ -1,4 +0,0 @@ -// Performs a call to the callenv contract, which echoes the EVM transaction environment. -// See https://github.com/ethereum/hive/tree/master/cmd/hivechain/contracts/callenv.eas for the output structure. ->> {"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"from":"0x0000000000000000000000000000000000000000","to":"0x9344b07175800259691961298ca11c824e65032d"},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x000000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000c72dd9d5e883e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"} diff --git a/tests/integration_tests/spec/eth_call/call-contract.io b/tests/integration_tests/spec/eth_call/call-contract.io deleted file mode 100644 index 0ae3783c27..0000000000 --- a/tests/integration_tests/spec/eth_call/call-contract.io +++ /dev/null @@ -1,3 +0,0 @@ -// performs a basic contract call with default settings ->> {"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"from":"0x0000000000000000000000000000000000000000","input":"0xff01","to":"0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667"},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":"0xffee"} diff --git a/tests/integration_tests/spec/eth_call/call-eip7702-delegation.io b/tests/integration_tests/spec/eth_call/call-eip7702-delegation.io deleted file mode 100644 index a5d0715c23..0000000000 --- a/tests/integration_tests/spec/eth_call/call-eip7702-delegation.io +++ /dev/null @@ -1,3 +0,0 @@ -// Performs a call to an account that has an EIP-7702 code delegation. ->> {"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"from":"0x0000000000000000000000000000000000000000","gas":"0x186a0","to":"0xeda8645ba6948855e3b3cd596bbb07596d59c603"},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x000000000000000000000000eda8645ba6948855e3b3cd596bbb07596d59c603696e766f6b656400000000000000000000000000000000000000000000000000"} diff --git a/tests/integration_tests/spec/eth_call/call-revert-abi-error.io b/tests/integration_tests/spec/eth_call/call-revert-abi-error.io deleted file mode 100644 index ff52f14bdf..0000000000 --- a/tests/integration_tests/spec/eth_call/call-revert-abi-error.io +++ /dev/null @@ -1,3 +0,0 @@ -// calls a contract that reverts with an ABI-encoded Error(string) value ->> {"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"from":"0x0000000000000000000000000000000000000000","gas":"0x186a0","input":"0x01","to":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930"},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":3,"message":"execution reverted: user error","data":"0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000a75736572206572726f72"}} diff --git a/tests/integration_tests/spec/eth_call/call-revert-abi-panic.io b/tests/integration_tests/spec/eth_call/call-revert-abi-panic.io deleted file mode 100644 index ce9b5b3719..0000000000 --- a/tests/integration_tests/spec/eth_call/call-revert-abi-panic.io +++ /dev/null @@ -1,3 +0,0 @@ -// calls a contract that reverts with an ABI-encoded Panic(uint) value ->> {"jsonrpc":"2.0","id":1,"method":"eth_call","params":[{"from":"0x0000000000000000000000000000000000000000","gas":"0x186a0","input":"0x00","to":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930"},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":3,"message":"execution reverted: assert(false)","data":"0x4e487b710000000000000000000000000000000000000000000000000000000000000001"}} diff --git a/tests/integration_tests/spec/eth_chainId/get-chain-id.io b/tests/integration_tests/spec/eth_chainId/get-chain-id.io deleted file mode 100644 index 5ffb9ce546..0000000000 --- a/tests/integration_tests/spec/eth_chainId/get-chain-id.io +++ /dev/null @@ -1,3 +0,0 @@ -// retrieves the client's current chain id ->> {"jsonrpc":"2.0","id":1,"method":"eth_chainId"} -<< {"jsonrpc":"2.0","id":1,"result":"0xc72dd9d5e883e"} diff --git a/tests/integration_tests/spec/eth_config/get-config.io b/tests/integration_tests/spec/eth_config/get-config.io deleted file mode 100644 index 78b40f868f..0000000000 --- a/tests/integration_tests/spec/eth_config/get-config.io +++ /dev/null @@ -1,3 +0,0 @@ -// retrieves the client's current fork configuration as defined by EIP-7910 ->> {"jsonrpc":"2.0","id":1,"method":"eth_config"} -<< {"jsonrpc":"2.0","id":1,"result":{"current":{"activationTime":450,"blobSchedule":{"target":6,"max":9,"baseFeeUpdateFraction":5007716},"chainId":"0xc72dd9d5e883e","forkId":"0xe29a7b81","precompiles":{"BLAKE2F":"0x0000000000000000000000000000000000000009","BLS12_G1ADD":"0x000000000000000000000000000000000000000b","BLS12_G1MSM":"0x000000000000000000000000000000000000000c","BLS12_G2ADD":"0x000000000000000000000000000000000000000d","BLS12_G2MSM":"0x000000000000000000000000000000000000000e","BLS12_MAP_FP2_TO_G2":"0x0000000000000000000000000000000000000011","BLS12_MAP_FP_TO_G1":"0x0000000000000000000000000000000000000010","BLS12_PAIRING_CHECK":"0x000000000000000000000000000000000000000f","BN254_ADD":"0x0000000000000000000000000000000000000006","BN254_MUL":"0x0000000000000000000000000000000000000007","BN254_PAIRING":"0x0000000000000000000000000000000000000008","ECREC":"0x0000000000000000000000000000000000000001","ID":"0x0000000000000000000000000000000000000004","KZG_POINT_EVALUATION":"0x000000000000000000000000000000000000000a","MODEXP":"0x0000000000000000000000000000000000000005","RIPEMD160":"0x0000000000000000000000000000000000000003","SHA256":"0x0000000000000000000000000000000000000002"},"systemContracts":{"BEACON_ROOTS_ADDRESS":"0x000f3df6d732807ef1319fb7b8bb8522d0beac02","CONSOLIDATION_REQUEST_PREDEPLOY_ADDRESS":"0x0000bbddc7ce488642fb579f8b00f3a590007251","DEPOSIT_CONTRACT_ADDRESS":"0x0000000000000000000000000000000000000000","HISTORY_STORAGE_ADDRESS":"0x0000f90827f1c53a10cb7a02335b175320002935","WITHDRAWAL_REQUEST_PREDEPLOY_ADDRESS":"0x00000961ef480eb55e80d19ad83579a64c007002"}},"next":null,"last":null}} diff --git a/tests/integration_tests/spec/eth_createAccessList/create-al-abi-revert.io b/tests/integration_tests/spec/eth_createAccessList/create-al-abi-revert.io deleted file mode 100644 index b3480bf657..0000000000 --- a/tests/integration_tests/spec/eth_createAccessList/create-al-abi-revert.io +++ /dev/null @@ -1,6 +0,0 @@ -// Creates an access list for a contract invocation that reverts. -// The server should return the accessed slots regardless of failure, and should report the failure -// in the "error" field. -// speconly: client response is only checked for schema validity. ->> {"jsonrpc":"2.0","id":1,"method":"eth_createAccessList","params":[{"gas":"0x186a0","input":"0x01","to":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930"},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":{"accessList":[{"address":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930","storageKeys":["0x00000000000000000000000000000000000000000000000000000000000042ff"]}],"error":"execution reverted","gasUsed":"0x639d"}} diff --git a/tests/integration_tests/spec/eth_createAccessList/create-al-contract-eip1559.io b/tests/integration_tests/spec/eth_createAccessList/create-al-contract-eip1559.io deleted file mode 100644 index 3b986aa28a..0000000000 --- a/tests/integration_tests/spec/eth_createAccessList/create-al-contract-eip1559.io +++ /dev/null @@ -1,5 +0,0 @@ -// Creates an access list for a contract invocation that accesses storage. -// This invocation uses EIP-1559 fields to specify the gas price. -// speconly: client response is only checked for schema validity. ->> {"jsonrpc":"2.0","id":1,"method":"eth_createAccessList","params":[{"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0xea60","input":"0x010203040506","maxFeePerGas":"0x5763d64","maxPriorityFeePerGas":"0x3","nonce":"0x0","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df"},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":{"accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x13a08e3cd39a1bc7bf9103f63f83273cced2beada9f723945176d6b983c65bd2"]}],"gasUsed":"0xca3c"}} diff --git a/tests/integration_tests/spec/eth_createAccessList/create-al-contract.io b/tests/integration_tests/spec/eth_createAccessList/create-al-contract.io deleted file mode 100644 index 7d364c328c..0000000000 --- a/tests/integration_tests/spec/eth_createAccessList/create-al-contract.io +++ /dev/null @@ -1,4 +0,0 @@ -// creates an access list for a contract invocation that accesses storage -// speconly: client response is only checked for schema validity. ->> {"jsonrpc":"2.0","id":1,"method":"eth_createAccessList","params":[{"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0xea60","gasPrice":"0x5763d64","input":"0x010203040506","nonce":"0x0","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df"},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":{"accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x13a08e3cd39a1bc7bf9103f63f83273cced2beada9f723945176d6b983c65bd2"]}],"gasUsed":"0xca3c"}} diff --git a/tests/integration_tests/spec/eth_createAccessList/create-al-value-transfer.io b/tests/integration_tests/spec/eth_createAccessList/create-al-value-transfer.io deleted file mode 100644 index 12bc036a52..0000000000 --- a/tests/integration_tests/spec/eth_createAccessList/create-al-value-transfer.io +++ /dev/null @@ -1,3 +0,0 @@ -// estimates a simple transfer ->> {"jsonrpc":"2.0","id":1,"method":"eth_createAccessList","params":[{"from":"0x0c2c51a0990aee1d73c1228de158688341557508","nonce":"0x0","to":"0x0100000000000000000000000000000000000000","value":"0xa"},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":{"accessList":[],"gasUsed":"0x5208"}} diff --git a/tests/integration_tests/spec/eth_estimateGas/estimate-call-abi-error.io b/tests/integration_tests/spec/eth_estimateGas/estimate-call-abi-error.io deleted file mode 100644 index 7f7c5e63dc..0000000000 --- a/tests/integration_tests/spec/eth_estimateGas/estimate-call-abi-error.io +++ /dev/null @@ -1,4 +0,0 @@ -// estimates a contract call that reverts using Solidity Error(string) data -// speconly: client response is only checked for schema validity. ->> {"jsonrpc":"2.0","id":1,"method":"eth_estimateGas","params":[{"from":"0x0102030000000000000000000000000000000000","input":"0x01","to":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930"}]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":3,"message":"execution reverted: user error","data":"0x08c379a00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000a75736572206572726f72"}} diff --git a/tests/integration_tests/spec/eth_estimateGas/estimate-failed-call.io b/tests/integration_tests/spec/eth_estimateGas/estimate-failed-call.io deleted file mode 100644 index 18a6740060..0000000000 --- a/tests/integration_tests/spec/eth_estimateGas/estimate-failed-call.io +++ /dev/null @@ -1,4 +0,0 @@ -// estimates a contract call that reverts -// speconly: client response is only checked for schema validity. ->> {"jsonrpc":"2.0","id":1,"method":"eth_estimateGas","params":[{"from":"0x0102030000000000000000000000000000000000","input":"0xff030405","to":"0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667"}]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":3,"message":"execution reverted","data":"0x77726f6e672d63616c6c6461746173697a65"}} diff --git a/tests/integration_tests/spec/eth_estimateGas/estimate-simple-transfer.io b/tests/integration_tests/spec/eth_estimateGas/estimate-simple-transfer.io deleted file mode 100644 index 35be3751fd..0000000000 --- a/tests/integration_tests/spec/eth_estimateGas/estimate-simple-transfer.io +++ /dev/null @@ -1,3 +0,0 @@ -// estimates a simple transfer ->> {"jsonrpc":"2.0","id":1,"method":"eth_estimateGas","params":[{"from":"0xaa00000000000000000000000000000000000000","to":"0x0100000000000000000000000000000000000000"}]} -<< {"jsonrpc":"2.0","id":1,"result":"0x5208"} diff --git a/tests/integration_tests/spec/eth_estimateGas/estimate-successful-call.io b/tests/integration_tests/spec/eth_estimateGas/estimate-successful-call.io deleted file mode 100644 index 209d4a6a7b..0000000000 --- a/tests/integration_tests/spec/eth_estimateGas/estimate-successful-call.io +++ /dev/null @@ -1,4 +0,0 @@ -// estimates a successful contract call -// speconly: client response is only checked for schema validity. ->> {"jsonrpc":"2.0","id":1,"method":"eth_estimateGas","params":[{"from":"0x0102030000000000000000000000000000000000","input":"0xff01","to":"0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667"}]} -<< {"jsonrpc":"2.0","id":1,"result":"0x5316"} diff --git a/tests/integration_tests/spec/eth_estimateGas/estimate-with-eip4844.io b/tests/integration_tests/spec/eth_estimateGas/estimate-with-eip4844.io deleted file mode 100644 index 0a76bbbf21..0000000000 --- a/tests/integration_tests/spec/eth_estimateGas/estimate-with-eip4844.io +++ /dev/null @@ -1,4 +0,0 @@ -// checks gas estimation for blob transactions (EIP-4844) -// speconly: client response is only checked for schema validity. ->> {"jsonrpc":"2.0","id":1,"method":"eth_estimateGas","params":[{"blobVersionedHashes":["0x0100000000000000000000000000000000000000000000000000000000000000"],"from":"0x0c2c51a0990aee1d73c1228de158688341557508","maxFeePerBlobGas":"0x5","nonce":"0x0","to":"0x0100000000000000000000000000000000000000","type":"0x3","value":"0x1"}]} -<< {"jsonrpc":"2.0","id":1,"result":"0x5208"} diff --git a/tests/integration_tests/spec/eth_estimateGas/estimate-with-eip7702.io b/tests/integration_tests/spec/eth_estimateGas/estimate-with-eip7702.io deleted file mode 100644 index cb4cb3ebf7..0000000000 --- a/tests/integration_tests/spec/eth_estimateGas/estimate-with-eip7702.io +++ /dev/null @@ -1,6 +0,0 @@ -// checks that including an EIP-7720 authorization in the message increases gas -// speconly: client response is only checked for schema validity. ->> {"jsonrpc":"2.0","id":1,"method":"eth_estimateGas","params":[{"from":"0x0c2c51a0990aee1d73c1228de158688341557508","nonce":"0x0","to":"0x0100000000000000000000000000000000000000","value":"0x1"}]} -<< {"jsonrpc":"2.0","id":1,"result":"0x5208"} ->> {"jsonrpc":"2.0","id":2,"method":"eth_estimateGas","params":[{"authorizationList":[{"address":"0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","chainId":"0x1","nonce":"0x0","r":"0x1111111111111111111111111111111111111111111111111111111111111111","s":"0x2222222222222222222222222222222222222222222222222222222222222222","yParity":"0x0"}],"from":"0x0c2c51a0990aee1d73c1228de158688341557508","nonce":"0x0","to":"0x0100000000000000000000000000000000000000","type":"0x4","value":"0x1"}]} -<< {"jsonrpc":"2.0","id":2,"result":"0xb52e"} diff --git a/tests/integration_tests/spec/eth_feeHistory/fee-history.io b/tests/integration_tests/spec/eth_feeHistory/fee-history.io deleted file mode 100644 index f911a65bad..0000000000 --- a/tests/integration_tests/spec/eth_feeHistory/fee-history.io +++ /dev/null @@ -1,4 +0,0 @@ -// gets fee history information -// speconly: client response is only checked for schema validity. ->> {"jsonrpc":"2.0","id":1,"method":"eth_feeHistory","params":["0x1","0x1b",[95,99]]} -<< {"jsonrpc":"2.0","id":1,"result":{"oldestBlock":"0x1b","reward":[["0x1","0x1"]],"baseFeePerGas":["0x3b9aca00","0x342dc057"],"gasUsedRatio":[0.0016543629259729885],"baseFeePerBlobGas":["0x0","0x0"],"blobGasUsedRatio":[0]}} diff --git a/tests/integration_tests/spec/eth_getBalance/get-balance-blockhash.io b/tests/integration_tests/spec/eth_getBalance/get-balance-blockhash.io deleted file mode 100644 index 912773be74..0000000000 --- a/tests/integration_tests/spec/eth_getBalance/get-balance-blockhash.io +++ /dev/null @@ -1,3 +0,0 @@ -// retrieves the an account's balance at a specific blockhash ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBalance","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","0x61857226df2f4c8affcf75e02a6b279e9b35cf6dea8994ab98ffafbcc4d497b3"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x3c"} diff --git a/tests/integration_tests/spec/eth_getBalance/get-balance-unknown-account.io b/tests/integration_tests/spec/eth_getBalance/get-balance-unknown-account.io deleted file mode 100644 index 4faf536446..0000000000 --- a/tests/integration_tests/spec/eth_getBalance/get-balance-unknown-account.io +++ /dev/null @@ -1,3 +0,0 @@ -// requests the balance of a non-existent account ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBalance","params":["0xc1cadaffffffffffffffffffffffffffffffffff","latest"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x0"} diff --git a/tests/integration_tests/spec/eth_getBalance/get-balance.io b/tests/integration_tests/spec/eth_getBalance/get-balance.io deleted file mode 100644 index f7004fb4db..0000000000 --- a/tests/integration_tests/spec/eth_getBalance/get-balance.io +++ /dev/null @@ -1,3 +0,0 @@ -// retrieves the an account balance ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBalance","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","latest"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x56"} diff --git a/tests/integration_tests/spec/eth_getBlockByHash/get-block-by-empty-hash.io b/tests/integration_tests/spec/eth_getBlockByHash/get-block-by-empty-hash.io deleted file mode 100644 index ee68cc7062..0000000000 --- a/tests/integration_tests/spec/eth_getBlockByHash/get-block-by-empty-hash.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets block empty hash ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByHash","params":["0x0000000000000000000000000000000000000000000000000000000000000000",true]} -<< {"jsonrpc":"2.0","id":1,"result":null} diff --git a/tests/integration_tests/spec/eth_getBlockByHash/get-block-by-hash.io b/tests/integration_tests/spec/eth_getBlockByHash/get-block-by-hash.io deleted file mode 100644 index 0d44ce3f5b..0000000000 --- a/tests/integration_tests/spec/eth_getBlockByHash/get-block-by-hash.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets block 1 ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByHash","params":["0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"difficulty":"0x20000","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x527eb","hash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x1","parentHash":"0x79e0f5ffb6a0c9f54d507dbbadc935603ac1db86d32f7857472180a75ec11f90","receiptsRoot":"0xcf8b165a50a7884c3051f2b2a4a8967670699a5eb754674cd523c30dc4685b24","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x4a6","stateRoot":"0x22e4092a71d9649313a17bea0079ddab823af6db75fac5a6c923c5351f60e1e3","timestamp":"0xa","transactions":[{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","blockTimestamp":"0xa","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13a54","gasPrice":"0x1","hash":"0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","v":"0x1c","r":"0xd642ba4d1f9388c5fd312bb9fb42d189a0b3c796de55093c85f30802a85147c8","s":"0x37aa8680923f811a6988c03dd414ca00cd25d6876ba5925c7ca8ac6aad21669d"},{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","blockTimestamp":"0xa","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x15f84","gasPrice":"0x1","hash":"0x1999fb436409e9c2464bd9efc3aa914b2e8a843144fdcc17132fa9da0f15641e","input":"0x600d380380600d6000396000f3366002146022577177726f6e672d63616c6c6461746173697a656000526012600efd5b60003560f01c61ff01146047576d77726f6e672d63616c6c64617461600052600e6012fd5b61ffee6000526002601ef3","nonce":"0x1","to":null,"transactionIndex":"0x1","value":"0x0","type":"0x0","v":"0x1b","r":"0x218687e18ef90972e218a9f60e6dc21f865608e129c81c491c0c0132f0293de3","s":"0x5d32b06bda00fab156cc3f078ef8687ccfafe2f2ae583af5f5d02e8904b6e09"},{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","blockTimestamp":"0xa","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x18ec4","gasPrice":"0x1","hash":"0x021ae79aa8821d60291761cfe419b6cbc0ad7dd50d4aa6f14a54e5fc0d62e325","input":"0x600d380380600d6000396000f36000356142ff54501515603b577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f08c379a0000000000000000000000000000000000000000000000000000000006000526020600452600a6024527f75736572206572726f7200000000000000000000000000000000000000000000604452604e6000fd","nonce":"0x2","to":null,"transactionIndex":"0x2","value":"0x0","type":"0x0","v":"0x1b","r":"0x9d56b7d540b1303583ff2b4dfffd77f221eb26d40fdeab9c670cc214b41f1bbc","s":"0x1bb76cf78b3ffa90b0aeccee1fcb26bc126cb76d173c78b25c9060b30abaff3a"},{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","blockTimestamp":"0xa","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x1c4a0","gasPrice":"0x1","hash":"0x709f12649d057e2ad0a0a41176cc405f80af735df8cf2b89782eb3ab1699e549","input":"0x43600052600060205260405b604060002060208051600101905281526020016101408110600b57506101006040f3","nonce":"0x3","to":null,"transactionIndex":"0x3","value":"0x0","type":"0x0","v":"0x1c","r":"0xa377752cecd876db9e137f922fc400b586954cf02ad8cc1c61091274831bf933","s":"0x1ed3e8efc91ff4868b3f2c1490bd771119db03e8830ba7fa9482258a918211f5"}],"transactionsRoot":"0xe59276e836db856f9137c247add7333879b98bdf82db67c40d25914fa0ab8e48","uncles":[]}} diff --git a/tests/integration_tests/spec/eth_getBlockByHash/get-block-by-notfound-hash.io b/tests/integration_tests/spec/eth_getBlockByHash/get-block-by-notfound-hash.io deleted file mode 100644 index 467e96422e..0000000000 --- a/tests/integration_tests/spec/eth_getBlockByHash/get-block-by-notfound-hash.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets block not found hash ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByHash","params":["0x00000000000000000000000000000000000000000000000000000000deadbeef",true]} -<< {"jsonrpc":"2.0","id":1,"result":null} diff --git a/tests/integration_tests/spec/eth_getBlockByNumber/get-block-cancun-fork.io b/tests/integration_tests/spec/eth_getBlockByNumber/get-block-cancun-fork.io deleted file mode 100644 index 3688fa2a78..0000000000 --- a/tests/integration_tests/spec/eth_getBlockByNumber/get-block-cancun-fork.io +++ /dev/null @@ -1,3 +0,0 @@ -// requests a block at the Cancun fork ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x2a",false]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x822595b","blobGasUsed":"0x20000","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x3b27a","hash":"0x60d8d4c8d64367b4436e63f43addb9e3bd99a5a4176b84429fc4f22e27a7ee63","logsBloom":"0x00000000000000000000000000000000000000000000000100000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000200000000080000000000080000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000100000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2a","parentBeaconBlockRoot":"0x83472eda6eb475906aeeb7f09e757ba9f6663b9f6a5bf8611d6306f677f67ebd","parentHash":"0x9c1ebc6ea2a8e7a58a8bc73ded493f98bb86d4456bdf883328413163a1ab55a8","receiptsRoot":"0xd986dfa6b469d59e2b16338ad9b4e757dd3d29deda9676d4d1dde8ec7721ea54","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x49f","stateRoot":"0x4d368dd9b1ba388fb07796f48729d7ee7d1be7c69eda22184b6acd0b98c6a6eb","timestamp":"0x1a4","transactions":["0x6bcea0da8e703d3283c8f1124377a63023290cd188de3274d12441e15dc14794","0x7fd4c1e424cac12b7021fb66aa47489aebe7ba7abcb52cdcac74785d60713d37","0xeab876a89925871050e77b5308413b0aea26e51cee250bba53adef60c9fa9a64","0x652a99ca41abd4b63a191bd05a6fc185926256fec07fe491cce1f9b558c41c80"],"transactionsRoot":"0xa16f5ce410d10f0b13a7b35739d5b877b7b02a0e01e46a2915c194cd5bec3380","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/integration_tests/spec/eth_getBlockByNumber/get-block-london-fork.io b/tests/integration_tests/spec/eth_getBlockByNumber/get-block-london-fork.io deleted file mode 100644 index 01cdef807f..0000000000 --- a/tests/integration_tests/spec/eth_getBlockByNumber/get-block-london-fork.io +++ /dev/null @@ -1,3 +0,0 @@ -// requests a block at the London fork ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x1b",false]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x3b9aca00","difficulty":"0x202c0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x1e740","hash":"0x155ed001f7571cb6fa37e5c9c2462b4704ce9cdf53fddc39e9d9f96f92a5233c","logsBloom":"0x00000000000000000000000000000000000008000000000010000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000080000004000000000000200000000000000000000000000002000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000200000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x1b","parentHash":"0x6dd31770f69dc52912f0b916d4fa68dfcb3ade82a50600bdd3b762d3bcb1f2b6","receiptsRoot":"0xb14c6a4874e93edbe48c9bd16177b9ebcf0ca4d50eb263d895bbd67de1dbdb2f","sha3Uncles":"0xce3c8bc139372bf1f7cd80ff124da0e4a4b5b0e6b1126ad076cb390eb4df5dce","size":"0x63c","stateRoot":"0x7bec4fbf8c7ab78871fbc183985473eaccf1d0522677e2faeb1e2beffc99d461","timestamp":"0x10e","transactions":["0xc7dba25cdd5aee6ff7d27fe5422a4179f5913c664c3339c8e0440bd1c9cd8de9","0xee7a54703e4bb9cea154b8c14dd9a3233af9120f76730abf21af6f1e1620fc41","0xf804c0984af03a8fb0948a95bef19996d7cafdb098891ff65f126795b597064a"],"transactionsRoot":"0xb3edba3be2bce9594477ee53a18ce14c3bb8c1db93380a6796e56fbca25c295f","uncles":["0x65050466ad5543c351de427fd18f22e3fb993eaac0f1ae540a4aa5f75e5a876a"]}} diff --git a/tests/integration_tests/spec/eth_getBlockByNumber/get-block-merge-fork.io b/tests/integration_tests/spec/eth_getBlockByNumber/get-block-merge-fork.io deleted file mode 100644 index a4f0887a30..0000000000 --- a/tests/integration_tests/spec/eth_getBlockByNumber/get-block-merge-fork.io +++ /dev/null @@ -1,3 +0,0 @@ -// requests a block at the merge (Paris) fork ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x24",false]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x12099cd9","difficulty":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x4bf07","hash":"0x7df010c68c0525dde23045cdb05a4a3bbd5832f2771f55fc42dc2b32e7b6a3e1","logsBloom":"0x000000000000000000000040000000000000000000000400000000000000000000000000000010000000000000100000000000000000000000000000000000010000000000000000000000000000000001000000000000000000000000000000000000000a0000000008008000000000000200000000000000200000000004000000000000100000000000000000000000800000000010000000000000000000000000000000000c00800000000100048000000000000000008000000002800000400040000000000000000000000000000000000000000000000000001001000000200000000000000000000000000000000000000020008000000000000001","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x24","parentHash":"0x61857226df2f4c8affcf75e02a6b279e9b35cf6dea8994ab98ffafbcc4d497b3","receiptsRoot":"0x1e3ec40e95c98fd0f99092bbac08d9d1969d3db223592e7ef3a2b40d743d7ca5","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x3e5","stateRoot":"0x1f05ce0026b232fe5cabadc6294b47dabb8b36a76ed0850b8468c63ed8d42556","timestamp":"0x168","transactions":["0x66e36fd24946b76e66ed41d0ea03871bd2bdaf1fd6ae375b4cd71515ef5abaae","0x7d97e95f289b9d7ff25eb49bb8f527186b660f57af49e808a99602549d6c99ed","0xcec818d348249f5fd7c80495c7281fbfa7e537ee6dce24fee0a8d79314d01920","0x070ec9be8b3e2d091e9e0416e2dfbb4e087fa419656272825a3e0e3fdd56fdd1"],"transactionsRoot":"0x0919f8e1fd9c36eb3cd6d0942cde2da8008220b63d39d1f35bf62758a7c26de7","uncles":[]}} diff --git a/tests/integration_tests/spec/eth_getBlockByNumber/get-block-notfound.io b/tests/integration_tests/spec/eth_getBlockByNumber/get-block-notfound.io deleted file mode 100644 index f2158948e6..0000000000 --- a/tests/integration_tests/spec/eth_getBlockByNumber/get-block-notfound.io +++ /dev/null @@ -1,3 +0,0 @@ -// requests a block number that does not exist ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x3e8",true]} -<< {"jsonrpc":"2.0","id":1,"result":null} diff --git a/tests/integration_tests/spec/eth_getBlockByNumber/get-block-prague-fork.io b/tests/integration_tests/spec/eth_getBlockByNumber/get-block-prague-fork.io deleted file mode 100644 index 7b4873db05..0000000000 --- a/tests/integration_tests/spec/eth_getBlockByNumber/get-block-prague-fork.io +++ /dev/null @@ -1,3 +0,0 @@ -// requests a block at the Prague fork ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x2d",false]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x5763d64","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x54a92","hash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","logsBloom":"0x00000000008000000000000000000040000000000000000000000000800000000000000008000000000000000000000000000000000000000000000000000000000000000000000000004000000000020200000000000000000000000000002000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2d","parentBeaconBlockRoot":"0x4b118bd31ed2c4eeb81dc9e3919e9989994333fe36f147c2930f12c53f0d3c78","parentHash":"0x4b9d85c6787612e87e0659e11a347d415040465e492358f79cc7e2e293f38aa7","receiptsRoot":"0x2c86b2791cdd088d3c3e9d6225f71724d3e8c67bdd13cd6208831058cee1043f","requestsHash":"0x57cac3e52cdcd73e52bd9e54956e0eae370f00ed41f68edc78266bdb46c3a543","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x633","stateRoot":"0xf61892bbb9a9df427d1f941dc8c536d72c41efed598244726ea21a0f183ff232","timestamp":"0x1c2","transactions":["0x2fbbd036996c7487316c92b9e5798edb98fd57f32a6c1075e904a734821e1cd2","0x16f6724ad864e7664c367893cae3e176d362bea3a47495cec3b246555a7228da","0xddf234c5f149d2d1a4d01276d42e38a6234bfa7b987c49ba889b028b429aac8f","0x3d3d02e1bdc39a6eab20f7b44ed299ca61eb1d642806bfa07e3a7ee8edd700e5","0x195a09414344f56e7a202d1493b258b2394b9b93811ce4ee96212a7d34ffb04f","0xdf66bea01c5cf47b48ec11453822d751a5daaf1d16959772c2196c5ab8cf8438"],"transactionsRoot":"0xc541c333ff4a96a17d3601f7d628ea27ecf4597a11077e5d9d1c4dbed6c7f401","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/integration_tests/spec/eth_getBlockByNumber/get-block-shanghai-fork.io b/tests/integration_tests/spec/eth_getBlockByNumber/get-block-shanghai-fork.io deleted file mode 100644 index 8cd255ac28..0000000000 --- a/tests/integration_tests/spec/eth_getBlockByNumber/get-block-shanghai-fork.io +++ /dev/null @@ -1,3 +0,0 @@ -// requests a block at the Shanghai fork ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x27",false]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0xc1da0cc","difficulty":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x3923b","hash":"0xfd6f25f599ae74b5f0d080b1d5918ebfb5e7050bac5698d1efc02fe66974263a","logsBloom":"0x00000008000000000000100000000000010000000000000000010000800000000000000000000000000000004004000000004810000000000000000000004000000080000010000000004000200000000200000000000000000000000000002000010000400000080000000000000000000020000010000000000000080000000100000000000080200000000000000010000000000100020000000000000000000008000000009100000000022000000000000000000000000000040000000000000000000000100000000000004000000080000000200000000000000000000000000000000000000000000000000000000000000000000000010000000100","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x27","parentHash":"0x5ef0e98d636e92dcc510b43ee15a689f96708e459221706bde921af9acf7d7b2","receiptsRoot":"0xd8b031b7eaf79c70b378523ef39d37bcae47cab5e8d93e080d7b124f0504f1aa","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x3a3","stateRoot":"0x63c291618eee647a37d4c5cba8fa77194271801fc5b5d4c8fa0ce7f0ba068e66","timestamp":"0x186","transactions":["0xd993e8d4819e82e76026349059de8739c6a7a95db40954d85f81f639404f6a45","0xb3ab7b7c10f909ac2d177207cdde0b0d355a768c8ab124a6f2b6e19097771151","0xb8d49ba18112a81983371e9e43378e9593f17163fd46d3c1cedeecf3c38b972a"],"transactionsRoot":"0x61f14f64f79c6725b52ed6a95015a3820fd2100ac11d82a59e45275607b294a8","uncles":[],"withdrawals":[{"index":"0x0","validatorIndex":"0x5","address":"0x3ae75c08b4c907eb63a8960c45b86e1e9ab6123c","amount":"0x64"}],"withdrawalsRoot":"0x0cbd4206b2131f21f541589e2bb2ad8cfceb1875f04acde910ea91933245f92b"}} diff --git a/tests/integration_tests/spec/eth_getBlockByNumber/get-finalized.io b/tests/integration_tests/spec/eth_getBlockByNumber/get-finalized.io deleted file mode 100644 index d0aa90e434..0000000000 --- a/tests/integration_tests/spec/eth_getBlockByNumber/get-finalized.io +++ /dev/null @@ -1,3 +0,0 @@ -// get the block with tag "finalized" ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["finalized",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x5763d64","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x54a92","hash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","logsBloom":"0x00000000008000000000000000000040000000000000000000000000800000000000000008000000000000000000000000000000000000000000000000000000000000000000000000004000000000020200000000000000000000000000002000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2d","parentBeaconBlockRoot":"0x4b118bd31ed2c4eeb81dc9e3919e9989994333fe36f147c2930f12c53f0d3c78","parentHash":"0x4b9d85c6787612e87e0659e11a347d415040465e492358f79cc7e2e293f38aa7","receiptsRoot":"0x2c86b2791cdd088d3c3e9d6225f71724d3e8c67bdd13cd6208831058cee1043f","requestsHash":"0x57cac3e52cdcd73e52bd9e54956e0eae370f00ed41f68edc78266bdb46c3a543","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x633","stateRoot":"0xf61892bbb9a9df427d1f941dc8c536d72c41efed598244726ea21a0f183ff232","timestamp":"0x1c2","transactions":[{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11c32","gasPrice":"0x5763d65","hash":"0x2fbbd036996c7487316c92b9e5798edb98fd57f32a6c1075e904a734821e1cd2","input":"0x600d380380600d6000396000f336156009575f355f555b305f525f5460205260405ff3","nonce":"0x9a","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x551fe45ccebb0318196e31dbc60da87c43dc60b8fb01afb3286693fa09878730","s":"0x40d33e9afecfe1516b045d61a3272bddbc83f482a7f2c749311248b50fe62e81"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0xb3b0","gasPrice":"0x5763d65","maxFeePerGas":"0x5763d65","maxPriorityFeePerGas":"0x1","hash":"0x16f6724ad864e7664c367893cae3e176d362bea3a47495cec3b246555a7228da","input":"0x","nonce":"0x9b","to":"0x0000000000000000000000000000000000000000","transactionIndex":"0x1","value":"0x0","type":"0x4","accessList":[],"chainId":"0xc72dd9d5e883e","authorizationList":[{"chainId":"0xc72dd9d5e883e","address":"0x58f8fe237b593c19546e1e758a2544561d04bfe0","nonce":"0x0","yParity":"0x1","r":"0xec6caeb1b7071f1b3ae36aeaa7bf0eaecb8e006e83b3e50d792870ea95af4c59","s":"0x1d1225f76d6faac3d904c0635193e83d3867c101b2e6f6c9bb7b1fdeeed923ab"}],"v":"0x1","r":"0x8ae3402e4f63751c895532b94aee0f7b6b8ff5d0b0a689f6d63b3dbd19d69059","s":"0x2e63e4d140b0d282d56289b34f3df82cbcb2f3aa385f5438a423584fe0c2b467","yParity":"0x1"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11170","gasPrice":"0x5763d65","hash":"0xddf234c5f149d2d1a4d01276d42e38a6234bfa7b987c49ba889b028b429aac8f","input":"0x696e766f6b6564","nonce":"0x9c","to":"0xeda8645ba6948855e3b3cd596bbb07596d59c603","transactionIndex":"0x2","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xfea7e18c82a1270f142572533bc2e6e33d6d41a3f1303403dd0a90dd7a4f35d","s":"0x4a4ab6c5bb4c31c3a5f8991ae45bad2303c45923404571f7b4c66adbd03b7936"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x249f0","gasPrice":"0x5763d65","maxFeePerGas":"0x5763d65","maxPriorityFeePerGas":"0x2","hash":"0x3d3d02e1bdc39a6eab20f7b44ed299ca61eb1d642806bfa07e3a7ee8edd700e5","input":"0xb917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80","nonce":"0x9d","to":"0x00000961ef480eb55e80d19ad83579a64c007002","transactionIndex":"0x3","value":"0x3b9aca00","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x5f8b300cf80f7fb7e511460fa1a803278b47223f2c0a82857c5c0e5f7c900d23","s":"0x290bf2495235a106352786403ed937df8385a2356472569020fd952913690ec9","yParity":"0x1"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x5763d65","hash":"0x195a09414344f56e7a202d1493b258b2394b9b93811ce4ee96212a7d34ffb04f","input":"0x6b3b937565afc29f656d6974","nonce":"0x9e","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x4","value":"0x2","type":"0x1","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xe8481f0a1ea7b2528784efff1d1b33cbd66ac97ebe2ae35c7997cacb2863430b"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x84f8b48ac6fbf39054c7794e6ff4e16a3bacbd0964b53d4d03ff668e7eda365","s":"0x2e4e86f2f5fbb8dad4ee8907eee4488f70c75bb646522b5197c4dcdc29ea31bf","yParity":"0x0"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x5763d65","hash":"0xdf66bea01c5cf47b48ec11453822d751a5daaf1d16959772c2196c5ab8cf8438","input":"0x","nonce":"0x9f","to":"0x4340ee1b812acb40a1eb561c019c327b243b92df","transactionIndex":"0x5","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0xec839e20a6f8ff0fb1043022e5816454191436ba7f6607bf6efe6517fdd1e2dd","s":"0x7903b3dd48963c0404f99807fd89cde2b66091c32178f66920120cb10981019","yParity":"0x1"}],"transactionsRoot":"0xc541c333ff4a96a17d3601f7d628ea27ecf4597a11077e5d9d1c4dbed6c7f401","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/integration_tests/spec/eth_getBlockByNumber/get-genesis.io b/tests/integration_tests/spec/eth_getBlockByNumber/get-genesis.io deleted file mode 100644 index 199aaae18f..0000000000 --- a/tests/integration_tests/spec/eth_getBlockByNumber/get-genesis.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets block number zero ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["0x0",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"difficulty":"0x20000","extraData":"0x68697665636861696e","gasLimit":"0x23f3e20","gasUsed":"0x0","hash":"0x79e0f5ffb6a0c9f54d507dbbadc935603ac1db86d32f7857472180a75ec11f90","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x0","parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x205","stateRoot":"0xe5d8b049a78427be8c23ebd6811ed436b3a36cc117954b496848b90f0c654844","timestamp":"0x0","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[]}} diff --git a/tests/integration_tests/spec/eth_getBlockByNumber/get-latest.io b/tests/integration_tests/spec/eth_getBlockByNumber/get-latest.io deleted file mode 100644 index b1a2c96cea..0000000000 --- a/tests/integration_tests/spec/eth_getBlockByNumber/get-latest.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets the block with tag "latest" ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["latest",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x5763d64","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x54a92","hash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","logsBloom":"0x00000000008000000000000000000040000000000000000000000000800000000000000008000000000000000000000000000000000000000000000000000000000000000000000000004000000000020200000000000000000000000000002000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2d","parentBeaconBlockRoot":"0x4b118bd31ed2c4eeb81dc9e3919e9989994333fe36f147c2930f12c53f0d3c78","parentHash":"0x4b9d85c6787612e87e0659e11a347d415040465e492358f79cc7e2e293f38aa7","receiptsRoot":"0x2c86b2791cdd088d3c3e9d6225f71724d3e8c67bdd13cd6208831058cee1043f","requestsHash":"0x57cac3e52cdcd73e52bd9e54956e0eae370f00ed41f68edc78266bdb46c3a543","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x633","stateRoot":"0xf61892bbb9a9df427d1f941dc8c536d72c41efed598244726ea21a0f183ff232","timestamp":"0x1c2","transactions":[{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11c32","gasPrice":"0x5763d65","hash":"0x2fbbd036996c7487316c92b9e5798edb98fd57f32a6c1075e904a734821e1cd2","input":"0x600d380380600d6000396000f336156009575f355f555b305f525f5460205260405ff3","nonce":"0x9a","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x551fe45ccebb0318196e31dbc60da87c43dc60b8fb01afb3286693fa09878730","s":"0x40d33e9afecfe1516b045d61a3272bddbc83f482a7f2c749311248b50fe62e81"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0xb3b0","gasPrice":"0x5763d65","maxFeePerGas":"0x5763d65","maxPriorityFeePerGas":"0x1","hash":"0x16f6724ad864e7664c367893cae3e176d362bea3a47495cec3b246555a7228da","input":"0x","nonce":"0x9b","to":"0x0000000000000000000000000000000000000000","transactionIndex":"0x1","value":"0x0","type":"0x4","accessList":[],"chainId":"0xc72dd9d5e883e","authorizationList":[{"chainId":"0xc72dd9d5e883e","address":"0x58f8fe237b593c19546e1e758a2544561d04bfe0","nonce":"0x0","yParity":"0x1","r":"0xec6caeb1b7071f1b3ae36aeaa7bf0eaecb8e006e83b3e50d792870ea95af4c59","s":"0x1d1225f76d6faac3d904c0635193e83d3867c101b2e6f6c9bb7b1fdeeed923ab"}],"v":"0x1","r":"0x8ae3402e4f63751c895532b94aee0f7b6b8ff5d0b0a689f6d63b3dbd19d69059","s":"0x2e63e4d140b0d282d56289b34f3df82cbcb2f3aa385f5438a423584fe0c2b467","yParity":"0x1"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11170","gasPrice":"0x5763d65","hash":"0xddf234c5f149d2d1a4d01276d42e38a6234bfa7b987c49ba889b028b429aac8f","input":"0x696e766f6b6564","nonce":"0x9c","to":"0xeda8645ba6948855e3b3cd596bbb07596d59c603","transactionIndex":"0x2","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xfea7e18c82a1270f142572533bc2e6e33d6d41a3f1303403dd0a90dd7a4f35d","s":"0x4a4ab6c5bb4c31c3a5f8991ae45bad2303c45923404571f7b4c66adbd03b7936"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x249f0","gasPrice":"0x5763d65","maxFeePerGas":"0x5763d65","maxPriorityFeePerGas":"0x2","hash":"0x3d3d02e1bdc39a6eab20f7b44ed299ca61eb1d642806bfa07e3a7ee8edd700e5","input":"0xb917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80","nonce":"0x9d","to":"0x00000961ef480eb55e80d19ad83579a64c007002","transactionIndex":"0x3","value":"0x3b9aca00","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x5f8b300cf80f7fb7e511460fa1a803278b47223f2c0a82857c5c0e5f7c900d23","s":"0x290bf2495235a106352786403ed937df8385a2356472569020fd952913690ec9","yParity":"0x1"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x5763d65","hash":"0x195a09414344f56e7a202d1493b258b2394b9b93811ce4ee96212a7d34ffb04f","input":"0x6b3b937565afc29f656d6974","nonce":"0x9e","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x4","value":"0x2","type":"0x1","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xe8481f0a1ea7b2528784efff1d1b33cbd66ac97ebe2ae35c7997cacb2863430b"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x84f8b48ac6fbf39054c7794e6ff4e16a3bacbd0964b53d4d03ff668e7eda365","s":"0x2e4e86f2f5fbb8dad4ee8907eee4488f70c75bb646522b5197c4dcdc29ea31bf","yParity":"0x0"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x5763d65","hash":"0xdf66bea01c5cf47b48ec11453822d751a5daaf1d16959772c2196c5ab8cf8438","input":"0x","nonce":"0x9f","to":"0x4340ee1b812acb40a1eb561c019c327b243b92df","transactionIndex":"0x5","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0xec839e20a6f8ff0fb1043022e5816454191436ba7f6607bf6efe6517fdd1e2dd","s":"0x7903b3dd48963c0404f99807fd89cde2b66091c32178f66920120cb10981019","yParity":"0x1"}],"transactionsRoot":"0xc541c333ff4a96a17d3601f7d628ea27ecf4597a11077e5d9d1c4dbed6c7f401","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/integration_tests/spec/eth_getBlockByNumber/get-safe.io b/tests/integration_tests/spec/eth_getBlockByNumber/get-safe.io deleted file mode 100644 index b88b1cb01b..0000000000 --- a/tests/integration_tests/spec/eth_getBlockByNumber/get-safe.io +++ /dev/null @@ -1,3 +0,0 @@ -// get the block with tag "safe" ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockByNumber","params":["safe",true]} -<< {"jsonrpc":"2.0","id":1,"result":{"baseFeePerGas":"0x5763d64","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x54a92","hash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","logsBloom":"0x00000000008000000000000000000040000000000000000000000000800000000000000008000000000000000000000000000000000000000000000000000000000000000000000000004000000000020200000000000000000000000000002000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2d","parentBeaconBlockRoot":"0x4b118bd31ed2c4eeb81dc9e3919e9989994333fe36f147c2930f12c53f0d3c78","parentHash":"0x4b9d85c6787612e87e0659e11a347d415040465e492358f79cc7e2e293f38aa7","receiptsRoot":"0x2c86b2791cdd088d3c3e9d6225f71724d3e8c67bdd13cd6208831058cee1043f","requestsHash":"0x57cac3e52cdcd73e52bd9e54956e0eae370f00ed41f68edc78266bdb46c3a543","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x633","stateRoot":"0xf61892bbb9a9df427d1f941dc8c536d72c41efed598244726ea21a0f183ff232","timestamp":"0x1c2","transactions":[{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11c32","gasPrice":"0x5763d65","hash":"0x2fbbd036996c7487316c92b9e5798edb98fd57f32a6c1075e904a734821e1cd2","input":"0x600d380380600d6000396000f336156009575f355f555b305f525f5460205260405ff3","nonce":"0x9a","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x551fe45ccebb0318196e31dbc60da87c43dc60b8fb01afb3286693fa09878730","s":"0x40d33e9afecfe1516b045d61a3272bddbc83f482a7f2c749311248b50fe62e81"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0xb3b0","gasPrice":"0x5763d65","maxFeePerGas":"0x5763d65","maxPriorityFeePerGas":"0x1","hash":"0x16f6724ad864e7664c367893cae3e176d362bea3a47495cec3b246555a7228da","input":"0x","nonce":"0x9b","to":"0x0000000000000000000000000000000000000000","transactionIndex":"0x1","value":"0x0","type":"0x4","accessList":[],"chainId":"0xc72dd9d5e883e","authorizationList":[{"chainId":"0xc72dd9d5e883e","address":"0x58f8fe237b593c19546e1e758a2544561d04bfe0","nonce":"0x0","yParity":"0x1","r":"0xec6caeb1b7071f1b3ae36aeaa7bf0eaecb8e006e83b3e50d792870ea95af4c59","s":"0x1d1225f76d6faac3d904c0635193e83d3867c101b2e6f6c9bb7b1fdeeed923ab"}],"v":"0x1","r":"0x8ae3402e4f63751c895532b94aee0f7b6b8ff5d0b0a689f6d63b3dbd19d69059","s":"0x2e63e4d140b0d282d56289b34f3df82cbcb2f3aa385f5438a423584fe0c2b467","yParity":"0x1"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11170","gasPrice":"0x5763d65","hash":"0xddf234c5f149d2d1a4d01276d42e38a6234bfa7b987c49ba889b028b429aac8f","input":"0x696e766f6b6564","nonce":"0x9c","to":"0xeda8645ba6948855e3b3cd596bbb07596d59c603","transactionIndex":"0x2","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xfea7e18c82a1270f142572533bc2e6e33d6d41a3f1303403dd0a90dd7a4f35d","s":"0x4a4ab6c5bb4c31c3a5f8991ae45bad2303c45923404571f7b4c66adbd03b7936"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x249f0","gasPrice":"0x5763d65","maxFeePerGas":"0x5763d65","maxPriorityFeePerGas":"0x2","hash":"0x3d3d02e1bdc39a6eab20f7b44ed299ca61eb1d642806bfa07e3a7ee8edd700e5","input":"0xb917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80","nonce":"0x9d","to":"0x00000961ef480eb55e80d19ad83579a64c007002","transactionIndex":"0x3","value":"0x3b9aca00","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x5f8b300cf80f7fb7e511460fa1a803278b47223f2c0a82857c5c0e5f7c900d23","s":"0x290bf2495235a106352786403ed937df8385a2356472569020fd952913690ec9","yParity":"0x1"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x5763d65","hash":"0x195a09414344f56e7a202d1493b258b2394b9b93811ce4ee96212a7d34ffb04f","input":"0x6b3b937565afc29f656d6974","nonce":"0x9e","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x4","value":"0x2","type":"0x1","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xe8481f0a1ea7b2528784efff1d1b33cbd66ac97ebe2ae35c7997cacb2863430b"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x84f8b48ac6fbf39054c7794e6ff4e16a3bacbd0964b53d4d03ff668e7eda365","s":"0x2e4e86f2f5fbb8dad4ee8907eee4488f70c75bb646522b5197c4dcdc29ea31bf","yParity":"0x0"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x5763d65","hash":"0xdf66bea01c5cf47b48ec11453822d751a5daaf1d16959772c2196c5ab8cf8438","input":"0x","nonce":"0x9f","to":"0x4340ee1b812acb40a1eb561c019c327b243b92df","transactionIndex":"0x5","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0xec839e20a6f8ff0fb1043022e5816454191436ba7f6607bf6efe6517fdd1e2dd","s":"0x7903b3dd48963c0404f99807fd89cde2b66091c32178f66920120cb10981019","yParity":"0x1"}],"transactionsRoot":"0xc541c333ff4a96a17d3601f7d628ea27ecf4597a11077e5d9d1c4dbed6c7f401","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-0.io b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-0.io deleted file mode 100644 index 6614a66fca..0000000000 --- a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-0.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets receipts for block 0 ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["0x0"]} -<< {"jsonrpc":"2.0","id":1,"result":[]} diff --git a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-by-hash.io b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-by-hash.io deleted file mode 100644 index acbed72881..0000000000 --- a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-by-hash.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets receipts for normal block hash ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0x102d3","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x102d3","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","root":"0x19fb42ec665b1940ad4b603066bb6efef7d0b97172806da958d1ada7094db01f","to":null,"transactionHash":"0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e","transactionIndex":"0x0","type":"0x0"},{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","contractAddress":"0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667","cumulativeGasUsed":"0x22adc","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x12809","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","root":"0x524da38c9b9e010d2c87c43afd7d1058aa3a5f06dbdbf94b9407ed3b1d3fdbb9","to":null,"transactionHash":"0x1999fb436409e9c2464bd9efc3aa914b2e8a843144fdcc17132fa9da0f15641e","transactionIndex":"0x1","type":"0x0"},{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","contractAddress":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930","cumulativeGasUsed":"0x38231","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x15755","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","root":"0xc91d4c0806cff479dda0aa7ffaf941900b35c9e65e4b8331862a859a65241903","to":null,"transactionHash":"0x021ae79aa8821d60291761cfe419b6cbc0ad7dd50d4aa6f14a54e5fc0d62e325","transactionIndex":"0x2","type":"0x0"},{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","contractAddress":"0x2c1287779024c3a2f0924b54816d79b7e378907d","cumulativeGasUsed":"0x527eb","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x1a5ba","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","root":"0xe28bafed7fbb27f13633362546cab622e4bbc768d3688afde927217b96e21419","to":null,"transactionHash":"0x709f12649d057e2ad0a0a41176cc405f80af735df8cf2b89782eb3ab1699e549","transactionIndex":"0x3","type":"0x0"}]} diff --git a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-earliest.io b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-earliest.io deleted file mode 100644 index d4b6922400..0000000000 --- a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-earliest.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets receipts for block earliest ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["earliest"]} -<< {"jsonrpc":"2.0","id":1,"result":[]} diff --git a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-empty.io b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-empty.io deleted file mode 100644 index de328d22ba..0000000000 --- a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-empty.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets receipts for empty block hash ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["0x0000000000000000000000000000000000000000000000000000000000000000"]} -<< {"jsonrpc":"2.0","id":1,"result":null} diff --git a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-future.io b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-future.io deleted file mode 100644 index 2fdc1262c8..0000000000 --- a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-future.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets receipts of future block ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["0x2e"]} -<< {"jsonrpc":"2.0","id":1,"result":null} diff --git a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-latest.io b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-latest.io deleted file mode 100644 index c9ce97182c..0000000000 --- a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-latest.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets receipts for block latest ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","contractAddress":"0x58f8fe237b593c19546e1e758a2544561d04bfe0","cumulativeGasUsed":"0xe271","effectiveGasPrice":"0x5763d65","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xe271","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":null,"transactionHash":"0x2fbbd036996c7487316c92b9e5798edb98fd57f32a6c1075e904a734821e1cd2","transactionIndex":"0x0","type":"0x0"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","contractAddress":null,"cumulativeGasUsed":"0x17231","effectiveGasPrice":"0x5763d65","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x8fc0","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x0000000000000000000000000000000000000000","transactionHash":"0x16f6724ad864e7664c367893cae3e176d362bea3a47495cec3b246555a7228da","transactionIndex":"0x1","type":"0x4"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","contractAddress":null,"cumulativeGasUsed":"0x21b95","effectiveGasPrice":"0x5763d65","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xa964","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0xeda8645ba6948855e3b3cd596bbb07596d59c603","transactionHash":"0xddf234c5f149d2d1a4d01276d42e38a6234bfa7b987c49ba889b028b429aac8f","transactionIndex":"0x2","type":"0x0"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","contractAddress":null,"cumulativeGasUsed":"0x42dee","effectiveGasPrice":"0x5763d65","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x21259","logs":[{"address":"0x00000961ef480eb55e80d19ad83579a64c007002","topics":[],"data":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865fb917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80","blockNumber":"0x2d","transactionHash":"0x3d3d02e1bdc39a6eab20f7b44ed299ca61eb1d642806bfa07e3a7ee8edd700e5","transactionIndex":"0x3","blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockTimestamp":"0x1c2","logIndex":"0x0","removed":false}],"logsBloom":"0x00000000008000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x00000961ef480eb55e80d19ad83579a64c007002","transactionHash":"0x3d3d02e1bdc39a6eab20f7b44ed299ca61eb1d642806bfa07e3a7ee8edd700e5","transactionIndex":"0x3","type":"0x2"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","contractAddress":null,"cumulativeGasUsed":"0x4f88a","effectiveGasPrice":"0x5763d65","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xca9c","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xe8481f0a1ea7b2528784efff1d1b33cbd66ac97ebe2ae35c7997cacb2863430b"],"data":"0x0000000000000000000000000000000000000000000000000000000000000029","blockNumber":"0x2d","transactionHash":"0x195a09414344f56e7a202d1493b258b2394b9b93811ce4ee96212a7d34ffb04f","transactionIndex":"0x4","blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockTimestamp":"0x1c2","logIndex":"0x1","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000800000000000000008000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0x195a09414344f56e7a202d1493b258b2394b9b93811ce4ee96212a7d34ffb04f","transactionIndex":"0x4","type":"0x1"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","contractAddress":null,"cumulativeGasUsed":"0x54a92","effectiveGasPrice":"0x5763d65","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x5208","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x4340ee1b812acb40a1eb561c019c327b243b92df","transactionHash":"0xdf66bea01c5cf47b48ec11453822d751a5daaf1d16959772c2196c5ab8cf8438","transactionIndex":"0x5","type":"0x1"}]} diff --git a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-n.io b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-n.io deleted file mode 100644 index 298c76852a..0000000000 --- a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-n.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets receipts non-zero block ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["0x1"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0x102d3","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x102d3","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","root":"0x19fb42ec665b1940ad4b603066bb6efef7d0b97172806da958d1ada7094db01f","to":null,"transactionHash":"0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e","transactionIndex":"0x0","type":"0x0"},{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","contractAddress":"0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667","cumulativeGasUsed":"0x22adc","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x12809","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","root":"0x524da38c9b9e010d2c87c43afd7d1058aa3a5f06dbdbf94b9407ed3b1d3fdbb9","to":null,"transactionHash":"0x1999fb436409e9c2464bd9efc3aa914b2e8a843144fdcc17132fa9da0f15641e","transactionIndex":"0x1","type":"0x0"},{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","contractAddress":"0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930","cumulativeGasUsed":"0x38231","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x15755","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","root":"0xc91d4c0806cff479dda0aa7ffaf941900b35c9e65e4b8331862a859a65241903","to":null,"transactionHash":"0x021ae79aa8821d60291761cfe419b6cbc0ad7dd50d4aa6f14a54e5fc0d62e325","transactionIndex":"0x2","type":"0x0"},{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","contractAddress":"0x2c1287779024c3a2f0924b54816d79b7e378907d","cumulativeGasUsed":"0x527eb","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x1a5ba","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","root":"0xe28bafed7fbb27f13633362546cab622e4bbc768d3688afde927217b96e21419","to":null,"transactionHash":"0x709f12649d057e2ad0a0a41176cc405f80af735df8cf2b89782eb3ab1699e549","transactionIndex":"0x3","type":"0x0"}]} diff --git a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-not-found.io b/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-not-found.io deleted file mode 100644 index 96ba3dbde2..0000000000 --- a/tests/integration_tests/spec/eth_getBlockReceipts/get-block-receipts-not-found.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets receipts for notfound hash ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockReceipts","params":["0x00000000000000000000000000000000000000000000000000000000deadbeef"]} -<< {"jsonrpc":"2.0","id":1,"result":null} diff --git a/tests/integration_tests/spec/eth_getBlockTransactionCountByHash/get-block-n.io b/tests/integration_tests/spec/eth_getBlockTransactionCountByHash/get-block-n.io deleted file mode 100644 index 2da9c381c1..0000000000 --- a/tests/integration_tests/spec/eth_getBlockTransactionCountByHash/get-block-n.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets tx count in a non-empty block ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockTransactionCountByHash","params":["0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x4"} diff --git a/tests/integration_tests/spec/eth_getBlockTransactionCountByHash/get-genesis.io b/tests/integration_tests/spec/eth_getBlockTransactionCountByHash/get-genesis.io deleted file mode 100644 index b8f78e0feb..0000000000 --- a/tests/integration_tests/spec/eth_getBlockTransactionCountByHash/get-genesis.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets tx count in block 0 ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockTransactionCountByHash","params":["0x79e0f5ffb6a0c9f54d507dbbadc935603ac1db86d32f7857472180a75ec11f90"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x0"} diff --git a/tests/integration_tests/spec/eth_getBlockTransactionCountByNumber/get-block-n.io b/tests/integration_tests/spec/eth_getBlockTransactionCountByNumber/get-block-n.io deleted file mode 100644 index 3b4b28b56c..0000000000 --- a/tests/integration_tests/spec/eth_getBlockTransactionCountByNumber/get-block-n.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets tx count in a non-empty block ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockTransactionCountByNumber","params":["0x1"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x4"} diff --git a/tests/integration_tests/spec/eth_getBlockTransactionCountByNumber/get-genesis.io b/tests/integration_tests/spec/eth_getBlockTransactionCountByNumber/get-genesis.io deleted file mode 100644 index c1132f7ec1..0000000000 --- a/tests/integration_tests/spec/eth_getBlockTransactionCountByNumber/get-genesis.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets tx count in block 0 ->> {"jsonrpc":"2.0","id":1,"method":"eth_getBlockTransactionCountByNumber","params":["0x0"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x0"} diff --git a/tests/integration_tests/spec/eth_getCode/get-code-eip7702-delegation.io b/tests/integration_tests/spec/eth_getCode/get-code-eip7702-delegation.io deleted file mode 100644 index e46b2529b4..0000000000 --- a/tests/integration_tests/spec/eth_getCode/get-code-eip7702-delegation.io +++ /dev/null @@ -1,4 +0,0 @@ -// requests code of an account that has an EIP-7702 delegation. the server is expected to return -// the delegation designator. ->> {"jsonrpc":"2.0","id":1,"method":"eth_getCode","params":["0xeda8645ba6948855e3b3cd596bbb07596d59c603","latest"]} -<< {"jsonrpc":"2.0","id":1,"result":"0xef010058f8fe237b593c19546e1e758a2544561d04bfe0"} diff --git a/tests/integration_tests/spec/eth_getCode/get-code-unknown-account.io b/tests/integration_tests/spec/eth_getCode/get-code-unknown-account.io deleted file mode 100644 index aafa0f0c10..0000000000 --- a/tests/integration_tests/spec/eth_getCode/get-code-unknown-account.io +++ /dev/null @@ -1,3 +0,0 @@ -// requests code of a non-existent account ->> {"jsonrpc":"2.0","id":1,"method":"eth_getCode","params":["0xc1cadaffffffffffffffffffffffffffffffffff","latest"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x"} diff --git a/tests/integration_tests/spec/eth_getCode/get-code.io b/tests/integration_tests/spec/eth_getCode/get-code.io deleted file mode 100644 index 300e8160f6..0000000000 --- a/tests/integration_tests/spec/eth_getCode/get-code.io +++ /dev/null @@ -1,3 +0,0 @@ -// requests code of an existing contract ->> {"jsonrpc":"2.0","id":1,"method":"eth_getCode","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","latest"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x3680600080376000206000548082558060010160005560005263656d697460206000a2"} diff --git a/tests/integration_tests/spec/eth_getLogs/contract-addr.io b/tests/integration_tests/spec/eth_getLogs/contract-addr.io deleted file mode 100644 index fbd401f767..0000000000 --- a/tests/integration_tests/spec/eth_getLogs/contract-addr.io +++ /dev/null @@ -1,3 +0,0 @@ -// queries for logs from a specific contract across a range of blocks ->> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"address":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df"],"fromBlock":"0x1","toBlock":"0x4"}]} -<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xf4da19d6c17928e683661a52829cf391d3dc26d581152b81ce595a1207944f09"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x2","transactionHash":"0x5bc704d4eb4ce7fe319705d2f888516961426a177f2799c9f934b5df7466dd33","transactionIndex":"0x2","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0xa","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x4238ace0bf7e66fd40fea01bdf43f4f30423f48432efd0da3af5fcb17a977fd4"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x4","transactionHash":"0xf047c5133c96c405a79d01038b4ccf8208c03e296dd9f6bea083727c9513f805","transactionIndex":"0x0","blockHash":"0x29cc6f97784c864cbe29b3502934ad874f48ddc89580018f5a32e01652c88f0a","blockTimestamp":"0x28","logIndex":"0x0","removed":false}]} diff --git a/tests/integration_tests/spec/eth_getLogs/filter-error-future-block-range.io b/tests/integration_tests/spec/eth_getLogs/filter-error-future-block-range.io deleted file mode 100644 index 33ab8de596..0000000000 --- a/tests/integration_tests/spec/eth_getLogs/filter-error-future-block-range.io +++ /dev/null @@ -1,3 +0,0 @@ -// checks that an error is returned if `toBlock` is greater than the latest block ->> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"fromBlock":"0x29","toBlock":"0x2f"}]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"block range extends beyond current head block"}} diff --git a/tests/integration_tests/spec/eth_getLogs/filter-error-invalid-blockHash-and-range.io b/tests/integration_tests/spec/eth_getLogs/filter-error-invalid-blockHash-and-range.io deleted file mode 100644 index 21e73a0b8b..0000000000 --- a/tests/integration_tests/spec/eth_getLogs/filter-error-invalid-blockHash-and-range.io +++ /dev/null @@ -1,3 +0,0 @@ -// checks that an error is returned if `fromBlock`/`toBlock` are specified together with `blockHash` ->> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"blockHash":"0xfec6e8fb3735a6f24416b3b9887fd4cab5e474436ecd4ce701685487ee957416","fromBlock":"0x3","toBlock":"0x4"}]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"invalid argument 0: cannot specify both BlockHash and FromBlock/ToBlock, choose one or the other"}} diff --git a/tests/integration_tests/spec/eth_getLogs/filter-error-reversed-block-range.io b/tests/integration_tests/spec/eth_getLogs/filter-error-reversed-block-range.io deleted file mode 100644 index f5ebaad78d..0000000000 --- a/tests/integration_tests/spec/eth_getLogs/filter-error-reversed-block-range.io +++ /dev/null @@ -1,3 +0,0 @@ -// checks that an error is returned if `fromBlock` is larger than `toBlock` ->> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"fromBlock":"0x29","toBlock":"0x26"}]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"invalid block range params"}} diff --git a/tests/integration_tests/spec/eth_getLogs/filter-with-blockHash-and-topics.io b/tests/integration_tests/spec/eth_getLogs/filter-with-blockHash-and-topics.io deleted file mode 100644 index e6ee2e02f0..0000000000 --- a/tests/integration_tests/spec/eth_getLogs/filter-with-blockHash-and-topics.io +++ /dev/null @@ -1,3 +0,0 @@ -// queries for logs in a block, identified by blockHash ->> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"blockHash":"0x29cc6f97784c864cbe29b3502934ad874f48ddc89580018f5a32e01652c88f0a","topics":[["0x00000000000000000000000000000000000000000000000000000000656d6974"],["0x4238ace0bf7e66fd40fea01bdf43f4f30423f48432efd0da3af5fcb17a977fd4"]]}]} -<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x4238ace0bf7e66fd40fea01bdf43f4f30423f48432efd0da3af5fcb17a977fd4"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x4","transactionHash":"0xf047c5133c96c405a79d01038b4ccf8208c03e296dd9f6bea083727c9513f805","transactionIndex":"0x0","blockHash":"0x29cc6f97784c864cbe29b3502934ad874f48ddc89580018f5a32e01652c88f0a","blockTimestamp":"0x28","logIndex":"0x0","removed":false}]} diff --git a/tests/integration_tests/spec/eth_getLogs/filter-with-blockHash.io b/tests/integration_tests/spec/eth_getLogs/filter-with-blockHash.io deleted file mode 100644 index 7df09832ee..0000000000 --- a/tests/integration_tests/spec/eth_getLogs/filter-with-blockHash.io +++ /dev/null @@ -1,3 +0,0 @@ -// queries for all logs of a block, identified by blockHash ->> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"blockHash":"0x29cc6f97784c864cbe29b3502934ad874f48ddc89580018f5a32e01652c88f0a"}]} -<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x4238ace0bf7e66fd40fea01bdf43f4f30423f48432efd0da3af5fcb17a977fd4"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x4","transactionHash":"0xf047c5133c96c405a79d01038b4ccf8208c03e296dd9f6bea083727c9513f805","transactionIndex":"0x0","blockHash":"0x29cc6f97784c864cbe29b3502934ad874f48ddc89580018f5a32e01652c88f0a","blockTimestamp":"0x28","logIndex":"0x0","removed":false}]} diff --git a/tests/integration_tests/spec/eth_getLogs/no-topics.io b/tests/integration_tests/spec/eth_getLogs/no-topics.io deleted file mode 100644 index c033c093b4..0000000000 --- a/tests/integration_tests/spec/eth_getLogs/no-topics.io +++ /dev/null @@ -1,3 +0,0 @@ -// queries for all logs across a range of blocks ->> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"fromBlock":"0x1","toBlock":"0x3"}]} -<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xabbb5caa7dda850e60932de0934eb1f9d0f59695050f761dc64e443e5030a569"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x2","transactionHash":"0x25d8b4a27c4578e5de6441f98881cf050ab2d9f28ceb28559ece0b65f555e9d8","transactionIndex":"0x0","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0x0","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xd9d16d34ffb15ba3a3d852f0d403e2ce1d691fb54de27ac87cd2f993f3ec330f"],"data":"0x0000000000000000000000000000000000000000000000000000000000000002","blockNumber":"0x2","transactionHash":"0x25d8b4a27c4578e5de6441f98881cf050ab2d9f28ceb28559ece0b65f555e9d8","transactionIndex":"0x0","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0x1","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x679795a0195a1b76cdebb7c51d74e058aee92919b8c3389af86ef24535e8a28c"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x2","transactionHash":"0x25d8b4a27c4578e5de6441f98881cf050ab2d9f28ceb28559ece0b65f555e9d8","transactionIndex":"0x0","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0x2","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xc3a24b0501bd2c13a7e57f2db4369ec4c223447539fc0724a9d55ac4a06ebd4d"],"data":"0x0000000000000000000000000000000000000000000000000000000000000004","blockNumber":"0x2","transactionHash":"0x25d8b4a27c4578e5de6441f98881cf050ab2d9f28ceb28559ece0b65f555e9d8","transactionIndex":"0x0","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0x3","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x91da3fd0782e51c6b3986e9e672fd566868e71f3dbc2d6c2cd6fbb3e361af2a7"],"data":"0x0000000000000000000000000000000000000000000000000000000000000005","blockNumber":"0x2","transactionHash":"0x25d8b4a27c4578e5de6441f98881cf050ab2d9f28ceb28559ece0b65f555e9d8","transactionIndex":"0x0","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0x4","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x89832631fb3c3307a103ba2c84ab569c64d6182a18893dcd163f0f1c2090733a"],"data":"0x0000000000000000000000000000000000000000000000000000000000000006","blockNumber":"0x2","transactionHash":"0x25d8b4a27c4578e5de6441f98881cf050ab2d9f28ceb28559ece0b65f555e9d8","transactionIndex":"0x0","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0x5","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x8819ef417987f8ae7a81f42cdfb18815282fe989326fbff903d13cf0e03ace29"],"data":"0x0000000000000000000000000000000000000000000000000000000000000007","blockNumber":"0x2","transactionHash":"0x25d8b4a27c4578e5de6441f98881cf050ab2d9f28ceb28559ece0b65f555e9d8","transactionIndex":"0x0","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0x6","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0xb7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d"],"data":"0x0000000000000000000000000000000000000000000000000000000000000008","blockNumber":"0x2","transactionHash":"0x25d8b4a27c4578e5de6441f98881cf050ab2d9f28ceb28559ece0b65f555e9d8","transactionIndex":"0x0","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0x7","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x6add646517a5b0f6793cd5891b7937d28a5b2981a5d88ebc7cd776088fea9041"],"data":"0x0000000000000000000000000000000000000000000000000000000000000009","blockNumber":"0x2","transactionHash":"0x25d8b4a27c4578e5de6441f98881cf050ab2d9f28ceb28559ece0b65f555e9d8","transactionIndex":"0x0","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0x8","removed":false},{"address":"0x882e7e5d12617c267a72948e716f231fa79e6d51","topics":["0x6cde3cea4b3a3fb2488b2808bae7556f4a405e50f65e1794383bc026131b13c3"],"data":"0x000000000000000000000000000000000000000000000000000000000000000a","blockNumber":"0x2","transactionHash":"0x25d8b4a27c4578e5de6441f98881cf050ab2d9f28ceb28559ece0b65f555e9d8","transactionIndex":"0x0","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0x9","removed":false},{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0xf4da19d6c17928e683661a52829cf391d3dc26d581152b81ce595a1207944f09"],"data":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x2","transactionHash":"0x5bc704d4eb4ce7fe319705d2f888516961426a177f2799c9f934b5df7466dd33","transactionIndex":"0x2","blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockTimestamp":"0x14","logIndex":"0xa","removed":false},{"address":"0xa788ca96a910bac854f95b794776c1ad847dcdd5","topics":["0x101e368776582e57ab3d116ffe2517c0a585cd5b23174b01e275c2d8329c3d83"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x3","transactionHash":"0xfecc4d4439d77962b8c27e7e652294717fcd75379cab400bbefb2975a960344c","transactionIndex":"0x1","blockHash":"0xd25a5154eb9659078e4df3d68992fc829a130d4ed19c9475341a9d1cd6bf0d61","blockTimestamp":"0x1e","logIndex":"0x0","removed":false},{"address":"0xa788ca96a910bac854f95b794776c1ad847dcdd5","topics":["0x7dfe757ecd65cbd7922a9c0161e935dd7fdbcc0e999689c7d31633896b1fc60b"],"data":"0x0000000000000000000000000000000000000000000000000000000000000002","blockNumber":"0x3","transactionHash":"0xfecc4d4439d77962b8c27e7e652294717fcd75379cab400bbefb2975a960344c","transactionIndex":"0x1","blockHash":"0xd25a5154eb9659078e4df3d68992fc829a130d4ed19c9475341a9d1cd6bf0d61","blockTimestamp":"0x1e","logIndex":"0x1","removed":false},{"address":"0xa788ca96a910bac854f95b794776c1ad847dcdd5","topics":["0x88601476d11616a71c5be67555bd1dff4b1cbf21533d2669b768b61518cfe1c3"],"data":"0x0000000000000000000000000000000000000000000000000000000000000003","blockNumber":"0x3","transactionHash":"0xfecc4d4439d77962b8c27e7e652294717fcd75379cab400bbefb2975a960344c","transactionIndex":"0x1","blockHash":"0xd25a5154eb9659078e4df3d68992fc829a130d4ed19c9475341a9d1cd6bf0d61","blockTimestamp":"0x1e","logIndex":"0x2","removed":false},{"address":"0xa788ca96a910bac854f95b794776c1ad847dcdd5","topics":["0xcbc4e5fb02c3d1de23a9f1e014b4d2ee5aeaea9505df5e855c9210bf472495af"],"data":"0x0000000000000000000000000000000000000000000000000000000000000004","blockNumber":"0x3","transactionHash":"0xfecc4d4439d77962b8c27e7e652294717fcd75379cab400bbefb2975a960344c","transactionIndex":"0x1","blockHash":"0xd25a5154eb9659078e4df3d68992fc829a130d4ed19c9475341a9d1cd6bf0d61","blockTimestamp":"0x1e","logIndex":"0x3","removed":false},{"address":"0xa788ca96a910bac854f95b794776c1ad847dcdd5","topics":["0x2e174c10e159ea99b867ce3205125c24a42d128804e4070ed6fcc8cc98166aa0"],"data":"0x0000000000000000000000000000000000000000000000000000000000000005","blockNumber":"0x3","transactionHash":"0xfecc4d4439d77962b8c27e7e652294717fcd75379cab400bbefb2975a960344c","transactionIndex":"0x1","blockHash":"0xd25a5154eb9659078e4df3d68992fc829a130d4ed19c9475341a9d1cd6bf0d61","blockTimestamp":"0x1e","logIndex":"0x4","removed":false},{"address":"0xa788ca96a910bac854f95b794776c1ad847dcdd5","topics":["0xa9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc0"],"data":"0x0000000000000000000000000000000000000000000000000000000000000006","blockNumber":"0x3","transactionHash":"0xfecc4d4439d77962b8c27e7e652294717fcd75379cab400bbefb2975a960344c","transactionIndex":"0x1","blockHash":"0xd25a5154eb9659078e4df3d68992fc829a130d4ed19c9475341a9d1cd6bf0d61","blockTimestamp":"0x1e","logIndex":"0x5","removed":false},{"address":"0xa788ca96a910bac854f95b794776c1ad847dcdd5","topics":["0x75f96ab15d697e93042dc45b5c896c4b27e89bb6eaf39475c5c371cb2513f7d2"],"data":"0x0000000000000000000000000000000000000000000000000000000000000007","blockNumber":"0x3","transactionHash":"0xfecc4d4439d77962b8c27e7e652294717fcd75379cab400bbefb2975a960344c","transactionIndex":"0x1","blockHash":"0xd25a5154eb9659078e4df3d68992fc829a130d4ed19c9475341a9d1cd6bf0d61","blockTimestamp":"0x1e","logIndex":"0x6","removed":false},{"address":"0xa788ca96a910bac854f95b794776c1ad847dcdd5","topics":["0x3be6fd20d5acfde5b873b48692cd31f4d3c7e8ee8a813af4696af8859e5ca6c6"],"data":"0x0000000000000000000000000000000000000000000000000000000000000008","blockNumber":"0x3","transactionHash":"0xfecc4d4439d77962b8c27e7e652294717fcd75379cab400bbefb2975a960344c","transactionIndex":"0x1","blockHash":"0xd25a5154eb9659078e4df3d68992fc829a130d4ed19c9475341a9d1cd6bf0d61","blockTimestamp":"0x1e","logIndex":"0x7","removed":false},{"address":"0xa788ca96a910bac854f95b794776c1ad847dcdd5","topics":["0x625b35f5e76f098dd7c3a05b10e2e5e78a4a01228d60c3b143426cdf36d26455"],"data":"0x0000000000000000000000000000000000000000000000000000000000000009","blockNumber":"0x3","transactionHash":"0xfecc4d4439d77962b8c27e7e652294717fcd75379cab400bbefb2975a960344c","transactionIndex":"0x1","blockHash":"0xd25a5154eb9659078e4df3d68992fc829a130d4ed19c9475341a9d1cd6bf0d61","blockTimestamp":"0x1e","logIndex":"0x8","removed":false},{"address":"0xa788ca96a910bac854f95b794776c1ad847dcdd5","topics":["0xc575c31fea594a6eb97c8e9d3f9caee4c16218c6ef37e923234c0fe9014a61e7"],"data":"0x000000000000000000000000000000000000000000000000000000000000000a","blockNumber":"0x3","transactionHash":"0xfecc4d4439d77962b8c27e7e652294717fcd75379cab400bbefb2975a960344c","transactionIndex":"0x1","blockHash":"0xd25a5154eb9659078e4df3d68992fc829a130d4ed19c9475341a9d1cd6bf0d61","blockTimestamp":"0x1e","logIndex":"0x9","removed":false}]} diff --git a/tests/integration_tests/spec/eth_getLogs/topic-exact-match.io b/tests/integration_tests/spec/eth_getLogs/topic-exact-match.io deleted file mode 100644 index f01ae7d4e2..0000000000 --- a/tests/integration_tests/spec/eth_getLogs/topic-exact-match.io +++ /dev/null @@ -1,3 +0,0 @@ -// queries for logs with two topics, with both topics set explictly ->> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"fromBlock":"0x3","toBlock":"0x6","topics":[["0x00000000000000000000000000000000000000000000000000000000656d6974"],["0x4238ace0bf7e66fd40fea01bdf43f4f30423f48432efd0da3af5fcb17a977fd4"]]}]} -<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x4238ace0bf7e66fd40fea01bdf43f4f30423f48432efd0da3af5fcb17a977fd4"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x4","transactionHash":"0xf047c5133c96c405a79d01038b4ccf8208c03e296dd9f6bea083727c9513f805","transactionIndex":"0x0","blockHash":"0x29cc6f97784c864cbe29b3502934ad874f48ddc89580018f5a32e01652c88f0a","blockTimestamp":"0x28","logIndex":"0x0","removed":false}]} diff --git a/tests/integration_tests/spec/eth_getLogs/topic-wildcard.io b/tests/integration_tests/spec/eth_getLogs/topic-wildcard.io deleted file mode 100644 index 25d8088541..0000000000 --- a/tests/integration_tests/spec/eth_getLogs/topic-wildcard.io +++ /dev/null @@ -1,3 +0,0 @@ -// queries for logs with two topics, performing a wildcard match in topic position zero ->> {"jsonrpc":"2.0","id":1,"method":"eth_getLogs","params":[{"fromBlock":"0x3","toBlock":"0x6","topics":[[],["0x4238ace0bf7e66fd40fea01bdf43f4f30423f48432efd0da3af5fcb17a977fd4"]]}]} -<< {"jsonrpc":"2.0","id":1,"result":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x4238ace0bf7e66fd40fea01bdf43f4f30423f48432efd0da3af5fcb17a977fd4"],"data":"0x0000000000000000000000000000000000000000000000000000000000000001","blockNumber":"0x4","transactionHash":"0xf047c5133c96c405a79d01038b4ccf8208c03e296dd9f6bea083727c9513f805","transactionIndex":"0x0","blockHash":"0x29cc6f97784c864cbe29b3502934ad874f48ddc89580018f5a32e01652c88f0a","blockTimestamp":"0x28","logIndex":"0x0","removed":false}]} diff --git a/tests/integration_tests/spec/eth_getProof/get-account-proof-blockhash.io b/tests/integration_tests/spec/eth_getProof/get-account-proof-blockhash.io deleted file mode 100644 index 37411a9544..0000000000 --- a/tests/integration_tests/spec/eth_getProof/get-account-proof-blockhash.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets proof for a certain account at the specified blockhash ->> {"jsonrpc":"2.0","id":1,"method":"eth_getProof","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df",[],"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2"]} -<< {"jsonrpc":"2.0","id":1,"result":{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","accountProof":["0xf90211a0c1ec0ebf911208cfe3eb68d6005b3e83c8fa3446b42f60fca3c6e67df126066aa062eddfd4f3121af0cca8b1a80cc0aeeef27da44fa1d57bc459309b14e663376aa0a5ca83efc5562f922e920d8617a5424ab9e76f140e59322b2b58fe23d899154aa0a569c3cece07d30f89a0c26b07f26a8587a472eec47ef8e4cc4565906b7cbfcda074ad67c1f8b22738e6e9f1213aa95cac3ffa1b9b8a98c99786d5efbdb10ee60da0a627fe55108274e262bb555d43831c1c2bcefa6698e155dbd20a0919f5bb5426a0f28cfa6ff43da171ced23ffa6fe70025859fd8360dcd87274be3df0d8dbbf1cfa0d5af301540181bdcd204a91043b7fcd12b82e9d822ac387b8b162afc78bfba44a01e9eaae8fd500f4fcd414445cc0655fd0441a27a60265038f9a931991b20560ea0bedffa91b8e218576b3c83440ff9428798a51c0ed37e8bd7e042691dd5dd4f5ea0dd9dec9944b0a9f99002efc2e646a46464324020fa1cc4b1e2190e957126f637a0aaff546e530961eb05171154f83e391d56b8a555b94275aced4fd66630d75871a04a67aa8ecba3084a66962b45e056e12842925af61302e8525bd3fe6a0b15b509a089be1200c01a32cd74d93139db15642514353607bc748d17edffe2be33117587a056461cdbabb61606d146fefa28cc3c3079dfa6a8185e20bb907008a747fd3585a0ab222e04aba14634b1e7df14a1501e39532099c1438029a48141ed23ed695f8180","0xf89180a04ac1ba639ed12834273b97e887172fc715caa3be0ffeab1c1ac6e2b8abd787ac808080808080808080a092ae670bd6f4c589e1ae40d5ceee9fb91ae0dbbd3c037daa07e0a56978e143d08080a03cf15545ea6e26226b9c7f2d18d9dc9ea7b034edb507b7704104c65d4dbdc825a004511c6377a766accc6ebb201edd01f8a7d246118ad7bf231aaddf788b82de3680","0xf869a0201f52c702c40589735c4b038bd94e04268a58c35afad63bb16c071d62d2e23db846f8448056a0de3dbb656325fb05cd75718441171cba6371529f1761f6649dd29b97557e0585a0a3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2"],"balance":"0x56","codeHash":"0xa3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2","nonce":"0x0","storageHash":"0xde3dbb656325fb05cd75718441171cba6371529f1761f6649dd29b97557e0585","storageProof":[]}} diff --git a/tests/integration_tests/spec/eth_getProof/get-account-proof-latest.io b/tests/integration_tests/spec/eth_getProof/get-account-proof-latest.io deleted file mode 100644 index 1f043bd397..0000000000 --- a/tests/integration_tests/spec/eth_getProof/get-account-proof-latest.io +++ /dev/null @@ -1,3 +0,0 @@ -// requests the account proof for a known account ->> {"jsonrpc":"2.0","id":1,"method":"eth_getProof","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df",[],"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","accountProof":["0xf90211a0c1ec0ebf911208cfe3eb68d6005b3e83c8fa3446b42f60fca3c6e67df126066aa062eddfd4f3121af0cca8b1a80cc0aeeef27da44fa1d57bc459309b14e663376aa0a5ca83efc5562f922e920d8617a5424ab9e76f140e59322b2b58fe23d899154aa0a569c3cece07d30f89a0c26b07f26a8587a472eec47ef8e4cc4565906b7cbfcda074ad67c1f8b22738e6e9f1213aa95cac3ffa1b9b8a98c99786d5efbdb10ee60da0a627fe55108274e262bb555d43831c1c2bcefa6698e155dbd20a0919f5bb5426a0f28cfa6ff43da171ced23ffa6fe70025859fd8360dcd87274be3df0d8dbbf1cfa0d5af301540181bdcd204a91043b7fcd12b82e9d822ac387b8b162afc78bfba44a01e9eaae8fd500f4fcd414445cc0655fd0441a27a60265038f9a931991b20560ea0bedffa91b8e218576b3c83440ff9428798a51c0ed37e8bd7e042691dd5dd4f5ea0dd9dec9944b0a9f99002efc2e646a46464324020fa1cc4b1e2190e957126f637a0aaff546e530961eb05171154f83e391d56b8a555b94275aced4fd66630d75871a04a67aa8ecba3084a66962b45e056e12842925af61302e8525bd3fe6a0b15b509a089be1200c01a32cd74d93139db15642514353607bc748d17edffe2be33117587a056461cdbabb61606d146fefa28cc3c3079dfa6a8185e20bb907008a747fd3585a0ab222e04aba14634b1e7df14a1501e39532099c1438029a48141ed23ed695f8180","0xf89180a04ac1ba639ed12834273b97e887172fc715caa3be0ffeab1c1ac6e2b8abd787ac808080808080808080a092ae670bd6f4c589e1ae40d5ceee9fb91ae0dbbd3c037daa07e0a56978e143d08080a03cf15545ea6e26226b9c7f2d18d9dc9ea7b034edb507b7704104c65d4dbdc825a004511c6377a766accc6ebb201edd01f8a7d246118ad7bf231aaddf788b82de3680","0xf869a0201f52c702c40589735c4b038bd94e04268a58c35afad63bb16c071d62d2e23db846f8448056a0de3dbb656325fb05cd75718441171cba6371529f1761f6649dd29b97557e0585a0a3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2"],"balance":"0x56","codeHash":"0xa3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2","nonce":"0x0","storageHash":"0xde3dbb656325fb05cd75718441171cba6371529f1761f6649dd29b97557e0585","storageProof":[]}} diff --git a/tests/integration_tests/spec/eth_getProof/get-account-proof-with-storage.io b/tests/integration_tests/spec/eth_getProof/get-account-proof-with-storage.io deleted file mode 100644 index 6b4d2d2795..0000000000 --- a/tests/integration_tests/spec/eth_getProof/get-account-proof-with-storage.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets proof for a certain account ->> {"jsonrpc":"2.0","id":1,"method":"eth_getProof","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df",["0x00"],"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","accountProof":["0xf90211a0c1ec0ebf911208cfe3eb68d6005b3e83c8fa3446b42f60fca3c6e67df126066aa062eddfd4f3121af0cca8b1a80cc0aeeef27da44fa1d57bc459309b14e663376aa0a5ca83efc5562f922e920d8617a5424ab9e76f140e59322b2b58fe23d899154aa0a569c3cece07d30f89a0c26b07f26a8587a472eec47ef8e4cc4565906b7cbfcda074ad67c1f8b22738e6e9f1213aa95cac3ffa1b9b8a98c99786d5efbdb10ee60da0a627fe55108274e262bb555d43831c1c2bcefa6698e155dbd20a0919f5bb5426a0f28cfa6ff43da171ced23ffa6fe70025859fd8360dcd87274be3df0d8dbbf1cfa0d5af301540181bdcd204a91043b7fcd12b82e9d822ac387b8b162afc78bfba44a01e9eaae8fd500f4fcd414445cc0655fd0441a27a60265038f9a931991b20560ea0bedffa91b8e218576b3c83440ff9428798a51c0ed37e8bd7e042691dd5dd4f5ea0dd9dec9944b0a9f99002efc2e646a46464324020fa1cc4b1e2190e957126f637a0aaff546e530961eb05171154f83e391d56b8a555b94275aced4fd66630d75871a04a67aa8ecba3084a66962b45e056e12842925af61302e8525bd3fe6a0b15b509a089be1200c01a32cd74d93139db15642514353607bc748d17edffe2be33117587a056461cdbabb61606d146fefa28cc3c3079dfa6a8185e20bb907008a747fd3585a0ab222e04aba14634b1e7df14a1501e39532099c1438029a48141ed23ed695f8180","0xf89180a04ac1ba639ed12834273b97e887172fc715caa3be0ffeab1c1ac6e2b8abd787ac808080808080808080a092ae670bd6f4c589e1ae40d5ceee9fb91ae0dbbd3c037daa07e0a56978e143d08080a03cf15545ea6e26226b9c7f2d18d9dc9ea7b034edb507b7704104c65d4dbdc825a004511c6377a766accc6ebb201edd01f8a7d246118ad7bf231aaddf788b82de3680","0xf869a0201f52c702c40589735c4b038bd94e04268a58c35afad63bb16c071d62d2e23db846f8448056a0de3dbb656325fb05cd75718441171cba6371529f1761f6649dd29b97557e0585a0a3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2"],"balance":"0x56","codeHash":"0xa3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2","nonce":"0x0","storageHash":"0xde3dbb656325fb05cd75718441171cba6371529f1761f6649dd29b97557e0585","storageProof":[{"key":"0x0","value":"0x2a","proof":["0xf901f1a08af0fc58296cfacfe6572865e2ee4529c5f8a0698b73d5efce69cc2641e0b99b80a0bcf160052e846720791453975f03e2c4f565dfc7826ae0f77bde44a2ecbf3d5ea02e94c8cd2c8e21474d293816fff83033ad626905219ffb331197d71ef1290025a0983688c1eb1e5f0a4690af3ff315d1d8b7fd1af20c7e2d2b03c840e9f52a32d5a033edc29ce482ee405a0ea96750d41b65ec438f17d1d40ebe8958d04f35dbb57ea0b9a1ff85e67683c889e4c56f5e2d27732b97dbf90f21a5155b06a6925feae369a0710ccb6126afa0613d08306ebae1bfcff2633b27577006d28b842de16969a345a00259bde6b092ea130669f0e8f211e7bcd877b572243c008b188598828ce4f569a0d357c73631e12c5087b4c17ba5585cde197539a2f81478c8da0eabf85edfae3da0a7a1e3adc7d00306a581cc4ac34c4f16550eb7c2e84c38d4bfde63d75065718ea0a58976cad0fcae8c2a912087a044288cfa2048d6f0384825b73fad8c4d08fc93a0b3cc3e190e7f8c3962803360055b6ed86caf467f2c0525713e168edcd83d0562a0396f0ac82f12889120036a4ab6d104cced7758613c9e41984f5eafd4391d1125a018d9840245bd3ff4d5e4349e2b3f2df21e7ba2c0e6b2fdf5b5601cfa44e256c4a0c9d830b51f1a60a0cee9df3fc86be16a04a1190b4185d593b43057a3290560c980","0xf851808080a08f7de8a82727a40833bf2db9070e03d4bb0cd3d55dea4ac8beb870d2c3de21918080808080a05562d4c69fcaf7778df616351f2996b02b6b9b11df787de5f96da97af2968a7380808080808080","0xe2a0200decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5632a"]}]}} diff --git a/tests/integration_tests/spec/eth_getStorageAt/get-storage-invalid-key-too-large.io b/tests/integration_tests/spec/eth_getStorageAt/get-storage-invalid-key-too-large.io deleted file mode 100644 index c0206b37ba..0000000000 --- a/tests/integration_tests/spec/eth_getStorageAt/get-storage-invalid-key-too-large.io +++ /dev/null @@ -1,3 +0,0 @@ -// requests an invalid storage key ->> {"jsonrpc":"2.0","id":1,"method":"eth_getStorageAt","params":["0xaa00000000000000000000000000000000000000","0x00000000000000000000000000000000000000000000000000000000000000000","latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"storage key too long (want at most 32 bytes): \"0x00000000000000000000000000000000000000000000000000000000000000000\""}} diff --git a/tests/integration_tests/spec/eth_getStorageAt/get-storage-invalid-key.io b/tests/integration_tests/spec/eth_getStorageAt/get-storage-invalid-key.io deleted file mode 100644 index 4cd9bf1746..0000000000 --- a/tests/integration_tests/spec/eth_getStorageAt/get-storage-invalid-key.io +++ /dev/null @@ -1,3 +0,0 @@ -// requests an invalid storage key ->> {"jsonrpc":"2.0","id":1,"method":"eth_getStorageAt","params":["0xaa00000000000000000000000000000000000000","0xasdf","latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"invalid hex in storage key: \"0xasdf\""}} diff --git a/tests/integration_tests/spec/eth_getStorageAt/get-storage-unknown-account.io b/tests/integration_tests/spec/eth_getStorageAt/get-storage-unknown-account.io deleted file mode 100644 index 2d94dcf33d..0000000000 --- a/tests/integration_tests/spec/eth_getStorageAt/get-storage-unknown-account.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets storage of a non-existent account ->> {"jsonrpc":"2.0","id":1,"method":"eth_getStorageAt","params":["0xc1cadaffffffffffffffffffffffffffffffffff","0x0100000000000000000000000000000000000000000000000000000000000000","latest"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x0000000000000000000000000000000000000000000000000000000000000000"} diff --git a/tests/integration_tests/spec/eth_getStorageAt/get-storage.io b/tests/integration_tests/spec/eth_getStorageAt/get-storage.io deleted file mode 100644 index c50846d4c6..0000000000 --- a/tests/integration_tests/spec/eth_getStorageAt/get-storage.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets storage of a contract ->> {"jsonrpc":"2.0","id":1,"method":"eth_getStorageAt","params":["0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","0x0000000000000000000000000000000000000000000000000000000000000000","latest"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x000000000000000000000000000000000000000000000000000000000000002a"} diff --git a/tests/integration_tests/spec/eth_getStorageValues/get-storage-values-empty-request.io b/tests/integration_tests/spec/eth_getStorageValues/get-storage-values-empty-request.io deleted file mode 100644 index a6288dee70..0000000000 --- a/tests/integration_tests/spec/eth_getStorageValues/get-storage-values-empty-request.io +++ /dev/null @@ -1,3 +0,0 @@ -// requests with an empty map ->> {"jsonrpc":"2.0","id":1,"method":"eth_getStorageValues","params":[{},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"empty request"}} diff --git a/tests/integration_tests/spec/eth_getStorageValues/get-storage-values-multiple-addresses.io b/tests/integration_tests/spec/eth_getStorageValues/get-storage-values-multiple-addresses.io deleted file mode 100644 index ee78a630be..0000000000 --- a/tests/integration_tests/spec/eth_getStorageValues/get-storage-values-multiple-addresses.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets storage values for slots across multiple addresses ->> {"jsonrpc":"2.0","id":1,"method":"eth_getStorageValues","params":[{"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df":["0x0000000000000000000000000000000000000000000000000000000000000000"],"0xc1cadaffffffffffffffffffffffffffffffffff":["0x0100000000000000000000000000000000000000000000000000000000000000"]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":{"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df":["0x000000000000000000000000000000000000000000000000000000000000002a"],"0xc1cadaffffffffffffffffffffffffffffffffff":["0x0000000000000000000000000000000000000000000000000000000000000000"]}} diff --git a/tests/integration_tests/spec/eth_getStorageValues/get-storage-values-unknown-account.io b/tests/integration_tests/spec/eth_getStorageValues/get-storage-values-unknown-account.io deleted file mode 100644 index 627de62272..0000000000 --- a/tests/integration_tests/spec/eth_getStorageValues/get-storage-values-unknown-account.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets storage values for a non-existent account ->> {"jsonrpc":"2.0","id":1,"method":"eth_getStorageValues","params":[{"0xc1cadaffffffffffffffffffffffffffffffffff":["0x0100000000000000000000000000000000000000000000000000000000000000"]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":{"0xc1cadaffffffffffffffffffffffffffffffffff":["0x0000000000000000000000000000000000000000000000000000000000000000"]}} diff --git a/tests/integration_tests/spec/eth_getStorageValues/get-storage-values.io b/tests/integration_tests/spec/eth_getStorageValues/get-storage-values.io deleted file mode 100644 index 7aded1400d..0000000000 --- a/tests/integration_tests/spec/eth_getStorageValues/get-storage-values.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets storage values for a contract ->> {"jsonrpc":"2.0","id":1,"method":"eth_getStorageValues","params":[{"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df":["0x0000000000000000000000000000000000000000000000000000000000000000"]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":{"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df":["0x000000000000000000000000000000000000000000000000000000000000002a"]}} diff --git a/tests/integration_tests/spec/eth_getTransactionByBlockHashAndIndex/get-block-n.io b/tests/integration_tests/spec/eth_getTransactionByBlockHashAndIndex/get-block-n.io deleted file mode 100644 index c0fda68f81..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionByBlockHashAndIndex/get-block-n.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets tx 0 in a non-empty block ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByBlockHashAndIndex","params":["0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","0x0"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","blockTimestamp":"0xa","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13a54","gasPrice":"0x1","hash":"0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","v":"0x1c","r":"0xd642ba4d1f9388c5fd312bb9fb42d189a0b3c796de55093c85f30802a85147c8","s":"0x37aa8680923f811a6988c03dd414ca00cd25d6876ba5925c7ca8ac6aad21669d"}} diff --git a/tests/integration_tests/spec/eth_getTransactionByBlockNumberAndIndex/get-block-n.io b/tests/integration_tests/spec/eth_getTransactionByBlockNumberAndIndex/get-block-n.io deleted file mode 100644 index 58c2bd27ac..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionByBlockNumberAndIndex/get-block-n.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets tx 0 in a non-empty block ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByBlockNumberAndIndex","params":["0x1","0x0"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","blockTimestamp":"0xa","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13a54","gasPrice":"0x1","hash":"0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","v":"0x1c","r":"0xd642ba4d1f9388c5fd312bb9fb42d189a0b3c796de55093c85f30802a85147c8","s":"0x37aa8680923f811a6988c03dd414ca00cd25d6876ba5925c7ca8ac6aad21669d"}} diff --git a/tests/integration_tests/spec/eth_getTransactionByHash/get-access-list.io b/tests/integration_tests/spec/eth_getTransactionByHash/get-access-list.io deleted file mode 100644 index ee81983b9b..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionByHash/get-access-list.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets an access list transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0xd82374da698cfacbf4bb58d7ab8444621517e2137c08b859c66e50e8927c7af6"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xd7853cebe1391334d222aaa161cd1a965d35b174e0c2cff881ea484fe05b2184","blockNumber":"0x18","blockTimestamp":"0xf0","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x1","hash":"0xd82374da698cfacbf4bb58d7ab8444621517e2137c08b859c66e50e8927c7af6","input":"0x0e394e7c8a2b32c9656d6974","nonce":"0x4e","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x2","type":"0x1","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x95104e47e1982aba633477f377b1511396c3fe83600224bcb0c78949be705b33"]}],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x6ecd9ea7e1958288a3a822eb9c22662c30a7696e364d5b219a164bafd9bc58d8","s":"0x3fc5322f888fabe456b29bb2b0e829482d728500678627f564ee3aff184428c2","yParity":"0x1"}} diff --git a/tests/integration_tests/spec/eth_getTransactionByHash/get-blob-tx.io b/tests/integration_tests/spec/eth_getTransactionByHash/get-blob-tx.io deleted file mode 100644 index d5c8f842bd..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionByHash/get-blob-tx.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets a blob transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0x6bcea0da8e703d3283c8f1124377a63023290cd188de3274d12441e15dc14794"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x60d8d4c8d64367b4436e63f43addb9e3bd99a5a4176b84429fc4f22e27a7ee63","blockNumber":"0x2a","blockTimestamp":"0x1a4","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x822595c","maxFeePerGas":"0x822595c","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x20000","hash":"0x6bcea0da8e703d3283c8f1124377a63023290cd188de3274d12441e15dc14794","input":"0x29db68258899c2fe656d6974","nonce":"0x8f","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x3","type":"0x3","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x35f96bc70aa62a539fa99d9153b0f8aaa4594abf70cc8a8d9018e04e39a17982"]}],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x015a4cab4911426699ed34483de6640cf55a568afc5c5edffdcbd8bcd4452f68"],"v":"0x1","r":"0xf8bd74114d425aa9825f381764b78b6dedce7dadc0b4e6582c457edcddc87e","s":"0x346f1eee39493bd5876b2cd2fa2f5661c7a35e50a7d1754d514d1b0a66ad6cc9","yParity":"0x1"}} diff --git a/tests/integration_tests/spec/eth_getTransactionByHash/get-dynamic-fee.io b/tests/integration_tests/spec/eth_getTransactionByHash/get-dynamic-fee.io deleted file mode 100644 index c14e35acfc..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionByHash/get-dynamic-fee.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets a dynamic fee transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0xc7dba25cdd5aee6ff7d27fe5422a4179f5913c664c3339c8e0440bd1c9cd8de9"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x155ed001f7571cb6fa37e5c9c2462b4704ce9cdf53fddc39e9d9f96f92a5233c","blockNumber":"0x1b","blockTimestamp":"0x10e","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x3b9aca01","maxFeePerGas":"0x3b9aca01","maxPriorityFeePerGas":"0x1","hash":"0xc7dba25cdd5aee6ff7d27fe5422a4179f5913c664c3339c8e0440bd1c9cd8de9","input":"0x1ee8f6decf498faf656d6974","nonce":"0x59","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x0","value":"0x2","type":"0x2","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x13bd2394f758553be374ffa4a9455cdf5e6ef3d905acd02746df2d12361e1ace"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x421e22ef528d5c7b9c173f90f8d7a1f4d08e34b25d1f3a7b386aa9a3314c2887","s":"0x43248bd7636b5d440cc18a1aa930d50d53960189fc0f966666635b0ffe3e3df1","yParity":"0x0"}} diff --git a/tests/integration_tests/spec/eth_getTransactionByHash/get-empty-tx.io b/tests/integration_tests/spec/eth_getTransactionByHash/get-empty-tx.io deleted file mode 100644 index 8a7c17aac6..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionByHash/get-empty-tx.io +++ /dev/null @@ -1,3 +0,0 @@ -// requests the zero transaction hash ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0x0000000000000000000000000000000000000000000000000000000000000000"]} -<< {"jsonrpc":"2.0","id":1,"result":null} diff --git a/tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-create.io b/tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-create.io deleted file mode 100644 index 032b61d6d9..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-create.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets a legacy contract create transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","blockTimestamp":"0xa","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13a54","gasPrice":"0x1","hash":"0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","v":"0x1c","r":"0xd642ba4d1f9388c5fd312bb9fb42d189a0b3c796de55093c85f30802a85147c8","s":"0x37aa8680923f811a6988c03dd414ca00cd25d6876ba5925c7ca8ac6aad21669d"}} diff --git a/tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-input.io b/tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-input.io deleted file mode 100644 index ddb6202c71..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-input.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets a legacy transaction with input data ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","blockTimestamp":"0xa","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x13a54","gasPrice":"0x1","hash":"0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e","input":"0x600d380380600d6000396000f360004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","v":"0x1c","r":"0xd642ba4d1f9388c5fd312bb9fb42d189a0b3c796de55093c85f30802a85147c8","s":"0x37aa8680923f811a6988c03dd414ca00cd25d6876ba5925c7ca8ac6aad21669d"}} diff --git a/tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-tx.io b/tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-tx.io deleted file mode 100644 index 955cd28935..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionByHash/get-legacy-tx.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets a legacy transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0x0d6999c0e9e4bec347945593e97bdcdf7c25be08ca1a1efdc520dbe75be985f3"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockNumber":"0x2","blockTimestamp":"0x14","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x1","hash":"0x0d6999c0e9e4bec347945593e97bdcdf7c25be08ca1a1efdc520dbe75be985f3","input":"0x","nonce":"0x7","to":"0xeda8645ba6948855e3b3cd596bbb07596d59c603","transactionIndex":"0x3","value":"0x1","type":"0x0","v":"0x1b","r":"0xfad01b9a15db73d59b0a74b3d85718dfebb7cde80f916840a006ef5f2a85769e","s":"0x60b08e6b12604d91c6e2c514f2c020562b61f97973ada18a1701937d3302e5f3"}} diff --git a/tests/integration_tests/spec/eth_getTransactionByHash/get-notfound-tx.io b/tests/integration_tests/spec/eth_getTransactionByHash/get-notfound-tx.io deleted file mode 100644 index b12df631d0..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionByHash/get-notfound-tx.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets a non-existent transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0x00000000000000000000000000000000000000000000000000000000deadbeef"]} -<< {"jsonrpc":"2.0","id":1,"result":null} diff --git a/tests/integration_tests/spec/eth_getTransactionByHash/get-setcode-tx.io b/tests/integration_tests/spec/eth_getTransactionByHash/get-setcode-tx.io deleted file mode 100644 index 340a124240..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionByHash/get-setcode-tx.io +++ /dev/null @@ -1,3 +0,0 @@ -// retrieves an EIP-7702 transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionByHash","params":["0x16f6724ad864e7664c367893cae3e176d362bea3a47495cec3b246555a7228da"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0xb3b0","gasPrice":"0x5763d65","maxFeePerGas":"0x5763d65","maxPriorityFeePerGas":"0x1","hash":"0x16f6724ad864e7664c367893cae3e176d362bea3a47495cec3b246555a7228da","input":"0x","nonce":"0x9b","to":"0x0000000000000000000000000000000000000000","transactionIndex":"0x1","value":"0x0","type":"0x4","accessList":[],"chainId":"0xc72dd9d5e883e","authorizationList":[{"chainId":"0xc72dd9d5e883e","address":"0x58f8fe237b593c19546e1e758a2544561d04bfe0","nonce":"0x0","yParity":"0x1","r":"0xec6caeb1b7071f1b3ae36aeaa7bf0eaecb8e006e83b3e50d792870ea95af4c59","s":"0x1d1225f76d6faac3d904c0635193e83d3867c101b2e6f6c9bb7b1fdeeed923ab"}],"v":"0x1","r":"0x8ae3402e4f63751c895532b94aee0f7b6b8ff5d0b0a689f6d63b3dbd19d69059","s":"0x2e63e4d140b0d282d56289b34f3df82cbcb2f3aa385f5438a423584fe0c2b467","yParity":"0x1"}} diff --git a/tests/integration_tests/spec/eth_getTransactionCount/get-nonce-eip7702-account.io b/tests/integration_tests/spec/eth_getTransactionCount/get-nonce-eip7702-account.io deleted file mode 100644 index b9afef65cb..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionCount/get-nonce-eip7702-account.io +++ /dev/null @@ -1,4 +0,0 @@ -// Retrieves the nonce for an account that has an EIP-7702 code delegation applied. -// For such accounts, the nonce stored in state does not match the 'transaction count'. ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionCount","params":["0xeda8645ba6948855e3b3cd596bbb07596d59c603","latest"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x1"} diff --git a/tests/integration_tests/spec/eth_getTransactionCount/get-nonce-unknown-account.io b/tests/integration_tests/spec/eth_getTransactionCount/get-nonce-unknown-account.io deleted file mode 100644 index 17a87325df..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionCount/get-nonce-unknown-account.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets nonce for a non-existent account ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionCount","params":["0xc1cadaffffffffffffffffffffffffffffffffff","latest"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x0"} diff --git a/tests/integration_tests/spec/eth_getTransactionCount/get-nonce.io b/tests/integration_tests/spec/eth_getTransactionCount/get-nonce.io deleted file mode 100644 index 12bb8d576a..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionCount/get-nonce.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets nonce for a known account ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionCount","params":["0x04361123c6cbfc38f6ee7b0202ecefdae36efeb4","latest"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x1"} diff --git a/tests/integration_tests/spec/eth_getTransactionReceipt/get-access-list.io b/tests/integration_tests/spec/eth_getTransactionReceipt/get-access-list.io deleted file mode 100644 index 9c001ef58b..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionReceipt/get-access-list.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets an access list transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0xd82374da698cfacbf4bb58d7ab8444621517e2137c08b859c66e50e8927c7af6"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xd7853cebe1391334d222aaa161cd1a965d35b174e0c2cff881ea484fe05b2184","blockNumber":"0x18","contractAddress":null,"cumulativeGasUsed":"0xca9c","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xca9c","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x95104e47e1982aba633477f377b1511396c3fe83600224bcb0c78949be705b33"],"data":"0x000000000000000000000000000000000000000000000000000000000000000f","blockNumber":"0x18","transactionHash":"0xd82374da698cfacbf4bb58d7ab8444621517e2137c08b859c66e50e8927c7af6","transactionIndex":"0x0","blockHash":"0xd7853cebe1391334d222aaa161cd1a965d35b174e0c2cff881ea484fe05b2184","blockTimestamp":"0xf0","logIndex":"0x0","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000800000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0xd82374da698cfacbf4bb58d7ab8444621517e2137c08b859c66e50e8927c7af6","transactionIndex":"0x0","type":"0x1"}} diff --git a/tests/integration_tests/spec/eth_getTransactionReceipt/get-blob-tx.io b/tests/integration_tests/spec/eth_getTransactionReceipt/get-blob-tx.io deleted file mode 100644 index 36504076b7..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionReceipt/get-blob-tx.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets a blob transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0x6bcea0da8e703d3283c8f1124377a63023290cd188de3274d12441e15dc14794"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blobGasPrice":"0x1","blobGasUsed":"0x20000","blockHash":"0x60d8d4c8d64367b4436e63f43addb9e3bd99a5a4176b84429fc4f22e27a7ee63","blockNumber":"0x2a","contractAddress":null,"cumulativeGasUsed":"0xca9c","effectiveGasPrice":"0x822595c","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xca9c","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x35f96bc70aa62a539fa99d9153b0f8aaa4594abf70cc8a8d9018e04e39a17982"],"data":"0x0000000000000000000000000000000000000000000000000000000000000024","blockNumber":"0x2a","transactionHash":"0x6bcea0da8e703d3283c8f1124377a63023290cd188de3274d12441e15dc14794","transactionIndex":"0x0","blockHash":"0x60d8d4c8d64367b4436e63f43addb9e3bd99a5a4176b84429fc4f22e27a7ee63","blockTimestamp":"0x1a4","logIndex":"0x0","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000100000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0x6bcea0da8e703d3283c8f1124377a63023290cd188de3274d12441e15dc14794","transactionIndex":"0x0","type":"0x3"}} diff --git a/tests/integration_tests/spec/eth_getTransactionReceipt/get-dynamic-fee.io b/tests/integration_tests/spec/eth_getTransactionReceipt/get-dynamic-fee.io deleted file mode 100644 index 0240487f8b..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionReceipt/get-dynamic-fee.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets a dynamic fee transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0xc7dba25cdd5aee6ff7d27fe5422a4179f5913c664c3339c8e0440bd1c9cd8de9"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x155ed001f7571cb6fa37e5c9c2462b4704ce9cdf53fddc39e9d9f96f92a5233c","blockNumber":"0x1b","contractAddress":null,"cumulativeGasUsed":"0xca9c","effectiveGasPrice":"0x3b9aca01","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0xca9c","logs":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","topics":["0x00000000000000000000000000000000000000000000000000000000656d6974","0x13bd2394f758553be374ffa4a9455cdf5e6ef3d905acd02746df2d12361e1ace"],"data":"0x0000000000000000000000000000000000000000000000000000000000000012","blockNumber":"0x1b","transactionHash":"0xc7dba25cdd5aee6ff7d27fe5422a4179f5913c664c3339c8e0440bd1c9cd8de9","transactionIndex":"0x0","blockHash":"0x155ed001f7571cb6fa37e5c9c2462b4704ce9cdf53fddc39e9d9f96f92a5233c","blockTimestamp":"0x10e","logIndex":"0x0","removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000010000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000200000000000000000000000000002000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionHash":"0xc7dba25cdd5aee6ff7d27fe5422a4179f5913c664c3339c8e0440bd1c9cd8de9","transactionIndex":"0x0","type":"0x2"}} diff --git a/tests/integration_tests/spec/eth_getTransactionReceipt/get-empty-tx.io b/tests/integration_tests/spec/eth_getTransactionReceipt/get-empty-tx.io deleted file mode 100644 index 9b38b2c74c..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionReceipt/get-empty-tx.io +++ /dev/null @@ -1,3 +0,0 @@ -// requests the receipt for the zero tx hash ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0x0000000000000000000000000000000000000000000000000000000000000000"]} -<< {"jsonrpc":"2.0","id":1,"result":null} diff --git a/tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-contract.io b/tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-contract.io deleted file mode 100644 index b0610b22ec..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-contract.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets a legacy contract create transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0x102d3","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x102d3","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","root":"0x19fb42ec665b1940ad4b603066bb6efef7d0b97172806da958d1ada7094db01f","to":null,"transactionHash":"0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e","transactionIndex":"0x0","type":"0x0"}} diff --git a/tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-input.io b/tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-input.io deleted file mode 100644 index bc9a26ea11..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-input.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets a legacy transaction with input data ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","blockNumber":"0x1","contractAddress":"0x9344b07175800259691961298ca11c824e65032d","cumulativeGasUsed":"0x102d3","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x102d3","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","root":"0x19fb42ec665b1940ad4b603066bb6efef7d0b97172806da958d1ada7094db01f","to":null,"transactionHash":"0xc1d605c6612a5fe84dc95810030bfe5b1d327652b381bc695e28f50d13b2b09e","transactionIndex":"0x0","type":"0x0"}} diff --git a/tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-receipt.io b/tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-receipt.io deleted file mode 100644 index fe929860fc..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionReceipt/get-legacy-receipt.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets the receipt for a legacy value transfer tx ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0x0d6999c0e9e4bec347945593e97bdcdf7c25be08ca1a1efdc520dbe75be985f3"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","blockNumber":"0x2","contractAddress":null,"cumulativeGasUsed":"0x3d037","effectiveGasPrice":"0x1","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x5208","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","root":"0x7e099d847594c44aed09000b17536bab7dbc64be4572474bae7b4dd04ce8c2df","to":"0xeda8645ba6948855e3b3cd596bbb07596d59c603","transactionHash":"0x0d6999c0e9e4bec347945593e97bdcdf7c25be08ca1a1efdc520dbe75be985f3","transactionIndex":"0x3","type":"0x0"}} diff --git a/tests/integration_tests/spec/eth_getTransactionReceipt/get-notfound-tx.io b/tests/integration_tests/spec/eth_getTransactionReceipt/get-notfound-tx.io deleted file mode 100644 index 834f8b807f..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionReceipt/get-notfound-tx.io +++ /dev/null @@ -1,3 +0,0 @@ -// requests the receipt for a non-existent tx hash ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0x00000000000000000000000000000000000000000000000000000000deadbeef"]} -<< {"jsonrpc":"2.0","id":1,"result":null} diff --git a/tests/integration_tests/spec/eth_getTransactionReceipt/get-setcode-tx.io b/tests/integration_tests/spec/eth_getTransactionReceipt/get-setcode-tx.io deleted file mode 100644 index 724327696c..0000000000 --- a/tests/integration_tests/spec/eth_getTransactionReceipt/get-setcode-tx.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets the receipt for a EIP-7702 setcode transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_getTransactionReceipt","params":["0x16f6724ad864e7664c367893cae3e176d362bea3a47495cec3b246555a7228da"]} -<< {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","contractAddress":null,"cumulativeGasUsed":"0x17231","effectiveGasPrice":"0x5763d65","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gasUsed":"0x8fc0","logs":[],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","status":"0x1","to":"0x0000000000000000000000000000000000000000","transactionHash":"0x16f6724ad864e7664c367893cae3e176d362bea3a47495cec3b246555a7228da","transactionIndex":"0x1","type":"0x4"}} diff --git a/tests/integration_tests/spec/eth_sendRawTransaction/send-access-list-transaction.io b/tests/integration_tests/spec/eth_sendRawTransaction/send-access-list-transaction.io deleted file mode 100644 index 543a43ed84..0000000000 --- a/tests/integration_tests/spec/eth_sendRawTransaction/send-access-list-transaction.io +++ /dev/null @@ -1,3 +0,0 @@ -// sends a transaction with access list ->> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x01f8cc870c72dd9d5e883e028405763f5883015f90947dcd17433742f4c0ca53122ab541d0ba67fc27df8083010203f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000080a0f9dc42e8bab0a70132fb8399cf03cf38e1c12cc47f736d19e6e7728356d97db3a053daf342acd24da15073f5dac02bec0501a0716165984aab2df9694882b91fac"]} -<< {"jsonrpc":"2.0","id":1,"result":"0xd07a55a00aeb93c7825d1ca42238abdc3bc225de097ee1b8b2a4a9240ae55f9c"} diff --git a/tests/integration_tests/spec/eth_sendRawTransaction/send-blob-tx.io b/tests/integration_tests/spec/eth_sendRawTransaction/send-blob-tx.io deleted file mode 100644 index f4d5b06c61..0000000000 --- a/tests/integration_tests/spec/eth_sendRawTransaction/send-blob-tx.io +++ /dev/null @@ -1,3 +0,0 @@ -// sends a blob transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x03fa0201a6f90137870c72dd9d5e883e808201f48405763f5883013880947dcd17433742f4c0ca53122ab541d0ba67fc27df80b844a9059cbb000000000000000000000000cff33720980c026cc155dcb366861477e988fd870000000000000000000000000000000000000000000000000000000002fd6892f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000083020000e1a0010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401401a057f678827610fe20f06921aded6f2c11bdad535b677c1e644b6cfa74fb4e8a3aa05d74f127213802809f37488e4a176bc5e9627aba8dcfa83c7282c45876397d04fa020004ba0200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f1b0c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x4b00885bde711279e6ddb399edd61825a8a45d331d0545ab55919a1924922693"} diff --git a/tests/integration_tests/spec/eth_sendRawTransaction/send-dynamic-fee-access-list-transaction.io b/tests/integration_tests/spec/eth_sendRawTransaction/send-dynamic-fee-access-list-transaction.io deleted file mode 100644 index d99bbbc3d4..0000000000 --- a/tests/integration_tests/spec/eth_sendRawTransaction/send-dynamic-fee-access-list-transaction.io +++ /dev/null @@ -1,3 +0,0 @@ -// sends a transaction with dynamic fee and access list ->> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x02f8d0870c72dd9d5e883e038201f48405763f5883013880947dcd17433742f4c0ca53122ab541d0ba67fc27df808401020304f85bf859947dcd17433742f4c0ca53122ab541d0ba67fc27dff842a00000000000000000000000000000000000000000000000000000000000000000a0010000000000000000000000000000000000000000000000000000000000000080a0e56d869d8b32f767582fdcb03d1d9d3bcc47f3c7ae08984feafdcd57f2f205f5a074134e4bf0fb11ff606b47259aff0d01bf7cb9ec68cb179b62576b9dd6631cf0"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x0baf604666cbc4d04263bbc98c048000451b8c188d93ec87ca5a86b044fd956c"} diff --git a/tests/integration_tests/spec/eth_sendRawTransaction/send-dynamic-fee-transaction.io b/tests/integration_tests/spec/eth_sendRawTransaction/send-dynamic-fee-transaction.io deleted file mode 100644 index 14bfc1870e..0000000000 --- a/tests/integration_tests/spec/eth_sendRawTransaction/send-dynamic-fee-transaction.io +++ /dev/null @@ -1,3 +0,0 @@ -// sends a create transaction with dynamic fee ->> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x02f892870c72dd9d5e883e018201f48405763f5882ea60802ab73d602d80600a3d3981f3363d3d373d3d3d363d734d11c446473105a02b5c1ab9ebe9b03f33902a295af43d82803e903d91602b57fd5bf3c001a0fe6d380224a516b802717755d2f640163e81bae64a4ab5adbcf741267f20ad66a015d9ceb9fecb47b342be00782b2485f42ab53715006d208897cc969d7c05ab67"]} -<< {"jsonrpc":"2.0","id":1,"result":"0xfa245384e9eb7d6a4a40f3bf4bf70f1f44929d8bfcdf75762ce1a015389449e3"} diff --git a/tests/integration_tests/spec/eth_sendRawTransaction/send-legacy-transaction.io b/tests/integration_tests/spec/eth_sendRawTransaction/send-legacy-transaction.io deleted file mode 100644 index 48968f18af..0000000000 --- a/tests/integration_tests/spec/eth_sendRawTransaction/send-legacy-transaction.io +++ /dev/null @@ -1,3 +0,0 @@ -// sends a raw legacy transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0xf86c808405763d658261a894aa000000000000000000000000000000000000000a8255448718e5bb3abd109fa0c8e3b4a0087357bd49d80a0ac24daf0c91191e71086c1e355fc62cfab2218873a074f4636f740fa4d1697b6e736e5982b700be2c8b63031a24fa531ae4814b3af8"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x66734e85ef096167acb887cf445946a1ed57b90b66ffe38af87e11294febbfa9"} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-add-more-non-defined-BlockStateCalls-than-fit-but-now-with-fit.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-add-more-non-defined-BlockStateCalls-than-fit-but-now-with-fit.io deleted file mode 100644 index aac8b5e1ec..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-add-more-non-defined-BlockStateCalls-than-fit-but-now-with-fit.io +++ /dev/null @@ -1,3 +0,0 @@ -// Not all block numbers are defined ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0x96"},"stateOverrides":{"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"blockOverrides":{"number":"0xa5"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x8b8964bfcf7d8e280ed6812a581f67beda47d2b0f6316e1709bcff7d093e02b7","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x59c231f009f82ec35460b3cf0d9b715d1a35a690c3da0f6003b7842c3d498a26","timestamp":"0x1ce","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xd3682b7341c0549d85b73600e4b9fc0eead01643f3ce7279caaa5145df71fe0b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x8b8964bfcf7d8e280ed6812a581f67beda47d2b0f6316e1709bcff7d093e02b7","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x93b583ed05f454a78c9279625a3e2871ff3324507e6418e29e53416acc88900d","timestamp":"0x1da","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x66a8499f82d7a7203544fefebaece243b302f55d24dd97be71d97d503b10fbe9","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x30","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xd3682b7341c0549d85b73600e4b9fc0eead01643f3ce7279caaa5145df71fe0b","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xb22b7c9857930782d7a92e282059b1653b643efb6f09a9aff1d65fedfce438b8","timestamp":"0x1e6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x1ea03bc2ea7e70947269e14de3883459eb81a64780c99da31804a73f9f4cdfc7","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x31","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x66a8499f82d7a7203544fefebaece243b302f55d24dd97be71d97d503b10fbe9","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x6005795fd04dd3670db5e14ae6425052c6ee82ff22080293ee3d83c180d65bcc","timestamp":"0x1f2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x18001f54d69705c7e84cf45b9abb6aa371ce440bb7fdad8021070661e0695912","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x32","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x1ea03bc2ea7e70947269e14de3883459eb81a64780c99da31804a73f9f4cdfc7","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x8843675f3b9eec18a5acf116df90a26fae9ef70f21d3cffc4992b760cfdc23cf","timestamp":"0x1fe","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x8601822b6dff617cf93178957c0162d95c7cc411278934e676b2271d9364bfe0","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x33","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x18001f54d69705c7e84cf45b9abb6aa371ce440bb7fdad8021070661e0695912","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x04238f2fad5e4b9820daf76c60946eb702d35577d2d1e6d5fc2c07d229e75689","timestamp":"0x20a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xd482916837d0d43b8cd15d00d4c0f50ad019311d1c7e6fb220e053548dc08181","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x34","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x8601822b6dff617cf93178957c0162d95c7cc411278934e676b2271d9364bfe0","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x3d5f58fbf02276461b11687866a4a1389fad17ca6ea7fdf4c7f2c5afa8cc546f","timestamp":"0x216","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x66c675d5b1ae5453cbf525ac2d1a071256605445d474af3764a36783e90b342d","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x35","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xd482916837d0d43b8cd15d00d4c0f50ad019311d1c7e6fb220e053548dc08181","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x429c0581461d0048471b1d8d85f7d129cf493114e4ca1e11a154bb649521f932","timestamp":"0x222","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xdaeb4e1610aaeb576bc75667c8ab9d27f6985f41880ddf71b3ecc8c31b617def","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x36","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x66c675d5b1ae5453cbf525ac2d1a071256605445d474af3764a36783e90b342d","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x9ad06fa7f19d678709c797246788f30a9a8d50083b9174a8f684e578c1b337bd","timestamp":"0x22e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x29e75d34d78b5ce656144d6a6c3bf4202c6675bd377d4d524642f9974242dc53","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x37","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xdaeb4e1610aaeb576bc75667c8ab9d27f6985f41880ddf71b3ecc8c31b617def","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xb257cd80dcf19266611330111a884c035949b733ae11293ee7f2f413c040eb00","timestamp":"0x23a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x0133115003249877758a0a7b4b2cb3abbd588dfd288d65ce526dd846093ebf1f","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x38","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x29e75d34d78b5ce656144d6a6c3bf4202c6675bd377d4d524642f9974242dc53","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x748a1144b73935425b353cc1b3e9dc52b65185d16805f7ae49c9848314783fb8","timestamp":"0x246","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xfdd9cc30b33f9c3a2b97b68be9ddd6e81ff1a07a2be726ac0febaa5f2392d459","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x39","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x0133115003249877758a0a7b4b2cb3abbd588dfd288d65ce526dd846093ebf1f","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x76ec1c536859428dc30369bc138debb3452821ff276a3325de5f42652f444d26","timestamp":"0x252","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xfe78d6efb5c8530530155c3668c21e44f60186b1d5a00a16156d61b43be303ef","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3a","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xfdd9cc30b33f9c3a2b97b68be9ddd6e81ff1a07a2be726ac0febaa5f2392d459","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xfdf8609e246603461119428ebaac69550bd3c36ff86ef30165990adff6d2be6e","timestamp":"0x25e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x0729266199133c339d73a4634dd23ea464b07d1c9fe428ce0918872f95c63391","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3b","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xfe78d6efb5c8530530155c3668c21e44f60186b1d5a00a16156d61b43be303ef","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x81ebfa0bb0b1b70d20ddb4a67246208eeefbb10891cbebf856743d7b3f6c9908","timestamp":"0x26a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xcd2e233fb7d2872b90df087cef5924d56c32392efcc395852af0406f11ae31b9","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3c","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x0729266199133c339d73a4634dd23ea464b07d1c9fe428ce0918872f95c63391","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xbaaa8eb896e5147550b114e6af3978e8ba594df1bba083237f6a20b6786690e8","timestamp":"0x276","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x52dda0b06d564d39e2024606386a20c2b3683d73d9414dfd2291328c63e8bfbe","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3d","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xcd2e233fb7d2872b90df087cef5924d56c32392efcc395852af0406f11ae31b9","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x3570aa758c5308988ccc5dddc7eefffb8c68658b714f57cd401985088f7bbd8f","timestamp":"0x282","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xac50ebdb20acbd21ab85b43de531b7391d0488f0c4691f065c5bb0f539ae2544","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x52dda0b06d564d39e2024606386a20c2b3683d73d9414dfd2291328c63e8bfbe","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x76d37fb5fbdc3604cd1e01b6dca67d64b48419181ef85ed359fe5fdaeb749f4e","timestamp":"0x28e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x2c72f0e8f9879e87afcf5b7cf14c577292c3756d96fdb96be1a0db19a3fe2138","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xac50ebdb20acbd21ab85b43de531b7391d0488f0c4691f065c5bb0f539ae2544","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x33ef6631f64ff5962a0a9217a5c4246e03df7f11c178e42739d5c7c1ccf302af","timestamp":"0x29a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x6a73f2efa3e6e4e78bd42d49676ae0eed56e81343c866121d82dcdd5de62253b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x40","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x2c72f0e8f9879e87afcf5b7cf14c577292c3756d96fdb96be1a0db19a3fe2138","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x159e1083679b7cd1bf74536e5120fe2350067b825590f228123d4592853a9d7d","timestamp":"0x2a6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xabaa9c3986d6105185af688327caa0504d5e99139dc06849239adacdc581430b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x41","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x6a73f2efa3e6e4e78bd42d49676ae0eed56e81343c866121d82dcdd5de62253b","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x8d9789e2e5c3083a76bcb3e2d6795d5d2337cff0c9a4f368906d489dd7ba5705","timestamp":"0x2b2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x98fcd914f7d54e04e8dbc668e507f0cfed33bf09a5be8e4b5f93eb3b345964cc","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x42","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xabaa9c3986d6105185af688327caa0504d5e99139dc06849239adacdc581430b","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x809eb555a0a33d348d57b34ac3f31d6b433341f144c4455bb2fc5a0113467048","timestamp":"0x2be","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x8cc815a4cba5f7dbc78039f7ad9f7d7226344ff94e5caffae7c1f9cfe6d89871","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x43","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x98fcd914f7d54e04e8dbc668e507f0cfed33bf09a5be8e4b5f93eb3b345964cc","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x9653b693ffb5fd8adbebd8f9568fe095de3c209bf99d8fb3b60fc90bf2a6f0f3","timestamp":"0x2ca","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x2894f323e2bb9ca56314e82afac65edc4805f0ba81b7fd5e8b657e83f62a506a","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x44","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x8cc815a4cba5f7dbc78039f7ad9f7d7226344ff94e5caffae7c1f9cfe6d89871","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x3d0254e08d717894ac89fffede73c9f663a7f385486a69513080781c1713f14e","timestamp":"0x2d6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x161373dd1560ae657ce48bcccc83b701ed3cfcbc523804b929f0332141ad9d10","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x45","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x2894f323e2bb9ca56314e82afac65edc4805f0ba81b7fd5e8b657e83f62a506a","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x0e37e1b277f1cee1cde82f3ba1420d4552a6f47a1b322b2c3a3d64ae5a0bfa4e","timestamp":"0x2e2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xca8b69c317b7fab2378e640bd8d6ca19df14f6760954c13a8ba84c611deed43b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x46","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x161373dd1560ae657ce48bcccc83b701ed3cfcbc523804b929f0332141ad9d10","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x8faf3dc0bfc13b14cf660b310da1cc58f1264037dd33cc93a62f6fe6521099c9","timestamp":"0x2ee","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x6b0ac21041bdeb4aedc2a35989cf2b4cf1bfb96b5dc27fd8466d1b958cbe146d","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x47","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xca8b69c317b7fab2378e640bd8d6ca19df14f6760954c13a8ba84c611deed43b","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x6db98a08c2240d8d1a002fc9fe3cdd691c5a18f902ff85cdbdb23470f45eea97","timestamp":"0x2fa","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xbaad6455bfe19ccfdc72465faec5c5e804aa1347fcf0efb551ab515fbe04ebf1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x48","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x6b0ac21041bdeb4aedc2a35989cf2b4cf1bfb96b5dc27fd8466d1b958cbe146d","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xe7569b65712f364f434197edaecee81790e303e191ad2c3cfa29a4ad561f68be","timestamp":"0x306","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x4f805c3054143e26caa77edde793d043f917e08d52648a0105ac55724322500a","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x49","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xbaad6455bfe19ccfdc72465faec5c5e804aa1347fcf0efb551ab515fbe04ebf1","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x506c939d3211b0462ec8df49618242bbad5d825c5dbafe84734c6ad4dccace6c","timestamp":"0x312","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x5435103be096885dfdd7ebe0c7aba47763400c274a75ee3697f20c591c0a1088","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4a","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x4f805c3054143e26caa77edde793d043f917e08d52648a0105ac55724322500a","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xeb2c561b1ec1d89b201fc8a8e1e36ef6652996f5cc57d0215784a2dedf64e7eb","timestamp":"0x31e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xa6b1ed1f38fe02e7292b64cecae4798d0bb9550d3526864008082032ca765352","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4b","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x5435103be096885dfdd7ebe0c7aba47763400c274a75ee3697f20c591c0a1088","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x11b6e13e95c9a0164247e80ba4136be5ecf188c3d9d117f00fa5c26e01d9b437","timestamp":"0x32a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x4e3242bfe68953efdc239a89081e2bc20e6e219583578c11c8d9514417fd18d3","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4c","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xa6b1ed1f38fe02e7292b64cecae4798d0bb9550d3526864008082032ca765352","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x02ef58478ca6a7a505a614dbd4614aae007923f2f14fd2075cfcc5150a9ef7d9","timestamp":"0x336","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x96c812ede9927b0e0a88363779a7d21bd9063872ce27e4193af7dd5b2b2d1a21","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4d","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x4e3242bfe68953efdc239a89081e2bc20e6e219583578c11c8d9514417fd18d3","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xbb6492e7b50c2dc91683b89626df1470bd68b52abf02376ecaf3f22031a7d0cb","timestamp":"0x342","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xd3e86890b88430849a1ea2d93eb62c1a53cceecd07db8edd105982aba57a7d50","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x96c812ede9927b0e0a88363779a7d21bd9063872ce27e4193af7dd5b2b2d1a21","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xb9e86a2d0f3ced199ce9f288e5d25cb6082d0e15ee697f07fd99ff50713187cb","timestamp":"0x34e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x3155a2060b592699b644476cf85c31fe9626e4ed5e33485b02a92efb7b24629a","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xd3e86890b88430849a1ea2d93eb62c1a53cceecd07db8edd105982aba57a7d50","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x1f594f957a0cf52f05e652fc0762e0dec220326e4651c78267d0c7867ae1d54d","timestamp":"0x35a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x5a7b1e7d6395816156a2e17507897b680377a66fdbd0e366c86f3af74c93fad9","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x50","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x3155a2060b592699b644476cf85c31fe9626e4ed5e33485b02a92efb7b24629a","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x6a1811e88d4977966f819202df26d41af836e01f103783be18391449f85a5125","timestamp":"0x366","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x38906bc69a277fa416c893b94302d802f5723ede945eba2418e820d41f0d6d0a","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x51","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x5a7b1e7d6395816156a2e17507897b680377a66fdbd0e366c86f3af74c93fad9","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xcf8d4f7d609556b41f7528247cd27b96e18ff390624c05788790683af5e41960","timestamp":"0x372","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x5b2ad1a071ed6464624b3034ad9b3749b3895ba2852470b8f491347a0f32a2a2","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x52","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x38906bc69a277fa416c893b94302d802f5723ede945eba2418e820d41f0d6d0a","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x7ab86be47c96bd5d0e7211291e21035e3452aa3a294bf452d7d59f0bd530252b","timestamp":"0x37e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x3fcef7f17588fb889ed49e2374999a756bbaa704d9d57db002c86a5f5ecc4177","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x53","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x5b2ad1a071ed6464624b3034ad9b3749b3895ba2852470b8f491347a0f32a2a2","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x3d22f887ab26489745f15a660a1637db776a3b04e7d57382067537435e41781e","timestamp":"0x38a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xd5f086069738bb8f727e58f7aac29bef55ba54f82f918ebae8a01670c5e70c27","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x54","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x3fcef7f17588fb889ed49e2374999a756bbaa704d9d57db002c86a5f5ecc4177","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xefea0016c1558fcc4c609cc011714c36ac2b9abbd68266c3dd7f00d02eeef7bf","timestamp":"0x396","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x730fa5fa1f2f1e27765f37f320899772a8023fc63a835b05c0350ba2560a5424","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x55","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xd5f086069738bb8f727e58f7aac29bef55ba54f82f918ebae8a01670c5e70c27","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x51a38a30f9653f68b51ef4a177646e6ff548c712fd514103fbd330b76048f7e0","timestamp":"0x3a2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x2d385b07b824c9d311f65d72e96a86eff377a0be776f551c77098776ffac679c","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x56","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x730fa5fa1f2f1e27765f37f320899772a8023fc63a835b05c0350ba2560a5424","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x2dc72e9a5d09644162872b029f78c3ed626bb13f136e7ea72ea083b0164ca668","timestamp":"0x3ae","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x74e579629ba4222639df07b5d89bdd43bdb95818f161b27051b967dc9ecebe89","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x57","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x2d385b07b824c9d311f65d72e96a86eff377a0be776f551c77098776ffac679c","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xf9e46a58054da72b6303c7768f56888612a981073ac70a63d7419276ef220af0","timestamp":"0x3ba","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x143a1308be8a167dd13242d905372be062773068118e3a602dcf3cfc375b8a9e","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x58","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x74e579629ba4222639df07b5d89bdd43bdb95818f161b27051b967dc9ecebe89","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xe55a73dd6589cefc19b930daf3a5a8482d90618d2295da8376c7af1b163a5230","timestamp":"0x3c6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x4e066e66baf309426fd9241a3f74215912db75afd3a34c195097344df3f92dfc","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x59","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x143a1308be8a167dd13242d905372be062773068118e3a602dcf3cfc375b8a9e","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x4b4404de4327f07f33cfaee5a0b8b78e066977b5957fe27bdfe11a226efc9e27","timestamp":"0x3d2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x59a4139c0e218e0d38df2862cea8994a9cee78e3bb598d81ad4c29eac8aca0fd","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x5a","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x4e066e66baf309426fd9241a3f74215912db75afd3a34c195097344df3f92dfc","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xf64eaa92a63079482d9e17353f3763dde2df9f68694c2f49ad46da052d265ed3","timestamp":"0x3de","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xfb41dd07d240a8c621a73dba6fe264ed6816e425e8fb6b8257e99892d4d3c780","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x5b","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x59a4139c0e218e0d38df2862cea8994a9cee78e3bb598d81ad4c29eac8aca0fd","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x71594a7b5342b6a6eb67f3ba70b14f4f161824eca2f17a22121d16a2d4716499","timestamp":"0x3ea","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xcd5168b94d44bf496ba8080621aefd6cc0f2fe6efc6f9c7c440523ce9057330b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x5c","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xfb41dd07d240a8c621a73dba6fe264ed6816e425e8fb6b8257e99892d4d3c780","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xc7bb13002649011b1d422e60b90175b8474e854505fd0b6fce8ac3cd043ead14","timestamp":"0x3f6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xd663ad59ec5a050320a6222e037e3a5fa36707c3a35e6104b1548f80ebfe7fd2","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x5d","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xcd5168b94d44bf496ba8080621aefd6cc0f2fe6efc6f9c7c440523ce9057330b","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xbccc8a445165c3a648433301879fa6d90f3a7b8377859588d9ce3c3cf626f64d","timestamp":"0x402","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x96ba0d494d51cb4c7cbca32b78a15ec58c8dc24a12e5a0ae1cf5cec0115cfb27","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x5e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xd663ad59ec5a050320a6222e037e3a5fa36707c3a35e6104b1548f80ebfe7fd2","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xef47e2db30672ed3024b25a45c5d09e0d8012c5eecd964658ff8dd14c623fe79","timestamp":"0x40e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x2feac344d9a632fbf5f0c7fb55108136c70e834cdc26601cd5d8639961e0ca9a","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x5f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x96ba0d494d51cb4c7cbca32b78a15ec58c8dc24a12e5a0ae1cf5cec0115cfb27","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xd636efd6557fc2b86d14daee78cafbc2972b6e74e6f79826b6197abcad6401f2","timestamp":"0x41a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x01233c8dec067ebd8841148fe40489c0136e1d3d15c0b63252fca3f43b329545","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x60","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x2feac344d9a632fbf5f0c7fb55108136c70e834cdc26601cd5d8639961e0ca9a","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xd80989a16125b3b3e27a6754a05e178b75c0ce4cf55f0986a404d7cc5461956b","timestamp":"0x426","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x5b0edfd58d134f1e2a7788e80d973828f6f1cae1e2f7e9ac359854b17c8bb792","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x61","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x01233c8dec067ebd8841148fe40489c0136e1d3d15c0b63252fca3f43b329545","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x825f9d354b6795b777c35856f47c0233fb1da27787cd8440edb95a6cabfbe3e5","timestamp":"0x432","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xe4227d7f49b348ecd099abdb5deef23f492fbd3f751445a4e5b8827532e0cdd7","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x62","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x5b0edfd58d134f1e2a7788e80d973828f6f1cae1e2f7e9ac359854b17c8bb792","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xc500e9ed060b4aa130a93bac09c1faa51a9c9ca313b21f6c0ed0883059682847","timestamp":"0x43e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x2828e0d7ba7cebb6e2c440d8fa1603ebd4601645aacd636e374b93df3e633e2e","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x63","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe4227d7f49b348ecd099abdb5deef23f492fbd3f751445a4e5b8827532e0cdd7","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xca6a826d5b09fd094437817a82f58231069adfe17fc9e883ec0828d4ae93535f","timestamp":"0x44a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x40256e01c837d48f6a4ae6544416310de89f55e37cf69599d565667d039dc52f","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x64","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x2828e0d7ba7cebb6e2c440d8fa1603ebd4601645aacd636e374b93df3e633e2e","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x0eac1146a203c5b13b5d0801d407cc63fddd23cbb84dae3a44e6278f97f13c94","timestamp":"0x456","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x1b05c128a34c69336a5406823240204bf8ab250f68c42b77496955ba9b873e02","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x65","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x40256e01c837d48f6a4ae6544416310de89f55e37cf69599d565667d039dc52f","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x4c3c6ee9c66b6b246021c1e66b3e6b415edc3e4234ffb8ab7a67ae99f23974c3","timestamp":"0x462","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xc3798244790b1ecc03e3c9ad1ade72c37b31032a99554360c25992d5f3512064","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x66","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x1b05c128a34c69336a5406823240204bf8ab250f68c42b77496955ba9b873e02","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x3a72e2b9e7fcbd0a083115cf66dfb8de9c96477050d0d92e5a0ba3cef091ebdd","timestamp":"0x46e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xdebbf1e0124eb0f52896e6e9f324a56ad26243bb58d8b5efe7ddc20c99ad5020","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x67","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xc3798244790b1ecc03e3c9ad1ade72c37b31032a99554360c25992d5f3512064","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x1a31efa2d557d1f57e593156b8b9f178350d73cdaabefd86cc9d34547f48eae1","timestamp":"0x47a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x0cf6a561ead5d232dcf17585b479492a941c47f02bda5f918396858accb2ebe2","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x68","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xdebbf1e0124eb0f52896e6e9f324a56ad26243bb58d8b5efe7ddc20c99ad5020","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x2e6dfee195ead4bf3a64f2068fb5d24697ca24ce8159263f982d38cbf4657f2c","timestamp":"0x486","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x053a799411e3784064352a6a635c0136d75ffbbf1cac31415e2366a371c15365","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x69","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x0cf6a561ead5d232dcf17585b479492a941c47f02bda5f918396858accb2ebe2","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xa28ab426381aa543fb066dcf86eda916297a82fc946f3545b20d0c6fe2d6e8d5","timestamp":"0x492","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x4d8480a33371c1eb329242f94ed3919f7c0d0a0df2a9f6f6e524d340471ad5cd","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x6a","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x053a799411e3784064352a6a635c0136d75ffbbf1cac31415e2366a371c15365","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xebf486946e91a3aa9d050a7d9aa9705f262886ccea929fd7132150ad049a6981","timestamp":"0x49e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xbe38b6a00fe455ca4d5d8dec162978560cb6b20aa30bb2259fc615f26a888496","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x6b","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x4d8480a33371c1eb329242f94ed3919f7c0d0a0df2a9f6f6e524d340471ad5cd","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x3d79a5305192abbb922e2c5f6b43347acc94c45aa6ec1fc0226ea41c3fc2bd32","timestamp":"0x4aa","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x5585134bf72101b6f228df4b43fccbe1f66934de2c92c8ccf8a7c04373edd000","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x6c","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xbe38b6a00fe455ca4d5d8dec162978560cb6b20aa30bb2259fc615f26a888496","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x9c2fb38c8640f7426844eabc67bce60548093b583d1355ef177c3ec039b324c1","timestamp":"0x4b6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xfa10d28f1feb0b6a7c6daf6cdf520186ac9472563b8307f772b061d72d0f2f21","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x6d","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x5585134bf72101b6f228df4b43fccbe1f66934de2c92c8ccf8a7c04373edd000","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x0cc15d9ef9f6b01dd147001dc81b61e1194512bf52498e8cb9a4880ad705d575","timestamp":"0x4c2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x4c667d06615e076a8717a147a7395fa157e547944443a62c93d09c7e8de24d54","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x6e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xfa10d28f1feb0b6a7c6daf6cdf520186ac9472563b8307f772b061d72d0f2f21","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x2be05cf3cf6c8b3aa3a7d8074d9796ddaff486269e25f078cc1234f96c92bd5b","timestamp":"0x4ce","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x9de833ad7c5bf914e7002ee77f3e36b54f76832dc9ff46cd1461de889aa99d87","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x6f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x4c667d06615e076a8717a147a7395fa157e547944443a62c93d09c7e8de24d54","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x3cf3beea65064a3713c9c75563d11b37ee7d468c527e11c42b475fdfde7612fd","timestamp":"0x4da","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x6fef64d516b540a494ea2dc1a525dce99113cfb45a36323edc670e28188058f2","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x70","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x9de833ad7c5bf914e7002ee77f3e36b54f76832dc9ff46cd1461de889aa99d87","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x98513b7d13519ff6ca446ed2de20023d73e56c18c9aedf3d04a318aa8488724b","timestamp":"0x4e6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x7f8899899e27c9878d3d88de43f6c7bbe0ff75e476035a184daf4ba6010a17ac","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x71","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x6fef64d516b540a494ea2dc1a525dce99113cfb45a36323edc670e28188058f2","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x478eb4cf1d418ba7b006a355edbdcb916b2bfa5b1d49663b4bec69989c8c59da","timestamp":"0x4f2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x0b63b1eac0584ae20d661a2eae52d11a3729d08d6bd1e00d4b1542ad97972834","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x72","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x7f8899899e27c9878d3d88de43f6c7bbe0ff75e476035a184daf4ba6010a17ac","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xf6a6f96a677156e50eb38b91966b98fa6c65a4c7d704596611698267008432c6","timestamp":"0x4fe","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xd51c3a7359d2f58067fbad5f9f4e0f8b1dc372342084a6baa041c47b57804dbb","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x73","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x0b63b1eac0584ae20d661a2eae52d11a3729d08d6bd1e00d4b1542ad97972834","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xc7b508220e954a079a84675c6abca844791d17369d5dcbeac4cd01637ee8fff2","timestamp":"0x50a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xaa2167ae5cf4f16cdc15bd8bb41b3932e9d1e447cd62de439b6bd61ca63eb8ac","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x74","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xd51c3a7359d2f58067fbad5f9f4e0f8b1dc372342084a6baa041c47b57804dbb","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x74349c0088772cd45108e4958c6a68aaa8228b357aebdde84bca26127889e07d","timestamp":"0x516","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xdfad11357982ecced31d3a3c2150646b1c448bbd5f00ec31d1dffb245e525ec4","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x75","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xaa2167ae5cf4f16cdc15bd8bb41b3932e9d1e447cd62de439b6bd61ca63eb8ac","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xef4d8de779336f7b44bd8f8c1a7d41c0193d6f8f7d38e63db1fb5b8fcbdc476a","timestamp":"0x522","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x9aba1d24c718ca0681104aaf3cd90595482483a78152e305e5763e06ca6bd4c1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x76","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xdfad11357982ecced31d3a3c2150646b1c448bbd5f00ec31d1dffb245e525ec4","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x0399bfa9a7288563cfb6fb98d5d41065ce28a249fcd906dc199904118c89c8f2","timestamp":"0x52e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x34bc89d51081eb1b4d4e4f0ee911d4c348031161687505e552dc96400ca3e7ba","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x77","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x9aba1d24c718ca0681104aaf3cd90595482483a78152e305e5763e06ca6bd4c1","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xa148ecd85beeab6927f4b1b1f33941410f8ef1b907b0c2e1e509e6ef1c5fb02a","timestamp":"0x53a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x2a8f433e1657ea32c2f53b6f59686dfa09845a178f37b661029a6a7dd0a67d24","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x78","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x34bc89d51081eb1b4d4e4f0ee911d4c348031161687505e552dc96400ca3e7ba","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x71955f97419711ebe69b2cd72c7c10c100044ce0dd34f48882f72e70fa42dd9a","timestamp":"0x546","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x7de53d54ffe755cde66cdedaa439895b803aaaa1835d7fd9224c6a80895c2196","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x79","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x2a8f433e1657ea32c2f53b6f59686dfa09845a178f37b661029a6a7dd0a67d24","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x732e44ad1a534ce008fc5b31a17cbd8ea8828608d6250e82d6d4b511d5780fb0","timestamp":"0x552","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x216db9dd629bd5c69880e642589eccdef8db157b7e8a33c21c5f47521e433b36","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x7a","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x7de53d54ffe755cde66cdedaa439895b803aaaa1835d7fd9224c6a80895c2196","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xebb64aef4f64e2e7e5c1d6bd17b70bd54fa1a592b54adde63f2f521b719e2d3e","timestamp":"0x55e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x92174f386965a45989ebf07ec582ea1581dea76da87244241d5f6f3c70f3bf20","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x7b","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x216db9dd629bd5c69880e642589eccdef8db157b7e8a33c21c5f47521e433b36","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xb8f69bd43a9d6a2b63a946310fdc8327e5ca2127c0180a9098d97c0453243610","timestamp":"0x56a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xa8351bc3e24640ded05055e4c808594ad8f2ca5b565dc5e39898396d5ef1db6a","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x7c","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x92174f386965a45989ebf07ec582ea1581dea76da87244241d5f6f3c70f3bf20","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x3efe50b5e34fa933ed611cb6c4d16e4fc1075cf3f06d4bf3ba06c506cc9a5c07","timestamp":"0x576","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x406d24834ddc3d58805a56a08c00e095e9c45e27a26f9af11f1805a13ca274fb","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x7d","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xa8351bc3e24640ded05055e4c808594ad8f2ca5b565dc5e39898396d5ef1db6a","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x6d257dc3421d1cd174fc9c8e0c83331a457096a3d76f79ee29c495dd4524252d","timestamp":"0x582","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x01e54daa280730c0e9d06bc90f06915a31c5b817e9c0ed53fe76f1c2f3e8f438","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x7e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x406d24834ddc3d58805a56a08c00e095e9c45e27a26f9af11f1805a13ca274fb","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x9c3153330fc376f880fdebbd9f2b29ca6bcbf3fc284f30c4bf97412b1813d9b7","timestamp":"0x58e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xb72449437136651826f1852dfe184b11e9e3d4af4f65b70c03c3e77925f9ac50","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x7f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x01e54daa280730c0e9d06bc90f06915a31c5b817e9c0ed53fe76f1c2f3e8f438","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x8ba288e7d0696d95a37365aab4f754241da654bdbcdb7f36639d77b8db2f9e1c","timestamp":"0x59a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xe17981e873d874f816c712bd7533b5d650e0f81e5934a44f71adacf24c34cf38","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x80","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xb72449437136651826f1852dfe184b11e9e3d4af4f65b70c03c3e77925f9ac50","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x5bb446ffebb1d66070eadfb2680b366d8902476a656b1519c542d653602e901d","timestamp":"0x5a6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x90e3f8915dd4eb3263bf73a824fa8118da142e366eabee4e045aaf9a2fe0e10f","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x81","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe17981e873d874f816c712bd7533b5d650e0f81e5934a44f71adacf24c34cf38","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x88ed54a5e889f9328008c5db4d7073395388d508cafcfd0b0b8beb02436b75c6","timestamp":"0x5b2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x11907302c494a7fcd10a0027d74fcb6d23ce37809f87d22b726a33faf9e7febb","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x82","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x90e3f8915dd4eb3263bf73a824fa8118da142e366eabee4e045aaf9a2fe0e10f","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0xe1c0e3846d05d6c9c87026d21761e1b294068fac4fa2844c3f6059becdbd9395","timestamp":"0x5be","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x9581c63938dcd901502de608230e2855184d7660be854b9945ff7e2de48d0acc","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x83","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x11907302c494a7fcd10a0027d74fcb6d23ce37809f87d22b726a33faf9e7febb","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0xce764fbc656a7921a2ed157f081aa8d2d93ce22c7bd8ec9aa27f4433e0f92257","timestamp":"0x5ca","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x7bd7abaf06daa580c09c40cd1a013b3430c2ce49e124d957c939a08f223e404f","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x84","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x9581c63938dcd901502de608230e2855184d7660be854b9945ff7e2de48d0acc","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0xa0540811d9e7e55a58ab654db18113f2c9f5d03cbd437865f7e7b220b198c559","timestamp":"0x5d6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x41bcf40cd6e9276ea825647e5227a233ced4eb1070cc6d8a16061a454ba9e1dd","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x85","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x7bd7abaf06daa580c09c40cd1a013b3430c2ce49e124d957c939a08f223e404f","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x8c4160af3af5147d1affd92f99b93c161ea818edb675f8baf5b84cda06a72dfa","timestamp":"0x5e2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x68868e48fe2273f5373cab5c13ea1aeee7b38b3b0138a72c32e9a2112527c98a","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x86","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x41bcf40cd6e9276ea825647e5227a233ced4eb1070cc6d8a16061a454ba9e1dd","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x31d93ba8c2131c2f5660a33ec714ae7f8e4e2c5747a2b3c306d3cae9b13a528d","timestamp":"0x5ee","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xa5ce895fc4e246b041ce85df13efa9588944d2e29ae7271bbfad399e55299424","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x87","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x68868e48fe2273f5373cab5c13ea1aeee7b38b3b0138a72c32e9a2112527c98a","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x38daa69b761a2db24d31e3b66cceaa8e884ce65c97cc1701f039c1828ccb6411","timestamp":"0x5fa","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xea849fafe7e42d844e5afea64bf25bf1d4fc076eeb379f3cd7eedc295c2003aa","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x88","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xa5ce895fc4e246b041ce85df13efa9588944d2e29ae7271bbfad399e55299424","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x17b5618fcd61ebea4988466e211a751ced4f7ff186e0ec44c63adec9b52f49ab","timestamp":"0x606","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x8fca19d2070db1044fe298a459412239a6faf40c713f3602cb306145ece1bc38","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x89","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xea849fafe7e42d844e5afea64bf25bf1d4fc076eeb379f3cd7eedc295c2003aa","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0xaa2cb5c35e41fd84892bee3069951500d6edd414ae208e1037263ab6e6922502","timestamp":"0x612","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xb03d13d295807f7dbb6fe0950d016a7bbbd1c5a1b1e00842532569d7a4cc806d","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x8a","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x8fca19d2070db1044fe298a459412239a6faf40c713f3602cb306145ece1bc38","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x9c26394425f830c6f3d84e85b53357fff767a32f9371f30a370245df91b4671c","timestamp":"0x61e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xe1724ca84d26e7cfca11b64a2269624881e233cf5ec52f3479d3ef55322aacc5","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x8b","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xb03d13d295807f7dbb6fe0950d016a7bbbd1c5a1b1e00842532569d7a4cc806d","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x50a1b27d61ea58175a48b7ccc5b55bb2be4544788f239e582bdfe97b67d060de","timestamp":"0x62a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xf4fa618f799973158be14d26f38ba08426ad7eb3ad44231c090edbef7433f8b9","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x8c","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe1724ca84d26e7cfca11b64a2269624881e233cf5ec52f3479d3ef55322aacc5","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x613f21528323b62230d426a227e4ee13fb7f0839a24b83c6eb63dfe905612c1b","timestamp":"0x636","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x7e7b20110193be07d3816cbf005c36d0d4eff2b23aee82b6d37013eb6f83ff24","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x8d","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xf4fa618f799973158be14d26f38ba08426ad7eb3ad44231c090edbef7433f8b9","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x9a8470d71fea8d20ea0f5e2e3077ed30fc9e9003d90d97ca7c0105a9ba206304","timestamp":"0x642","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x82679e6d554799aeea0d316856355466e4245f2e2638e832be6a6f8f519a1b54","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x8e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x7e7b20110193be07d3816cbf005c36d0d4eff2b23aee82b6d37013eb6f83ff24","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0xe3b28dc3078f3343038fdfb4b428d0705744cd216500cdbf7a9380391697bb66","timestamp":"0x64e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x631581fc1b6993258ccefda0168c9fb77c6d473a05953cd054fb7fe8139ccb04","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x8f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x82679e6d554799aeea0d316856355466e4245f2e2638e832be6a6f8f519a1b54","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0xd87fc2d44756340dfc85baefa0fbb7700a9fc3e5b916f2047e13ccf833da03a0","timestamp":"0x65a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x5fa47217d16f75327fd372237dac0178f1e7910c6db8534ef381565f88e32a4a","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x90","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x631581fc1b6993258ccefda0168c9fb77c6d473a05953cd054fb7fe8139ccb04","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x24ff4f25d7ebac43a0a72dba1326ade5204573c41aa0bc91c20e3a2c35ae165d","timestamp":"0x666","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x8a813ad89e948a689d969839e3441197029cdbd7dd0cc0cf16b750942405e4de","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x91","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x5fa47217d16f75327fd372237dac0178f1e7910c6db8534ef381565f88e32a4a","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0xed056a17af9f5cfa8f78b273d2adde926ba9d12bf2157c4c1ba1f31382cb5fb3","timestamp":"0x672","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x2041fa8ad520218f6ef6dd2617592efa1cfb0cbb0c23b7f390725caefbffb6a0","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x92","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x8a813ad89e948a689d969839e3441197029cdbd7dd0cc0cf16b750942405e4de","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x09678b7808fc56e72fd76fd3fbabb9693f27dcc766ca971e247e2f0e747aea6d","timestamp":"0x67e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xbc7b581403a389f45d63ed87f2847c9d72e113dd766b12baef2fc2e876602c8c","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x93","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x2041fa8ad520218f6ef6dd2617592efa1cfb0cbb0c23b7f390725caefbffb6a0","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x70c3994c765d840f42a98a702c44bd391baa2ed22a0d05d84c01b542f293574c","timestamp":"0x68a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x96c93b0b8af9dd67495bba9946392b9661dcdb12379daeed041c63cca2a7c4ed","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x94","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xbc7b581403a389f45d63ed87f2847c9d72e113dd766b12baef2fc2e876602c8c","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x50d902c610a18a4aa7917c8a31a13ba05d03e8141beb0bfe7bfb6a792d2e4201","timestamp":"0x696","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x21d72a0552fec10790b948afc164e5c0f09a74bcfd5010a3da1eddfb051f5f0b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x95","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x96c93b0b8af9dd67495bba9946392b9661dcdb12379daeed041c63cca2a7c4ed","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x522b15d727d0f8b4733b9c25901a6547a0ee1bd53186863f9f621bb45f84601b","timestamp":"0x6a2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c72dd9d5e883e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047e7c40000000000000000000000000000000000000000000000000000000000000009600000000000000000000000000000000000000000000000000000000000006ae0000000000000000000000000000000000000000000000000000000002fa9e36000000000000000000000000000000000000000000000000000000000000000021d72a0552fec10790b948afc164e5c0f09a74bcfd5010a3da1eddfb051f5f0b","logs":[],"gasUsed":"0x57bc","maxUsedGas":"0x57bc","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x57bc","hash":"0x509cc589402b0effcc69d60867cb7206bf33e85630bfd245af0678d2ea5539f9","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x96","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x21d72a0552fec10790b948afc164e5c0f09a74bcfd5010a3da1eddfb051f5f0b","receiptsRoot":"0xe74486ea84ef8b10f828f52661656b006a7ff4ebe2dcf9830f985d1fc73c710f","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x293","stateRoot":"0x24ae40003fc410ae62bba0f60000cc2a36f57975c4a30f705ea6f510a7845156","timestamp":"0x6ae","transactions":["0x234a1d9897819c206fdeb6af312d742010a91b5b4159978a902c9a0b90e7bee5"],"transactionsRoot":"0xed81b1bfe79c8c81d3fe874f7214a9fb9dd186e8243abfeabc506550a532c09a","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c72dd9d5e883e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047e7c40000000000000000000000000000000000000000000000000000000000000009700000000000000000000000000000000000000000000000000000000000006ba0000000000000000000000000000000000000000000000000000000002fa467a0000000000000000000000000000000000000000000000000000000000000000509cc589402b0effcc69d60867cb7206bf33e85630bfd245af0678d2ea5539f9","logs":[],"gasUsed":"0x57bc","maxUsedGas":"0x57bc","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x57bc","hash":"0x7aa556a410fadc6d4e9c7ed5143d7c4629182123d3023543b32250e4e5bab517","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x97","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x509cc589402b0effcc69d60867cb7206bf33e85630bfd245af0678d2ea5539f9","receiptsRoot":"0xe74486ea84ef8b10f828f52661656b006a7ff4ebe2dcf9830f985d1fc73c710f","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x293","stateRoot":"0x13dbc55bd0816f1698082389566557a773bb43ec0858b8b59e6494b6676ccbe2","timestamp":"0x6ba","transactions":["0x6ce88f983eaae4b847945d3f970c97950a25d002ea517fa0fc033c363ce4f6ec"],"transactionsRoot":"0x4fc32bd4b557c1dd259db629f1ee51f2584efc64ede702c95479e36c1cebe63f","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x415377386648e11f2753d65f4f28158e4d981f795705e55f3ec2cdf795ff811e","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x98","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x7aa556a410fadc6d4e9c7ed5143d7c4629182123d3023543b32250e4e5bab517","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x62138749ed517e114abd411b9043aaed4eb3fbf5f787fb105dfeaf965cc21e35","timestamp":"0x6c6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x458f18465eb6fd638b68c9bc977da2c7913eacbf06a063f512e460f2739e965a","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x99","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x415377386648e11f2753d65f4f28158e4d981f795705e55f3ec2cdf795ff811e","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0xd26b2ece523284fa154eee3d045a2dd607efe5ed3f49427ea3e7f28665fbae48","timestamp":"0x6d2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x7984c522ab3fe78b0e4a46db75fffdf5dbdfd537578cf6170fe38d16540500c1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x9a","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x458f18465eb6fd638b68c9bc977da2c7913eacbf06a063f512e460f2739e965a","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x39e2e111bbe7a7c109afc5bcc7cceeeebe0b895fbe04915b365d2eb2f9a80c25","timestamp":"0x6de","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xa77d33422919139f95d651be059f2987e1abb063d20d9c07cd2d92079db73212","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x9b","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x7984c522ab3fe78b0e4a46db75fffdf5dbdfd537578cf6170fe38d16540500c1","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x46c5fd8862d41a313faa6a7ccfdd9fb4fa7e492e72ebefa8a54ede1af80b456f","timestamp":"0x6ea","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x2ae4de02ee3a119b00379da82b8d5ac1c41d64dd62bc65dfa733c00d684f0e3b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x9c","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xa77d33422919139f95d651be059f2987e1abb063d20d9c07cd2d92079db73212","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x5f576e1bd82fa316b1b22214dfbf091ef7e7d2ada0b70e01ed0ad4b8e7cd0eb4","timestamp":"0x6f6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x396148dc8932c54f35ea835bdffcb531d0f01924ab3b1a4d793f6c8a09647c48","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x9d","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x2ae4de02ee3a119b00379da82b8d5ac1c41d64dd62bc65dfa733c00d684f0e3b","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x5e288b4a795a6dc5323f2bb67637d4dabcce5ce76c04f806e93f657aae916360","timestamp":"0x702","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x79e8ef6ab77864e6201855212fb99793678555ca5f2ac0ee9a41217c927ed313","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x9e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x396148dc8932c54f35ea835bdffcb531d0f01924ab3b1a4d793f6c8a09647c48","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x0583bd33b7f5f838d0139493087c3fb4c4dfc394392f3359a504ab55dd68b592","timestamp":"0x70e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x8b179ff6d2e94dcbafbfa5caf67e899b04ae8e885a0ea2b21c84c711d0a5e41a","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x9f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x79e8ef6ab77864e6201855212fb99793678555ca5f2ac0ee9a41217c927ed313","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x8e13045c380aef2bc954d329d0024a3051d8bcde18bf4cc7f97f1b3963324150","timestamp":"0x71a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x6ca1d3d7e42fcf6a54481d689f2e0101ff6252859090b688a066473d5a3b7248","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0xa0","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x8b179ff6d2e94dcbafbfa5caf67e899b04ae8e885a0ea2b21c84c711d0a5e41a","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0xb6d20641ee90e76bb233f38d1cf01d999a5d06c8c1c96271f5179c1115eba3e4","timestamp":"0x726","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xb4cc708d4b5038a8d276df5e7e9922eebc8cc35985200eb39493526571758051","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0xa1","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x6ca1d3d7e42fcf6a54481d689f2e0101ff6252859090b688a066473d5a3b7248","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0xda8245a0ddffa5ffb746b525ff0972e0a70e1f605bb7851ab4ce0f79fa9055f7","timestamp":"0x732","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x8ed227cdd4eeff572932fda063f67fb3f2ae86a2734ee1d0a6cad22d21f967db","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0xa2","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xb4cc708d4b5038a8d276df5e7e9922eebc8cc35985200eb39493526571758051","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0x2c02d4da70cca9dc0e4a3c95fe7546019b8f94fdf25ebad80098cf189a29d488","timestamp":"0x73e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xb80aec4d267aa12f578b51fd792c43e81103b68df686a34b12f38bd398af55d5","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0xa3","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x8ed227cdd4eeff572932fda063f67fb3f2ae86a2734ee1d0a6cad22d21f967db","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0xa4c9906d267098b03d195d9f19f4c99d80697c7372402db0d946be6453dd5d76","timestamp":"0x74a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x5992b85b9e0aa5b37888d0f314531d318ba24d416e364b27c2c4fc33a69f66e2","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0xa4","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xb80aec4d267aa12f578b51fd792c43e81103b68df686a34b12f38bd398af55d5","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x263","stateRoot":"0xbf9cc827ff2b8a5f51ca579bfbbcd1b01591c02a44d5ab0d5f0edec66621690f","timestamp":"0x756","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c72dd9d5e883e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047e7c4000000000000000000000000000000000000000000000000000000000000000a500000000000000000000000000000000000000000000000000000000000007620000000000000000000000000000000000000000000000000000000002f9eebe00000000000000000000000000000000000000000000000000000000000000005992b85b9e0aa5b37888d0f314531d318ba24d416e364b27c2c4fc33a69f66e2","logs":[],"gasUsed":"0x57bc","maxUsedGas":"0x57bc","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x57bc","hash":"0x09d609fb517dfefab69d137c47a82e2ce3ee8bb1d90736ed79e2b29884373bb5","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0xa5","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x5992b85b9e0aa5b37888d0f314531d318ba24d416e364b27c2c4fc33a69f66e2","receiptsRoot":"0xe74486ea84ef8b10f828f52661656b006a7ff4ebe2dcf9830f985d1fc73c710f","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x293","stateRoot":"0x1f4bb9089f7fa291ebce51e4915f8057bc149189762c83e89c1a45a940eb89a1","timestamp":"0x762","transactions":["0xd1e30e6aa6e9a03761f08100c2430fa79ebbb9aa788f79776852887142c31745"],"transactionsRoot":"0xb757ec4956f6d80fd632ae9ae475d0c1d9c5db0eb09ef6ccf72c21a07b6e9887","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c72dd9d5e883e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047e7c4000000000000000000000000000000000000000000000000000000000000000a6000000000000000000000000000000000000000000000000000000000000076e0000000000000000000000000000000000000000000000000000000002f99702000000000000000000000000000000000000000000000000000000000000000009d609fb517dfefab69d137c47a82e2ce3ee8bb1d90736ed79e2b29884373bb5","logs":[],"gasUsed":"0x57bc","maxUsedGas":"0x57bc","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x57bc","hash":"0x7226fa65fc0417c50b64de8b2151d085714b7ab041b43cbd15b0936e682cb087","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0xa6","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x09d609fb517dfefab69d137c47a82e2ce3ee8bb1d90736ed79e2b29884373bb5","receiptsRoot":"0xe74486ea84ef8b10f828f52661656b006a7ff4ebe2dcf9830f985d1fc73c710f","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x293","stateRoot":"0x3dca8f595333023f152555e7cc7c4c9262c250cd6e01e0ea04f167c03a31284c","timestamp":"0x76e","transactions":["0x7fa554c14bc98ac8f5ef8d1ded87f28859dc0265561764e7144aae355b41723d"],"transactionsRoot":"0x498f20a97534c74dfe1180f607e531c2fc0ef8d0bc65af61cecaa6028e18eb08","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-add-more-non-defined-BlockStateCalls-than-fit.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-add-more-non-defined-BlockStateCalls-than-fit.io deleted file mode 100644 index d3df0f3715..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-add-more-non-defined-BlockStateCalls-than-fit.io +++ /dev/null @@ -1,3 +0,0 @@ -// Add more BlockStateCalls between two BlockStateCalls than it actually fits there ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0x91"},"stateOverrides":{"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"blockOverrides":{"number":"0x92"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-38020,"message":"block numbers must be in order: 146 \u003c= 146"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-basefee-too-low-with-validation-38012.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-basefee-too-low-with-validation-38012.io deleted file mode 100644 index be55ff6dfd..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-basefee-too-low-with-validation-38012.io +++ /dev/null @@ -1,3 +0,0 @@ -// Error: BaseFeePerGas too low with validation (-38012) ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"baseFeePerGas":"0xa"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0"}]}],"validation":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"err: max fee per gas less than block base fee: address 0xC000000000000000000000000000000000000000, maxFeePerGas: 0, baseFee: 10 (supplied gas 50000000)"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-basefee-too-low-without-validation-38012-without-basefee-override.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-basefee-too-low-without-validation-38012-without-basefee-override.io deleted file mode 100644 index 11bbbe9818..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-basefee-too-low-without-validation-38012-without-basefee-override.io +++ /dev/null @@ -1,3 +0,0 @@ -// tries to send transaction with zero basefee ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x5208","hash":"0x35c6daf9a8582b54df84e1a28c0be2f1daa461bcbb8d7c57663d471fff19ae4a","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x292","stateRoot":"0xe7b5ff27a7c9d623622f9a91238004305f5d07d06b8aac9f8f6236cd0bc18eb7","timestamp":"0x1ce","transactions":["0x234a1d9897819c206fdeb6af312d742010a91b5b4159978a902c9a0b90e7bee5"],"transactionsRoot":"0xed81b1bfe79c8c81d3fe874f7214a9fb9dd186e8243abfeabc506550a532c09a","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-basefee-too-low-without-validation-38012.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-basefee-too-low-without-validation-38012.io deleted file mode 100644 index b32629663f..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-basefee-too-low-without-validation-38012.io +++ /dev/null @@ -1,3 +0,0 @@ -// Error: BaseFeePerGas too low with no validation (-38012) ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"baseFeePerGas":"0xa"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0xa","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x5208","hash":"0x19575431a2adf8c9b1863aeaf4cd2bd841daea413e5d86e06b74e6d060c3cb17","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x292","stateRoot":"0xc139a58f9dd5b0c8b193b762a64bf24733af8c7d6e0c03db4d94ad5afac85404","timestamp":"0x1ce","transactions":["0x234a1d9897819c206fdeb6af312d742010a91b5b4159978a902c9a0b90e7bee5"],"transactionsRoot":"0xed81b1bfe79c8c81d3fe874f7214a9fb9dd186e8243abfeabc506550a532c09a","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-big-block-state-calls-array.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-big-block-state-calls-array.io deleted file mode 100644 index 51b9d70cfb..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-big-block-state-calls-array.io +++ /dev/null @@ -1,3 +0,0 @@ -// Have a block state calls with 300 blocks ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-38026,"message":"too many blocks"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-blobs.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-blobs.io deleted file mode 100644 index bc312327a4..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-blobs.io +++ /dev/null @@ -1,3 +0,0 @@ -// simulates a simple blob transaction ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"baseFeePerGas":"0xf","blobBaseFee":"0x0"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x3b9aca00"},"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600e575f80fd5b505f3660605f49600149600249604051602001602b93929190605d565b6040516020818303038152906040529050915050805190602001f35b5f819050919050565b6057816047565b82525050565b5f606082019050606e5f8301866050565b607960208301856050565b608460408301846050565b94935050505056fea26469706673582212206284471b14925acedc8cf50c596b6850cfda0372471ee8893750f3e61bf3778164736f6c634300081a0033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","maxFeePerGas":"0x10","maxFeePerBlobGas":"0xa","blobVersionedHashes":["0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"]}]},{"blockOverrides":{"blobBaseFee":"0x1"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","maxFeePerGas":"0x10","maxFeePerBlobGas":"0xa","blobVersionedHashes":["0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"]}]}],"validation":true,"returnFullTransactions":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0xf","blobGasUsed":"0x20000","calls":[{"returnData":"0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x53f6","maxUsedGas":"0x53f6","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x53f6","hash":"0x1d53fb01e88918e1dc15bb74f4deb245bde91fe973ae6ce36172c6e3f7879451","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x61d638ad6837c75ea2c4a8e413d9c5a2c2bcf40979e6ba9293a113b6769d2fa6","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2bb","stateRoot":"0xbbeb8f574e71f3b63fefe39dbe1b8401b65fba74fd52839bc1dd4d032fc8215b","timestamp":"0x1ce","transactions":[{"blockHash":"0x1d53fb01e88918e1dc15bb74f4deb245bde91fe973ae6ce36172c6e3f7879451","blockNumber":"0x2e","blockTimestamp":"0x1ce","from":"0xc000000000000000000000000000000000000000","gas":"0x2faf080","gasPrice":"0xf","maxFeePerGas":"0x10","maxPriorityFeePerGas":"0x0","maxFeePerBlobGas":"0xa","hash":"0x6dd302137bafa6817cdd92b1157be1eb7b884b32e9bcab7f4084ee4c05a5dba3","input":"0x","nonce":"0x0","to":"0xc200000000000000000000000000000000000000","transactionIndex":"0x0","value":"0x0","type":"0x3","accessList":[],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"],"v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"}],"transactionsRoot":"0x7dd14954593162835c846350d8da40d6164b21bcee321e835d00b902adc4fa2d","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0xe","blobGasUsed":"0x20000","calls":[{"returnData":"0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c44401400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x53f6","maxUsedGas":"0x53f6","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x53f6","hash":"0x65e6f877822314293d3335a87b89758b95776b33988572046a3ca9fa8938572e","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x1d53fb01e88918e1dc15bb74f4deb245bde91fe973ae6ce36172c6e3f7879451","receiptsRoot":"0x61d638ad6837c75ea2c4a8e413d9c5a2c2bcf40979e6ba9293a113b6769d2fa6","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2bb","stateRoot":"0x51afb5d3ae399f33bd7fba43859e92326a66c44f5d56e953ef457b63f1a98f7a","timestamp":"0x1da","transactions":[{"blockHash":"0x65e6f877822314293d3335a87b89758b95776b33988572046a3ca9fa8938572e","blockNumber":"0x2f","blockTimestamp":"0x1da","from":"0xc000000000000000000000000000000000000000","gas":"0x2fa9c8a","gasPrice":"0xe","maxFeePerGas":"0x10","maxPriorityFeePerGas":"0x0","maxFeePerBlobGas":"0xa","hash":"0x08fae926ea323fb66e5cd130bc2d656f5cc51fcd8a13899c98c6037b7dad36af","input":"0x","nonce":"0x1","to":"0xc200000000000000000000000000000000000000","transactionIndex":"0x0","value":"0x0","type":"0x3","accessList":[],"chainId":"0xc72dd9d5e883e","blobVersionedHashes":["0x010657f37554c781402a22917dee2f75def7ab966d7b770905398eba3c444014"],"v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"}],"transactionsRoot":"0x8364e744eb2e6d7e3c2e87ba7e3306b4ded112e46dbaa09e577ea118beb7078d","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-num-order-38020.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-num-order-38020.io deleted file mode 100644 index ebf848655e..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-num-order-38020.io +++ /dev/null @@ -1,3 +0,0 @@ -// simulates calls with invalid block num order (-38020) ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0x91"},"calls":[{"from":"0xc100000000000000000000000000000000000000","input":"0x4360005260206000f3"}]},{"blockOverrides":{"number":"0x87"},"calls":[{"from":"0xc000000000000000000000000000000000000000","input":"0x4360005260206000f3"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-38020,"message":"block numbers must be in order: 135 \u003c= 145"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-override-reflected-in-contract-simple.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-override-reflected-in-contract-simple.io deleted file mode 100644 index 7c8c865d6c..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-override-reflected-in-contract-simple.io +++ /dev/null @@ -1,3 +0,0 @@ -// Checks that block overrides are true in contract for block number and time ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0x32","time":"0x1cc"}},{"blockOverrides":{"number":"0x37","time":"0x1d6"}},{"blockOverrides":{"number":"0x41","time":"0x1e0"}}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-38021,"message":"block timestamps must be in order: 460 \u003c= 498"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-override-reflected-in-contract.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-override-reflected-in-contract.io deleted file mode 100644 index cbc463d4f0..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-override-reflected-in-contract.io +++ /dev/null @@ -1,3 +0,0 @@ -// Checks that block overrides are true in contract ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0x32","time":"0x1cc","gasLimit":"0x2e630","feeRecipient":"0xc000000000000000000000000000000000000000","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000012","baseFeePerGas":"0xa"},"stateOverrides":{"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"blockOverrides":{"number":"0x37","time":"0x1cc","gasLimit":"0x493e0","feeRecipient":"0xc100000000000000000000000000000000000000","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000001234","baseFeePerGas":"0x14"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]},{"blockOverrides":{"number":"0x3c","time":"0x1d6","gasLimit":"0x2e632","feeRecipient":"0xc200000000000000000000000000000000000000","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000001234","baseFeePerGas":"0x1e"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-38021,"message":"block timestamps must be in order: 460 \u003c= 498"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-timestamp-auto-increment.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-timestamp-auto-increment.io deleted file mode 100644 index 2c4e29a390..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-timestamp-auto-increment.io +++ /dev/null @@ -1,3 +0,0 @@ -// Error: simulates calls with timestamp incrementing over another ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"time":"0x1cd"}},{"blockOverrides":{}},{"blockOverrides":{"time":"0x1ce"}},{"blockOverrides":{}}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-38021,"message":"block timestamps must be in order: 462 \u003c= 473"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-timestamp-non-increment.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-timestamp-non-increment.io deleted file mode 100644 index 6891223e12..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-timestamp-non-increment.io +++ /dev/null @@ -1,3 +0,0 @@ -// Error: simulates calls with timestamp staying the same ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"time":"0x1ce"}},{"blockOverrides":{"time":"0x1ce"}}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-38021,"message":"block timestamps must be in order: 462 \u003c= 462"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-timestamp-order-38021.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-timestamp-order-38021.io deleted file mode 100644 index f99fba8060..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-timestamp-order-38021.io +++ /dev/null @@ -1,3 +0,0 @@ -// Error: simulates calls with invalid timestamp order (-38021) ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"time":"0x1ce"}},{"blockOverrides":{"time":"0x1cd"}}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-38021,"message":"block timestamps must be in order: 461 \u003c= 462"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-timestamps-incrementing.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-timestamps-incrementing.io deleted file mode 100644 index 80a94ed79e..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-block-timestamps-incrementing.io +++ /dev/null @@ -1,3 +0,0 @@ -// checks that you can set timestamp and increment it in next block ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"time":"0x1cd"}},{"blockOverrides":{"time":"0x1ce"}}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xcf01ecb40ba9f2e72b396d928170222a28d0140c5d0aa3df7f2e29a38d0218f8","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x38d165db78b0dd127270a6ef188c4c40159e72df01b570c0764056731be9c384","timestamp":"0x1cd","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x28a9a36f62a93b3d546faf74f54f3796a40bc7143836c4496afbcc83ea50cbc0","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xcf01ecb40ba9f2e72b396d928170222a28d0140c5d0aa3df7f2e29a38d0218f8","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xe78d320f887b4bfa810e667adacf192e63c40a59cf3ab0257251090b75aae995","timestamp":"0x1ce","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-blockhash-complex.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-blockhash-complex.io deleted file mode 100644 index 521b3b23f4..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-blockhash-complex.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets blockhash of simulated block ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063ee82ac5e1461002d575b5f80fd5b610047600480360381019061004291906100a9565b61005d565b60405161005491906100ec565b60405180910390f35b5f814361006a9190610132565b409050919050565b5f80fd5b5f819050919050565b61008881610076565b8114610092575f80fd5b50565b5f813590506100a38161007f565b92915050565b5f602082840312156100be576100bd610072565b5b5f6100cb84828501610095565b91505092915050565b5f819050919050565b6100e6816100d4565b82525050565b5f6020820190506100ff5f8301846100dd565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61013c82610076565b915061014783610076565b925082820390508181111561015f5761015e610105565b5b9291505056fea2646970667358221220aababd81a84b4a0f5ad0954d4fdc5bcd9ff987213f6ccb35f853b08225e3408164736f6c634300081a0033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000001"}]},{"blockOverrides":{"number":"0x4b"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e000000000000000000000000000000000000000000000000000000000000000f"}]},{"blockOverrides":{"number":"0x55"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e000000000000000000000000000000000000000000000000000000000000001d"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","logs":[],"gasUsed":"0x55db","maxUsedGas":"0x55db","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x55db","hash":"0x915ce5ac2ed09f5fbe461a2789a7b9370cc34e81b3603e3ffd9368139c11b2a8","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x9ac0612f5f3c543713f1330e3fee9e96ddbd002d0d7bd8d86c6e2c3565d07088","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2b9","stateRoot":"0xd47a94a29974a3e04fe37da6a10134027d6002544eeb692de702ded6484dc138","timestamp":"0x1ce","transactions":["0x787d9e779daf6302f4ea22b909a3020ed3a038ef2f45dd47578ef4cd20a57a25"],"transactionsRoot":"0x365bd04cd2be3125aea6d41eb7f2b59038ad66404df8f2c1ae2510579c87ac0b","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xf706c0811da20101331bd0e0385959eb80152d14abdb1ac6aea51dd14eb9d45a","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x915ce5ac2ed09f5fbe461a2789a7b9370cc34e81b3603e3ffd9368139c11b2a8","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xf6dc061dab64eff0f23046ef5d2cfb8367639e69412552e96ebd81d274e0eacf","timestamp":"0x1da","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xda74d24d389c62df75ff3f12cfa8c70c5258f124f26af04fc92d23ccce7a1417","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x30","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xf706c0811da20101331bd0e0385959eb80152d14abdb1ac6aea51dd14eb9d45a","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x38d5f7a6c4db08f723f8b3b15363d7f89c0effa722e1054073783f815dc78f0e","timestamp":"0x1e6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x404a55c4d6ea8bc7f53e42162f8283912f0a171342e03799d23d9a05b73d140b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x31","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xda74d24d389c62df75ff3f12cfa8c70c5258f124f26af04fc92d23ccce7a1417","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x76934e7ebe439a97c5e1ff3a423044c820ae37d99b3d08e81f36025de8835a87","timestamp":"0x1f2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x6b4bf548167544f665e77b7946e03370527e1fdc055ded84b967e450c5a16a56","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x32","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x404a55c4d6ea8bc7f53e42162f8283912f0a171342e03799d23d9a05b73d140b","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xe95d54802f700d104778e725f6e641cc9b0646804fb7fb0371676fef12e8ab95","timestamp":"0x1fe","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xe51b6e14aafd0fe2ae1979d6d1c94b09438544ca465f95ab780dcf5efddf5b69","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x33","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x6b4bf548167544f665e77b7946e03370527e1fdc055ded84b967e450c5a16a56","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xc9134b530a4c6c34bfe4e37a4c426ce479c4feb579c71b97a3e32677989f947f","timestamp":"0x20a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x5b9b7adeea747434340404d2fca813a7b8630b29181bc9fb8a323d0e1681f129","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x34","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe51b6e14aafd0fe2ae1979d6d1c94b09438544ca465f95ab780dcf5efddf5b69","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xece2915f382e0971f1f44092d96efdfb915534a58a6f188d45b8d39423ccdc1a","timestamp":"0x216","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x899d4b230f535abdc50d314e45f65c1b63d5f8a26ed87f0f99e09386ee207d2c","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x35","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x5b9b7adeea747434340404d2fca813a7b8630b29181bc9fb8a323d0e1681f129","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x5f1e4180ee875fe233768257202b25436cb2dd6f5097dffd78a98c18ae936255","timestamp":"0x222","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x2347d5025e8edbda0a72198d5f3abd0d9d39b6bbd7e1357b36dbe11f8b6f3cc9","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x36","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x899d4b230f535abdc50d314e45f65c1b63d5f8a26ed87f0f99e09386ee207d2c","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xa2ccce78c01d90951f82da0f183ff593e89f9e619f2ef7bd3e881e5d9a7f2c2b","timestamp":"0x22e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x76dc03e9891088a9fd75d7aaabea71b4947b8d9441ea382ba8b837d59bf1ff0f","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x37","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x2347d5025e8edbda0a72198d5f3abd0d9d39b6bbd7e1357b36dbe11f8b6f3cc9","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x27574f29316bff80003c3e920487243cc8f8fa7d99eb23fac95739191ead9d8f","timestamp":"0x23a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x1d6845cf393c0d3012e03a5e0982f2fd74ae3c257ee9475275ffed10dd1f6207","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x38","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x76dc03e9891088a9fd75d7aaabea71b4947b8d9441ea382ba8b837d59bf1ff0f","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xa2bdd8d989afb4a19beb477774e326c224d5ada6797de05fe30c1b00c5f86862","timestamp":"0x246","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xd4a2c02fdd80c4671a8a42136bc835055ead97ea6aa2ac1102af1d2412e44ab4","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x39","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x1d6845cf393c0d3012e03a5e0982f2fd74ae3c257ee9475275ffed10dd1f6207","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x29603f66d31b06cc6cfb30e05e2c79fc37b3217fb2d885675fef8847d9b4cb31","timestamp":"0x252","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x0abe9905a986903c69894c36d9a76427dfe4e669d52bb69992759d4a69a86714","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3a","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xd4a2c02fdd80c4671a8a42136bc835055ead97ea6aa2ac1102af1d2412e44ab4","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x2239c8ffd19e906ace9321fed710c471d47f34f5bd71289759fc8ace569a8e7d","timestamp":"0x25e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xf6b4ded6229ed50de2ec10dc9a3de6411740fb8cf4724396b621d4593d16175c","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3b","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x0abe9905a986903c69894c36d9a76427dfe4e669d52bb69992759d4a69a86714","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x573af52dc6c29b430bab11b0843cd6a2daba1ca88506ec5024a4e8885b553fd6","timestamp":"0x26a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x3fe089b4db800c7a9ec79608c3625951e158266357364ac24b7130d1ea09293f","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3c","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xf6b4ded6229ed50de2ec10dc9a3de6411740fb8cf4724396b621d4593d16175c","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x21b8d0d0aea90e0d42b22dc8a1b128a7a0ab95d9ce3d5286311553c03072b395","timestamp":"0x276","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xa988300a643b52010ff0a0d294cad9d6dab8b88f4a6476f5650b50c7012fa4e8","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3d","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x3fe089b4db800c7a9ec79608c3625951e158266357364ac24b7130d1ea09293f","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xfcdfdead03a574f0712ecc24f07e7fbc9c9499cbe779ddbecb05f08f9a91ea63","timestamp":"0x282","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x25aee7b83de18b0bcd480d455d240268936748642d0d4778734b1304a562ceb4","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xa988300a643b52010ff0a0d294cad9d6dab8b88f4a6476f5650b50c7012fa4e8","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xa2afaf214556b47d3c723ad34b89b1f0ed3e07e670fca16eb604534f97b7c385","timestamp":"0x28e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x4d2a73e47ee760afb19e488d1be09149cfb7865dc489792b90580c4ca1847d73","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x25aee7b83de18b0bcd480d455d240268936748642d0d4778734b1304a562ceb4","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x0c59a0da874316a4d826ca5465474dec8566ec6fa41fd8fffe18b302d9df6f58","timestamp":"0x29a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x0a8dcc28895aff2a03181e14c50607023f116ee655f2535e19669933c79dd709","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x40","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x4d2a73e47ee760afb19e488d1be09149cfb7865dc489792b90580c4ca1847d73","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x729c7933f277b43ec8a8c3b32b707ed5d79501764f9c09ec51ea64bc304c5362","timestamp":"0x2a6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x755e81078f7d4a438b833496c608e0592dd970becc31cb0ecfb8311f04bdc4ee","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x41","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x0a8dcc28895aff2a03181e14c50607023f116ee655f2535e19669933c79dd709","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xcc38fbd9462feef07e97bf8e96abfb9c6a7d421c17b799a3a76c7ad1ec008596","timestamp":"0x2b2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x5bf58e2a173d32bb9e5d9c1b16500a73faf72f568a47f0f95f2d476f64273106","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x42","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x755e81078f7d4a438b833496c608e0592dd970becc31cb0ecfb8311f04bdc4ee","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xe37674ebc1f2ad30f2047407289784fb7ea986204060f82e0fc8f8650847e25d","timestamp":"0x2be","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x0abb6e19ddb7909858c29a63df6524a116a6aba7ddfbe0bb877514cbcd97d66b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x43","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x5bf58e2a173d32bb9e5d9c1b16500a73faf72f568a47f0f95f2d476f64273106","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x4481d267e25bd5cd1c887dc3948cd1fe229ae49ca496931fdf9cd0debe270d7a","timestamp":"0x2ca","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xbf82b064bfaae62bf63c93867a6408e25ac49a65a671b7b9ad7e85cff8d83704","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x44","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x0abb6e19ddb7909858c29a63df6524a116a6aba7ddfbe0bb877514cbcd97d66b","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xd23fc5a905b8f1fa4c3d362604183567899b21bd49a706ba699f2e82356e2d49","timestamp":"0x2d6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xf0d78e9b96955dccee803191cfd6094291981e39b7da40ecfe07276663496f42","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x45","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xbf82b064bfaae62bf63c93867a6408e25ac49a65a671b7b9ad7e85cff8d83704","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xa0c63d533e9d4196f980183278ee0ce89ee59a9749eb6f2c24121b67c367e260","timestamp":"0x2e2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xb84f1096dd5f1c1d98d20d30d31f61f4b83cd8a4a4fe4eeae2f86457d6f215ba","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x46","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xf0d78e9b96955dccee803191cfd6094291981e39b7da40ecfe07276663496f42","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x77bcffa1e418127df2cd92497bd33c54aa6dd38e595d4842491894a69f3c3a01","timestamp":"0x2ee","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x8a8dd8aea1c085b335099b2a15c83397120f0d3791008694b2d837162b07ea47","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x47","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xb84f1096dd5f1c1d98d20d30d31f61f4b83cd8a4a4fe4eeae2f86457d6f215ba","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x88a150847c24d86f5e6bf69c2280f6227832d94a11d71c0be47215e19608f37f","timestamp":"0x2fa","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x1e606dadeeb7a8e43c6eca1ba6a6f9e3f43bb7dff67acd74d48b658532cafea4","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x48","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x8a8dd8aea1c085b335099b2a15c83397120f0d3791008694b2d837162b07ea47","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xe13a93485f5f9002869cdb5f1a40592e50f9fe5fe8ee4a6bfbb3cbe9a7a16d55","timestamp":"0x306","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x1e377715ad03d7c2558a9f1ec9194d45ea60023ab7b082ce13c002a7b48ac44d","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x49","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x1e606dadeeb7a8e43c6eca1ba6a6f9e3f43bb7dff67acd74d48b658532cafea4","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x68eb0fac3d33585a99b772e260f7789ca4989387a7aea2e7037c861b9ec5e120","timestamp":"0x312","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xcb8d51ecf485e4fbbf12806d66d2c9b2e33c681b1b4ed0e7afd3d47bb9867ca1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4a","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x1e377715ad03d7c2558a9f1ec9194d45ea60023ab7b082ce13c002a7b48ac44d","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x7f7c6c03fa7bd8e93813100dc56dc63d4668de5811ad49ccddbfb140748e632d","timestamp":"0x31e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x3fe089b4db800c7a9ec79608c3625951e158266357364ac24b7130d1ea09293f","logs":[],"gasUsed":"0x55db","maxUsedGas":"0x55db","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x55db","hash":"0xb7a69976be36b5d9747e5c73dc6be9e5edb5610b053070aa921be05443718cbb","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4b","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xcb8d51ecf485e4fbbf12806d66d2c9b2e33c681b1b4ed0e7afd3d47bb9867ca1","receiptsRoot":"0x9ac0612f5f3c543713f1330e3fee9e96ddbd002d0d7bd8d86c6e2c3565d07088","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2b9","stateRoot":"0xbc0c28e5623a31bfbaa154f4642dadee03a89bfa00dcf807f7187ce0284e5d34","timestamp":"0x32a","transactions":["0x42cded20a711ee7f9d4137be6c568868ac999cb2ff107595a6373f727541ee9f"],"transactionsRoot":"0x3628dd82cf05581bf15f7326dfbbc0aea24364a321aadc4d12eb54ca25afea1f","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x69389baa86ac7d5d5c2acc1dd69f03fc2eff4b4206bd14da9c1242eef1a2ea24","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4c","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xb7a69976be36b5d9747e5c73dc6be9e5edb5610b053070aa921be05443718cbb","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x9d1fc997f6f88a2f42458f95dac35439932b4afef1ae6a84e881bb728ca09dfd","timestamp":"0x336","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xaa801210e1b7061472e6be7fb2f40568e462134ae7be486eecb301a37e1c35e3","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4d","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x69389baa86ac7d5d5c2acc1dd69f03fc2eff4b4206bd14da9c1242eef1a2ea24","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x19e46b474f33cc8a21b47d648fbf7f7a5bd40eccaac96beb59005afd8e174320","timestamp":"0x342","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x9da1480c64e89cc7fb37686e033339b38b5819b59cbbd6d6959a35591910697b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xaa801210e1b7061472e6be7fb2f40568e462134ae7be486eecb301a37e1c35e3","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x30a192749d0b6dfb59c884c1e75496129ec3385f8c3f2d64badbb1034de92b07","timestamp":"0x34e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xd216de8153ee5d7de91f0f18ce90daa00671c11f2704ee0cd21c7e53efa00aa8","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x9da1480c64e89cc7fb37686e033339b38b5819b59cbbd6d6959a35591910697b","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x1d43fd6fbbbf7108f1d894a92d93bb1e23c670ee39a055fd8043819cfecdbc23","timestamp":"0x35a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x9a84a654648edc6de555508c2a7fe8064dfe6f5ee02d7c858cd2b70665929014","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x50","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xd216de8153ee5d7de91f0f18ce90daa00671c11f2704ee0cd21c7e53efa00aa8","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xae17696b0feab22f3f5e9f6d517aa1f27c41e7d64efabcd7d823499ed936baf2","timestamp":"0x366","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x05e249b213afa3d482755eb7026c8ca5d37051836af6158c6a74324092f8442d","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x51","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x9a84a654648edc6de555508c2a7fe8064dfe6f5ee02d7c858cd2b70665929014","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x5808daf8b33ddcf76963c367b9cace89fecafbb3e3684e5899938eee3e86c770","timestamp":"0x372","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x5fc615e855b8c5b26aa5187c921b89c37888aa4686f4fb0ed4742a9166bab58c","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x52","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x05e249b213afa3d482755eb7026c8ca5d37051836af6158c6a74324092f8442d","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x4eb3efdc8b22a2b1c041853e14e727df4c9fb53c68c8edb19d14ade8a65c5aa4","timestamp":"0x37e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xa841a239db59c4c82db52e33c60c77bc2566fccbc12e94a5f5137dc99ee38d2a","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x53","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x5fc615e855b8c5b26aa5187c921b89c37888aa4686f4fb0ed4742a9166bab58c","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x443dbf6b32650a5e2435053f756f5b6426c8fe6df800f2bedd8a058a14f953fc","timestamp":"0x38a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x73530fd05c1e669b0638b81c5d8a97303653cfd8c64dc20e29c05cf71c1e1130","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x54","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xa841a239db59c4c82db52e33c60c77bc2566fccbc12e94a5f5137dc99ee38d2a","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xbe64e3438bd5d4544f3ee1768e5b2c025e47f2e4858d154105c8c06f6d764383","timestamp":"0x396","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x1d6845cf393c0d3012e03a5e0982f2fd74ae3c257ee9475275ffed10dd1f6207","logs":[],"gasUsed":"0x55db","maxUsedGas":"0x55db","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x55db","hash":"0x8345e70689570e0ad9ea7bfea908a16bf0fe8e7324aa3029fd3fbfa66404d910","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x55","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x73530fd05c1e669b0638b81c5d8a97303653cfd8c64dc20e29c05cf71c1e1130","receiptsRoot":"0x9ac0612f5f3c543713f1330e3fee9e96ddbd002d0d7bd8d86c6e2c3565d07088","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2b9","stateRoot":"0xa8ae46263c04c49c5be654e31e4216998e58192c2aff620b2ad1e45e0a521062","timestamp":"0x3a2","transactions":["0x1baacab8678d906af212f58de68e14002c37e980e6563d68e82cb473680b5e93"],"transactionsRoot":"0x35710e49bcd1fe66f483df7e8a3dd42d83b8eea67883f27b0548f732d8c3b95f","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-blockhash-simple.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-blockhash-simple.io deleted file mode 100644 index 5dbe1f1e29..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-blockhash-simple.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets blockhash of block 1 (included in original chain) ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063ee82ac5e14602d575b600080fd5b60436004803603810190603f91906098565b6057565b604051604e919060d7565b60405180910390f35b600081409050919050565b600080fd5b6000819050919050565b6078816067565b8114608257600080fd5b50565b6000813590506092816071565b92915050565b60006020828403121560ab5760aa6062565b5b600060b7848285016085565b91505092915050565b6000819050919050565b60d18160c0565b82525050565b600060208201905060ea600083018460ca565b9291505056fea2646970667358221220a4d7face162688805e99e86526524ac3dadfb01cc29366d0d68b70dadcf01afe64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000001"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","logs":[],"gasUsed":"0x552c","maxUsedGas":"0x552c","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x552c","hash":"0xec6accfc15ed8b629a16e155fbdb4bfe2202027dcb2b2b439f2294a01f631233","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x65ac9bf671324010044befd5fd2e352d24f2089021f1bcbc1890c3ef35255125","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2b9","stateRoot":"0xee3aa3eda9007a150b89b8e07ba4473f669dcbd6050c8a70a7932a00faabb531","timestamp":"0x1ce","transactions":["0x787d9e779daf6302f4ea22b909a3020ed3a038ef2f45dd47578ef4cd20a57a25"],"transactionsRoot":"0x365bd04cd2be3125aea6d41eb7f2b59038ad66404df8f2c1ae2510579c87ac0b","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-blockhash-start-before-head.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-blockhash-start-before-head.io deleted file mode 100644 index d820295f0c..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-blockhash-start-before-head.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets blockhash of simulated block ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0x32"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063ee82ac5e1461002d575b5f80fd5b610047600480360381019061004291906100a9565b61005d565b60405161005491906100ec565b60405180910390f35b5f814361006a9190610132565b409050919050565b5f80fd5b5f819050919050565b61008881610076565b8114610092575f80fd5b50565b5f813590506100a38161007f565b92915050565b5f602082840312156100be576100bd610072565b5b5f6100cb84828501610095565b91505092915050565b5f819050919050565b6100e6816100d4565b82525050565b5f6020820190506100ff5f8301846100dd565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61013c82610076565b915061014783610076565b925082820390508181111561015f5761015e610105565b5b9291505056fea2646970667358221220aababd81a84b4a0f5ad0954d4fdc5bcd9ff987213f6ccb35f853b08225e3408164736f6c634300081a0033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000001"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000002"}]},{"blockOverrides":{"number":"0x33"},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000013"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x8b8964bfcf7d8e280ed6812a581f67beda47d2b0f6316e1709bcff7d093e02b7","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x59c231f009f82ec35460b3cf0d9b715d1a35a690c3da0f6003b7842c3d498a26","timestamp":"0x1ce","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xd3682b7341c0549d85b73600e4b9fc0eead01643f3ce7279caaa5145df71fe0b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x8b8964bfcf7d8e280ed6812a581f67beda47d2b0f6316e1709bcff7d093e02b7","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x93b583ed05f454a78c9279625a3e2871ff3324507e6418e29e53416acc88900d","timestamp":"0x1da","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x66a8499f82d7a7203544fefebaece243b302f55d24dd97be71d97d503b10fbe9","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x30","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xd3682b7341c0549d85b73600e4b9fc0eead01643f3ce7279caaa5145df71fe0b","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xb22b7c9857930782d7a92e282059b1653b643efb6f09a9aff1d65fedfce438b8","timestamp":"0x1e6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x1ea03bc2ea7e70947269e14de3883459eb81a64780c99da31804a73f9f4cdfc7","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x31","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x66a8499f82d7a7203544fefebaece243b302f55d24dd97be71d97d503b10fbe9","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x6005795fd04dd3670db5e14ae6425052c6ee82ff22080293ee3d83c180d65bcc","timestamp":"0x1f2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x1ea03bc2ea7e70947269e14de3883459eb81a64780c99da31804a73f9f4cdfc7","logs":[],"gasUsed":"0x55db","maxUsedGas":"0x55db","status":"0x1"},{"returnData":"0x66a8499f82d7a7203544fefebaece243b302f55d24dd97be71d97d503b10fbe9","logs":[],"gasUsed":"0x55db","maxUsedGas":"0x55db","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xabb6","hash":"0x5f1f885181d2c3c6d35e02928ad3b1776f2473181dcfd84e81b62988134f2265","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x32","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x1ea03bc2ea7e70947269e14de3883459eb81a64780c99da31804a73f9f4cdfc7","receiptsRoot":"0x44dac218513aae9429065abe0788e382fc40d34083388bfb22774c7119fb3210","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x30d","stateRoot":"0x3460a8fc4a923703762814a38a6ac921211aa22a8f1c40ce86d5022b4f90a07e","timestamp":"0x1fe","transactions":["0x787d9e779daf6302f4ea22b909a3020ed3a038ef2f45dd47578ef4cd20a57a25","0x995c3fb889ed05db015a40f7004ba3bb6149e780ddd434222f05a261e230e537"],"transactionsRoot":"0x81815678ca812c255f9fd1044be1f514c86d4fddd66dc6e9093cb73153827d35","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x6d7e4ff4d66668263c39b861620d5049bd3d2a8d1d4e543fac1bbbab66fd218f","logs":[],"gasUsed":"0x55db","maxUsedGas":"0x55db","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x55db","hash":"0xd3e17ee60cee716f5e468ace757fae4d3db50b8e5b6cd9ce94c65788cfe6a8c5","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x33","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x5f1f885181d2c3c6d35e02928ad3b1776f2473181dcfd84e81b62988134f2265","receiptsRoot":"0x9ac0612f5f3c543713f1330e3fee9e96ddbd002d0d7bd8d86c6e2c3565d07088","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2b9","stateRoot":"0x5ba6652fe8952604fccadaa0fb4c6763b00a918776b47a62633606d2553b5de0","timestamp":"0x20a","transactions":["0x7aa42a79f5a54abd178d5dae431c290a559f3d937cc1445251e9623834ae72dd"],"transactionsRoot":"0x290574566c78b78a9d53f97ba44ec8c130f8c881e0f968378d6589d76ea6ab0d","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-blocknumber-increment.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-blocknumber-increment.io deleted file mode 100644 index df4d985265..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-blocknumber-increment.io +++ /dev/null @@ -1,3 +0,0 @@ -// blocknumbers should increment ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0x37","time":"0x3b6"}},{},{},{},{},{},{"blockOverrides":{"number":"0x4b"}},{},{},{}],"traceTransfers":true,"returnFullTransactions":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x8b8964bfcf7d8e280ed6812a581f67beda47d2b0f6316e1709bcff7d093e02b7","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x59c231f009f82ec35460b3cf0d9b715d1a35a690c3da0f6003b7842c3d498a26","timestamp":"0x1ce","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xd3682b7341c0549d85b73600e4b9fc0eead01643f3ce7279caaa5145df71fe0b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x8b8964bfcf7d8e280ed6812a581f67beda47d2b0f6316e1709bcff7d093e02b7","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x93b583ed05f454a78c9279625a3e2871ff3324507e6418e29e53416acc88900d","timestamp":"0x1da","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x66a8499f82d7a7203544fefebaece243b302f55d24dd97be71d97d503b10fbe9","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x30","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xd3682b7341c0549d85b73600e4b9fc0eead01643f3ce7279caaa5145df71fe0b","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xb22b7c9857930782d7a92e282059b1653b643efb6f09a9aff1d65fedfce438b8","timestamp":"0x1e6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x1ea03bc2ea7e70947269e14de3883459eb81a64780c99da31804a73f9f4cdfc7","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x31","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x66a8499f82d7a7203544fefebaece243b302f55d24dd97be71d97d503b10fbe9","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x6005795fd04dd3670db5e14ae6425052c6ee82ff22080293ee3d83c180d65bcc","timestamp":"0x1f2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x18001f54d69705c7e84cf45b9abb6aa371ce440bb7fdad8021070661e0695912","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x32","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x1ea03bc2ea7e70947269e14de3883459eb81a64780c99da31804a73f9f4cdfc7","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x8843675f3b9eec18a5acf116df90a26fae9ef70f21d3cffc4992b760cfdc23cf","timestamp":"0x1fe","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x8601822b6dff617cf93178957c0162d95c7cc411278934e676b2271d9364bfe0","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x33","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x18001f54d69705c7e84cf45b9abb6aa371ce440bb7fdad8021070661e0695912","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x04238f2fad5e4b9820daf76c60946eb702d35577d2d1e6d5fc2c07d229e75689","timestamp":"0x20a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xd482916837d0d43b8cd15d00d4c0f50ad019311d1c7e6fb220e053548dc08181","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x34","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x8601822b6dff617cf93178957c0162d95c7cc411278934e676b2271d9364bfe0","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x3d5f58fbf02276461b11687866a4a1389fad17ca6ea7fdf4c7f2c5afa8cc546f","timestamp":"0x216","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x66c675d5b1ae5453cbf525ac2d1a071256605445d474af3764a36783e90b342d","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x35","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xd482916837d0d43b8cd15d00d4c0f50ad019311d1c7e6fb220e053548dc08181","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x429c0581461d0048471b1d8d85f7d129cf493114e4ca1e11a154bb649521f932","timestamp":"0x222","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xdaeb4e1610aaeb576bc75667c8ab9d27f6985f41880ddf71b3ecc8c31b617def","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x36","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x66c675d5b1ae5453cbf525ac2d1a071256605445d474af3764a36783e90b342d","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x9ad06fa7f19d678709c797246788f30a9a8d50083b9174a8f684e578c1b337bd","timestamp":"0x22e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xdc459bb077a0e6e8582e642f0222d14c9929d48ad5e3655b8378d4a9928d1c97","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x37","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xdaeb4e1610aaeb576bc75667c8ab9d27f6985f41880ddf71b3ecc8c31b617def","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xdb86e581ebb390ef9ee519848eb3e0be7171667c9b1ba707fee5739b1784ffe5","timestamp":"0x3b6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xe5e0d8ba363b6e49ed1ef1318bddc8923df0063d8259f8f8a52e346bcaa7844a","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x38","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xdc459bb077a0e6e8582e642f0222d14c9929d48ad5e3655b8378d4a9928d1c97","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x7164d06ec5bdddf2e3c4c4e7975d27a8ac6da2f6000ee74d3eac237e6d481eeb","timestamp":"0x3c2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x6c5823bbe4f530417fb10bb5e7a880fd817be0d4ecf8596a3c6712393c2dcf33","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x39","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe5e0d8ba363b6e49ed1ef1318bddc8923df0063d8259f8f8a52e346bcaa7844a","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x36b709f50233e21283d150a2c305c8654e950041ce0c6bebdd4c2908747eb44d","timestamp":"0x3ce","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x485f36be7b6d73527fb5d2a5fde17d329699cd51d945d26a21e0ebb5d4524c3a","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3a","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x6c5823bbe4f530417fb10bb5e7a880fd817be0d4ecf8596a3c6712393c2dcf33","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x2b4e5d1368837a76f56beac7b6cd126bc10955f661030b79e6105cfe19f19ed7","timestamp":"0x3da","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x10e87cc4984bf30da44f85fd7cdf1a185d813db9aaa4bd1d3f5b19d56c213e52","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3b","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x485f36be7b6d73527fb5d2a5fde17d329699cd51d945d26a21e0ebb5d4524c3a","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xd43a8c3162f6e91e72aee6503e0d270cf4de7fe3574e49c2108bc30f5cb3454a","timestamp":"0x3e6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x591a258b5a53a56ea41813d55e1c000eba4ff1a4c5db6e494572815795cab0c1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3c","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x10e87cc4984bf30da44f85fd7cdf1a185d813db9aaa4bd1d3f5b19d56c213e52","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x5115e87ce837e63fde2c33ca9deb22f74ba060f637e4405a97dd7e86500006b9","timestamp":"0x3f2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xc825128bae45bb0ee56d33f75e03c9bdff5ad18608510eff4215f4fc26242b29","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3d","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x591a258b5a53a56ea41813d55e1c000eba4ff1a4c5db6e494572815795cab0c1","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x5bb85df55054ddd38209b4d2c041f99ac434151697554c4a2d2022d0a1d6d85d","timestamp":"0x3fe","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xe77e1b4e143c88684351b7da80fd5a0a3674340379c4478cfb2d7f78f14ff43f","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xc825128bae45bb0ee56d33f75e03c9bdff5ad18608510eff4215f4fc26242b29","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xbfc71a01f9cbf561a7fa51480036223b25708992a5689fc3b82eef6cae9edaaa","timestamp":"0x40a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x107b9a854adfc25ea15c2149ca3354aac811d7b2fd692473c842bc055493dcbf","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe77e1b4e143c88684351b7da80fd5a0a3674340379c4478cfb2d7f78f14ff43f","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xcad83eec2b1937026b92adcb115ebc580c96cec9ddc91233724e7c337f7e1c78","timestamp":"0x416","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x1524f1c1a3b9f8ec1962e6027a40811051dc0a0a8376b3dfac22344c8f973ac6","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x40","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x107b9a854adfc25ea15c2149ca3354aac811d7b2fd692473c842bc055493dcbf","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xc72c3518fe093900d42502268b58f0859feed5375db0d97142444dd6ea1bfd00","timestamp":"0x422","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xa63df96c2351dbe72ac17ceecdee455cdb0ed25cc69c7e0f309df9183252e9f8","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x41","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x1524f1c1a3b9f8ec1962e6027a40811051dc0a0a8376b3dfac22344c8f973ac6","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x9cac7cf580cbef6f21817636f7b6d1f2446e7ad4321faf271383192444e6c2ac","timestamp":"0x42e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xc7090298fe92baa5fb6ddce8978b6b76ec52f2832cfa0aab81916032791dbb87","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x42","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xa63df96c2351dbe72ac17ceecdee455cdb0ed25cc69c7e0f309df9183252e9f8","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x194359f77e2cbfdd14d67b5ab29c3d7e8daffedb72296b19833323d059a047e2","timestamp":"0x43a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x1091780f0436ddcf54f17058f9150a1fbd217cf010e0e8e4fcf84f257608cee6","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x43","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xc7090298fe92baa5fb6ddce8978b6b76ec52f2832cfa0aab81916032791dbb87","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x041708ef11eb61d16e566bc991af175380969f7e53fdb49578a75be6c2d20452","timestamp":"0x446","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x2d042fb22987d9cb65b7e516047e765a6d82c4512660ca1b3a87e5e854ddb367","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x44","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x1091780f0436ddcf54f17058f9150a1fbd217cf010e0e8e4fcf84f257608cee6","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xb3d7a4fc2bbaf63d153ff7df2c9751c7e22a8b7ae07177969c9e47b635278351","timestamp":"0x452","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x19d497878a1de133d021685d282b583b1dfc15fd768d78958ee43a4644b34fca","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x45","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x2d042fb22987d9cb65b7e516047e765a6d82c4512660ca1b3a87e5e854ddb367","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x5fb8a411e734872007d717723adabd91fd4f2f3b18b0b9c7186b89e9e46bd58a","timestamp":"0x45e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xed8b35718fba2578af4da92cb423dbbe836baf9f79a16a2af45ce4e48eff5998","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x46","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x19d497878a1de133d021685d282b583b1dfc15fd768d78958ee43a4644b34fca","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x88e9a8ec1633eb197a16af6adf115d1048097618144aa49a7988ce834be30e06","timestamp":"0x46a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xec9e21147426c22343e96b90c17baf8bafbc92a8fc0cb728f6c5f8745eaa7d41","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x47","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xed8b35718fba2578af4da92cb423dbbe836baf9f79a16a2af45ce4e48eff5998","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xc1a104896b12f22978a818b3b2f3f93c4b13d9d8ac3dd3676ad1f306fe0bec25","timestamp":"0x476","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xb376c0be226646c9b8a6ba59a657caa0bbe42d2bfe814c9403bbcdcddd1bd7a7","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x48","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xec9e21147426c22343e96b90c17baf8bafbc92a8fc0cb728f6c5f8745eaa7d41","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x55617a67b68de7d3ac69b7dc8a5216f1a5ef370bfa7028328635ada4540e482b","timestamp":"0x482","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x1df1bf26e74e111de600703af7b08bc3b3f423887228e04d33eb57bf1f6037a7","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x49","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xb376c0be226646c9b8a6ba59a657caa0bbe42d2bfe814c9403bbcdcddd1bd7a7","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xc08130255e537f3020b9622e1aae95094a69fe895599594f56684fb7d9521726","timestamp":"0x48e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xc69f283da46d19c15dfebf6e9b8c2fd4599602d27f9faa7e6fd0ea5caf83c546","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4a","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x1df1bf26e74e111de600703af7b08bc3b3f423887228e04d33eb57bf1f6037a7","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xc1f4ef18d053b98882047ddba61dc604dc6121abe9426fb1cb7a2b0adab236b7","timestamp":"0x49a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x9dc5bf655289ffe8d621acf5360aca2c209ff3b6d3289586c05ec05ac5cb78ed","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4b","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xc69f283da46d19c15dfebf6e9b8c2fd4599602d27f9faa7e6fd0ea5caf83c546","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x287b5f354f177b32e83c03aaef3c7a84b552103cca1b93914b19dc30071b580b","timestamp":"0x4a6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x6304634c6352b3beef71d04f9b750ad5ad0620f3a3fa631ef207aad0b5ba7b99","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4c","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x9dc5bf655289ffe8d621acf5360aca2c209ff3b6d3289586c05ec05ac5cb78ed","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x591407667df99177fbae238474d7fe4115f34e7adcf8d87127022e52702c9373","timestamp":"0x4b2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xb5c4a7a7eb2af6abbfe4cbfe5b40671d9df8ee74049fe290346f5af5b2ade7d9","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4d","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x6304634c6352b3beef71d04f9b750ad5ad0620f3a3fa631ef207aad0b5ba7b99","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xdc45a2093fac4a2fcb2f68dcb5b25ff9ac396495ad727e8ea07ebb5c79b35f6c","timestamp":"0x4be","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xefce23b52f83b44cb2d26e566eec12828deeb3072a37c6b95a71d4cab0ef6609","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xb5c4a7a7eb2af6abbfe4cbfe5b40671d9df8ee74049fe290346f5af5b2ade7d9","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x60d3ed094e2c34a613aa61844ac5a15318733722d30033d21b0b56fd3bb1b17c","timestamp":"0x4ca","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-check-invalid-nonce.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-check-invalid-nonce.io deleted file mode 100644 index 54c853f41b..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-check-invalid-nonce.io +++ /dev/null @@ -1,3 +0,0 @@ -// check that nonce cannot decrease ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"baseFeePerGas":"0x1"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x4e20"}}},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000","nonce":"0x0"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000","nonce":"0x1"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000","nonce":"0x0"}]}],"validation":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"err: max fee per gas less than block base fee: address 0xC000000000000000000000000000000000000000, maxFeePerGas: 0, baseFee: 1 (supplied gas 50000000)"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-check-that-balance-is-there-after-new-block.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-check-that-balance-is-there-after-new-block.io deleted file mode 100644 index 7b6fefb27f..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-check-that-balance-is-there-after-new-block.io +++ /dev/null @@ -1,3 +0,0 @@ -// checks that balances are kept to next block ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x2710"},"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8b2cb4f14610030575b600080fd5b61004a600480360381019061004591906100e4565b610060565b604051610057919061012a565b60405180910390f35b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100b182610086565b9050919050565b6100c1816100a6565b81146100cc57600080fd5b50565b6000813590506100de816100b8565b92915050565b6000602082840312156100fa576100f9610081565b5b6000610108848285016100cf565b91505092915050565b6000819050919050565b61012481610111565b82525050565b600060208201905061013f600083018461011b565b9291505056fea2646970667358221220172c443a163d8a43e018c339d1b749c312c94b6de22835953d960985daf228c764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c100000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c100000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x0000000000000000000000000000000000000000000000000000000000002710","logs":[],"gasUsed":"0x55b3","maxUsedGas":"0x55b3","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5f77","maxUsedGas":"0x5f77","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x10732","hash":"0x6ba6af36accc23e5df43949c3757c3e5cd9eccba592f6e5d10cded3a5c5d630d","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xf882fb631cdb150506d5089edab93c9b0ab7cdb571e0d036fbf93a8c767c1ead","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x33e","stateRoot":"0xa61751929d5b03d6b40f5deca329689538b8b5fc618f8ac77381eab137f049b4","timestamp":"0x1ce","transactions":["0x2d6292c91effa19cd9955e04f5bc2f8babfc2cbab7ffe92d5d54ed5bd8e1c3f7","0x03e8112411c7e5fe41379f456be39998bd079d51b85c1d9e6fc125affc9b044c","0xd211f4c3edfe60b9f79d2bfa4dbc3a9e8f605b46631251ef743368a1380ba227"],"transactionsRoot":"0x719fc74d9cd56fda9e73e1bee8571f7b53914a19c2993a533d439504ff2c2e41","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x0000000000000000000000000000000000000000000000000000000000002328","logs":[],"gasUsed":"0x55b3","maxUsedGas":"0x55b3","status":"0x1"},{"returnData":"0x00000000000000000000000000000000000000000000000000000000000003e8","logs":[],"gasUsed":"0x5f77","maxUsedGas":"0x5f77","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x10732","hash":"0x53384d1d2263b6882b1b0cbc25c611da0c4091dbfcb5a44ece067b4c9dc91717","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x6ba6af36accc23e5df43949c3757c3e5cd9eccba592f6e5d10cded3a5c5d630d","receiptsRoot":"0xf882fb631cdb150506d5089edab93c9b0ab7cdb571e0d036fbf93a8c767c1ead","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x33e","stateRoot":"0x97ade77fe0174b5a2f22ee5480a3b8e87620b976bd7bba42a29487e2129848e0","timestamp":"0x1da","transactions":["0xcb0ed690e07be5ba497d133766567d273fcc65cb9c839e5619e64e6bfd25be87","0xbd599161f2d019dc75e3ea6aae8b5f567df1968dda104969ae5f0138c560c092","0xd4cdf1fec371c24cb56f65f490f6b2a2d80c7428bd5a5022f3ebf762f38c314e"],"transactionsRoot":"0x0af9230f3d15a8a7746780dc441b067a9d43826cb42721d07b53a4f29a0b2022","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-check-that-nonce-increases.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-check-that-nonce-increases.io deleted file mode 100644 index 3911dd7b0b..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-check-that-nonce-increases.io +++ /dev/null @@ -1,3 +0,0 @@ -// check that nonce increases ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"baseFeePerGas":"0x9"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x4a817c800"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000","maxFeePerGas":"0xf","nonce":"0x0"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000","maxFeePerGas":"0xf","nonce":"0x1"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000","maxFeePerGas":"0xf","nonce":"0x2"}]}],"validation":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x9","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xf618","hash":"0x449d9bfd7f58240c3dd43f3ef1511a7ca3b58e8c8b0a4311a3b31c4247bc1aa6","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x25e6b7af647c519a27cc13276a1e6abc46154b51414d174b072698df1f6c19df","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2ef","stateRoot":"0xf1c098ae1835c8d176f097773452108ea379ca732c251aa225a75ddb96def179","timestamp":"0x1ce","transactions":["0xef434245460c19514129624e5ebdc6852ba4e9e2222f8c3e2359609418d302ed","0x2425c2b21ce7071ac113bf7c7aec626c4efc1903a50ea16402902b8bca360054","0x5e86626cc1f44f83fd17d2816a4e7d0423cb18c840cdd111681de6773ebe0f9f"],"transactionsRoot":"0x38b58d1a71e30024371ce1004dc7a6196c3ec8f146ef39c3676d69ccdb1e968e","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-contract-calls-itself.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-contract-calls-itself.io deleted file mode 100644 index bf6a71e703..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-contract-calls-itself.io +++ /dev/null @@ -1,3 +0,0 @@ -// contract calls itself ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]}],"traceTransfers":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c72dd9d5e883e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047e7c40000000000000000000000000000000000000000000000000000000000000002e00000000000000000000000000000000000000000000000000000000000001ce0000000000000000000000000000000000000000000000000000000002fa9e360000000000000000000000000000000000000000000000000000000000000000e27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","logs":[],"gasUsed":"0x57bc","maxUsedGas":"0x57bc","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x57bc","hash":"0x7446146a10443e02f381f5fdfa52dd841ddbfd823091177eeecc069c86d0d0d1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xe74486ea84ef8b10f828f52661656b006a7ff4ebe2dcf9830f985d1fc73c710f","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x292","stateRoot":"0xad1bbb2327dc01cd2358e3dc0b3ee2fe300f533b590b0b75263e4629d672cc87","timestamp":"0x1ce","transactions":["0x0ebea6745338caaba719752fd4c20f73c8582b5fe4d41e6aae53cf0755850e4b"],"transactionsRoot":"0x5d0e30903b218b6634ef7967cce4218efdd14cbcc8750447269ea4340829c2d1","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-calls-and-overrides-ethSimulate.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-calls-and-overrides-ethSimulate.io deleted file mode 100644 index 7db3fe8f3e..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-calls-and-overrides-ethSimulate.io +++ /dev/null @@ -1,3 +0,0 @@ -// ethSimulate with state overrides and calls but they are empty ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{},"calls":[{}]},{"stateOverrides":{},"calls":[{}]}],"traceTransfers":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0xcf08","maxUsedGas":"0xcf08","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xcf08","hash":"0xa02276791c39e6662cd8019a2cbb8a075403153067431795cee1b21de5c3b048","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xc508745f9f8b6847a127bbc58b7c6b2c0f073c7ca778b6f020138f0d6d782adf","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x27e","stateRoot":"0xe475c130ff1da56c619eb0e0606662f2c8d71bbeb4e9e9988fe4dd77a46b5592","timestamp":"0x1ce","transactions":["0xaab6995ceb3fb6183ef81e8cdaa904e2c96f3907215d19771607e47dec9f8c14"],"transactionsRoot":"0x1fa13b004aa237b7b76c85ee7eabebdf1185ce59372063945dd7d8b633be6a9d","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0xcf08","maxUsedGas":"0xcf08","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xcf08","hash":"0x6b815df465db753531df8a7a1635024a68090d535d06925eefa1c1bcb94ef043","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xa02276791c39e6662cd8019a2cbb8a075403153067431795cee1b21de5c3b048","receiptsRoot":"0xc508745f9f8b6847a127bbc58b7c6b2c0f073c7ca778b6f020138f0d6d782adf","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x27e","stateRoot":"0xb1b1f9033f5d5ca5768a5e83a870314ac7e4be705023819dfe5fe87ac0cf2d58","timestamp":"0x1da","transactions":["0xed1bb5dac61f5f86e0d94f1de1126e1c1e5ed425f1f8c94bdd22fe450cd04fd8"],"transactionsRoot":"0x852ebbbf52bca5ef4d1996d2caaea9f601bd85893573c3278923d9cf4d20b80b","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-validation.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-validation.io deleted file mode 100644 index 78604ef0e5..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-validation.io +++ /dev/null @@ -1,3 +0,0 @@ -// simulates empty with validation ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{}],"validation":true,"returnFullTransactions":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x4c9114a","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xae7cbe8ec3881788fc4c4eee069f4f71783af27cf8308fff5203dc862744529b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x266","stateRoot":"0x59c231f009f82ec35460b3cf0d9b715d1a35a690c3da0f6003b7842c3d498a26","timestamp":"0x1ce","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-with-block-num-set-current.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-with-block-num-set-current.io deleted file mode 100644 index a81e8ed9a1..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-with-block-num-set-current.io +++ /dev/null @@ -1,3 +0,0 @@ -// set block number otherwise empty with latest ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{}]},"0x2d"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x8b8964bfcf7d8e280ed6812a581f67beda47d2b0f6316e1709bcff7d093e02b7","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x59c231f009f82ec35460b3cf0d9b715d1a35a690c3da0f6003b7842c3d498a26","timestamp":"0x1ce","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-with-block-num-set-firstblock.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-with-block-num-set-firstblock.io deleted file mode 100644 index ad6183b1df..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-with-block-num-set-firstblock.io +++ /dev/null @@ -1,3 +0,0 @@ -// set block number otherwise empty ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{}]},"0x1"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"calls":[],"difficulty":"0x20000","extraData":"0x","gasLimit":"0x23f3e20","gasUsed":"0x0","hash":"0xd1c03d8586b7b759ee51a9705bf8459d4a02f83cce627426323f5c632dbcd0bd","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2","parentHash":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x1fc","stateRoot":"0x283987661dff30976050c10b25ba46b4f8afc16da2cf67cd459d14a9ab43ec67","timestamp":"0x16","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[]}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-with-block-num-set-minusone.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-with-block-num-set-minusone.io deleted file mode 100644 index c0dc3c79d9..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-with-block-num-set-minusone.io +++ /dev/null @@ -1,3 +0,0 @@ -// set block number otherwise empty with latest - 1 ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{}]},"0x2c"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x4f064f08c3402fda462a0f8b86b19c68df63b8f1b18d99d73e568b6ca056e792","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2d","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x4b9d85c6787612e87e0659e11a347d415040465e492358f79cc7e2e293f38aa7","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xc1c98781685e12602d5f1fdbdbbc6a818062e0d90caab6e9eb6fafa32456674e","timestamp":"0x1c4","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-with-block-num-set-plus1.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-with-block-num-set-plus1.io deleted file mode 100644 index 0bd9d75b7e..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty-with-block-num-set-plus1.io +++ /dev/null @@ -1,3 +0,0 @@ -// set block number otherwise empty with latest + 1 ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{}]},"0x2e"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"header not found"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty.io deleted file mode 100644 index a70e4771b0..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-empty.io +++ /dev/null @@ -1,3 +0,0 @@ -// simulates empty ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{}],"returnFullTransactions":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x8b8964bfcf7d8e280ed6812a581f67beda47d2b0f6316e1709bcff7d093e02b7","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x59c231f009f82ec35460b3cf0d9b715d1a35a690c3da0f6003b7842c3d498a26","timestamp":"0x1ce","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-eth-send-should-not-produce-logs-by-default.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-eth-send-should-not-produce-logs-by-default.io deleted file mode 100644 index 8d04084f34..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-eth-send-should-not-produce-logs-by-default.io +++ /dev/null @@ -1,3 +0,0 @@ -// when sending eth we should not get ETH logs by default ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x5208","hash":"0xd568b74dd9ae10031741a45a142f7dcb2625d2e31b552a6fef3a87542daef335","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x294","stateRoot":"0xb502e202e53b7160ce4bca5518a81910aa6193601fee6a25a17ee8f7ffcba2dc","timestamp":"0x1ce","transactions":["0xf1c5abb08809ef760f87aeabe7a87284c60797192dab6d2f0d26c27c9c038e9d"],"transactionsRoot":"0x153033b7bf79591032a757961da3656789d4bf0873801108ff81449dfe8df202","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-eth-send-should-not-produce-logs-on-revert.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-eth-send-should-not-produce-logs-on-revert.io deleted file mode 100644 index 13ee5cce04..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-eth-send-should-not-produce-logs-on-revert.io +++ /dev/null @@ -1,3 +0,0 @@ -// we should not be producing eth logs if the transaction reverts and ETH is not sent ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc100000000000000000000000000000000000000":{"code":"0x608060405260006042576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401603990609d565b60405180910390fd5b005b600082825260208201905092915050565b7f416c7761797320726576657274696e6720636f6e747261637400000000000000600082015250565b600060896019836044565b91506092826055565b602082019050919050565b6000602082019050818103600083015260b481607e565b905091905056fea264697066735822122005cbbbc709291f66fadc17416c1b0ed4d72941840db11468a21b8e1a0362024c64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true,"returnFullTransactions":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5355","maxUsedGas":"0x5355","status":"0x0","error":{"message":"execution reverted: Always reverting contract","code":3,"data":"0x08c379a000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000019416c7761797320726576657274696e6720636f6e747261637400000000000000"}}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x5355","hash":"0xb7cfb541a3b6f803652183bcfc9c05f4ef620de2b3f311b456fc3278c331f594","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x7b5229be4e7c4e3dbbc8e3720721cab89e102f1140ee3b3b771fcca12348c2d7","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x294","stateRoot":"0x8720fac65ec640e5735116f80db8a191a79e690af9f490612929f7f8c531b5dd","timestamp":"0x1ce","transactions":[{"blockHash":"0xb7cfb541a3b6f803652183bcfc9c05f4ef620de2b3f311b456fc3278c331f594","blockNumber":"0x2e","blockTimestamp":"0x1ce","from":"0xc000000000000000000000000000000000000000","gas":"0x2faf080","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0xf1c5abb08809ef760f87aeabe7a87284c60797192dab6d2f0d26c27c9c038e9d","input":"0x","nonce":"0x0","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x0","value":"0x3e8","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"}],"transactionsRoot":"0x153033b7bf79591032a757961da3656789d4bf0873801108ff81449dfe8df202","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-eth-send-should-produce-logs.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-eth-send-should-produce-logs.io deleted file mode 100644 index c8a589521f..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-eth-send-should-produce-logs.io +++ /dev/null @@ -1,3 +0,0 @@ -// when sending eth we should get ETH logs when traceTransfers is set ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[{"address":"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c000000000000000000000000000000000000000","0x000000000000000000000000c100000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x2e","transactionHash":"0xf1c5abb08809ef760f87aeabe7a87284c60797192dab6d2f0d26c27c9c038e9d","transactionIndex":"0x0","blockHash":"0xd568b74dd9ae10031741a45a142f7dcb2625d2e31b552a6fef3a87542daef335","blockTimestamp":"0x1ce","logIndex":"0x0","removed":false}],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x5208","hash":"0xd568b74dd9ae10031741a45a142f7dcb2625d2e31b552a6fef3a87542daef335","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x294","stateRoot":"0xb502e202e53b7160ce4bca5518a81910aa6193601fee6a25a17ee8f7ffcba2dc","timestamp":"0x1ce","transactions":["0xf1c5abb08809ef760f87aeabe7a87284c60797192dab6d2f0d26c27c9c038e9d"],"transactionsRoot":"0x153033b7bf79591032a757961da3656789d4bf0873801108ff81449dfe8df202","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-eth-send-should-produce-more-logs-on-forward.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-eth-send-should-produce-more-logs-on-forward.io deleted file mode 100644 index 8fb00ad6c8..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-eth-send-should-produce-more-logs-on-forward.io +++ /dev/null @@ -1,3 +0,0 @@ -// we should be getting more logs if eth is forwarded ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc100000000000000000000000000000000000000":{"code":"0x60806040526004361061001e5760003560e01c80634b64e49214610023575b600080fd5b61003d6004803603810190610038919061011f565b61003f565b005b60008173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050509050806100b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100af906101a9565b60405180910390fd5b5050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ec826100c1565b9050919050565b6100fc816100e1565b811461010757600080fd5b50565b600081359050610119816100f3565b92915050565b600060208284031215610135576101346100bc565b5b60006101438482850161010a565b91505092915050565b600082825260208201905092915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061019360148361014c565b915061019e8261015d565b602082019050919050565b600060208201905081810360008301526101c281610186565b905091905056fea2646970667358221220563acd6f5b8ad06a3faf5c27fddd0ecbc198408b99290ce50d15c2cf7043694964736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8","input":"0x4b64e4920000000000000000000000000000000000000000000000000000000000000100"}]}],"traceTransfers":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[{"address":"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c000000000000000000000000000000000000000","0x000000000000000000000000c100000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x2e","transactionHash":"0xef0d02bf15d1cb59d4df1d6eb5f31f6876145330ec4022deba14011c2214dff2","transactionIndex":"0x0","blockHash":"0x96170f8aaab9189090c70caa999c5bd57728df2cd7be3b5080bcabac85b7eb89","blockTimestamp":"0x1ce","logIndex":"0x0","removed":false},{"address":"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c100000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000100"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x2e","transactionHash":"0xef0d02bf15d1cb59d4df1d6eb5f31f6876145330ec4022deba14011c2214dff2","transactionIndex":"0x0","blockHash":"0x96170f8aaab9189090c70caa999c5bd57728df2cd7be3b5080bcabac85b7eb89","blockTimestamp":"0x1ce","logIndex":"0x1","removed":false}],"gasUsed":"0xdad2","maxUsedGas":"0xdad2","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xdad2","hash":"0x96170f8aaab9189090c70caa999c5bd57728df2cd7be3b5080bcabac85b7eb89","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x5d13901976e7d7b948d96a4d04f33384035d0b9e82da61f0c616cdc3ef97ec1d","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2bb","stateRoot":"0x09cb784f1a32517b14e2a5ced437f52f606732b5c401da78e0c1a0d0d90fce34","timestamp":"0x1ce","transactions":["0xef0d02bf15d1cb59d4df1d6eb5f31f6876145330ec4022deba14011c2214dff2"],"transactionsRoot":"0x89aff3b87fc87c69e68d7fff65e2934359d86900800522d052f6d62b85250cb4","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-eth-send-should-produce-no-logs-on-forward-revert.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-eth-send-should-produce-no-logs-on-forward-revert.io deleted file mode 100644 index bea373f94d..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-eth-send-should-produce-no-logs-on-forward-revert.io +++ /dev/null @@ -1,3 +0,0 @@ -// we should be getting no logs if eth is forwarded but then the tx reverts ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc100000000000000000000000000000000000000":{"code":"0x60806040526004361061001e5760003560e01c80634b64e49214610023575b600080fd5b61003d6004803603810190610038919061011f565b61003f565b005b60008173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050509050806100b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100af906101a9565b60405180910390fd5b5050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ec826100c1565b9050919050565b6100fc816100e1565b811461010757600080fd5b50565b600081359050610119816100f3565b92915050565b600060208284031215610135576101346100bc565b5b60006101438482850161010a565b91505092915050565b600082825260208201905092915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061019360148361014c565b915061019e8261015d565b602082019050919050565b600060208201905081810360008301526101c281610186565b905091905056fea2646970667358221220563acd6f5b8ad06a3faf5c27fddd0ecbc198408b99290ce50d15c2cf7043694964736f6c63430008120033"},"0xc200000000000000000000000000000000000000":{"code":"0x608060405260006042576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401603990609d565b60405180910390fd5b005b600082825260208201905092915050565b7f416c7761797320726576657274696e6720636f6e747261637400000000000000600082015250565b600060896019836044565b91506092826055565b602082019050919050565b6000602082019050818103600083015260b481607e565b905091905056fea264697066735822122005cbbbc709291f66fadc17416c1b0ed4d72941840db11468a21b8e1a0362024c64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8","input":"0x4b64e492c200000000000000000000000000000000000000000000000000000000000000"}]}],"traceTransfers":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5423","maxUsedGas":"0x5423","status":"0x0","error":{"message":"execution reverted","code":3,"data":"0x"}}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x5423","hash":"0x1774ab32d009caa27df2208a68938a82b0fec8cc9f256939e2085059f5fc8a38","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xd18db8835dc75ed86273afd95200dec80ef2c2323698a57e7126e29d08e3c267","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2bb","stateRoot":"0x20e627f998d1c96e660f1e268ae7a8b9866c6ff7071cf03727be027c3f4bf23f","timestamp":"0x1ce","transactions":["0xe10ffbfdb475f70a7d4c338db15233a37e3ffa87f8180c7117265fff4f5ba9c6"],"transactionsRoot":"0xfa8a26404b6db562feecd5faba5380c73525dae3eb86f1e2dbed903561507563","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-extcodehash-existing-contract.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-extcodehash-existing-contract.io deleted file mode 100644 index e17615d2a1..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-extcodehash-existing-contract.io +++ /dev/null @@ -1,3 +0,0 @@ -// test extcodehash getting of existing contract and then overriding it ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561000f575f80fd5b506004361061003f575f3560e01c80631627905514610043578063b9724d6314610073578063dce4a447146100a3575b5f80fd5b61005d600480360381019061005891906101b3565b6100d3565b60405161006a91906101f8565b60405180910390f35b61008d600480360381019061008891906101b3565b61011a565b60405161009a9190610229565b60405180910390f35b6100bd60048036038101906100b891906101b3565b610129565b6040516100ca91906102cc565b60405180910390f35b5f807fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4705f1b90505f833f905081811415801561011157505f801b8114155b92505050919050565b5f80823f905080915050919050565b6060813b60405191505f19601f18601f6020830101168201604052808252805f60208401853c50919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61018282610159565b9050919050565b61019281610178565b811461019c575f80fd5b50565b5f813590506101ad81610189565b92915050565b5f602082840312156101c8576101c7610155565b5b5f6101d58482850161019f565b91505092915050565b5f8115159050919050565b6101f2816101de565b82525050565b5f60208201905061020b5f8301846101e9565b92915050565b5f819050919050565b61022381610211565b82525050565b5f60208201905061023c5f83018461021a565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561027957808201518184015260208101905061025e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61029e82610242565b6102a8818561024c565b93506102b881856020860161025c565b6102c181610284565b840191505092915050565b5f6020820190508181035f8301526102e48184610294565b90509291505056fea26469706673582212206a23e83d04cb5f5ab00353d719afd8181b39baa39277b8cfa111197637a4f26064736f6c63430008160033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0xb9724d630000000000000000000000000000000000000000000000000000000000031ec7"}]},{"stateOverrides":{"0x0000000000000000000000000000000000031ec7":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0xb9724d630000000000000000000000000000000000000000000000000000000000031ec7"}]}],"traceTransfers":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5fa2","maxUsedGas":"0x5fa2","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x5fa2","hash":"0x25463d062bd7382d0b701903210384f5f708d4c5e680de26dd0f443f4596b0fa","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x303c397062fdc304cea9ad1c29c08ca745e6aab61a335543b2f38bfe6d9962c4","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2b9","stateRoot":"0xdb8f86639940c4edd240112577ddf89b607a06d90b00c46660a671b659f69161","timestamp":"0x1ce","transactions":["0xa559678897c685bf88aa818e7cc93acf16306d5262b5c399bbcee04a73ead535"],"transactionsRoot":"0xe4f367a72308a1ebd9cf3d8fa9c9542346728880c82c8aa9c6adcc16410feaf8","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x175483145411027d5c8d8e7c3f1133ac003e209c71f42b373f7fcdf9ed500278","logs":[],"gasUsed":"0x5fa2","maxUsedGas":"0x5fa2","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x5fa2","hash":"0x4aefda86395aa92c15a4e3011cc8706562a6c659fcd3855ff8a076e74c77584f","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x25463d062bd7382d0b701903210384f5f708d4c5e680de26dd0f443f4596b0fa","receiptsRoot":"0x303c397062fdc304cea9ad1c29c08ca745e6aab61a335543b2f38bfe6d9962c4","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2b9","stateRoot":"0x2ccd4bf5a3d3dea8d215d5ca713f60e8a6dbe5bef62bb76577a1607c91e6e093","timestamp":"0x1da","transactions":["0x05c57c5cea5fd6fed8baffe29e878893b4904c8703a878ccbb21caed07713a94"],"transactionsRoot":"0xdb8baea5403a6508522030660fadfef5ae5bc658cd44b5f9e4d672afcb4f53a2","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-extcodehash-override.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-extcodehash-override.io deleted file mode 100644 index 2e2976dbbd..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-extcodehash-override.io +++ /dev/null @@ -1,3 +0,0 @@ -// test extcodehash getting of overriden contract ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561000f575f80fd5b506004361061003f575f3560e01c80631627905514610043578063b9724d6314610073578063dce4a447146100a3575b5f80fd5b61005d600480360381019061005891906101b3565b6100d3565b60405161006a91906101f8565b60405180910390f35b61008d600480360381019061008891906101b3565b61011a565b60405161009a9190610229565b60405180910390f35b6100bd60048036038101906100b891906101b3565b610129565b6040516100ca91906102cc565b60405180910390f35b5f807fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4705f1b90505f833f905081811415801561011157505f801b8114155b92505050919050565b5f80823f905080915050919050565b6060813b60405191505f19601f18601f6020830101168201604052808252805f60208401853c50919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61018282610159565b9050919050565b61019281610178565b811461019c575f80fd5b50565b5f813590506101ad81610189565b92915050565b5f602082840312156101c8576101c7610155565b5b5f6101d58482850161019f565b91505092915050565b5f8115159050919050565b6101f2816101de565b82525050565b5f60208201905061020b5f8301846101e9565b92915050565b5f819050919050565b61022381610211565b82525050565b5f60208201905061023c5f83018461021a565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561027957808201518184015260208101905061025e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61029e82610242565b6102a8818561024c565b93506102b881856020860161025c565b6102c181610284565b840191505092915050565b5f6020820190508181035f8301526102e48184610294565b90509291505056fea26469706673582212206a23e83d04cb5f5ab00353d719afd8181b39baa39277b8cfa111197637a4f26064736f6c63430008160033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0xb9724d63000000000000000000000000c200000000000000000000000000000000000000"}]},{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0xb9724d63000000000000000000000000c200000000000000000000000000000000000000"}]}],"traceTransfers":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5f8a","maxUsedGas":"0x5f8a","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x5f8a","hash":"0x1408aa17740a8938238c6d8e3f0ce6cf54245a1aeaac2430aa2872f8bcb80ce8","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x7f41d2066b53110d43b701cc7609ec0ead70917ddea03741056b7a3f3ed430f3","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2b9","stateRoot":"0x90c928709259621bf260ef2bb65d276e25b48a873a00e5b8b8c48a85a5b4eb3b","timestamp":"0x1ce","transactions":["0x0022f5d33b93c9ad474e42b0879e7123a0b8c06078d8319a89d8d52ba5d5ced7"],"transactionsRoot":"0x726990cfa59e9e15d28c37321db01e871c6d87f8781d0c83e3c8d54bfcdd19de","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x175483145411027d5c8d8e7c3f1133ac003e209c71f42b373f7fcdf9ed500278","logs":[],"gasUsed":"0x5f8a","maxUsedGas":"0x5f8a","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x5f8a","hash":"0x18123b9614dd5c4d5d67c41a7edc358d75542aea5c2818a319b88f39d7723237","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x1408aa17740a8938238c6d8e3f0ce6cf54245a1aeaac2430aa2872f8bcb80ce8","receiptsRoot":"0x7f41d2066b53110d43b701cc7609ec0ead70917ddea03741056b7a3f3ed430f3","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2b9","stateRoot":"0x54897f4b7abd30e7e81de420d8358879f10a2b5505adfe94d3a58063302f2d2f","timestamp":"0x1da","transactions":["0x1a314159c3d96dfa92bd608be1daec75d7ed2c07ad106e4b5a2af343543ef580"],"transactionsRoot":"0x220b5e729b7a81b6fb0d7000e41643a5ca35fd9bf3d271fd8c24e96f0f7531ac","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-extcodehash-precompile.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-extcodehash-precompile.io deleted file mode 100644 index 9d673c4827..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-extcodehash-precompile.io +++ /dev/null @@ -1,3 +0,0 @@ -// test extcodehash getting of precompile and then again after override ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561000f575f80fd5b506004361061003f575f3560e01c80631627905514610043578063b9724d6314610073578063dce4a447146100a3575b5f80fd5b61005d600480360381019061005891906101b3565b6100d3565b60405161006a91906101f8565b60405180910390f35b61008d600480360381019061008891906101b3565b61011a565b60405161009a9190610229565b60405180910390f35b6100bd60048036038101906100b891906101b3565b610129565b6040516100ca91906102cc565b60405180910390f35b5f807fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4705f1b90505f833f905081811415801561011157505f801b8114155b92505050919050565b5f80823f905080915050919050565b6060813b60405191505f19601f18601f6020830101168201604052808252805f60208401853c50919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61018282610159565b9050919050565b61019281610178565b811461019c575f80fd5b50565b5f813590506101ad81610189565b92915050565b5f602082840312156101c8576101c7610155565b5b5f6101d58482850161019f565b91505092915050565b5f8115159050919050565b6101f2816101de565b82525050565b5f60208201905061020b5f8301846101e9565b92915050565b5f819050919050565b61022381610211565b82525050565b5f60208201905061023c5f83018461021a565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561027957808201518184015260208101905061025e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61029e82610242565b6102a8818561024c565b93506102b881856020860161025c565b6102c181610284565b840191505092915050565b5f6020820190508181035f8301526102e48184610294565b90509291505056fea26469706673582212206a23e83d04cb5f5ab00353d719afd8181b39baa39277b8cfa111197637a4f26064736f6c63430008160033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0xb9724d630000000000000000000000000000000000000000000000000000000000000001"}]},{"stateOverrides":{"0x0000000000000000000000000000000000000001":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0xb9724d630000000000000000000000000000000000000000000000000000000000000001"}]}],"traceTransfers":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x55c6","maxUsedGas":"0x55c6","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x55c6","hash":"0xd2a322ead13d19c78d742e254f398dc7f6273fff88fd39cb95e8bd83d2ac5d4d","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xbc6b1a24e538cf7f3a32465399f9d58673ccde8c7271ec6033bdc632bdfbbe01","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2b9","stateRoot":"0xdb8f86639940c4edd240112577ddf89b607a06d90b00c46660a671b659f69161","timestamp":"0x1ce","transactions":["0xc643654ad3382dc260c0b3b36999eccfec3e2f0c35841582f966e4bc2c7d7e99"],"transactionsRoot":"0x4bb68e7f6729b2b9853b5dbd55473ca8b42c13e3e8731077eacbbdcea0f9ea99","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x175483145411027d5c8d8e7c3f1133ac003e209c71f42b373f7fcdf9ed500278","logs":[],"gasUsed":"0x55c6","maxUsedGas":"0x55c6","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x55c6","hash":"0x0b6104d628d29a542fcf106876fefd03faee742c91cd7b3a9d87bd31e9289122","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xd2a322ead13d19c78d742e254f398dc7f6273fff88fd39cb95e8bd83d2ac5d4d","receiptsRoot":"0xbc6b1a24e538cf7f3a32465399f9d58673ccde8c7271ec6033bdc632bdfbbe01","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2b9","stateRoot":"0x0fc5fafd77089768c182a6893717333d3838b34d2a3c3c6a15eb3598f0772e61","timestamp":"0x1da","transactions":["0x81dd55afaa683e0bf3aee55c0e7d2a389ebf96d3c19dad08baa6ab583b6fc66f"],"transactionsRoot":"0xdfb43ca14f8b2320ec926cae5b841c54502db3acc8f866aac23769e631747ae1","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-fee-recipient-receiving-funds.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-fee-recipient-receiving-funds.io deleted file mode 100644 index dfdb4ff3b8..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-fee-recipient-receiving-funds.io +++ /dev/null @@ -1,3 +0,0 @@ -// Check that fee recipient gets funds ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0x57","feeRecipient":"0xc200000000000000000000000000000000000000","baseFeePerGas":"0xa"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1dcd6500"},"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8b2cb4f14610030575b600080fd5b61004a600480360381019061004591906100e4565b610060565b604051610057919061012a565b60405180910390f35b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100b182610086565b9050919050565b6100c1816100a6565b81146100cc57600080fd5b50565b6000813590506100de816100b8565b92915050565b6000602082840312156100fa576100f9610081565b5b6000610108848285016100cf565b91505092915050565b6000819050919050565b61012481610111565b82525050565b600060208201905061013f600083018461011b565b9291505056fea2646970667358221220172c443a163d8a43e018c339d1b749c312c94b6de22835953d960985daf228c764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","maxFeePerGas":"0xa","maxPriorityFeePerGas":"0xa","nonce":"0x0","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","maxFeePerGas":"0xa","nonce":"0x1","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","maxFeePerGas":"0xa","nonce":"0x2","input":"0xf8b2cb4f000000000000000000000000c200000000000000000000000000000000000000"}]}],"traceTransfers":true,"validation":true,"returnFullTransactions":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x4c9114a","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xae7cbe8ec3881788fc4c4eee069f4f71783af27cf8308fff5203dc862744529b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x266","stateRoot":"0x59c231f009f82ec35460b3cf0d9b715d1a35a690c3da0f6003b7842c3d498a26","timestamp":"0x1ce","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x42fef21","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xc0556f586e1eb3aebd88532018fca4921099c8c2eeee8215e68594402942b3b4","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xae7cbe8ec3881788fc4c4eee069f4f71783af27cf8308fff5203dc862744529b","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x266","stateRoot":"0x1f6e2afa585cf425209e0bc9d58b31c245ffadf4a695fdb70b8a489f2c8d9bea","timestamp":"0x1da","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x3a9f13d","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x8c3a80a6ff4423fa33390167efff4e615c506e3911132a6370ca10507c4977b5","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x30","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xc0556f586e1eb3aebd88532018fca4921099c8c2eeee8215e68594402942b3b4","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x266","stateRoot":"0x15d9d48c9647f8f97dfd18614079965adedb1e358d197eabc0c775a046770ea3","timestamp":"0x1e6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x334b316","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x7d4aa4b6e6d8000171758c56d3055a270508c68411d66f7e11a60040f9d810e8","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x31","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x8c3a80a6ff4423fa33390167efff4e615c506e3911132a6370ca10507c4977b5","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x266","stateRoot":"0xe1719ea1b037df6f7c42cad8143987944b6359c13dcc4e0da9ca974c5e68b11a","timestamp":"0x1f2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x2ce1cb4","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xea97f94bd0813c302a23eff4fa5f3fa1dd11f6b29b765ceb13b8dd7ead0d1890","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x32","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x7d4aa4b6e6d8000171758c56d3055a270508c68411d66f7e11a60040f9d810e8","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x266","stateRoot":"0x9eed60f7b85ef57e0b85a3f34f3b9f505cba15c9f1c0aa6a1a27bb0d70c83db3","timestamp":"0x1fe","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x274591e","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x525353c709d2b17af5627a83753543a5d7a3317e560aa251634f984601d9875f","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x33","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xea97f94bd0813c302a23eff4fa5f3fa1dd11f6b29b765ceb13b8dd7ead0d1890","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x266","stateRoot":"0x41e2702e2476a8534044a0c5648e268a2bd90697393e86bad424f9e4f4453f4f","timestamp":"0x20a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x225cdfb","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xad190d8758f3b9ccd5cfd836421225d3d9b90735a802e1608f506f06ebe8067e","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x34","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x525353c709d2b17af5627a83753543a5d7a3317e560aa251634f984601d9875f","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x266","stateRoot":"0xc8242bb46e70daef5cd7ecd88c2ada206dc6aae50a3ce02e3d6f27e5dd252d8d","timestamp":"0x216","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x1e1143c","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xd91f3fa194152b01151487f6f355fdd961089a687c350699fca0b1584dd3cf9c","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x35","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xad190d8758f3b9ccd5cfd836421225d3d9b90735a802e1608f506f06ebe8067e","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x266","stateRoot":"0x291d2d10e1e3982910e8083477ca9e7aebccb280def9ebaafc4110aa74a45ffb","timestamp":"0x222","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x1a4f1b5","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x1d1e2d94d38c02bbe2d2d99fd2068707d43ce0fc089c80e1c74d3f92ad2aed08","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x36","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xd91f3fa194152b01151487f6f355fdd961089a687c350699fca0b1584dd3cf9c","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x266","stateRoot":"0x5c6584a2b92b1861e932348194a829b1cdb0669b0c8c65b8ddfc7e4c1bba90a3","timestamp":"0x22e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x170537f","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x1e4d347329722bd59e3d312d71775c93fd6cf1cdb4832fa8b619e93c8edf011c","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x37","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x1d1e2d94d38c02bbe2d2d99fd2068707d43ce0fc089c80e1c74d3f92ad2aed08","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x266","stateRoot":"0x3df7206fa7d8ab6e8833e8750c16ad3fe6a7acd362dfa1561bf65f138f461bd7","timestamp":"0x23a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x1424910","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x0db059057cc9c0dbcda5566388e9219dd2ce732a31f4a9a5184f76ed1bc1b039","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x38","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x1e4d347329722bd59e3d312d71775c93fd6cf1cdb4832fa8b619e93c8edf011c","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x266","stateRoot":"0xfec43586803e800debb0e3e3fa4b0dabbdf37bfd2ca8cf15a22b37b9e8658835","timestamp":"0x246","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x119ffee","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x8c8b2e64193e66c362530a48d30f10cde3b4edfbd9f1a6e1809ecff3f932acac","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x39","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x0db059057cc9c0dbcda5566388e9219dd2ce732a31f4a9a5184f76ed1bc1b039","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x266","stateRoot":"0x15a4e5da153555539fde1a13ca4e90f3ef92add7116d2349f8d20690422aa6e0","timestamp":"0x252","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0xf6bff1","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x2dd54a641970b0049375d8874e3623fa137c1be33527d2b4f09a162b4d983793","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3a","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x8c8b2e64193e66c362530a48d30f10cde3b4edfbd9f1a6e1809ecff3f932acac","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0xa053521698afc700d271203a3777471086ed014a7b84511aff3168e196f0d1da","timestamp":"0x25e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0xd7e7f3","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x29cc99ad8dcf91aeb041093b7f1b2e8249069eb45140dfc3b8c4910095d15b23","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3b","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x2dd54a641970b0049375d8874e3623fa137c1be33527d2b4f09a162b4d983793","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0x9eda860774d1a621429e103fd325bdef4320ccbbca9b52d200c601cd72d56206","timestamp":"0x26a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0xbceaf5","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x17bf1d8ff78aebcc3b4d676385ccbd7a182e0f47bf8ea02ca4dd2bd52375e6da","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3c","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x29cc99ad8dcf91aeb041093b7f1b2e8249069eb45140dfc3b8c4910095d15b23","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0xd63110ac76237ead9d414c2789f4ab044bc35d624b27898221ec783a6c6c0a6e","timestamp":"0x276","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0xa54d97","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x0c9c2e2adfd5ea981baa8da7b689e18abda6c06274d230c2c04591f02a251e40","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3d","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x17bf1d8ff78aebcc3b4d676385ccbd7a182e0f47bf8ea02ca4dd2bd52375e6da","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0x7d183d6a03776089db9366379b1f4c82b930272de8b7a9b02303392df685a7da","timestamp":"0x282","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x90a3e5","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x0d2788ed1344e1c591bd8404d6d3b6129f39cc789909913e4332f992a310ad51","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x0c9c2e2adfd5ea981baa8da7b689e18abda6c06274d230c2c04591f02a251e40","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0x86c2b99793eaadea26fc2c5ea2cb9b7e6635b6dbd399d785dfa222d93f8a1e04","timestamp":"0x28e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x7e8f69","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x984371fed8c4a8655229f284dc14d7c594ec6b202d5651c7a660ef79e31d599b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x0d2788ed1344e1c591bd8404d6d3b6129f39cc789909913e4332f992a310ad51","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0x60afc218442a35f93df2bb8714f1e780a0ea18c3ee23fbe6a3ad249acde8e80e","timestamp":"0x29a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x6ebd7c","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xb605836b3790de23c231359f7b93607d35bf524c205513c2e8d6488b863cfe1f","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x40","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x984371fed8c4a8655229f284dc14d7c594ec6b202d5651c7a660ef79e31d599b","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0x3ed873c199ee77adccb8f0a187099bf75a81142c5ae276b7a89d82802332c31f","timestamp":"0x2a6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x60e5cd","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x2e2b5aae19a2104d494bcbf5f1b026b284290d2af1c729a70e42995814205e0b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x41","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xb605836b3790de23c231359f7b93607d35bf524c205513c2e8d6488b863cfe1f","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0x6475e415ce00dd79b5e6b23320f29b8bd75855602b65bf2e14f5df4b4fa43c0d","timestamp":"0x2b2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x54c914","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x51aeebf54f01fefc3b80e51f5e8e55b138b4656f432a1bfa58bab1e6b5f41a2a","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x42","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x2e2b5aae19a2104d494bcbf5f1b026b284290d2af1c729a70e42995814205e0b","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0xc13f7fe0343051b8a59cc39cfdc641d1b9b5e2a85fad1b55ce0c82f4dfce6b8e","timestamp":"0x2be","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x4a2ff2","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xa0208b9ba78f6df18e337d30a5959d417dfa8d60a7115feb0bc44a844f0cd479","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x43","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x51aeebf54f01fefc3b80e51f5e8e55b138b4656f432a1bfa58bab1e6b5f41a2a","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0x0f88ca02f52462b9dea31158175ce321a713973095a854042b42034c9b2db4b7","timestamp":"0x2ca","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x40e9f4","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x6bfdb9ee34974fd7cbe5441ae494642f75fe93d778896716ba16bb4f95220f5e","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x44","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xa0208b9ba78f6df18e337d30a5959d417dfa8d60a7115feb0bc44a844f0cd479","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0x829ce43bce6d301bc16962126a2d6811ef6337800105be8d8ae047d5a8f2c5bc","timestamp":"0x2d6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x38ccb6","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x4f4558ab09df741dd7e5b7a28e2e108ba57d1c50f0025e3956b5b942cde83ac9","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x45","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x6bfdb9ee34974fd7cbe5441ae494642f75fe93d778896716ba16bb4f95220f5e","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0x884dfc7a4e5651002c5d94209c16fa95d2fb767c09ec5dbacab99c5fb3bfadb4","timestamp":"0x2e2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x31b320","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x9c305b7ea0ec477a144616d09fa93e2b9a67564750487ee791b1fdb5c6677671","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x46","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x4f4558ab09df741dd7e5b7a28e2e108ba57d1c50f0025e3956b5b942cde83ac9","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0x880f209a02e56b44703a8f3ec2e6cc3bf13f4b7ecea397d59b25ba4cd5f70b80","timestamp":"0x2ee","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x2b7cbc","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x48b80cac3f34663ed329780c8b9ab23d5b6e3add1dd3f6e9977ad463d9dd23fb","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x47","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x9c305b7ea0ec477a144616d09fa93e2b9a67564750487ee791b1fdb5c6677671","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0x010505db555bbc6cd4c9b98b93b0e108e8bcea17678a9692fbb7b83b04fb75cb","timestamp":"0x2fa","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x260d25","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x2a67a2add1d2462355d0ad10ed343ee2fd07eebb611ad082e7e8cf53376308fb","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x48","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x48b80cac3f34663ed329780c8b9ab23d5b6e3add1dd3f6e9977ad463d9dd23fb","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0x1b3c376088013f5cfd23a0458e4686124c564d6f5d542db7fd094e5db5d006a4","timestamp":"0x306","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x214b81","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xfe96ead059a016fde694afd2c52d7006c8225d9a7d605efbff7b2849d97de70b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x49","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x2a67a2add1d2462355d0ad10ed343ee2fd07eebb611ad082e7e8cf53376308fb","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0x1eab80c7018eed10309025b9262ac74126089bb13dd2691cc358f2f935b7447d","timestamp":"0x312","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x1d2211","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xb301c3a05882a2546034ac3a0a8f838ff8c567429f9291c9edbe77eebbe68763","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4a","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xfe96ead059a016fde694afd2c52d7006c8225d9a7d605efbff7b2849d97de70b","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0x756b91f425cf49ec2237b7525e839b7f927280eced33755192438fe59080bf0a","timestamp":"0x31e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x197dcf","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xf5ffa923c88f8a0e4b6ae424b6ab0bc370b9eb485e41f5e2bb53f3d648170ad5","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4b","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xb301c3a05882a2546034ac3a0a8f838ff8c567429f9291c9edbe77eebbe68763","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0x104f509a3b4bb4aa90b1348bf075e7dfd1ee291b329d76cd997af32940b5d338","timestamp":"0x32a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x164e16","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x38e80dcc628ee9f187209cd9bb25b68fc7096aed58641a45cfe64a4f5320c5af","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4c","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xf5ffa923c88f8a0e4b6ae424b6ab0bc370b9eb485e41f5e2bb53f3d648170ad5","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0xf0ea73345989f140cf3943d32409571b6cd8cb25aa4a215702aadcfd5a217f25","timestamp":"0x336","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x138454","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x5a2396330c4e26021da5e8906d7a15368121484d8b6f8e986f79de0f1d04546d","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4d","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x38e80dcc628ee9f187209cd9bb25b68fc7096aed58641a45cfe64a4f5320c5af","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0x0ef977d10af6ad107823ccfe8dce3133c895ea1a4adf4454a678a4572c72202e","timestamp":"0x342","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x1113ca","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xb0ea9f765ae53c988ae3fc6568c07d7ee5bc9c193bb224d1bfeeb20690785f27","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x5a2396330c4e26021da5e8906d7a15368121484d8b6f8e986f79de0f1d04546d","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0xd2d05dad73e15f058eaa70dd21faddd531738ee5e3fcd1163f65fe208f0fb63c","timestamp":"0x34e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0xef151","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x799241ed71f6a238c9ba6ce403e8c5c397a8269a779feb61afe5efd5411d2d21","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xb0ea9f765ae53c988ae3fc6568c07d7ee5bc9c193bb224d1bfeeb20690785f27","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0x44f45f22f4da11b24602dff91f999d2ac265d9c8a91ea7da25be75860b65539b","timestamp":"0x35a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0xd1327","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xdf68fe126eb24c46ad80f64c01a92a1b3540671069d0e2411131ba16bf0a96b3","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x50","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x799241ed71f6a238c9ba6ce403e8c5c397a8269a779feb61afe5efd5411d2d21","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0xb2d9cbd4f8379b8762e8fe08ae5738dc518f81d3d8c3e67c8f9774e41f0a1f00","timestamp":"0x366","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0xb70c3","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xc8f7c8243aa16c00ad0d9c8d7c250a320c88e175f73889ce1c5e5b314ebac57e","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x51","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xdf68fe126eb24c46ad80f64c01a92a1b3540671069d0e2411131ba16bf0a96b3","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0x16bf531a50291daaaf0142cbdf8db253ceb4a2255f084f994c42a590b8463a86","timestamp":"0x372","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0xa02ab","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x062483edb68e7a65feb247c0909aa1b7b71de0a518cb405abedf6a51f10515ea","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x52","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xc8f7c8243aa16c00ad0d9c8d7c250a320c88e175f73889ce1c5e5b314ebac57e","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0x049d263085f9b11b8377c6157508a6630a892252429b8ba841fe52cb33ad1566","timestamp":"0x37e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x8c256","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x4d816e8efa5a45729220136b7d54ae1b67df1d7f544ba8a30a6a34ecaf7c2654","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x53","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x062483edb68e7a65feb247c0909aa1b7b71de0a518cb405abedf6a51f10515ea","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0xfaa9bb71f0450f96e3f188297302ae0b51c04195a4cdda705f632a36c7b8f1bd","timestamp":"0x38a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x7aa0c","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xcec2dccd51f9cb6aaa1fea24aa774ae6798941a79a9af022e94e2901a1e41f8c","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x54","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x4d816e8efa5a45729220136b7d54ae1b67df1d7f544ba8a30a6a34ecaf7c2654","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0x9130d41f21229d59dbab528734efb16ad51f3bdd66050713148e0508bd5aaedc","timestamp":"0x396","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x6b4cb","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x1668c230a9274e9298be45349248e081db5c05f455afcb8a07a3eda88d987bbe","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x55","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xcec2dccd51f9cb6aaa1fea24aa774ae6798941a79a9af022e94e2901a1e41f8c","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0x5dfae6c51c9265b86b704f6a83017275d4f645305143af9ec28d5b4574a73b15","timestamp":"0x3a2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x5de32","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x6a892e535109de66c1ec7d595f0ddeef4453a03bef997f2681d2ac052f888c4a","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x56","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x1668c230a9274e9298be45349248e081db5c05f455afcb8a07a3eda88d987bbe","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x265","stateRoot":"0xc576c4445cc599908086f6a9913eb93e45e1a1135e3a2360a6a2e0547027fcc6","timestamp":"0x3ae","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0xa","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x524e","maxUsedGas":"0x524e","status":"0x0","error":{"message":"execution reverted","code":3,"data":"0x"}},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x55b3","maxUsedGas":"0x55b3","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x55b3","maxUsedGas":"0x55b3","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xfdb4","hash":"0xde56fb201a11f4fa91f41380cf6bb164997609cafd5b92ec889b740a5555d2c0","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x57","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x6a892e535109de66c1ec7d595f0ddeef4453a03bef997f2681d2ac052f888c4a","receiptsRoot":"0x808a8f9a75b802c4e574d31f6c70bfa9fb7432872a370793c367602d80761b99","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x33b","stateRoot":"0x84b70818a6a1a5013f0ceb6a6397186dded75c655823186febcdac79be2bc12b","timestamp":"0x3ba","transactions":[{"blockHash":"0xde56fb201a11f4fa91f41380cf6bb164997609cafd5b92ec889b740a5555d2c0","blockNumber":"0x57","blockTimestamp":"0x3ba","from":"0xc000000000000000000000000000000000000000","gas":"0x2faf080","gasPrice":"0xa","maxFeePerGas":"0xa","maxPriorityFeePerGas":"0xa","hash":"0x6944bece9a47ff930a37b5e6aff275d54cf6e7778dfc179f1e5b73b34a227c3d","input":"0x","nonce":"0x0","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x0","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0xde56fb201a11f4fa91f41380cf6bb164997609cafd5b92ec889b740a5555d2c0","blockNumber":"0x57","blockTimestamp":"0x3ba","from":"0xc000000000000000000000000000000000000000","gas":"0x2fa9e32","gasPrice":"0xa","maxFeePerGas":"0xa","maxPriorityFeePerGas":"0x0","hash":"0xeb77c2b0c2c6ee658a2916cee082cabfe6c48248b798c5ec0fafca263facf197","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000","nonce":"0x1","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x1","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0xde56fb201a11f4fa91f41380cf6bb164997609cafd5b92ec889b740a5555d2c0","blockNumber":"0x57","blockTimestamp":"0x3ba","from":"0xc000000000000000000000000000000000000000","gas":"0x2fa487f","gasPrice":"0xa","maxFeePerGas":"0xa","maxPriorityFeePerGas":"0x0","hash":"0xf6d241c31f35a3ff4343446e45bdd6e5ef31890ccca372f5ff84c20b8fd7a0b8","input":"0xf8b2cb4f000000000000000000000000c200000000000000000000000000000000000000","nonce":"0x2","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x2","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"}],"transactionsRoot":"0xd24c40d6fb8341cef958e93b47b5aba59d3c80094c9bd7d02d927ffaa3ed1a59","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-gas-fees-and-value-error-38014-with-validation.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-gas-fees-and-value-error-38014-with-validation.io deleted file mode 100644 index e9b28d13fd..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-gas-fees-and-value-error-38014-with-validation.io +++ /dev/null @@ -1,3 +0,0 @@ -// Error: Insufficient funds to pay for gas fees and value (-38014) with validation ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"validation":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"err: max fee per gas less than block base fee: address 0xC000000000000000000000000000000000000000, maxFeePerGas: 0, baseFee: 80286026 (supplied gas 50000000)"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-gas-fees-and-value-error-38014.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-gas-fees-and-value-error-38014.io deleted file mode 100644 index a31166ed8d..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-gas-fees-and-value-error-38014.io +++ /dev/null @@ -1,3 +0,0 @@ -// Error: Insufficient funds to pay for gas fees and value (-38014) ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-38014,"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 50000000)"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-get-block-properties.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-get-block-properties.io deleted file mode 100644 index 716e95b370..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-get-block-properties.io +++ /dev/null @@ -1,3 +0,0 @@ -// gets various block properties from chain ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c72dd9d5e883e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047e7c40000000000000000000000000000000000000000000000000000000000000002e00000000000000000000000000000000000000000000000000000000000001ce0000000000000000000000000000000000000000000000000000000002fa9e360000000000000000000000000000000000000000000000000000000000000000e27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","logs":[],"gasUsed":"0x57bc","maxUsedGas":"0x57bc","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x57bc","hash":"0x1be8439d07496650ac45bbcf51d8c71baddc66e3b280b9ed7c9c0ad9117c9f4d","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xe74486ea84ef8b10f828f52661656b006a7ff4ebe2dcf9830f985d1fc73c710f","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x292","stateRoot":"0x484c49a4d02cddc2494727bc585f2376e3c4f806d9a3f15cf41fd3dcec3de79d","timestamp":"0x1ce","transactions":["0x234a1d9897819c206fdeb6af312d742010a91b5b4159978a902c9a0b90e7bee5"],"transactionsRoot":"0xed81b1bfe79c8c81d3fe874f7214a9fb9dd186e8243abfeabc506550a532c09a","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-instrict-gas-38013.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-instrict-gas-38013.io deleted file mode 100644 index 9c9162913b..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-instrict-gas-38013.io +++ /dev/null @@ -1,3 +0,0 @@ -// Error: Not enough gas provided to pay for intrinsic gas (-38013) ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x0"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-38013,"message":"err: intrinsic gas too low: have 0, want 21000 (supplied gas 0)"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-logs.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-logs.io deleted file mode 100644 index 6011a8b866..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-logs.io +++ /dev/null @@ -1,3 +0,0 @@ -// simulates calls with logs ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80600080a1600080f3"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x6057361d0000000000000000000000000000000000000000000000000000000000000005"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[{"address":"0xc200000000000000000000000000000000000000","topics":["0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"],"data":"0x","blockNumber":"0x2e","transactionHash":"0x0c316124563c91479e019be7b012995015f22f6a150c1f42a78bc25e12cd00f7","transactionIndex":"0x0","blockHash":"0xfaa100e70c062fd170cb7a46cecc34c7aed732d1d59325aa41ff09d35d2d1e01","blockTimestamp":"0x1ce","logIndex":"0x0","removed":false}],"gasUsed":"0x55d4","maxUsedGas":"0x55d4","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x55d4","hash":"0xfaa100e70c062fd170cb7a46cecc34c7aed732d1d59325aa41ff09d35d2d1e01","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000200000000000000000000000000000000000000000000080000000000000000000000000000000000000000010000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x4287aeb00e17dccbeb1e50061a9ce4bf01cc943641c2583aef0441a7a5e471cd","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2b9","stateRoot":"0x0cd4ba3b47c16cc785fd0abd80ad0d734a53c498688be94204157deb484abfaf","timestamp":"0x1ce","transactions":["0x0c316124563c91479e019be7b012995015f22f6a150c1f42a78bc25e12cd00f7"],"transactionsRoot":"0x993f97c4f2a75df90d5e253e74875b9f81fea247fc0d5040e1a9d39a3967990c","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-make-call-with-future-block.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-make-call-with-future-block.io deleted file mode 100644 index e8f770062d..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-make-call-with-future-block.io +++ /dev/null @@ -1,3 +0,0 @@ -// start ethSimulate with future block ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000"}]}],"validation":true},"0x111"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"header not found"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-ecrecover-and-call-old-and-new.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-ecrecover-and-call-old-and-new.io deleted file mode 100644 index 16cbc7f7ee..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-ecrecover-and-call-old-and-new.io +++ /dev/null @@ -1,3 +0,0 @@ -// move ecrecover and try calling the moved and non-moved version ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0x0000000000000000000000000000000000000001":{"movePrecompileToAddress":"0x0000000000000000000000000000000000123456"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x6038","maxUsedGas":"0x6038","status":"0x1"},{"returnData":"0x000000000000000000000000b11cad98ad3f8114e0b3a1f6e7228bc8424df48a","logs":[],"gasUsed":"0x644c","maxUsedGas":"0x644c","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5834","maxUsedGas":"0x5834","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x6266","maxUsedGas":"0x6266","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x17f1e","hash":"0x507f377a5cec5c8d8c1f0547eed5dc3aaad55e8ff2bc40320daac59c2efe0f50","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x7caac73517bb065f397e7c35f92140170f38a468fa3fa6cb9990cfc0ce14829e","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x52b","stateRoot":"0xf013e577ffa7498f6d0f2970858f541e56f2cf007e4e825d6ace613bcc207055","timestamp":"0x1ce","transactions":["0xedf77a4ff7a818e1e32ed4224d633b44fc9ea2f46454c684f341f536f00dbddd","0xaa5c34e49f0c569b197d7cd74000bb6b7a234343415c18d56948ffd1ff560178","0xb531b55ff4917d559dbab6150efb6fc180d2ffe06f7411eb2764c45996c65297","0x3fc1936bcdaf5e9e62d0ce846aedcf101cab5bf2ac8f1c5f2ca79cf29f61ac90"],"transactionsRoot":"0xd4f562b3ce8e5df52ea5b24630d4a047dcf31dd7e85801dc833a2b5937ac56cd","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-ecrecover-and-call.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-ecrecover-and-call.io deleted file mode 100644 index f51a493bb0..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-ecrecover-and-call.io +++ /dev/null @@ -1,3 +0,0 @@ -// move ecrecover and try calling it ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"}]},{"stateOverrides":{"0x0000000000000000000000000000000000000001":{"movePrecompileToAddress":"0x0000000000000000000000000000000000123456"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x6038","maxUsedGas":"0x6038","status":"0x1"},{"returnData":"0x000000000000000000000000b11cad98ad3f8114e0b3a1f6e7228bc8424df48a","logs":[],"gasUsed":"0x644c","maxUsedGas":"0x644c","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xc484","hash":"0x1c8f863191bba6eba14ffa375f176ca3f05f2d0907cbeca2f8efcade39a77821","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xe7e5e1065fa5ff9117f0cb1c9dfcd1dbcfcc27d9c2bb0f28bdab3122a54fa411","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x3c8","stateRoot":"0xee4edd3bd009c2eb4f8f6f24b7e6981c2e77aba0660f4c064dff712b621d308c","timestamp":"0x1ce","transactions":["0xcf1bd2318ed0876dfcc473fdd4fbb1628c6149d26ae10651d1ba5c81b40bd343","0xce9c0063634779a5dbd101e03e78b781bd82c2c0c5b2b6a578436b6221447f90"],"transactionsRoot":"0x1cbedee6bedd859d3ba78f7be45f5920271d430ae9a3bad4adce7d4e5cf06940","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x6038","maxUsedGas":"0x6038","status":"0x1"},{"returnData":"0x000000000000000000000000b11cad98ad3f8114e0b3a1f6e7228bc8424df48a","logs":[],"gasUsed":"0x644c","maxUsedGas":"0x644c","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x6266","maxUsedGas":"0x6266","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x126ea","hash":"0x57f77362baa5d316d9a3d34f9d91df7a50f4c97ce5d38214b9ea7ee62fb48de7","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x1c8f863191bba6eba14ffa375f176ca3f05f2d0907cbeca2f8efcade39a77821","receiptsRoot":"0xb0864511e526165945eaf5efb38cc8b2b705d55cf210fcb629e3e43b73715474","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x47a","stateRoot":"0x0c064996832fb403576a4c4add025b94bff31df2d14746050f0387eeefc128eb","timestamp":"0x1da","transactions":["0x67a7155335c4dd6ac90c54c5173cb566946d142665369f0fa7dd3a31b5a3f4a7","0x5d0959210b1d084858519707fe8eb708347b78aa221036b11eddc27b6f9b9f6a","0x24bbc3d58e381184d7b52d73df83f5a412e507a41f622b9ba922ed2a51705270"],"transactionsRoot":"0x8c2cd1365eeebdbf28b9ba74416761d095cfd1187e1136f2ebda8e86fc65c8cd","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-ecrecover-twice-and-call.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-ecrecover-twice-and-call.io deleted file mode 100644 index e38efa6673..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-ecrecover-twice-and-call.io +++ /dev/null @@ -1,3 +0,0 @@ -// move ecrecover and try calling it, then move it again and call it ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"}]},{"stateOverrides":{"0x0000000000000000000000000000000000000001":{"movePrecompileToAddress":"0x0000000000000000000000000000000000123456"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"}]},{"stateOverrides":{"0x0000000000000000000000000000000000000001":{"movePrecompileToAddress":"0x0000000000000000000000000000000000123457"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123457","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x6038","maxUsedGas":"0x6038","status":"0x1"},{"returnData":"0x000000000000000000000000b11cad98ad3f8114e0b3a1f6e7228bc8424df48a","logs":[],"gasUsed":"0x644c","maxUsedGas":"0x644c","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xc484","hash":"0x1c8f863191bba6eba14ffa375f176ca3f05f2d0907cbeca2f8efcade39a77821","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xe7e5e1065fa5ff9117f0cb1c9dfcd1dbcfcc27d9c2bb0f28bdab3122a54fa411","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x3c8","stateRoot":"0xee4edd3bd009c2eb4f8f6f24b7e6981c2e77aba0660f4c064dff712b621d308c","timestamp":"0x1ce","transactions":["0xcf1bd2318ed0876dfcc473fdd4fbb1628c6149d26ae10651d1ba5c81b40bd343","0xce9c0063634779a5dbd101e03e78b781bd82c2c0c5b2b6a578436b6221447f90"],"transactionsRoot":"0x1cbedee6bedd859d3ba78f7be45f5920271d430ae9a3bad4adce7d4e5cf06940","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x6038","maxUsedGas":"0x6038","status":"0x1"},{"returnData":"0x000000000000000000000000b11cad98ad3f8114e0b3a1f6e7228bc8424df48a","logs":[],"gasUsed":"0x644c","maxUsedGas":"0x644c","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x6266","maxUsedGas":"0x6266","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x126ea","hash":"0x57f77362baa5d316d9a3d34f9d91df7a50f4c97ce5d38214b9ea7ee62fb48de7","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x1c8f863191bba6eba14ffa375f176ca3f05f2d0907cbeca2f8efcade39a77821","receiptsRoot":"0xb0864511e526165945eaf5efb38cc8b2b705d55cf210fcb629e3e43b73715474","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x47a","stateRoot":"0x0c064996832fb403576a4c4add025b94bff31df2d14746050f0387eeefc128eb","timestamp":"0x1da","transactions":["0x67a7155335c4dd6ac90c54c5173cb566946d142665369f0fa7dd3a31b5a3f4a7","0x5d0959210b1d084858519707fe8eb708347b78aa221036b11eddc27b6f9b9f6a","0x24bbc3d58e381184d7b52d73df83f5a412e507a41f622b9ba922ed2a51705270"],"transactionsRoot":"0x8c2cd1365eeebdbf28b9ba74416761d095cfd1187e1136f2ebda8e86fc65c8cd","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5834","maxUsedGas":"0x5834","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x6266","maxUsedGas":"0x6266","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x6266","maxUsedGas":"0x6266","status":"0x1"},{"returnData":"0x000000000000000000000000b11cad98ad3f8114e0b3a1f6e7228bc8424df48a","logs":[],"gasUsed":"0x644c","maxUsedGas":"0x644c","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x1814c","hash":"0x9646b82741477d84110641110438c39fd4d704b8a700b2ca9e222b352dc30c68","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x30","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x57f77362baa5d316d9a3d34f9d91df7a50f4c97ce5d38214b9ea7ee62fb48de7","receiptsRoot":"0x83692e4f79390def87704bf5eb97a88a25fe8de18600086d4e810a2cc21dd45b","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x52b","stateRoot":"0xee553fbba54a7964158b7e422e372070efcd51adb34cf9174ecbea8c730f09d4","timestamp":"0x1e6","transactions":["0xdfd99dc829a092d0fc8febbcacc220ce0620cae37207c0575511ec67987424bc","0xa486f13c185a1f9c92aee1af35dd58dad58928d65b6f3a533fe5016491e1f445","0x1581796a2416a385b32e60f90d855c09f5c5ca063adfcc0df46b850cc9edec1e","0x693a6b344ae3581ff995c3a032f4c9180cc5a538ad8da5d3d88b5982ff66eb31"],"transactionsRoot":"0x502789900a5d33e6917e7c1c75bbb2a28e3a1ee134d3c18f3ebe88a29ab61605","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-to-address-itself-reference-38022.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-to-address-itself-reference-38022.io deleted file mode 100644 index eefe2cee45..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-to-address-itself-reference-38022.io +++ /dev/null @@ -1,3 +0,0 @@ -// Error: MovePrecompileToAddress referenced itself in replacement (-38022) ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x30d40"},"0xc100000000000000000000000000000000000000":{"movePrecompileToAddress":"0xc100000000000000000000000000000000000000"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x1"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"account 0xc100000000000000000000000000000000000000 is not a precompile"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-two-accounts-to-same-38023.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-two-accounts-to-same-38023.io deleted file mode 100644 index ef5d47e6fe..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-two-accounts-to-same-38023.io +++ /dev/null @@ -1,3 +0,0 @@ -// Move two accounts to the same destination (-38023) ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0x0000000000000000000000000000000000000001":{"movePrecompileToAddress":"0xc200000000000000000000000000000000000000"},"0x0000000000000000000000000000000000000002":{"movePrecompileToAddress":"0xc200000000000000000000000000000000000000"}}}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x8b8964bfcf7d8e280ed6812a581f67beda47d2b0f6316e1709bcff7d093e02b7","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x59c231f009f82ec35460b3cf0d9b715d1a35a690c3da0f6003b7842c3d498a26","timestamp":"0x1ce","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-two-non-precompiles-accounts-to-same.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-two-non-precompiles-accounts-to-same.io deleted file mode 100644 index 7a4ea16f1d..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-move-two-non-precompiles-accounts-to-same.io +++ /dev/null @@ -1,3 +0,0 @@ -// Move two non-precompiles to same adddress ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0x0100000000000000000000000000000000000000":{"movePrecompileToAddress":"0xc200000000000000000000000000000000000000"},"0x0200000000000000000000000000000000000000":{"movePrecompileToAddress":"0xc200000000000000000000000000000000000000"}}}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"account 0x0100000000000000000000000000000000000000 is not a precompile"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-no-fields-call.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-no-fields-call.io deleted file mode 100644 index 91b8c45fde..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-no-fields-call.io +++ /dev/null @@ -1,3 +0,0 @@ -// make a call with no fields ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{}]}],"traceTransfers":true,"returnFullTransactions":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0xcf08","maxUsedGas":"0xcf08","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xcf08","hash":"0xa02276791c39e6662cd8019a2cbb8a075403153067431795cee1b21de5c3b048","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xc508745f9f8b6847a127bbc58b7c6b2c0f073c7ca778b6f020138f0d6d782adf","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x27e","stateRoot":"0xe475c130ff1da56c619eb0e0606662f2c8d71bbeb4e9e9988fe4dd77a46b5592","timestamp":"0x1ce","transactions":[{"blockHash":"0xa02276791c39e6662cd8019a2cbb8a075403153067431795cee1b21de5c3b048","blockNumber":"0x2e","blockTimestamp":"0x1ce","from":"0x0000000000000000000000000000000000000000","gas":"0x2faf080","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0xaab6995ceb3fb6183ef81e8cdaa904e2c96f3907215d19771607e47dec9f8c14","input":"0x","nonce":"0x0","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"}],"transactionsRoot":"0x1fa13b004aa237b7b76c85ee7eabebdf1185ce59372063945dd7d8b633be6a9d","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-only-from-to-transaction.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-only-from-to-transaction.io deleted file mode 100644 index a4ea621918..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-only-from-to-transaction.io +++ /dev/null @@ -1,3 +0,0 @@ -// make a call with only from and to fields ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000"}]}],"traceTransfers":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x5208","hash":"0xa02dee1781ed473f5518af69d9085e9585c192d80b7c05e52ccc1bcb85376ecf","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x292","stateRoot":"0x13686e8b63d4a7c67e6a33cbe18053ad0d64f0cb8dc60a36cd07dbb06cc6e680","timestamp":"0x1ce","transactions":["0x234a1d9897819c206fdeb6af312d742010a91b5b4159978a902c9a0b90e7bee5"],"transactionsRoot":"0xed81b1bfe79c8c81d3fe874f7214a9fb9dd186e8243abfeabc506550a532c09a","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-only-from-transaction.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-only-from-transaction.io deleted file mode 100644 index 142338075c..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-only-from-transaction.io +++ /dev/null @@ -1,3 +0,0 @@ -// make a call with only from field ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000"}]}],"traceTransfers":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0xcf08","maxUsedGas":"0xcf08","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xcf08","hash":"0x3181cac8d1e2dbe04d0c1eccc795a060696b820e26a468dd21430179589d05e5","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xc508745f9f8b6847a127bbc58b7c6b2c0f073c7ca778b6f020138f0d6d782adf","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x27e","stateRoot":"0x5d2cf344c6bda58ea32433d061c2ee638a9ccff938cfbf315097fc8e11a4282e","timestamp":"0x1ce","transactions":["0xaab6995ceb3fb6183ef81e8cdaa904e2c96f3907215d19771607e47dec9f8c14"],"transactionsRoot":"0x1fa13b004aa237b7b76c85ee7eabebdf1185ce59372063945dd7d8b633be6a9d","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-overflow-nonce-validation.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-overflow-nonce-validation.io deleted file mode 100644 index eb170cadf4..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-overflow-nonce-validation.io +++ /dev/null @@ -1,3 +0,0 @@ -// test to overflow nonce-validation ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"nonce":"0xffffffffffffffff"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000"}]}],"validation":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32603,"message":"err: nonce has max value: address 0xC000000000000000000000000000000000000000, nonce: 18446744073709551615 (supplied gas 50000000)"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-overflow-nonce.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-overflow-nonce.io deleted file mode 100644 index c5f911b7b5..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-overflow-nonce.io +++ /dev/null @@ -1,3 +0,0 @@ -// test to overflow nonce ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"nonce":"0xffffffffffffffff"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xa410","hash":"0x17d8cd17183a8a3d02fab69bb644d8d11f27cd51eec5ba8748a9bb051e434027","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x75308898d571eafb5cd8cde8278bf5b3d13c5f6ec074926de3bb895b519264e1","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2c9","stateRoot":"0x13686e8b63d4a7c67e6a33cbe18053ad0d64f0cb8dc60a36cd07dbb06cc6e680","timestamp":"0x1ce","transactions":["0x477a61e1243f3b2c6a206477ecfca9f57a099a152a08fda53d8cee470d6c5fb8","0xd43781826f6cf87596228fb58a268cf2147d652bf2dc63e0e2df763efa03f709"],"transactionsRoot":"0x688f222130d7e2e8db322778c82709b89b350a0842acb53fc7e618fd3fa17955","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-address-twice-in-separate-BlockStateCalls.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-address-twice-in-separate-BlockStateCalls.io deleted file mode 100644 index f0c098fe94..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-address-twice-in-separate-BlockStateCalls.io +++ /dev/null @@ -1,3 +0,0 @@ -// override address twice in separate BlockStateCalls ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]},{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[{"address":"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c000000000000000000000000000000000000000","0x000000000000000000000000c100000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x2e","transactionHash":"0xf1c5abb08809ef760f87aeabe7a87284c60797192dab6d2f0d26c27c9c038e9d","transactionIndex":"0x0","blockHash":"0xd568b74dd9ae10031741a45a142f7dcb2625d2e31b552a6fef3a87542daef335","blockTimestamp":"0x1ce","logIndex":"0x0","removed":false}],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x5208","hash":"0xd568b74dd9ae10031741a45a142f7dcb2625d2e31b552a6fef3a87542daef335","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x294","stateRoot":"0xb502e202e53b7160ce4bca5518a81910aa6193601fee6a25a17ee8f7ffcba2dc","timestamp":"0x1ce","transactions":["0xf1c5abb08809ef760f87aeabe7a87284c60797192dab6d2f0d26c27c9c038e9d"],"transactionsRoot":"0x153033b7bf79591032a757961da3656789d4bf0873801108ff81449dfe8df202","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[{"address":"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c000000000000000000000000000000000000000","0x000000000000000000000000c100000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x2f","transactionHash":"0x5a3d1e7294b916949bca4334586b3ef6304b2afe01abf182dabde437301a10ae","transactionIndex":"0x0","blockHash":"0x4cec6ed1c52f464bf3306a8becb6798d0d963ba305421333fce2764fd018a939","blockTimestamp":"0x1da","logIndex":"0x0","removed":false}],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x5208","hash":"0x4cec6ed1c52f464bf3306a8becb6798d0d963ba305421333fce2764fd018a939","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xd568b74dd9ae10031741a45a142f7dcb2625d2e31b552a6fef3a87542daef335","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x294","stateRoot":"0xaabaef35f9771099be2345e086577ba002c01669f572e89edefbaf200281a872","timestamp":"0x1da","transactions":["0x5a3d1e7294b916949bca4334586b3ef6304b2afe01abf182dabde437301a10ae"],"transactionsRoot":"0xb59725eea844ad560959ebeb1a5d8e138c77f3d658401988f2d28ca091280507","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-address-twice.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-address-twice.io deleted file mode 100644 index dd97a246d6..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-address-twice.io +++ /dev/null @@ -1,3 +0,0 @@ -// override address twice ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x608060405260006042576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401603990609d565b60405180910390fd5b005b600082825260208201905092915050565b7f416c7761797320726576657274696e6720636f6e747261637400000000000000600082015250565b600060896019836044565b91506092826055565b602082019050919050565b6000602082019050818103600083015260b481607e565b905091905056fea264697066735822122005cbbbc709291f66fadc17416c1b0ed4d72941840db11468a21b8e1a0362024c64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-38014,"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 50000000)"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-all-in-BlockStateCalls.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-all-in-BlockStateCalls.io deleted file mode 100644 index 7d29d3719a..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-all-in-BlockStateCalls.io +++ /dev/null @@ -1,3 +0,0 @@ -// override all values in block and see that they are set in return value ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0x37","time":"0x1cc","gasLimit":"0x3ec","feeRecipient":"0xc200000000000000000000000000000000000000","prevRandao":"0xc300000000000000000000000000000000000000000000000000000000000000","baseFeePerGas":"0x3ef"}}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-38021,"message":"block timestamps must be in order: 460 \u003c= 558"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-block-num.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-block-num.io deleted file mode 100644 index 601c7fa697..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-block-num.io +++ /dev/null @@ -1,3 +0,0 @@ -// simulates calls overriding the block num ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0x2e"},"calls":[{"from":"0xc000000000000000000000000000000000000000","input":"0x4360005260206000f3"}]},{"blockOverrides":{"number":"0x2f"},"calls":[{"from":"0xc100000000000000000000000000000000000000","input":"0x4360005260206000f3"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000000002e","logs":[],"gasUsed":"0xe893","maxUsedGas":"0xe893","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xe893","hash":"0x5df0e15a2a5e5616803230a2428c7309da63042da3b1dfa7ec7f94f00becebf8","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x272f9721d2518637583443bb497e8fd6399c10a298960c41f6f17d2c2b3a2aa2","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x287","stateRoot":"0x358225a76e512340cad5d1e127c1f1db66fb16b6da180d7fd72298fef0bc1641","timestamp":"0x1ce","transactions":["0x03fa04bc5a2a8476e394b62c6e6aa235b8686f9a4ae6dd95c1e0911329e6aef4"],"transactionsRoot":"0xb6e8499b87fc080641e8e363bed32f711431265437c76dbe9875f94d475c51df","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000000002f","logs":[],"gasUsed":"0xe893","maxUsedGas":"0xe893","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xe893","hash":"0x0c31ba2d519b14550780d1226b291de1efae3d5667765a01ecf42315ed636aa3","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x5df0e15a2a5e5616803230a2428c7309da63042da3b1dfa7ec7f94f00becebf8","receiptsRoot":"0x272f9721d2518637583443bb497e8fd6399c10a298960c41f6f17d2c2b3a2aa2","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x287","stateRoot":"0x3065d625a5362aa26653f40fa7850803aff28c2c94055eb214fddcf82f587cb4","timestamp":"0x1da","transactions":["0xcc3c0d445c5435444cbe6f3d754ff89d494b5ba7672f7f66a3d1a520acce8e61"],"transactionsRoot":"0xe0383bee6b1459b6260a77b1ae8d4d102d6463635db23682bd53c7f87a1b5eb4","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-ecrecover.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-ecrecover.io deleted file mode 100644 index 5efdba44e1..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-ecrecover.io +++ /dev/null @@ -1,3 +0,0 @@ -// override ecrecover ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0x0000000000000000000000000000000000000001":{"code":"0x608060405234801561001057600080fd5b506004361061003a5760003560e01c806305fdbc81146101ee578063c00692601461020a5761003b565b5b600036606060008060008086868101906100559190610462565b93509350935093506000806000868686866040516020016100799493929190610520565b60405160208183030381529060405280519060200120815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101bb576000806212345673ffffffffffffffffffffffffffffffffffffffff166127108b8b6040516101249291906105ad565b60006040518083038160008787f1925050503d8060008114610162576040519150601f19603f3d011682016040523d82523d6000602084013e610167565b606091505b5091509150816101ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101a39061066f565b60405180910390fd5b809750505050505050506101e3565b806040516020016101cc9190610709565b604051602081830303815290604052955050505050505b915050805190602001f35b6102086004803603810190610203919061093a565b610226565b005b610224600480360381019061021f9190610983565b6102ec565b005b60005b81518110156102e8576102d5828281518110610248576102476109fe565b5b602002602001015160000151838381518110610267576102666109fe565b5b602002602001015160200151848481518110610286576102856109fe565b5b6020026020010151604001518585815181106102a5576102a46109fe565b5b6020026020010151606001518686815181106102c4576102c36109fe565b5b6020026020010151608001516102ec565b80806102e090610a66565b915050610229565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361035b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161035290610afa565b60405180910390fd5b80600080878787876040516020016103769493929190610520565b60405160208183030381529060405280519060200120815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050505050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b610406816103f3565b811461041157600080fd5b50565b600081359050610423816103fd565b92915050565b600060ff82169050919050565b61043f81610429565b811461044a57600080fd5b50565b60008135905061045c81610436565b92915050565b6000806000806080858703121561047c5761047b6103e9565b5b600061048a87828801610414565b945050602061049b8782880161044d565b93505060406104ac87828801610414565b92505060606104bd87828801610414565b91505092959194509250565b6000819050919050565b6104e46104df826103f3565b6104c9565b82525050565b60008160f81b9050919050565b6000610502826104ea565b9050919050565b61051a61051582610429565b6104f7565b82525050565b600061052c82876104d3565b60208201915061053c8286610509565b60018201915061054c82856104d3565b60208201915061055c82846104d3565b60208201915081905095945050505050565b600081905092915050565b82818337600083830152505050565b6000610594838561056e565b93506105a1838584610579565b82840190509392505050565b60006105ba828486610588565b91508190509392505050565b600082825260208201905092915050565b7f6661696c656420746f2063616c6c206d6f7665642065637265636f766572206160008201527f742061646472657373203078303030303030303030303030303030303030303060208201527f3030303030303030303030303030313233343536000000000000000000000000604082015250565b60006106596054836105c6565b9150610664826105d7565b606082019050919050565b600060208201905081810360008301526106888161064c565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006106ba8261068f565b9050919050565b60008160601b9050919050565b60006106d9826106c1565b9050919050565b60006106eb826106ce565b9050919050565b6107036106fe826106af565b6106e0565b82525050565b600061071582846106f2565b60148201915081905092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61077282610729565b810181811067ffffffffffffffff821117156107915761079061073a565b5b80604052505050565b60006107a46103df565b90506107b08282610769565b919050565b600067ffffffffffffffff8211156107d0576107cf61073a565b5b602082029050602081019050919050565b600080fd5b600080fd5b6107f4816106af565b81146107ff57600080fd5b50565b600081359050610811816107eb565b92915050565b600060a0828403121561082d5761082c6107e6565b5b61083760a061079a565b9050600061084784828501610414565b600083015250602061085b8482850161044d565b602083015250604061086f84828501610414565b604083015250606061088384828501610414565b606083015250608061089784828501610802565b60808301525092915050565b60006108b66108b1846107b5565b61079a565b90508083825260208201905060a084028301858111156108d9576108d86107e1565b5b835b8181101561090257806108ee8882610817565b84526020840193505060a0810190506108db565b5050509392505050565b600082601f83011261092157610920610724565b5b81356109318482602086016108a3565b91505092915050565b6000602082840312156109505761094f6103e9565b5b600082013567ffffffffffffffff81111561096e5761096d6103ee565b5b61097a8482850161090c565b91505092915050565b600080600080600060a0868803121561099f5761099e6103e9565b5b60006109ad88828901610414565b95505060206109be8882890161044d565b94505060406109cf88828901610414565b93505060606109e088828901610414565b92505060806109f188828901610802565b9150509295509295909350565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b6000610a7182610a5c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610aa357610aa2610a2d565b5b600182019050919050565b7f72657475726e20616464726573732063616e6e6f742062652030783000000000600082015250565b6000610ae4601c836105c6565b9150610aef82610aae565b602082019050919050565b60006020820190508181036000830152610b1381610ad7565b905091905056fea2646970667358221220154f5b68ccfa5be744e7245765a3530dac4035052284a68b5dded1945b45075e64736f6c63430008120033","movePrecompileToAddress":"0x0000000000000000000000000000000000123456"},"0xc100000000000000000000000000000000000000":{"balance":"0x30d40"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0xc00692604554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000000000000000000000000000d8da6bf26964af9d7eed9e03e53415d37aa96045"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554490000000000000000000000000000000000000000000000000000000000"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x6038","maxUsedGas":"0x6038","status":"0x1"},{"returnData":"0x000000000000000000000000b11cad98ad3f8114e0b3a1f6e7228bc8424df48a","logs":[],"gasUsed":"0x644c","maxUsedGas":"0x644c","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0xb4fe","maxUsedGas":"0xb4fe","status":"0x1"},{"returnData":"0xd8da6bf26964af9d7eed9e03e53415d37aa96045","logs":[],"gasUsed":"0x65f8","maxUsedGas":"0x65f8","status":"0x1"},{"returnData":"0x000000000000000000000000b11cad98ad3f8114e0b3a1f6e7228bc8424df48a","logs":[],"gasUsed":"0x8052","maxUsedGas":"0x8052","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x7bf8","maxUsedGas":"0x7bf8","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x2dbc4","hash":"0x52e67e82683557c127befde7b24d3966ee3bc0bf11a9ebb8742f549c0c46d08b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x1d8af8c22f8cd24d75f4aa7448359a56b6206b7c20098b8f910eabeddd8da7f5","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x6b1","stateRoot":"0x1b662b308351d8d7c445f7e330b53475ec59e53ea031c17a5ce6c5c72cd6c86a","timestamp":"0x1ce","transactions":["0xedf77a4ff7a818e1e32ed4224d633b44fc9ea2f46454c684f341f536f00dbddd","0xaa5c34e49f0c569b197d7cd74000bb6b7a234343415c18d56948ffd1ff560178","0x37762a521271a008b7144043bd02518a9a6281dccad8388a3d60543f2994c672","0x54831ac9dccc09b40ae06c3bb299b5e85a690bd2a158d3100b43d6c96a13c4ad","0x6a3c922c15fa87899371acbdeede4b09e11403578c2dd80da095ac262cada2e3","0xe133d70cd2257ecfb5077d32c53423da6e45b20f6e5c7b803ef2295fa74268b9"],"transactionsRoot":"0xc1e6f7b2e45042bed7219ab8c25b53dc1706f7981367e771031a13b5b524c1d4","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-identity.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-identity.io deleted file mode 100644 index 0ffc7d3505..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-identity.io +++ /dev/null @@ -1,3 +0,0 @@ -// override identity precompile ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0x0000000000000000000000000000000000000004":{"code":"0x","movePrecompileToAddress":"0x0000000000000000000000000000000000123456"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x1234"},{"from":"0xc000000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000004","input":"0x1234"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x1234","logs":[],"gasUsed":"0x5258","maxUsedGas":"0x5258","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5258","maxUsedGas":"0x5258","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xa4b0","hash":"0x81a448e5c347a0929d66bb5f5626ed53c8db99a101fffcff59c54fdb150b9899","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xd4263b4f8bc6337d6751b03db4192a544872db8beeb3be926d891e8910842eb1","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2c5","stateRoot":"0x5b3d05387c9d54317fece26aca8c36dbab07602a6c6c7fd9e00242d858a0be16","timestamp":"0x1ce","transactions":["0x585ff9d542135f4f16fe0728f3bdd7bf2c302ff703b50e64ecf35eb42894f7ae","0x977b45a89fc7eb6215211829ba0fccb0ea5bbcd9dd88ee0e96808ce1489f27dd"],"transactionsRoot":"0xfaf0a9a3d964a97c9e6c42d759535296437d265e0615efebe1887dbe6d09c5be","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-sha256.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-sha256.io deleted file mode 100644 index 0e0d0e030f..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-sha256.io +++ /dev/null @@ -1,3 +0,0 @@ -// override sha256 precompile ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0x0000000000000000000000000000000000000002":{"code":"0x","movePrecompileToAddress":"0x0000000000000000000000000000000000123456"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x1234"},{"from":"0xc000000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000002","input":"0x1234"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x3a103a4e5729ad68c02a678ae39accfbc0ae208096437401b7ceab63cca0622f","logs":[],"gasUsed":"0x5270","maxUsedGas":"0x5270","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5258","maxUsedGas":"0x5258","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xa4c8","hash":"0xa9cb77604da85aac711397140907e94f1c91a51f32e94e442a168b711f0fd399","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x921be37108920799d1ddfdb00a45044f1ed75ce556b49b95e47dc17ad5a3ac30","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2c5","stateRoot":"0x5b3d05387c9d54317fece26aca8c36dbab07602a6c6c7fd9e00242d858a0be16","timestamp":"0x1ce","transactions":["0x585ff9d542135f4f16fe0728f3bdd7bf2c302ff703b50e64ecf35eb42894f7ae","0x986035b499a212f917cde46f7754765f936c78b9a145c6a8cbc20dffb1ccd590"],"transactionsRoot":"0x966f4292b5a052e9afe974ec41e573ed01e8cbbc65c8f2a1a07c14425f164187","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-storage-slots.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-storage-slots.io deleted file mode 100644 index b46217d9cf..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-override-storage-slots.io +++ /dev/null @@ -1,3 +0,0 @@ -// override storage slots ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630ff4c916146100515780633033413b1461008157806344e12f871461009f5780637b8d56e3146100bd575b600080fd5b61006b600480360381019061006691906101f6565b6100d9565b6040516100789190610232565b60405180910390f35b61008961013f565b6040516100969190610232565b60405180910390f35b6100a7610145565b6040516100b49190610232565b60405180910390f35b6100d760048036038101906100d2919061024d565b61014b565b005b60006002821061011e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610115906102ea565b60405180910390fd5b6000820361012c5760005490505b6001820361013a5760015490505b919050565b60015481565b60005481565b6002821061018e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610185906102ea565b60405180910390fd5b600082036101a257806000819055506101b7565b600182036101b657806001819055506101b7565b5b5050565b600080fd5b6000819050919050565b6101d3816101c0565b81146101de57600080fd5b50565b6000813590506101f0816101ca565b92915050565b60006020828403121561020c5761020b6101bb565b5b600061021a848285016101e1565b91505092915050565b61022c816101c0565b82525050565b60006020820190506102476000830184610223565b92915050565b60008060408385031215610264576102636101bb565b5b6000610272858286016101e1565b9250506020610283858286016101e1565b9150509250929050565b600082825260208201905092915050565b7f746f6f2062696720736c6f740000000000000000000000000000000000000000600082015250565b60006102d4600c8361028d565b91506102df8261029e565b602082019050919050565b60006020820190508181036000830152610303816102c7565b905091905056fea2646970667358221220ceea194bb66b5b9f52c83e5bf5a1989255de8cb7157838eff98f970c3a04cb3064736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000001"}]},{"stateOverrides":{"0xc100000000000000000000000000000000000000":{"stateDiff":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x1200000000000000000000000000000000000000000000000000000000000000"}}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000001"}]},{"stateOverrides":{"0xc100000000000000000000000000000000000000":{"state":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x1200000000000000000000000000000000000000000000000000000000000000"}}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000001"}]}],"traceTransfers":true,"returnFullTransactions":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0xac5e","maxUsedGas":"0xac5e","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0xac81","maxUsedGas":"0xac81","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000001","logs":[],"gasUsed":"0x5d85","maxUsedGas":"0x5d85","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000002","logs":[],"gasUsed":"0x5d91","maxUsedGas":"0x5d91","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x213f5","hash":"0xb0847d208be75ff71bf4f4558ec8f280a708a0d9ccfb3c77f8439d2e91b2887e","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x04d3a0b5a27adba7e4ab427e47586257cf7f9391455686a8e5de02d6369fe729","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x3f9","stateRoot":"0xba0c713d06a0d617712e28de90c3d0ff17a3ce5e90b1451c864a64a780ad26bd","timestamp":"0x1ce","transactions":[{"blockHash":"0xb0847d208be75ff71bf4f4558ec8f280a708a0d9ccfb3c77f8439d2e91b2887e","blockNumber":"0x2e","blockTimestamp":"0x1ce","from":"0xc000000000000000000000000000000000000000","gas":"0x2faf080","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0x59bf9b0327340e44f86849c3b2020559d4567410efc30030c708202ccb78f677","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001","nonce":"0x0","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x0","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0xb0847d208be75ff71bf4f4558ec8f280a708a0d9ccfb3c77f8439d2e91b2887e","blockNumber":"0x2e","blockTimestamp":"0x1ce","from":"0xc000000000000000000000000000000000000000","gas":"0x2fa4422","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0xe31ee6882d314903e7ff23726e5c90731af6531a54dbc327cc3cedd1a031837f","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002","nonce":"0x1","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x1","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0xb0847d208be75ff71bf4f4558ec8f280a708a0d9ccfb3c77f8439d2e91b2887e","blockNumber":"0x2e","blockTimestamp":"0x1ce","from":"0xc000000000000000000000000000000000000000","gas":"0x2f997a1","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0xee53c20604e25066c0a8bd533e9fbac7ab0c37a81852f58de5bf335b27324de7","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000000","nonce":"0x2","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x2","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0xb0847d208be75ff71bf4f4558ec8f280a708a0d9ccfb3c77f8439d2e91b2887e","blockNumber":"0x2e","blockTimestamp":"0x1ce","from":"0xc000000000000000000000000000000000000000","gas":"0x2f93a1c","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0xca745694b08804be88f48ec7657ead992b8ff844cfe176925f42cdc335af7690","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000001","nonce":"0x3","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x3","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"}],"transactionsRoot":"0x230cb1e46119630e223c03c9466d894e091fedade7c70963742901ee95fe4c0b","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x1200000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5d85","maxUsedGas":"0x5d85","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000002","logs":[],"gasUsed":"0x5d91","maxUsedGas":"0x5d91","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xbb16","hash":"0x0613545ce0fac79bd5d12e8cac51dedcef496406f354c515291920c7866d622e","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xb0847d208be75ff71bf4f4558ec8f280a708a0d9ccfb3c77f8439d2e91b2887e","receiptsRoot":"0xbb2a8473e55a4e9ae2ac7201f52b44253a3bd950e553ea82694f338087d2a2d3","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x30d","stateRoot":"0xfe84daeffeb392d9f227f98152d95bd6d27643af87e741fa85bef7ac1c86ecba","timestamp":"0x1da","transactions":[{"blockHash":"0x0613545ce0fac79bd5d12e8cac51dedcef496406f354c515291920c7866d622e","blockNumber":"0x2f","blockTimestamp":"0x1da","from":"0xc000000000000000000000000000000000000000","gas":"0x2f8dc8b","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0x163779f68fa214fa1b1fdc8340f741a0af7160cc3aad80fea6ebcad3917728c0","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000000","nonce":"0x4","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x0","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0x0613545ce0fac79bd5d12e8cac51dedcef496406f354c515291920c7866d622e","blockNumber":"0x2f","blockTimestamp":"0x1da","from":"0xc000000000000000000000000000000000000000","gas":"0x2f87f06","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0x3fc70d519865cbdf5198e19949f30057802c4f6eed83d46c62bf543a1d2f045d","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000001","nonce":"0x5","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x1","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"}],"transactionsRoot":"0x70b3072a6191ba2fd31bd29a9af7db527a3b683b3a7275d6dcde52a49ab94fc5","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x1200000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5d85","maxUsedGas":"0x5d85","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5d91","maxUsedGas":"0x5d91","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xbb16","hash":"0xfce8719402d9c1f7429e10c83fa79252fec85bb28d9f3afb2d055eb52905180c","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x30","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x0613545ce0fac79bd5d12e8cac51dedcef496406f354c515291920c7866d622e","receiptsRoot":"0xbb2a8473e55a4e9ae2ac7201f52b44253a3bd950e553ea82694f338087d2a2d3","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x30d","stateRoot":"0x09553723f9270e7776083598fd04a6968c6abbe268b9ce1f14ac73d8700c141b","timestamp":"0x1e6","transactions":[{"blockHash":"0xfce8719402d9c1f7429e10c83fa79252fec85bb28d9f3afb2d055eb52905180c","blockNumber":"0x30","blockTimestamp":"0x1e6","from":"0xc000000000000000000000000000000000000000","gas":"0x2f82175","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0xed91410cdcd641090365fe30cdc58f16411d677aade4adefe88173f85ace3f1e","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000000","nonce":"0x6","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x0","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0xfce8719402d9c1f7429e10c83fa79252fec85bb28d9f3afb2d055eb52905180c","blockNumber":"0x30","blockTimestamp":"0x1e6","from":"0xc000000000000000000000000000000000000000","gas":"0x2f7c3f0","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0x81399a009d1431a2930964a644b5dc933327855251e4bd3ea863918ed179ba74","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000001","nonce":"0x7","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x1","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"}],"transactionsRoot":"0x88f833b3d75b7e7fc98ec1cdd5032ce6a339d795283fbe2060100072def32eb3","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-overwrite-existing-contract.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-overwrite-existing-contract.io deleted file mode 100644 index f66b230cc9..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-overwrite-existing-contract.io +++ /dev/null @@ -1,3 +0,0 @@ -// overwrites existing contract with new contract ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000031ec7","input":"0xa9059cbb0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000a"}]},{"stateOverrides":{"0x0000000000000000000000000000000000031ec7":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000031ec7","input":"0xa9059cbb0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000a"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5564","maxUsedGas":"0x5564","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x5564","hash":"0xb5007b5f67f34d49615428b555c82ec50f9bca65ec221807ac9705579727d9ab","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xb22722bd6c57f300c573c6ab3dd1ba778c14752faa49cf44f153d39b394b4500","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2da","stateRoot":"0x13686e8b63d4a7c67e6a33cbe18053ad0d64f0cb8dc60a36cd07dbb06cc6e680","timestamp":"0x1ce","transactions":["0x3280b9ad0a9859c47b1fa76de3e24e73f2d3f4a66330f2501ac09092eff7eb1d"],"transactionsRoot":"0xbef7c2281127af88451a4109430bfef9c388028f1b1fd9b375676323031880c0","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c72dd9d5e883e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000047e7c40000000000000000000000000000000000000000000000000000000000000002f00000000000000000000000000000000000000000000000000000000000001da0000000000000000000000000000000000000000000000000000000002fa477a0000000000000000000000000000000000000000000000000000000000000000b5007b5f67f34d49615428b555c82ec50f9bca65ec221807ac9705579727d9ab","logs":[],"gasUsed":"0x5914","maxUsedGas":"0x5914","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x5914","hash":"0x46be361aee054365eeb9f5028669e9d8d0c7ab147ddb809d4be4416e5a1a8403","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xb5007b5f67f34d49615428b555c82ec50f9bca65ec221807ac9705579727d9ab","receiptsRoot":"0x135a287d95f5563462f3b034debbc0fd3f71a5816b49ad9d46e053b366de0f75","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2da","stateRoot":"0x25a3b749bb4b768b7024be7b73e3a6180f8dec56bb4d9b6d32f922cc58bd9ae4","timestamp":"0x1da","transactions":["0xce9246c6df06b19cc1d43f03d0442c02871853c20d7c8367d6bb1c03385785c3"],"transactionsRoot":"0xbe029ec4cc7f84a7f5e24f9a01c89c3a08bebe69b00788e638e1bd786fd1a680","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-precompile-is-sending-transaction.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-precompile-is-sending-transaction.io deleted file mode 100644 index 13809ede1f..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-precompile-is-sending-transaction.io +++ /dev/null @@ -1,3 +0,0 @@ -// send transaction from a precompile ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0x0000000000000000000000000000000000000004","to":"0x0000000000000000000000000000000000000002","input":"0x1234"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x3a103a4e5729ad68c02a678ae39accfbc0ae208096437401b7ceab63cca0622f","logs":[],"gasUsed":"0x5270","maxUsedGas":"0x5270","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x5270","hash":"0x92dc3fd0b575d48f815030e6289d0736cc1ef2e7ce84cd7847aa68d0058c9b5b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xd6049c50ce5e85aa419ac8865b260d9756c7bdece9a8110377c8527dde5e62de","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x294","stateRoot":"0xce6137ad9fe34be79d56e51838183986daa5d1928a49240244f30e93348bfbbd","timestamp":"0x1ce","transactions":["0x7f497e3a61ff8fcc36a09e3ad36c94349ff9ccb9818177571a8ed89df8cae980"],"transactionsRoot":"0xaba41f3c118ea976c7202226288faefc0174b4472749e026309f6f98dca7dd0c","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-run-gas-spending.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-run-gas-spending.io deleted file mode 100644 index 2f15066218..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-run-gas-spending.io +++ /dev/null @@ -1,3 +0,0 @@ -// spend a lot gas in separate blocks ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"gasLimit":"0x16e360"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063815b8ab414610030575b600080fd5b61004a600480360381019061004591906100b6565b61004c565b005b60005a90505b60011561007657815a826100669190610112565b106100715750610078565b610052565b505b50565b600080fd5b6000819050919050565b61009381610080565b811461009e57600080fd5b50565b6000813590506100b08161008a565b92915050565b6000602082840312156100cc576100cb61007b565b5b60006100da848285016100a1565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061011d82610080565b915061012883610080565b92508282039050818111156101405761013f6100e3565b5b9291505056fea2646970667358221220a659ba4db729a6ee4db02fcc5c1118db53246b0e5e686534fc9add6f2e93faec64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab40000000000000000000000000000000000000000000000000000000000000000"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab40000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab400000000000000000000000000000000000000000000000000000000000f4240"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab40000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab400000000000000000000000000000000000000000000000000000000000f4240"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5545","maxUsedGas":"0x5545","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x16e360","gasUsed":"0x5545","hash":"0xc0e422f2740b5b3b9d8fdc64d75337b3e06f365ed42490af259e7b4c3b3a963d","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xfecfac291a1f0f4fd2b7b3625942d53077dc241c302619b8d23ceb4dfdaa65ab","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2b7","stateRoot":"0x8cd3af182b7c74ae96dc2ce7d219ccd8cdb0efe1f09c7812f71dbec453458c97","timestamp":"0x1ce","transactions":["0xeee5b06a0cbade5ba2e8026e28547646a6fdbf46a26ee6b35d4b6d7348a032b3"],"transactionsRoot":"0xcb8bae5efcd6a4a06b788279d02c1919cdf9ff19c79a159b6869f0742f952a78","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5545","maxUsedGas":"0x5545","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0xf983f","maxUsedGas":"0xf983f","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x16e360","gasUsed":"0xfed84","hash":"0x9e795c69320dbe20aa91ac2f9f8d36980ebf39938e100a228962c574e2baf023","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xc0e422f2740b5b3b9d8fdc64d75337b3e06f365ed42490af259e7b4c3b3a963d","receiptsRoot":"0x988bbfca68bd95ead7343b0bee646d64c2f71924e7906ca85a1d3d8b6a8ddd89","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x30b","stateRoot":"0x810a93963fe16ade03c17f1b3640d61080284a825bef84c86123e9909bded770","timestamp":"0x1da","transactions":["0x3988125f3d82c08622964f81fe4296e4a4a3cf397a15abb3e26071883ce023e2","0x49e4b43e34f2c3dffab911e75bc357d4f05c0bb4476736ea948afa744acfd190"],"transactionsRoot":"0x41016673bb3dead778440012273958df153ce37130d5c654d0219847174b5172","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5545","maxUsedGas":"0x5545","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0xf983f","maxUsedGas":"0xf983f","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x16e360","gasUsed":"0xfed84","hash":"0x0cd479552aa51e026dcaf216fd10b7e3ac4f6683798f7ab99d676ccbfbb9f826","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x30","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x9e795c69320dbe20aa91ac2f9f8d36980ebf39938e100a228962c574e2baf023","receiptsRoot":"0x988bbfca68bd95ead7343b0bee646d64c2f71924e7906ca85a1d3d8b6a8ddd89","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x30b","stateRoot":"0x083e38e4eea0ffe0427a67539f15f4ec8332a40fc6f1abede3c8ae1a9d52b423","timestamp":"0x1e6","transactions":["0x5096d3bfcf33b71a3b7b5bbd5dcc62645ec007938ebac047dd0ea01750dce232","0xb88f3e2c3697c1c5049a49e531099b9eac18d47c17c222fe8c407b1b7daef929"],"transactionsRoot":"0x286828e26e06a7d570e1a7c078f0f34d450ce239eb138d34c924f07bd69cb9d0","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-run-out-of-gas-in-block-38015.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-run-out-of-gas-in-block-38015.io deleted file mode 100644 index d16588e97c..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-run-out-of-gas-in-block-38015.io +++ /dev/null @@ -1,3 +0,0 @@ -// we should get out of gas error if a block consumes too much gas (-38015) ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"gasLimit":"0x16e360"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063815b8ab414610030575b600080fd5b61004a600480360381019061004591906100b6565b61004c565b005b60005a90505b60011561007657815a826100669190610112565b106100715750610078565b610052565b505b50565b600080fd5b6000819050919050565b61009381610080565b811461009e57600080fd5b50565b6000813590506100b08161008a565b92915050565b6000602082840312156100cc576100cb61007b565b5b60006100da848285016100a1565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061011d82610080565b915061012883610080565b92508282039050818111156101405761013f6100e3565b5b9291505056fea2646970667358221220a659ba4db729a6ee4db02fcc5c1118db53246b0e5e686534fc9add6f2e93faec64736f6c63430008120033"}}},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab400000000000000000000000000000000000000000000000000000000000f4240"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x815b8ab400000000000000000000000000000000000000000000000000000000000f4240"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x16e360","gasUsed":"0x0","hash":"0xc3d0be9b772c1a4a209c91b86dfe1171a6b7ba7f3e613017d36139ad34f616f1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x261","stateRoot":"0x46c62b18a1070b51926b280f9029b771c6adec58735d2a37dc799e75ab1f8274","timestamp":"0x1ce","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0xf983f","maxUsedGas":"0xf983f","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x74b21","maxUsedGas":"0x74b21","status":"0x0","error":{"message":"out of gas","code":-32015}}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x16e360","gasUsed":"0x16e360","hash":"0x1a51b2f283dcf94e68717f6492c0e279a9c1e173676232e72ca75593a028219c","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xc3d0be9b772c1a4a209c91b86dfe1171a6b7ba7f3e613017d36139ad34f616f1","receiptsRoot":"0xde8fb4841c98c24eca61ebcf6e28621506da5add36752582b8e6c40a4080aacd","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x30b","stateRoot":"0xd0579701a4e1935b9e0830e2421a453d17dcd2b4ef58333e3e5097629b857217","timestamp":"0x1da","transactions":["0x02332c506791156b28c7f5682a9e07ffe9600ee55cc411ee62c6f1344ceec51c","0xe25438525e88d23b473ea69cc32a0001516836befab3cf98205fcbb3688bcb1f"],"transactionsRoot":"0x27e68fcd6bd3ca51f05221398f894cc6da401597166560b08025ad663caaeae2","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-self-destructing-state-override.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-self-destructing-state-override.io deleted file mode 100644 index 82ec0f0758..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-self-destructing-state-override.io +++ /dev/null @@ -1,3 +0,0 @@ -// when selfdestructing a state override, the state override should go away ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c806383197ef014602d575b600080fd5b60336035565b005b600073ffffffffffffffffffffffffffffffffffffffff16fffea26469706673582212208e566fde20a17fff9658b9b1db37e27876fd8934ccf9b2aa308cabd37698681f64736f6c63430008120033"},"0xc300000000000000000000000000000000000000":{"code":"0x73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063dce4a4471461003a575b600080fd5b610054600480360381019061004f91906100f8565b61006a565b60405161006191906101b5565b60405180910390f35b6060813b6040519150601f19601f602083010116820160405280825280600060208401853c50919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100c58261009a565b9050919050565b6100d5816100ba565b81146100e057600080fd5b50565b6000813590506100f2816100cc565b92915050565b60006020828403121561010e5761010d610095565b5b600061011c848285016100e3565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561015f578082015181840152602081019050610144565b60008484015250505050565b6000601f19601f8301169050919050565b600061018782610125565b6101918185610130565b93506101a1818560208601610141565b6101aa8161016b565b840191505092915050565b600060208201905081810360008301526101cf818461017c565b90509291505056fea26469706673582212206a5f0cd9f230619fa520fc4b9d4b518643258cad412f2fa33945ce528b4b895164736f6c63430008120033"}}},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc300000000000000000000000000000000000000","input":"0xdce4a447000000000000000000000000c200000000000000000000000000000000000000"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x83197ef0"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc300000000000000000000000000000000000000","input":"0xdce4a447000000000000000000000000c200000000000000000000000000000000000000"}]},{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c806383197ef014602d575b600080fd5b60336035565b005b600073ffffffffffffffffffffffffffffffffffffffff16fffea26469706673582212208e566fde20a17fff9658b9b1db37e27876fd8934ccf9b2aa308cabd37698681f64736f6c63430008120033"}}},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc300000000000000000000000000000000000000","input":"0xdce4a447000000000000000000000000c200000000000000000000000000000000000000"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xb9e10196e927656651630e37791bec8738b795281ef805f287d56b837f938705","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x0e5eaa61213087edf0f09983b3deedb336b736b00dcf6d3787acff18252ca57e","timestamp":"0x1ce","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000856080604052348015600f57600080fd5b506004361060285760003560e01c806383197ef014602d575b600080fd5b60336035565b005b600073ffffffffffffffffffffffffffffffffffffffff16fffea26469706673582212208e566fde20a17fff9658b9b1db37e27876fd8934ccf9b2aa308cabd37698681f64736f6c63430008120033000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x62c0","maxUsedGas":"0x62c0","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x62c0","hash":"0x9d41e491006b843831524a2541074dd7ccb00e9af1e4c9847f38da0e3f841c34","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xb9e10196e927656651630e37791bec8738b795281ef805f287d56b837f938705","receiptsRoot":"0x2daac3b758b867b7648cea8349af380bd28e8adede8d9b42a0a7bcf150ae9d9e","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2b9","stateRoot":"0x5b4af7aafe158f2f0c7124840cac33ea71be4e983de8452689a2306da3dab07b","timestamp":"0x1da","transactions":["0x0affb3ab0c18491b058cc2a3fe834bf2b4b37a04ec18471eb3365811eb026729"],"transactionsRoot":"0xca9f7a139a472f8e0200a80998c7f8fef5a3445ddb817394283a992fa3f185ab","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x664a","maxUsedGas":"0x664a","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x664a","hash":"0x78dce5e3e105352a40e1e9b5faed01ed6201358cd71e9502d905be9d0a80c5ce","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x30","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x9d41e491006b843831524a2541074dd7ccb00e9af1e4c9847f38da0e3f841c34","receiptsRoot":"0xe53cac8ba7c4639309c7959eb884c607e179624f118940ac558ff2cdbf4df3aa","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x296","stateRoot":"0xc8198beb6b0e6eb3a5dc77545992a4abf0541d66e78fb7da86e57ba773f9e891","timestamp":"0x1e6","transactions":["0x7f5440a59455b300515f9552d9ac922e80e1c04002af27ccc1c2e059d11d3e28"],"transactionsRoot":"0xdf373e2e2df9cb2f4f4b6349e5f2025927bef109f7feca88bcaf4d1834a63d94","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000856080604052348015600f57600080fd5b506004361060285760003560e01c806383197ef014602d575b600080fd5b60336035565b005b600073ffffffffffffffffffffffffffffffffffffffff16fffea26469706673582212208e566fde20a17fff9658b9b1db37e27876fd8934ccf9b2aa308cabd37698681f64736f6c63430008120033000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x62c0","maxUsedGas":"0x62c0","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x62c0","hash":"0x08bbe1959d225dc7a19df974d4e8fcc72faf05cd543672c0a40ebc38b4c80eac","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x31","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x78dce5e3e105352a40e1e9b5faed01ed6201358cd71e9502d905be9d0a80c5ce","receiptsRoot":"0x2daac3b758b867b7648cea8349af380bd28e8adede8d9b42a0a7bcf150ae9d9e","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2b9","stateRoot":"0x0870c44a0817bd40d32e895b75f475706b5e61990229c0ed40435a59e175e917","timestamp":"0x1f2","transactions":["0xd0f9eeb20ddc1721aeef6191b9560bb06f8ab4963a22ef75cdcd7b0aa33f5856"],"transactionsRoot":"0x246cedb2c426782102f89161ce5b0d7b308347529029381ed09815c20fed4292","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x91b4edae528f9928842b54ba54e9906f53115d50c555607c5d3f142c4600981e","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x32","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x08bbe1959d225dc7a19df974d4e8fcc72faf05cd543672c0a40ebc38b4c80eac","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x4028ccdc0bd692d233008937639a4ee34bc264c427fd2e34be1ed6310b2d292c","timestamp":"0x1fe","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000856080604052348015600f57600080fd5b506004361060285760003560e01c806383197ef014602d575b600080fd5b60336035565b005b600073ffffffffffffffffffffffffffffffffffffffff16fffea26469706673582212208e566fde20a17fff9658b9b1db37e27876fd8934ccf9b2aa308cabd37698681f64736f6c63430008120033000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x62c0","maxUsedGas":"0x62c0","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x62c0","hash":"0x4db544f0f7ee3f73a13b51fd0ac42040c8158d71dc230cecf478b3dedbe66451","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x33","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x91b4edae528f9928842b54ba54e9906f53115d50c555607c5d3f142c4600981e","receiptsRoot":"0x2daac3b758b867b7648cea8349af380bd28e8adede8d9b42a0a7bcf150ae9d9e","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2b9","stateRoot":"0x6e45b5b18c2b3053131c89d2cc133773347ce27a9ea449100712749290e23563","timestamp":"0x20a","transactions":["0xb853dbf19ca040ed91fa474961197cdd5a0fb6fcb91923cf86385348d8caa75e"],"transactionsRoot":"0xf03c3cb5aa0636553f8fe7f0b35da5d7e7e77d1cb68847c8dd9654787978828b","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-self-destructive-contract-produces-logs.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-self-destructive-contract-produces-logs.io deleted file mode 100644 index ef1489fe9d..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-self-destructive-contract-produces-logs.io +++ /dev/null @@ -1,3 +0,0 @@ -// self destructive contract produces logs ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c806383197ef014602d575b600080fd5b60336035565b005b600073ffffffffffffffffffffffffffffffffffffffff16fffea26469706673582212208e566fde20a17fff9658b9b1db37e27876fd8934ccf9b2aa308cabd37698681f64736f6c63430008120033","balance":"0x1e8480"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x83197ef0"}]}],"traceTransfers":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[{"address":"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c200000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000001e8480","blockNumber":"0x2e","transactionHash":"0x601cd1b2f9161ebf790d5a555cdcf9620763b8d75469d8ca58432bcf6f1b6e23","transactionIndex":"0x0","blockHash":"0xa69fb01427760dfee11e9bcab83cb43c0bc3af3d2509bb24116e4c2077a64e2a","blockTimestamp":"0x1ce","logIndex":"0x0","removed":false}],"gasUsed":"0x664a","maxUsedGas":"0x664a","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x664a","hash":"0xa69fb01427760dfee11e9bcab83cb43c0bc3af3d2509bb24116e4c2077a64e2a","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xe53cac8ba7c4639309c7959eb884c607e179624f118940ac558ff2cdbf4df3aa","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x296","stateRoot":"0x5827d0c83b4c0eb865ea33d3da8778c4c3701ffd377cf01df654257d90005741","timestamp":"0x1ce","transactions":["0x601cd1b2f9161ebf790d5a555cdcf9620763b8d75469d8ca58432bcf6f1b6e23"],"transactionsRoot":"0xd9f6c56fb68a52f5583f9be950cb93274e6c4c1714fb47a25c8d003b5fd577fb","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-send-eth-and-delegate-call-to-eoa.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-send-eth-and-delegate-call-to-eoa.io deleted file mode 100644 index 72f6f04e6a..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-send-eth-and-delegate-call-to-eoa.io +++ /dev/null @@ -1,3 +0,0 @@ -// sending eth and delegate calling a eoa should only produce one log ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc100000000000000000000000000000000000000":{"code":"0x608060405273ffffffffffffffffffffffffffffffffffffffff73c200000000000000000000000000000000000000167fa619486e000000000000000000000000000000000000000000000000000000005f3503605e57805f5260205ff35b365f80375f80365f845af43d5f803e5f81036077573d5ffd5b3d5ff3fea26469706673582212206b787fe3e60b14a5c449d37005afac7b1803ee7c87e12d2740b96a158f34802a64736f6c63430008160033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8","input":"0x"}]}],"traceTransfers":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[{"address":"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c000000000000000000000000000000000000000","0x000000000000000000000000c100000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x2e","transactionHash":"0xf1c5abb08809ef760f87aeabe7a87284c60797192dab6d2f0d26c27c9c038e9d","transactionIndex":"0x0","blockHash":"0x574d39aec2e1ee68064eb51a9da5441ee259ddb09a9de0d12b1e7113fa9fd280","blockTimestamp":"0x1ce","logIndex":"0x0","removed":false}],"gasUsed":"0x5ca0","maxUsedGas":"0x5ca0","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x5ca0","hash":"0x574d39aec2e1ee68064eb51a9da5441ee259ddb09a9de0d12b1e7113fa9fd280","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xbdd8e6637191b852715bd7c3c3e6bc98e9d2df8f696606f17cc80393ccd17837","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x294","stateRoot":"0x3e205e9659e66dd750961c7eae3fb9d9dbf1cb9c05018d66817b5b0cd3317c74","timestamp":"0x1ce","transactions":["0xf1c5abb08809ef760f87aeabe7a87284c60797192dab6d2f0d26c27c9c038e9d"],"transactionsRoot":"0x153033b7bf79591032a757961da3656789d4bf0873801108ff81449dfe8df202","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-send-eth-and-delegate-call-to-payble-contract.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-send-eth-and-delegate-call-to-payble-contract.io deleted file mode 100644 index b3c36a3234..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-send-eth-and-delegate-call-to-payble-contract.io +++ /dev/null @@ -1,3 +0,0 @@ -// sending eth and delegate calling a payable contract should only produce one log ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc100000000000000000000000000000000000000":{"code":"0x608060405273ffffffffffffffffffffffffffffffffffffffff73c200000000000000000000000000000000000000167fa619486e000000000000000000000000000000000000000000000000000000005f3503605e57805f5260205ff35b365f80375f80365f845af43d5f803e5f81036077573d5ffd5b3d5ff3fea26469706673582212206b787fe3e60b14a5c449d37005afac7b1803ee7c87e12d2740b96a158f34802a64736f6c63430008160033"},"0xc200000000000000000000000000000000000000":{"code":"0x60806040525f366060915050805190602001f3fea2646970667358221220a6fbca1301e2861ff1227c7478f4351a0978cca210732aaf5d036123a0d2f68664736f6c63430008160033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8","input":"0x"}]}],"traceTransfers":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[{"address":"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c000000000000000000000000000000000000000","0x000000000000000000000000c100000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x2e","transactionHash":"0xf1c5abb08809ef760f87aeabe7a87284c60797192dab6d2f0d26c27c9c038e9d","transactionIndex":"0x0","blockHash":"0x73b0430b38e222140652e3d84fb2ab6e073350a6b07d46c25fc241097eef8411","blockTimestamp":"0x1ce","logIndex":"0x0","removed":false}],"gasUsed":"0x5cd2","maxUsedGas":"0x5cd2","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x5cd2","hash":"0x73b0430b38e222140652e3d84fb2ab6e073350a6b07d46c25fc241097eef8411","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xb58970d533a21cc92bd172f330ce93767aade1f6388829d569cc7c96cb3c0c01","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x294","stateRoot":"0xff13d5fe0fb3d7355b972a715a51b9a330d923da2649b79af2618e06b4ceff6d","timestamp":"0x1ce","transactions":["0xf1c5abb08809ef760f87aeabe7a87284c60797192dab6d2f0d26c27c9c038e9d"],"transactionsRoot":"0x153033b7bf79591032a757961da3656789d4bf0873801108ff81449dfe8df202","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-send-eth-and-delegate-call.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-send-eth-and-delegate-call.io deleted file mode 100644 index 77fbfa4e50..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-send-eth-and-delegate-call.io +++ /dev/null @@ -1,3 +0,0 @@ -// sending eth and delegate calling should only produce one log ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1e8480"},"0xc100000000000000000000000000000000000000":{"code":"0x60806040526004361061001d575f3560e01c80635c19a95c14610021575b5f80fd5b61003b6004803603810190610036919061011d565b610052565b6040516100499291906101ec565b60405180910390f35b5f60608273ffffffffffffffffffffffffffffffffffffffff1660405161007890610247565b5f60405180830381855af49150503d805f81146100b0576040519150601f19603f3d011682016040523d82523d5f602084013e6100b5565b606091505b5091509150915091565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100ec826100c3565b9050919050565b6100fc816100e2565b8114610106575f80fd5b50565b5f81359050610117816100f3565b92915050565b5f60208284031215610132576101316100bf565b5b5f61013f84828501610109565b91505092915050565b5f8115159050919050565b61015c81610148565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561019957808201518184015260208101905061017e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6101be82610162565b6101c8818561016c565b93506101d881856020860161017c565b6101e1816101a4565b840191505092915050565b5f6040820190506101ff5f830185610153565b818103602083015261021181846101b4565b90509392505050565b5f81905092915050565b50565b5f6102325f8361021a565b915061023d82610224565b5f82019050919050565b5f61025182610227565b915081905091905056fea2646970667358221220c79623409cf56de66f689f36463cb9aa88ed853501e557889625b16b1a602b2764736f6c63430008160033"},"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8","input":"0x5c19a95c000000000000000000000000c200000000000000000000000000000000000000"}]}],"traceTransfers":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000","logs":[{"address":"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c000000000000000000000000000000000000000","0x000000000000000000000000c100000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x2e","transactionHash":"0x3ac519845f15d5a0b5a87eaa2d3141b73972ce4a556f67c5f0a7ed4f05a55a43","transactionIndex":"0x0","blockHash":"0xf6c3b02217036186e452a1cac27c1ff33fdb7269bbb4b2bfe05ec2605989da4c","blockTimestamp":"0x1ce","logIndex":"0x0","removed":false}],"gasUsed":"0x61fe","maxUsedGas":"0x61fe","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x61fe","hash":"0xf6c3b02217036186e452a1cac27c1ff33fdb7269bbb4b2bfe05ec2605989da4c","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x3e3e6e5b7b740d3fc4d6237faf7808ff487855b2512263b96d0c0895356ba195","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2bb","stateRoot":"0x060ac072ffd38b22a14dc2b83df540d2e95c6f2133db87eae4ccba10c69ef965","timestamp":"0x1ce","transactions":["0x3ac519845f15d5a0b5a87eaa2d3141b73972ce4a556f67c5f0a7ed4f05a55a43"],"transactionsRoot":"0x07ae8f1503764c4548f258e0d73e49b356b8d8c66d5bd581c6b1cb3349f696e7","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-set-read-storage.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-set-read-storage.io deleted file mode 100644 index 519fb5c6c3..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-set-read-storage.io +++ /dev/null @@ -1,3 +0,0 @@ -// simulates calls setting and reading from storage contract ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b60405161005091906100d9565b60405180910390f35b610073600480360381019061006e919061009d565b61007e565b005b60008054905090565b8060008190555050565b60008135905061009781610103565b92915050565b6000602082840312156100b3576100b26100fe565b5b60006100c184828501610088565b91505092915050565b6100d3816100f4565b82525050565b60006020820190506100ee60008301846100ca565b92915050565b6000819050919050565b600080fd5b61010c816100f4565b811461011757600080fd5b5056fea2646970667358221220404e37f487a89a932dca5e77faaf6ca2de3b991f93d230604b1b8daaef64766264736f6c63430008070033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x6057361d0000000000000000000000000000000000000000000000000000000000000005"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x2e64cec1"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0xaacc","maxUsedGas":"0xaacc","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000005","logs":[],"gasUsed":"0x5bb7","maxUsedGas":"0x5bb7","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x10683","hash":"0xfa5eeb7678b73b2279140df9f725e31d8b1fe5cb2ab2222b5c24279224f1006c","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x697ac2662c8fbfe62b7bbd866618c7efad9cc044e66da184d2b29330cef91dc8","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2ec","stateRoot":"0xb984833061a30121d676bebfcf88b0f45a1d1e44c5df0e73e062425c68ef76a3","timestamp":"0x1ce","transactions":["0x0c316124563c91479e019be7b012995015f22f6a150c1f42a78bc25e12cd00f7","0x5e33cfd9b2db6b1ddd99c8cb323858b3844afd154d229233167378f507998721"],"transactionsRoot":"0xc3dc8ec8eece695a22e6d38b1ad40f633ee8f96ec5684741f684fbacc170b9b8","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-more-params-validate.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-more-params-validate.io deleted file mode 100644 index e2c35156a6..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-more-params-validate.io +++ /dev/null @@ -1,3 +0,0 @@ -// simulates a simple do-nothing transaction with more fields set ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"baseFeePerGas":"0x0"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x334500"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x52080","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","maxFeePerBlobGas":"0x0","value":"0x0","nonce":"0x0","input":"0x"}]}],"validation":true,"returnFullTransactions":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x5208","hash":"0xa3a3d70ae2c417b80811d448cc6c2a27b5b0151fb93de5fa3dfa16303a70e2f8","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x291","stateRoot":"0xa71c9323ee8ea101844ff13303d5a75dda6be0900d6bd6771695822747822e93","timestamp":"0x1ce","transactions":[{"blockHash":"0xa3a3d70ae2c417b80811d448cc6c2a27b5b0151fb93de5fa3dfa16303a70e2f8","blockNumber":"0x2e","blockTimestamp":"0x1ce","from":"0xc000000000000000000000000000000000000000","gas":"0x52080","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0xc47b561911853c4423198465f9b845f6729cab26a5c64cc8bd75fdbfb8739a75","input":"0x","nonce":"0x0","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x0","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"}],"transactionsRoot":"0xde9fa8090280362f587efae3cfa656f60585b18b0a548b2e802a7ac9c0869b5b","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-no-funds-with-balance-querying.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-no-funds-with-balance-querying.io deleted file mode 100644 index 93789da085..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-no-funds-with-balance-querying.io +++ /dev/null @@ -1,3 +0,0 @@ -// simulates a simple ethSimulate transfer when account has no funds with querying balances before and after ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f8b2cb4f14610030575b600080fd5b61004a600480360381019061004591906100e4565b610060565b604051610057919061012a565b60405180910390f35b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100b182610086565b9050919050565b6100c1816100a6565b81146100cc57600080fd5b50565b6000813590506100de816100b8565b92915050565b6000602082840312156100fa576100f9610081565b5b6000610108848285016100cf565b91505092915050565b6000819050919050565b61012481610111565b82525050565b600060208201905061013f600083018461011b565b9291505056fea2646970667358221220172c443a163d8a43e018c339d1b749c312c94b6de22835953d960985daf228c764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c100000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c100000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xf8b2cb4f000000000000000000000000c100000000000000000000000000000000000000"}]}],"returnFullTransactions":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-38014,"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 49953622)"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-no-funds-with-validation-without-nonces.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-no-funds-with-validation-without-nonces.io deleted file mode 100644 index 7dabc88d05..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-no-funds-with-validation-without-nonces.io +++ /dev/null @@ -1,3 +0,0 @@ -// simulates a simple ethSimulate transfer when account has no funds with validation. This should fail as the nonce is not set for the second transaction. ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8","nonce":"0x0"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"}]}],"validation":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"err: max fee per gas less than block base fee: address 0xC000000000000000000000000000000000000000, maxFeePerGas: 0, baseFee: 80286026 (supplied gas 50000000)"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-no-funds-with-validation.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-no-funds-with-validation.io deleted file mode 100644 index 3b447574f4..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-no-funds-with-validation.io +++ /dev/null @@ -1,3 +0,0 @@ -// simulates a simple ethSimulate transfer when account has no funds with validation ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8","nonce":"0x0"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8","nonce":"0x1"}]}],"validation":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"err: max fee per gas less than block base fee: address 0xC000000000000000000000000000000000000000, maxFeePerGas: 0, baseFee: 80286026 (supplied gas 50000000)"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-no-funds.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-no-funds.io deleted file mode 100644 index 6ccace6a3a..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-no-funds.io +++ /dev/null @@ -1,3 +0,0 @@ -// simulates a simple ethSimulate transfer when account has no funds ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-38014,"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 50000000)"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-send-from-contract-no-balance.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-send-from-contract-no-balance.io deleted file mode 100644 index 989b4926d8..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-send-from-contract-no-balance.io +++ /dev/null @@ -1,3 +0,0 @@ -// Sending eth from contract without balance ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x60806040526004361061001e5760003560e01c80634b64e49214610023575b600080fd5b61003d6004803603810190610038919061011f565b61003f565b005b60008173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050509050806100b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100af906101a9565b60405180910390fd5b5050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ec826100c1565b9050919050565b6100fc816100e1565b811461010757600080fd5b50565b600081359050610119816100f3565b92915050565b600060208284031215610135576101346100bc565b5b60006101438482850161010a565b91505092915050565b600082825260208201905092915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061019360148361014c565b915061019e8261015d565b602082019050919050565b600060208201905081810360008301526101c281610186565b905091905056fea2646970667358221220563acd6f5b8ad06a3faf5c27fddd0ecbc198408b99290ce50d15c2cf7043694964736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-38014,"message":"err: insufficient funds for gas * price + value: address 0xC000000000000000000000000000000000000000 have 0 want 1000 (supplied gas 50000000)"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-send-from-contract-with-validation.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-send-from-contract-with-validation.io deleted file mode 100644 index d5f5a24538..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-send-from-contract-with-validation.io +++ /dev/null @@ -1,3 +0,0 @@ -// Sending eth from contract with validation enabled ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x60806040526004361061001e5760003560e01c80634b64e49214610023575b600080fd5b61003d6004803603810190610038919061011f565b61003f565b005b60008173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050509050806100b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100af906101a9565b60405180910390fd5b5050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ec826100c1565b9050919050565b6100fc816100e1565b811461010757600080fd5b50565b600081359050610119816100f3565b92915050565b600060208284031215610135576101346100bc565b5b60006101438482850161010a565b91505092915050565b600082825260208201905092915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061019360148361014c565b915061019e8261015d565b602082019050919050565b600060208201905081810360008301526101c281610186565b905091905056fea2646970667358221220563acd6f5b8ad06a3faf5c27fddd0ecbc198408b99290ce50d15c2cf7043694964736f6c63430008120033","balance":"0x3e8"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true,"validation":true,"returnFullTransactions":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"err: max fee per gas less than block base fee: address 0xC000000000000000000000000000000000000000, maxFeePerGas: 0, baseFee: 80286026 (supplied gas 50000000)"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-send-from-contract.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-send-from-contract.io deleted file mode 100644 index 20139ff9dc..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-send-from-contract.io +++ /dev/null @@ -1,3 +0,0 @@ -// Sending eth from contract ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"code":"0x60806040526004361061001e5760003560e01c80634b64e49214610023575b600080fd5b61003d6004803603810190610038919061011f565b61003f565b005b60008173ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f193505050509050806100b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016100af906101a9565b60405180910390fd5b5050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100ec826100c1565b9050919050565b6100fc816100e1565b811461010757600080fd5b50565b600081359050610119816100f3565b92915050565b600060208284031215610135576101346100bc565b5b60006101438482850161010a565b91505092915050565b600082825260208201905092915050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b600061019360148361014c565b915061019e8261015d565b602082019050919050565b600060208201905081810360008301526101c281610186565b905091905056fea2646970667358221220563acd6f5b8ad06a3faf5c27fddd0ecbc198408b99290ce50d15c2cf7043694964736f6c63430008120033","balance":"0x3e8"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"}]}],"traceTransfers":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[{"address":"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c000000000000000000000000000000000000000","0x000000000000000000000000c100000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x2e","transactionHash":"0xf1c5abb08809ef760f87aeabe7a87284c60797192dab6d2f0d26c27c9c038e9d","transactionIndex":"0x0","blockHash":"0xce84cb5045a5f7d65e35bb92e10cbf5fa3d959994a8f4dc9bd0d6a44522af799","blockTimestamp":"0x1ce","logIndex":"0x0","removed":false}],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x5208","hash":"0xce84cb5045a5f7d65e35bb92e10cbf5fa3d959994a8f4dc9bd0d6a44522af799","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x294","stateRoot":"0xd3920f396a9fb79010fb955d21d00139aedca22e07d0de4c43f2a75d2ce47ee4","timestamp":"0x1ce","transactions":["0xf1c5abb08809ef760f87aeabe7a87284c60797192dab6d2f0d26c27c9c038e9d"],"transactionsRoot":"0x153033b7bf79591032a757961da3656789d4bf0873801108ff81449dfe8df202","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-state-diff.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-state-diff.io deleted file mode 100644 index 2f6536a6f1..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-state-diff.io +++ /dev/null @@ -1,3 +0,0 @@ -// override one state variable with state ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x7d0"},"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630ff4c916146100515780633033413b1461008157806344e12f871461009f5780637b8d56e3146100bd575b600080fd5b61006b600480360381019061006691906101f6565b6100d9565b6040516100789190610232565b60405180910390f35b61008961013f565b6040516100969190610232565b60405180910390f35b6100a7610145565b6040516100b49190610232565b60405180910390f35b6100d760048036038101906100d2919061024d565b61014b565b005b60006002821061011e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610115906102ea565b60405180910390fd5b6000820361012c5760005490505b6001820361013a5760015490505b919050565b60015481565b60005481565b6002821061018e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610185906102ea565b60405180910390fd5b600082036101a257806000819055506101b7565b600182036101b657806001819055506101b7565b5b5050565b600080fd5b6000819050919050565b6101d3816101c0565b81146101de57600080fd5b50565b6000813590506101f0816101ca565b92915050565b60006020828403121561020c5761020b6101bb565b5b600061021a848285016101e1565b91505092915050565b61022c816101c0565b82525050565b60006020820190506102476000830184610223565b92915050565b60008060408385031215610264576102636101bb565b5b6000610272858286016101e1565b9250506020610283858286016101e1565b9150509250929050565b600082825260208201905092915050565b7f746f6f2062696720736c6f740000000000000000000000000000000000000000600082015250565b60006102d4600c8361028d565b91506102df8261029e565b602082019050919050565b60006020820190508181036000830152610303816102c7565b905091905056fea2646970667358221220ceea194bb66b5b9f52c83e5bf5a1989255de8cb7157838eff98f970c3a04cb3064736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002"}]},{"stateOverrides":{"0xc100000000000000000000000000000000000000":{"state":{"0x0000000000000000000000000000000000000000000000000000000000000000":"0x1200000000000000000000000000000000000000000000000000000000000000"}}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000000"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000001"}]}],"traceTransfers":true,"returnFullTransactions":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0xac5e","maxUsedGas":"0xac5e","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0xac81","maxUsedGas":"0xac81","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x158df","hash":"0x83aa7f840a38169664a657aa0d1a9b2ccd7b4a403da369a6521cb785861b692a","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x559239b7a32c83cdcc1e03ba2070d7d6b5a104015077c9ac40fab83764f4e231","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x350","stateRoot":"0xc33c42af6d38f88490c4dbf094c6742daf787623d158ea3a85b67087656092d7","timestamp":"0x1ce","transactions":[{"blockHash":"0x83aa7f840a38169664a657aa0d1a9b2ccd7b4a403da369a6521cb785861b692a","blockNumber":"0x2e","blockTimestamp":"0x1ce","from":"0xc000000000000000000000000000000000000000","gas":"0x2faf080","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0x59bf9b0327340e44f86849c3b2020559d4567410efc30030c708202ccb78f677","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001","nonce":"0x0","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x0","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0x83aa7f840a38169664a657aa0d1a9b2ccd7b4a403da369a6521cb785861b692a","blockNumber":"0x2e","blockTimestamp":"0x1ce","from":"0xc000000000000000000000000000000000000000","gas":"0x2fa4422","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0xe31ee6882d314903e7ff23726e5c90731af6531a54dbc327cc3cedd1a031837f","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002","nonce":"0x1","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x1","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"}],"transactionsRoot":"0x4f9b387ae022ce326bec432f80e46223608a03d6745e9a2f081a7c06d1ac1a27","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x1200000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5d85","maxUsedGas":"0x5d85","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5d91","maxUsedGas":"0x5d91","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xbb16","hash":"0x10b782fad50f5f87dd2a54d98acfbe9ce8ccc1bb383e47655dcbf32b59a5acbd","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x83aa7f840a38169664a657aa0d1a9b2ccd7b4a403da369a6521cb785861b692a","receiptsRoot":"0xbb2a8473e55a4e9ae2ac7201f52b44253a3bd950e553ea82694f338087d2a2d3","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x30d","stateRoot":"0x5d36c7dfb384091a7a44b2b368df2351ea53162838365b14f5ed47b3104cb162","timestamp":"0x1da","transactions":[{"blockHash":"0x10b782fad50f5f87dd2a54d98acfbe9ce8ccc1bb383e47655dcbf32b59a5acbd","blockNumber":"0x2f","blockTimestamp":"0x1da","from":"0xc000000000000000000000000000000000000000","gas":"0x2f997a1","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0xee53c20604e25066c0a8bd533e9fbac7ab0c37a81852f58de5bf335b27324de7","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000000","nonce":"0x2","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x0","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0x10b782fad50f5f87dd2a54d98acfbe9ce8ccc1bb383e47655dcbf32b59a5acbd","blockNumber":"0x2f","blockTimestamp":"0x1da","from":"0xc000000000000000000000000000000000000000","gas":"0x2f93a1c","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0xca745694b08804be88f48ec7657ead992b8ff844cfe176925f42cdc335af7690","input":"0x0ff4c9160000000000000000000000000000000000000000000000000000000000000001","nonce":"0x3","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x1","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"}],"transactionsRoot":"0x960735af31a3cb9eaec9329526e9c469970b15cd7fd345a826923a10cb5700ef","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-validation-fulltx.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-validation-fulltx.io deleted file mode 100644 index 4650682ee6..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-validation-fulltx.io +++ /dev/null @@ -1,3 +0,0 @@ -// simulates a ethSimulate transfer ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"baseFeePerGas":"0xf"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0xe8d4a51000"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","maxFeePerGas":"0x10","value":"0x2540be400"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","maxFeePerGas":"0x10","value":"0x3e8"}]}],"validation":true,"returnFullTransactions":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0xf","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xa410","hash":"0x9e227e02fd9f3b7e8b839446122206cd08bf1fb812ea922576f732d33289027b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x75308898d571eafb5cd8cde8278bf5b3d13c5f6ec074926de3bb895b519264e1","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2c8","stateRoot":"0x375829e5373817d26b84d5314208af86f54a32669d9a82495b3f11aa9e98ad22","timestamp":"0x1ce","transactions":[{"blockHash":"0x9e227e02fd9f3b7e8b839446122206cd08bf1fb812ea922576f732d33289027b","blockNumber":"0x2e","blockTimestamp":"0x1ce","from":"0xc000000000000000000000000000000000000000","gas":"0x2faf080","gasPrice":"0xf","maxFeePerGas":"0x10","maxPriorityFeePerGas":"0x0","hash":"0xc2df7444d2b0604cdfaa20cad5855422b575d8d2ec02868ed9eb45eb20490f66","input":"0x","nonce":"0x0","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x0","value":"0x2540be400","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0x9e227e02fd9f3b7e8b839446122206cd08bf1fb812ea922576f732d33289027b","blockNumber":"0x2e","blockTimestamp":"0x1ce","from":"0xc100000000000000000000000000000000000000","gas":"0x2fa9e78","gasPrice":"0xf","maxFeePerGas":"0x10","maxPriorityFeePerGas":"0x0","hash":"0x5c78719d6ce3bf5b515e9fc3a41ab755c007645928bf35eba1a318721b774595","input":"0x","nonce":"0x0","to":"0xc200000000000000000000000000000000000000","transactionIndex":"0x1","value":"0x3e8","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"}],"transactionsRoot":"0x9e80508f974bbf713b286fe5a4d0fae2f54f17e33b742176cc4c5bb7e0942762","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-with-validation-no-funds.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-with-validation-no-funds.io deleted file mode 100644 index 77530d4f41..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple-with-validation-no-funds.io +++ /dev/null @@ -1,3 +0,0 @@ -// simulates a ethSimulate transfer with validation and not enough funds ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x3e8"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xa410","hash":"0xe67b3e473ef02a1d6ddbfc033835c199873dc3d1a777707d6f6c530dfe45b4f5","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x75308898d571eafb5cd8cde8278bf5b3d13c5f6ec074926de3bb895b519264e1","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2c5","stateRoot":"0x147e5101af51b06bae5b89d574a38f6711ecb3582a465a9a4e2aa9e7a1dbc345","timestamp":"0x1ce","transactions":["0xf1c5abb08809ef760f87aeabe7a87284c60797192dab6d2f0d26c27c9c038e9d","0xbc123d32ae457d4a444af60d1aef663c2f4a77c44a52bec0eef8ac81b53549cb"],"transactionsRoot":"0x6d79cfd6f20bf10a0b3831acf15402528b00992cb9a71302596de7fbb4ebfb07","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple.io deleted file mode 100644 index 1b86891c74..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-simple.io +++ /dev/null @@ -1,3 +0,0 @@ -// simulates a ethSimulate transfer ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x3e8"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xa410","hash":"0xe67b3e473ef02a1d6ddbfc033835c199873dc3d1a777707d6f6c530dfe45b4f5","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x75308898d571eafb5cd8cde8278bf5b3d13c5f6ec074926de3bb895b519264e1","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2c5","stateRoot":"0x147e5101af51b06bae5b89d574a38f6711ecb3582a465a9a4e2aa9e7a1dbc345","timestamp":"0x1ce","transactions":["0xf1c5abb08809ef760f87aeabe7a87284c60797192dab6d2f0d26c27c9c038e9d","0xbc123d32ae457d4a444af60d1aef663c2f4a77c44a52bec0eef8ac81b53549cb"],"transactionsRoot":"0x6d79cfd6f20bf10a0b3831acf15402528b00992cb9a71302596de7fbb4ebfb07","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-transaction-too-high-nonce.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-transaction-too-high-nonce.io deleted file mode 100644 index 371ec6f738..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-transaction-too-high-nonce.io +++ /dev/null @@ -1,3 +0,0 @@ -// Error: Nonce too high ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x64"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x5208","hash":"0xf0546297fcee62b4d2c62138f1404670bf310ecee74b275f67f1ef4c7d7c910d","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x292","stateRoot":"0xe7b5ff27a7c9d623622f9a91238004305f5d07d06b8aac9f8f6236cd0bc18eb7","timestamp":"0x1ce","transactions":["0x5502e2f81918bf15546115259aa912e0af477580be84d8f09be4bb8dd2d5667c"],"transactionsRoot":"0x22efe8e840f139e6194b50ce3c218db4aed270a03c5577d1487b134d2b4680e9","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-transaction-too-low-nonce-38010.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-transaction-too-low-nonce-38010.io deleted file mode 100644 index df45e738b5..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-transaction-too-low-nonce-38010.io +++ /dev/null @@ -1,3 +0,0 @@ -// Error: Nonce too low (-38010) ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"nonce":"0xa"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x0"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x5208","hash":"0x0950b3e11994eccf3c4c0c5b5909be07503752773e38b32982a6d358beaf675e","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0xf78dfb743fbd92ade140711c8bbc542b5e307f0ab7984eff35d751969fe57efa","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x292","stateRoot":"0x44398afaa9eaab2fea8d863b3a5ded77712ab42b0eea0cc617ef32635a0f28f5","timestamp":"0x1ce","transactions":["0x234a1d9897819c206fdeb6af312d742010a91b5b4159978a902c9a0b90e7bee5"],"transactionsRoot":"0xed81b1bfe79c8c81d3fe874f7214a9fb9dd186e8243abfeabc506550a532c09a","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-transfer-over-BlockStateCalls.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-transfer-over-BlockStateCalls.io deleted file mode 100644 index 8dba9b5cd0..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-transfer-over-BlockStateCalls.io +++ /dev/null @@ -1,3 +0,0 @@ -// simulates a transfering value over multiple BlockStateCalls ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x1388"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x7d0"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc300000000000000000000000000000000000000","value":"0x7d0"}]},{"stateOverrides":{"0xc300000000000000000000000000000000000000":{"balance":"0x1388"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"},{"from":"0xc300000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","value":"0x3e8"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xa410","hash":"0x8153c1797f6b58244a52bc33f7b5c1e0a4ee804454ef1abc8a936dbf4aa1285f","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x75308898d571eafb5cd8cde8278bf5b3d13c5f6ec074926de3bb895b519264e1","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2c5","stateRoot":"0x69999a6506553301a33e6dfc731f852206f7577fad36e766af815ef885ef0962","timestamp":"0x1ce","transactions":["0xd65bf8e445fc53d2d0f1b806f3112fab667a5915dcc01a618d62ee1dad017b89","0x24202f93e05f3de5f6484cc15276ffb3c47dfb07ea2ccfd4d73b4045d72cdc97"],"transactionsRoot":"0x30aaf0016a0db1d0b0f3e530dec1daa06864d2eb7a3d9fadce1de091b8945d7c","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xa410","hash":"0x89241873ae1c8d16b1d5eb7c8e309b44f8f12d9343d65ef8b3efad8bdcbb065f","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x8153c1797f6b58244a52bc33f7b5c1e0a4ee804454ef1abc8a936dbf4aa1285f","receiptsRoot":"0x75308898d571eafb5cd8cde8278bf5b3d13c5f6ec074926de3bb895b519264e1","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2c5","stateRoot":"0x97b46950ff2fac72bde4e00dca03db1449480bbf106d973ca12e5b09aff2311c","timestamp":"0x1da","transactions":["0xfeb278aaa0517bfefde3279dbdf5b44a7e4f47046fbfa287026ee2d8f54fe64f","0xed9a286c764637a4501c9c59c4ab32c12b7125c56bad90f1362997b8be1087d9"],"transactionsRoot":"0xcd1a137fbf0584c9088148b94d63dbd29cdc21e9001783de447b198b9820629d","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-try-to-move-non-precompile.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-try-to-move-non-precompile.io deleted file mode 100644 index 97bc192fdc..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-try-to-move-non-precompile.io +++ /dev/null @@ -1,3 +0,0 @@ -// try to move non-precompile ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"nonce":"0x5"}}},{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"movePrecompileToAddress":"0xc100000000000000000000000000000000000000"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc000000000000000000000000000000000000000","nonce":"0x0"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","nonce":"0x5"}]}],"validation":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"account 0xC000000000000000000000000000000000000000 is not a precompile"}} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-two-blocks-with-complete-eth-sends.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-two-blocks-with-complete-eth-sends.io deleted file mode 100644 index 8c311f4651..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-two-blocks-with-complete-eth-sends.io +++ /dev/null @@ -1,3 +0,0 @@ -// two blocks with eth sends ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"baseFeePerGas":"0xa"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0x35a4ece8"},"0xc100000000000000000000000000000000000000":{"balance":"0x35a4f0d0"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x14","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x65","nonce":"0x0","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x14","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x66","nonce":"0x1","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x14","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x67","nonce":"0x2","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x14","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x68","nonce":"0x3","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x14","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x69","nonce":"0x4","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x14","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x6a","nonce":"0x5","input":"0x"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x14","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x6a","nonce":"0x0","input":"0x"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x14","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x65","nonce":"0x6","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x14","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x66","nonce":"0x7","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x14","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x67","nonce":"0x8","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x14","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x68","nonce":"0x9","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x14","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x69","nonce":"0xa","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x14","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x6a","nonce":"0xb","input":"0x"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x14","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x6a","nonce":"0x1","input":"0x"}]}]},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0xa","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x23e38","hash":"0x5a0c0971115652bf35cbc894a1f4996fa04d7071ca7317e4b0af4f1a48f336f5","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x9876b41ba412e30252e0c01dd31bf9b5a0ec8c66253b5d0fabdcb9f112b66803","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x39b","stateRoot":"0xf704081149c8f5e4ab74d4eed4fef7bc0537e6462469e9026333d314f348f80f","timestamp":"0x1ce","transactions":["0xeb7436a384260a8a2f0718c37caf93bce973825ba711f04e51a6ee9099677ae2","0xda45a6efedad658153f68e999e893fe7764a81b614919c02da6c18a43afe50c4","0x33da1e595ae11a27fc5fd7d789ea170aa60914ed3466b1d1dcb68b2404d220a7","0x64aa4feba36c81c84f0cf067b1d984c71c01753c2235b301ebe885c0ca8a7571","0x044216d790aa32233305780b73b38b285deac22cde75808edf954cfe98b09d3d","0xe767571cdf3fe5c6d3df10efe61cf5fc7e3890b351d8b7fc927bc31fa259ac09","0x0abec4f589f3590a6db5b382ffb1b5edd9dfaf206fcc2735e5df55f6c785c9e6"],"transactionsRoot":"0xdb9e985db5c9eecf36177eb7ec3fffeb3c8228143d57f5f721cb95cf5f4c1a86","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x23e38","hash":"0xfa4e05b3f68635933fee7dffa5196b1e89d15788ce22972172a7018a2960dbc4","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x5a0c0971115652bf35cbc894a1f4996fa04d7071ca7317e4b0af4f1a48f336f5","receiptsRoot":"0x9876b41ba412e30252e0c01dd31bf9b5a0ec8c66253b5d0fabdcb9f112b66803","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x39b","stateRoot":"0x2daf71c3d41bd8c346d91885c5861114fb8337aad440b8786cddc482d18441f7","timestamp":"0x1da","transactions":["0x6f11c8c470bdf97e90ae15685a0726c7f07f621f1dcb44716967bf1a8a5eaa0b","0x3c777ae3700de0a219a5aebced3b0d12be4b75866e04ca4bf75387382fc52d48","0xf1fef2c7d86a620e3b406378d3cfc7fcdb1d62937379f5803075b0c24b92573d","0xc1a94e99e81c68362c70b727ff975baeac02f0ccedc04d67dede2b6cd355eda5","0xf1a72470daf5a847bde6601c70d8b104468d3dcdcced4dc2a37ecbd7a92c7943","0x94393ef67af6a94cd43868e65a86dc88eebf4138bf9d3051186904ca5f309a5c","0x8b74ca93bce67e268bbb846bed626f59df9e75bf671adf424a07dadf270b92ac"],"transactionsRoot":"0x218ff1514e7186f46ab8fbdf34ff72cd158e5393811340844bb9e82f291b45d6","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-use-as-many-features-as-possible.io b/tests/integration_tests/spec/eth_simulateV1/ethSimulate-use-as-many-features-as-possible.io deleted file mode 100644 index f18204c5cc..0000000000 --- a/tests/integration_tests/spec/eth_simulateV1/ethSimulate-use-as-many-features-as-possible.io +++ /dev/null @@ -1,3 +0,0 @@ -// try using all eth simulates features at once ->> {"jsonrpc":"2.0","id":1,"method":"eth_simulateV1","params":[{"blockStateCalls":[{"blockOverrides":{"number":"0x37","time":"0x3b6","feeRecipient":"0xc200000000000000000000000000000000000000","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000001234","baseFeePerGas":"0x3ef"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0xd18c3d6a40"},"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561000f575f80fd5b506004361061003f575f3560e01c80631627905514610043578063b9724d6314610073578063dce4a447146100a3575b5f80fd5b61005d600480360381019061005891906101b3565b6100d3565b60405161006a91906101f8565b60405180910390f35b61008d600480360381019061008891906101b3565b61011a565b60405161009a9190610229565b60405180910390f35b6100bd60048036038101906100b891906101b3565b610129565b6040516100ca91906102cc565b60405180910390f35b5f807fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4705f1b90505f833f905081811415801561011157505f801b8114155b92505050919050565b5f80823f905080915050919050565b6060813b60405191505f19601f18601f6020830101168201604052808252805f60208401853c50919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61018282610159565b9050919050565b61019281610178565b811461019c575f80fd5b50565b5f813590506101ad81610189565b92915050565b5f602082840312156101c8576101c7610155565b5b5f6101d58482850161019f565b91505092915050565b5f8115159050919050565b6101f2816101de565b82525050565b5f60208201905061020b5f8301846101e9565b92915050565b5f819050919050565b61022381610211565b82525050565b5f60208201905061023c5f83018461021a565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561027957808201518184015260208101905061025e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61029e82610242565b6102a8818561024c565b93506102b881856020860161025c565b6102c181610284565b840191505092915050565b5f6020820190508181035f8301526102e48184610294565b90509291505056fea26469706673582212206a23e83d04cb5f5ab00353d719afd8181b39baa39277b8cfa111197637a4f26064736f6c63430008160033","balance":"0xd18c4cac80"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x65","nonce":"0x0","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x66","nonce":"0x1","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x67","nonce":"0x2","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x68","nonce":"0x3","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x69","nonce":"0x4","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x6a","nonce":"0x5","input":"0x"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x6a","nonce":"0x0","input":"0x"}]},{"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x65","nonce":"0x6","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x66","nonce":"0x7","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x67","nonce":"0x8","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x68","nonce":"0x9","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x69","nonce":"0xa","input":"0x"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x6a","nonce":"0xb","input":"0x"},{"from":"0xc100000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","gas":"0x5208","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","maxFeePerBlobGas":"0x0","value":"0x6a","nonce":"0x1","input":"0x"}]},{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0xd18c3d6a40"},"0xc100000000000000000000000000000000000000":{"code":"0x60806040526004361061001d575f3560e01c80635c19a95c14610021575b5f80fd5b61003b6004803603810190610036919061011d565b610052565b6040516100499291906101ec565b60405180910390f35b5f60608273ffffffffffffffffffffffffffffffffffffffff1660405161007890610247565b5f60405180830381855af49150503d805f81146100b0576040519150601f19603f3d011682016040523d82523d5f602084013e6100b5565b606091505b5091509150915091565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100ec826100c3565b9050919050565b6100fc816100e2565b8114610106575f80fd5b50565b5f81359050610117816100f3565b92915050565b5f60208284031215610132576101316100bf565b5b5f61013f84828501610109565b91505092915050565b5f8115159050919050565b61015c81610148565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561019957808201518184015260208101905061017e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6101be82610162565b6101c8818561016c565b93506101d881856020860161017c565b6101e1816101a4565b840191505092915050565b5f6040820190506101ff5f830185610153565b818103602083015261021181846101b4565b90509392505050565b5f81905092915050565b50565b5f6102325f8361021a565b915061023d82610224565b5f82019050919050565b5f61025182610227565b915081905091905056fea2646970667358221220c79623409cf56de66f689f36463cb9aa88ed853501e557889625b16b1a602b2764736f6c63430008160033"},"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","maxFeePerGas":"0x7d0","value":"0x3e8","input":"0x5c19a95c000000000000000000000000c200000000000000000000000000000000000000"}]},{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0xd18c3d6a40"},"0xc100000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630ff4c916146100515780633033413b1461008157806344e12f871461009f5780637b8d56e3146100bd575b600080fd5b61006b600480360381019061006691906101f6565b6100d9565b6040516100789190610232565b60405180910390f35b61008961013f565b6040516100969190610232565b60405180910390f35b6100a7610145565b6040516100b49190610232565b60405180910390f35b6100d760048036038101906100d2919061024d565b61014b565b005b60006002821061011e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610115906102ea565b60405180910390fd5b6000820361012c5760005490505b6001820361013a5760015490505b919050565b60015481565b60005481565b6002821061018e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610185906102ea565b60405180910390fd5b600082036101a257806000819055506101b7565b600182036101b657806001819055506101b7565b5b5050565b600080fd5b6000819050919050565b6101d3816101c0565b81146101de57600080fd5b50565b6000813590506101f0816101ca565b92915050565b60006020828403121561020c5761020b6101bb565b5b600061021a848285016101e1565b91505092915050565b61022c816101c0565b82525050565b60006020820190506102476000830184610223565b92915050565b60008060408385031215610264576102636101bb565b5b6000610272858286016101e1565b9250506020610283858286016101e1565b9150509250929050565b600082825260208201905092915050565b7f746f6f2062696720736c6f740000000000000000000000000000000000000000600082015250565b60006102d4600c8361028d565b91506102df8261029e565b602082019050919050565b60006020820190508181036000830152610303816102c7565b905091905056fea2646970667358221220ceea194bb66b5b9f52c83e5bf5a1989255de8cb7157838eff98f970c3a04cb3064736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","maxFeePerGas":"0x7d0","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","maxFeePerGas":"0x7d0","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002"}]},{"stateOverrides":{"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c806383197ef014602d575b600080fd5b60336035565b005b600073ffffffffffffffffffffffffffffffffffffffff16fffea26469706673582212208e566fde20a17fff9658b9b1db37e27876fd8934ccf9b2aa308cabd37698681f64736f6c63430008120033","balance":"0xd18c3d6a40"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0x83197ef0"}]},{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0xd18c3d6a40"},"0xc100000000000000000000000000000000000000":{"code":"0x60806040526004361061001d575f3560e01c80635c19a95c14610021575b5f80fd5b61003b6004803603810190610036919061011d565b610052565b6040516100499291906101ec565b60405180910390f35b5f60608273ffffffffffffffffffffffffffffffffffffffff1660405161007890610247565b5f60405180830381855af49150503d805f81146100b0576040519150601f19603f3d011682016040523d82523d5f602084013e6100b5565b606091505b5091509150915091565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100ec826100c3565b9050919050565b6100fc816100e2565b8114610106575f80fd5b50565b5f81359050610117816100f3565b92915050565b5f60208284031215610132576101316100bf565b5b5f61013f84828501610109565b91505092915050565b5f8115159050919050565b61015c81610148565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561019957808201518184015260208101905061017e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6101be82610162565b6101c8818561016c565b93506101d881856020860161017c565b6101e1816101a4565b840191505092915050565b5f6040820190506101ff5f830185610153565b818103602083015261021181846101b4565b90509392505050565b5f81905092915050565b50565b5f6102325f8361021a565b915061023d82610224565b5f82019050919050565b5f61025182610227565b915081905091905056fea2646970667358221220c79623409cf56de66f689f36463cb9aa88ed853501e557889625b16b1a602b2764736f6c63430008160033"},"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8","input":"0x5c19a95c000000000000000000000000c200000000000000000000000000000000000000"}]},{"blockOverrides":{"number":"0x4b"},"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0xd18c3d6a40"},"0xc200000000000000000000000000000000000000":{"code":"0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063ee82ac5e14602d575b600080fd5b60436004803603810190603f91906098565b6057565b604051604e919060d7565b60405180910390f35b600081409050919050565b600080fd5b6000819050919050565b6078816067565b8114608257600080fd5b50565b6000813590506092816071565b92915050565b60006020828403121560ab5760aa6062565b5b600060b7848285016085565b91505092915050565b6000819050919050565b60d18160c0565b82525050565b600060208201905060ea600083018460ca565b9291505056fea2646970667358221220a4d7face162688805e99e86526524ac3dadfb01cc29366d0d68b70dadcf01afe64736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000001"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000002"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000004"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000008"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000016"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000032"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000064"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000128"},{"from":"0xc000000000000000000000000000000000000000","to":"0xc200000000000000000000000000000000000000","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000256"}]},{"stateOverrides":{"0xc000000000000000000000000000000000000000":{"balance":"0xd18c3d6a40"},"0xc100000000000000000000000000000000000000":{"code":"0x60806040526004361061001d575f3560e01c80635c19a95c14610021575b5f80fd5b61003b6004803603810190610036919061011d565b610052565b6040516100499291906101ec565b60405180910390f35b5f60608273ffffffffffffffffffffffffffffffffffffffff1660405161007890610247565b5f60405180830381855af49150503d805f81146100b0576040519150601f19603f3d011682016040523d82523d5f602084013e6100b5565b606091505b5091509150915091565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100ec826100c3565b9050919050565b6100fc816100e2565b8114610106575f80fd5b50565b5f81359050610117816100f3565b92915050565b5f60208284031215610132576101316100bf565b5b5f61013f84828501610109565b91505092915050565b5f8115159050919050565b61015c81610148565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561019957808201518184015260208101905061017e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6101be82610162565b6101c8818561016c565b93506101d881856020860161017c565b6101e1816101a4565b840191505092915050565b5f6040820190506101ff5f830185610153565b818103602083015261021181846101b4565b90509392505050565b5f81905092915050565b50565b5f6102325f8361021a565b915061023d82610224565b5f82019050919050565b5f61025182610227565b915081905091905056fea2646970667358221220c79623409cf56de66f689f36463cb9aa88ed853501e557889625b16b1a602b2764736f6c63430008160033"},"0xc200000000000000000000000000000000000000":{"code":"0x608060405234801561001057600080fd5b506000366060484641444543425a3a60014361002c919061009b565b406040516020016100469a99989796959493929190610138565b6040516020818303038152906040529050915050805190602001f35b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006100a682610062565b91506100b183610062565b92508282039050818111156100c9576100c861006c565b5b92915050565b6100d881610062565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610109826100de565b9050919050565b610119816100fe565b82525050565b6000819050919050565b6101328161011f565b82525050565b60006101408201905061014e600083018d6100cf565b61015b602083018c6100cf565b610168604083018b610110565b610175606083018a6100cf565b61018260808301896100cf565b61018f60a08301886100cf565b61019c60c08301876100cf565b6101a960e08301866100cf565b6101b76101008301856100cf565b6101c5610120830184610129565b9b9a505050505050505050505056fea26469706673582212205139ae3ba8d46d11c29815d001b725f9840c90e330884ed070958d5af4813d8764736f6c63430008120033"}},"calls":[{"from":"0xc000000000000000000000000000000000000000","to":"0xc100000000000000000000000000000000000000","value":"0x3e8","input":"0x5c19a95c000000000000000000000000c200000000000000000000000000000000000000"}]},{"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"}]},{"stateOverrides":{"0x0000000000000000000000000000000000000001":{"movePrecompileToAddress":"0x0000000000000000000000000000000000123456"}},"calls":[{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000123456","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"},{"from":"0xc100000000000000000000000000000000000000","to":"0x0000000000000000000000000000000000000001","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9"}]}],"traceTransfers":true,"returnFullTransactions":true},"latest"]} -<< {"jsonrpc":"2.0","id":1,"result":[{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x8b8964bfcf7d8e280ed6812a581f67beda47d2b0f6316e1709bcff7d093e02b7","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x59c231f009f82ec35460b3cf0d9b715d1a35a690c3da0f6003b7842c3d498a26","timestamp":"0x1ce","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xd3682b7341c0549d85b73600e4b9fc0eead01643f3ce7279caaa5145df71fe0b","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x8b8964bfcf7d8e280ed6812a581f67beda47d2b0f6316e1709bcff7d093e02b7","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x93b583ed05f454a78c9279625a3e2871ff3324507e6418e29e53416acc88900d","timestamp":"0x1da","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x66a8499f82d7a7203544fefebaece243b302f55d24dd97be71d97d503b10fbe9","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x30","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xd3682b7341c0549d85b73600e4b9fc0eead01643f3ce7279caaa5145df71fe0b","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xb22b7c9857930782d7a92e282059b1653b643efb6f09a9aff1d65fedfce438b8","timestamp":"0x1e6","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x1ea03bc2ea7e70947269e14de3883459eb81a64780c99da31804a73f9f4cdfc7","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x31","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x66a8499f82d7a7203544fefebaece243b302f55d24dd97be71d97d503b10fbe9","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x6005795fd04dd3670db5e14ae6425052c6ee82ff22080293ee3d83c180d65bcc","timestamp":"0x1f2","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x18001f54d69705c7e84cf45b9abb6aa371ce440bb7fdad8021070661e0695912","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x32","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x1ea03bc2ea7e70947269e14de3883459eb81a64780c99da31804a73f9f4cdfc7","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x8843675f3b9eec18a5acf116df90a26fae9ef70f21d3cffc4992b760cfdc23cf","timestamp":"0x1fe","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x8601822b6dff617cf93178957c0162d95c7cc411278934e676b2271d9364bfe0","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x33","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x18001f54d69705c7e84cf45b9abb6aa371ce440bb7fdad8021070661e0695912","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x04238f2fad5e4b9820daf76c60946eb702d35577d2d1e6d5fc2c07d229e75689","timestamp":"0x20a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xd482916837d0d43b8cd15d00d4c0f50ad019311d1c7e6fb220e053548dc08181","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x34","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x8601822b6dff617cf93178957c0162d95c7cc411278934e676b2271d9364bfe0","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x3d5f58fbf02276461b11687866a4a1389fad17ca6ea7fdf4c7f2c5afa8cc546f","timestamp":"0x216","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x66c675d5b1ae5453cbf525ac2d1a071256605445d474af3764a36783e90b342d","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x35","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xd482916837d0d43b8cd15d00d4c0f50ad019311d1c7e6fb220e053548dc08181","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x429c0581461d0048471b1d8d85f7d129cf493114e4ca1e11a154bb649521f932","timestamp":"0x222","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xdaeb4e1610aaeb576bc75667c8ab9d27f6985f41880ddf71b3ecc8c31b617def","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x36","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x66c675d5b1ae5453cbf525ac2d1a071256605445d474af3764a36783e90b342d","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x9ad06fa7f19d678709c797246788f30a9a8d50083b9174a8f684e578c1b337bd","timestamp":"0x22e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x3ef","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x0","error":{"message":"out of gas","code":-32015}},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x0","error":{"message":"out of gas","code":-32015}},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x0","error":{"message":"out of gas","code":-32015}},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x0","error":{"message":"out of gas","code":-32015}},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x0","error":{"message":"out of gas","code":-32015}},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x0","error":{"message":"out of gas","code":-32015}},{"returnData":"0x","logs":[{"address":"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c100000000000000000000000000000000000000","0x000000000000000000000000c200000000000000000000000000000000000000"],"data":"0x000000000000000000000000000000000000000000000000000000000000006a","blockNumber":"0x37","transactionHash":"0x168c39679202357711bb160d315f53c5f6754b588ef7994b41fc817930400215","transactionIndex":"0x6","blockHash":"0x9cce22b9f12729367122c270614cc5a498741269e5f6dbd74be343d602b35fcc","blockTimestamp":"0x3b6","logIndex":"0x6","removed":false}],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x23e38","hash":"0x9cce22b9f12729367122c270614cc5a498741269e5f6dbd74be343d602b35fcc","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000001234","nonce":"0x0000000000000000","number":"0x37","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xdaeb4e1610aaeb576bc75667c8ab9d27f6985f41880ddf71b3ecc8c31b617def","receiptsRoot":"0x6f98626ffbd82b9ff47e4b1a94a36508f9233ca57f502e51b0cf1fc8ed58a041","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x3ab","stateRoot":"0x52877a345459eb520efbc1695bd3be5865822d33a7c6115e770540b3adde99ea","timestamp":"0x3b6","transactions":[{"blockHash":"0x9cce22b9f12729367122c270614cc5a498741269e5f6dbd74be343d602b35fcc","blockNumber":"0x37","blockTimestamp":"0x3b6","from":"0xc000000000000000000000000000000000000000","gas":"0x5208","gasPrice":"0x3f0","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","hash":"0x8852636084a44e737fdeea0c542629a3cfe1ea06af8ec0e1e8e1ef158032668b","input":"0x","nonce":"0x0","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x0","value":"0x65","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0x9cce22b9f12729367122c270614cc5a498741269e5f6dbd74be343d602b35fcc","blockNumber":"0x37","blockTimestamp":"0x3b6","from":"0xc000000000000000000000000000000000000000","gas":"0x5208","gasPrice":"0x3f0","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","hash":"0x87025f6996b7230ff2966687eebe8e09b0200aade62aba2e005add2dd4ebd419","input":"0x","nonce":"0x1","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x1","value":"0x66","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0x9cce22b9f12729367122c270614cc5a498741269e5f6dbd74be343d602b35fcc","blockNumber":"0x37","blockTimestamp":"0x3b6","from":"0xc000000000000000000000000000000000000000","gas":"0x5208","gasPrice":"0x3f0","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","hash":"0x509e622651a8fe784cd5e7f230c3a0917f7be13c87d91dc3e36e21872f3e7488","input":"0x","nonce":"0x2","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x2","value":"0x67","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0x9cce22b9f12729367122c270614cc5a498741269e5f6dbd74be343d602b35fcc","blockNumber":"0x37","blockTimestamp":"0x3b6","from":"0xc000000000000000000000000000000000000000","gas":"0x5208","gasPrice":"0x3f0","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","hash":"0xd5c985e7dd86653006e5cd08a0afd4f829ac4e9822f533cfd3553ce22c5254a8","input":"0x","nonce":"0x3","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x3","value":"0x68","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0x9cce22b9f12729367122c270614cc5a498741269e5f6dbd74be343d602b35fcc","blockNumber":"0x37","blockTimestamp":"0x3b6","from":"0xc000000000000000000000000000000000000000","gas":"0x5208","gasPrice":"0x3f0","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","hash":"0x2d9fd4a65ffb6730fd102fb37ab59c27f97daad2b5fac3a7d9d0c68d09f5f2b4","input":"0x","nonce":"0x4","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x4","value":"0x69","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0x9cce22b9f12729367122c270614cc5a498741269e5f6dbd74be343d602b35fcc","blockNumber":"0x37","blockTimestamp":"0x3b6","from":"0xc000000000000000000000000000000000000000","gas":"0x5208","gasPrice":"0x3f0","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","hash":"0x8d69815dee99be99ae713b0a9118f33bb79be90cf67c61b812379c986b3986d9","input":"0x","nonce":"0x5","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x5","value":"0x6a","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0x9cce22b9f12729367122c270614cc5a498741269e5f6dbd74be343d602b35fcc","blockNumber":"0x37","blockTimestamp":"0x3b6","from":"0xc100000000000000000000000000000000000000","gas":"0x5208","gasPrice":"0x3f0","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","hash":"0x168c39679202357711bb160d315f53c5f6754b588ef7994b41fc817930400215","input":"0x","nonce":"0x0","to":"0xc200000000000000000000000000000000000000","transactionIndex":"0x6","value":"0x6a","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"}],"transactionsRoot":"0x847b1cdefcad343b77cf23dc25a32d40d8fcfa41be4b14418b125b5f5bf04cf9","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x0","error":{"message":"out of gas","code":-32015}},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x0","error":{"message":"out of gas","code":-32015}},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x0","error":{"message":"out of gas","code":-32015}},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x0","error":{"message":"out of gas","code":-32015}},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x0","error":{"message":"out of gas","code":-32015}},{"returnData":"0x","logs":[],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x0","error":{"message":"out of gas","code":-32015}},{"returnData":"0x","logs":[{"address":"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c100000000000000000000000000000000000000","0x000000000000000000000000c200000000000000000000000000000000000000"],"data":"0x000000000000000000000000000000000000000000000000000000000000006a","blockNumber":"0x38","transactionHash":"0x3647fd5523395b7a571d386acc0b30e984e9e54fb7f0d171e657126ae0f7cda2","transactionIndex":"0x6","blockHash":"0x58e17ccd70c638914a5981bd56938fd9602c204697d1f7178185b70695aaf0e2","blockTimestamp":"0x3c2","logIndex":"0x6","removed":false}],"gasUsed":"0x5208","maxUsedGas":"0x5208","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x23e38","hash":"0x58e17ccd70c638914a5981bd56938fd9602c204697d1f7178185b70695aaf0e2","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x38","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x9cce22b9f12729367122c270614cc5a498741269e5f6dbd74be343d602b35fcc","receiptsRoot":"0x6f98626ffbd82b9ff47e4b1a94a36508f9233ca57f502e51b0cf1fc8ed58a041","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x3a9","stateRoot":"0x9d73f0692f5bf5f3558620933bee9ff333c60acd2863820dcc6e50dac13374b8","timestamp":"0x3c2","transactions":[{"blockHash":"0x58e17ccd70c638914a5981bd56938fd9602c204697d1f7178185b70695aaf0e2","blockNumber":"0x38","blockTimestamp":"0x3c2","from":"0xc000000000000000000000000000000000000000","gas":"0x5208","gasPrice":"0x1","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","hash":"0x60d9053a100885eec66f45ed40c451681e2506779e69cfeeea9725d4f5c2388e","input":"0x","nonce":"0x6","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x0","value":"0x65","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0x58e17ccd70c638914a5981bd56938fd9602c204697d1f7178185b70695aaf0e2","blockNumber":"0x38","blockTimestamp":"0x3c2","from":"0xc000000000000000000000000000000000000000","gas":"0x5208","gasPrice":"0x1","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","hash":"0xea48fe3838720fe557da318e0ee0dfb2908705abc9b4a7287ee9856c21ee9784","input":"0x","nonce":"0x7","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x1","value":"0x66","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0x58e17ccd70c638914a5981bd56938fd9602c204697d1f7178185b70695aaf0e2","blockNumber":"0x38","blockTimestamp":"0x3c2","from":"0xc000000000000000000000000000000000000000","gas":"0x5208","gasPrice":"0x1","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","hash":"0x07aedf39dc871f71bf5cd55c0f9a687298081281d83f8f136cebd5bf687e56ef","input":"0x","nonce":"0x8","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x2","value":"0x67","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0x58e17ccd70c638914a5981bd56938fd9602c204697d1f7178185b70695aaf0e2","blockNumber":"0x38","blockTimestamp":"0x3c2","from":"0xc000000000000000000000000000000000000000","gas":"0x5208","gasPrice":"0x1","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","hash":"0x4675c7fae70d9854c4e8026d08706508a1ffadbee81870ccd4b9fe7cf1cd8d4c","input":"0x","nonce":"0x9","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x3","value":"0x68","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0x58e17ccd70c638914a5981bd56938fd9602c204697d1f7178185b70695aaf0e2","blockNumber":"0x38","blockTimestamp":"0x3c2","from":"0xc000000000000000000000000000000000000000","gas":"0x5208","gasPrice":"0x1","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","hash":"0xf23c72098f5d5ca4c1fc487f310a0cdcf1161b7f2e6985f3a266d24f93d58711","input":"0x","nonce":"0xa","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x4","value":"0x69","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0x58e17ccd70c638914a5981bd56938fd9602c204697d1f7178185b70695aaf0e2","blockNumber":"0x38","blockTimestamp":"0x3c2","from":"0xc000000000000000000000000000000000000000","gas":"0x5208","gasPrice":"0x1","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","hash":"0xe3af0856d4f87ea3f699039e9b9244e9f7d6ac68fc7012d13e88197f4a63e56d","input":"0x","nonce":"0xb","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x5","value":"0x6a","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0x58e17ccd70c638914a5981bd56938fd9602c204697d1f7178185b70695aaf0e2","blockNumber":"0x38","blockTimestamp":"0x3c2","from":"0xc100000000000000000000000000000000000000","gas":"0x5208","gasPrice":"0x1","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x1","hash":"0x3647fd5523395b7a571d386acc0b30e984e9e54fb7f0d171e657126ae0f7cda2","input":"0x","nonce":"0x1","to":"0xc200000000000000000000000000000000000000","transactionIndex":"0x6","value":"0x6a","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"}],"transactionsRoot":"0x55ef66f630fdc5aae641206d3a320b01e4490511881766d6ddc0bb0262011f0a","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000","logs":[{"address":"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c000000000000000000000000000000000000000","0x000000000000000000000000c100000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x39","transactionHash":"0xe95ea9d87c0aa815b81acf25c7f7d222be7d74ddee583a3247a131ae6ac16485","transactionIndex":"0x0","blockHash":"0x1898110a509a7d1283ef221b2dc1bfc5b93740a2998ed5c6627be7e81683a53c","blockTimestamp":"0x3ce","logIndex":"0x0","removed":false}],"gasUsed":"0x583a","maxUsedGas":"0x583a","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x583a","hash":"0x1898110a509a7d1283ef221b2dc1bfc5b93740a2998ed5c6627be7e81683a53c","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x39","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x58e17ccd70c638914a5981bd56938fd9602c204697d1f7178185b70695aaf0e2","receiptsRoot":"0x31a4a1c53003df7f84438f41f286e63a023d3a77f96b2dcd61424349c45d9c97","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2bd","stateRoot":"0x38fd1011637e0de3a11462de7591a4ae26a11165346fe7e2e86150d17473a072","timestamp":"0x3ce","transactions":[{"blockHash":"0x1898110a509a7d1283ef221b2dc1bfc5b93740a2998ed5c6627be7e81683a53c","blockNumber":"0x39","blockTimestamp":"0x3ce","from":"0xc000000000000000000000000000000000000000","gas":"0x2f67410","gasPrice":"0x0","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x0","hash":"0xe95ea9d87c0aa815b81acf25c7f7d222be7d74ddee583a3247a131ae6ac16485","input":"0x5c19a95c000000000000000000000000c200000000000000000000000000000000000000","nonce":"0xc","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x0","value":"0x3e8","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"}],"transactionsRoot":"0xd6a037e652a67a6fba456d039836331799aae26fd90f0a6e8c8bcad587e4f3c9","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0xac5e","maxUsedGas":"0xac5e","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0xac81","maxUsedGas":"0xac81","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x158df","hash":"0x558725694d8b229d42fdd699e5cdb40d34f9146bb15dbc0fd895175b0280847f","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3a","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x1898110a509a7d1283ef221b2dc1bfc5b93740a2998ed5c6627be7e81683a53c","receiptsRoot":"0x559239b7a32c83cdcc1e03ba2070d7d6b5a104015077c9ac40fab83764f4e231","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x354","stateRoot":"0x4ac4df4e9ab3a7fb5d90b3cddc5843de3ed8982559bf12ccbf7c2c73428fe820","timestamp":"0x3da","transactions":[{"blockHash":"0x558725694d8b229d42fdd699e5cdb40d34f9146bb15dbc0fd895175b0280847f","blockNumber":"0x3a","blockTimestamp":"0x3da","from":"0xc000000000000000000000000000000000000000","gas":"0x2f61bd6","gasPrice":"0x0","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x0","hash":"0xbe33f0f7befd427fbc2e13948402613024f0a4a53191e1182f7d07ca5aed0713","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001","nonce":"0xd","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x0","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0x558725694d8b229d42fdd699e5cdb40d34f9146bb15dbc0fd895175b0280847f","blockNumber":"0x3a","blockTimestamp":"0x3da","from":"0xc000000000000000000000000000000000000000","gas":"0x2f56f78","gasPrice":"0x0","maxFeePerGas":"0x7d0","maxPriorityFeePerGas":"0x0","hash":"0xab5da24d21f330623627f90912ba59cc727e5cb4bb840721349fa8e9a7482505","input":"0x7b8d56e300000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002","nonce":"0xe","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x1","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"}],"transactionsRoot":"0x87c83a3f7199320ba1c6b3bdd0890014718200f34c282777d956b1c0f37b3b83","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[{"address":"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c200000000000000000000000000000000000000","0x0000000000000000000000000000000000000000000000000000000000000000"],"data":"0x000000000000000000000000000000000000000000000000000000d18c3d6a40","blockNumber":"0x3b","transactionHash":"0xf6f4fb5a311b133810e781a48aafa6d9b7bc49be508f1cb9112764173c0c113f","transactionIndex":"0x0","blockHash":"0x14b7cef92acdc8d5276fb1be8b48dfa7658de5f012ba54bdc3058ba17249771f","blockTimestamp":"0x3e6","logIndex":"0x0","removed":false}],"gasUsed":"0x7072","maxUsedGas":"0x7072","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x7072","hash":"0x14b7cef92acdc8d5276fb1be8b48dfa7658de5f012ba54bdc3058ba17249771f","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3b","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x558725694d8b229d42fdd699e5cdb40d34f9146bb15dbc0fd895175b0280847f","receiptsRoot":"0xe8246ead1770a79f7847cd058f7e490967d4b750336d2e8974f1254cbf6809a6","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x296","stateRoot":"0x296d9c75cfb399c4a78ed0b39f9d03d1ce58b3ab9892383a9fab447957cde080","timestamp":"0x3e6","transactions":[{"blockHash":"0x14b7cef92acdc8d5276fb1be8b48dfa7658de5f012ba54bdc3058ba17249771f","blockNumber":"0x3b","blockTimestamp":"0x3e6","from":"0xc000000000000000000000000000000000000000","gas":"0x2f4c2f7","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0xf6f4fb5a311b133810e781a48aafa6d9b7bc49be508f1cb9112764173c0c113f","input":"0x83197ef0","nonce":"0xf","to":"0xc200000000000000000000000000000000000000","transactionIndex":"0x0","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"}],"transactionsRoot":"0x2cf04bd1115392d6b1ae8ecd1f2f2681147426211b7e2236e6e369a801be2b6f","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000","logs":[{"address":"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c000000000000000000000000000000000000000","0x000000000000000000000000c100000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x3c","transactionHash":"0xb7d0b6f4422356a6a50afca8758017db9117eb53fdcaaad946104665aa488b01","transactionIndex":"0x0","blockHash":"0x1ae8fd7f57464c3ee9171a1df234849b49e07cc57979aa563b10105dd9194555","blockTimestamp":"0x3f2","logIndex":"0x0","removed":false}],"gasUsed":"0x583a","maxUsedGas":"0x583a","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x583a","hash":"0x1ae8fd7f57464c3ee9171a1df234849b49e07cc57979aa563b10105dd9194555","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3c","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x14b7cef92acdc8d5276fb1be8b48dfa7658de5f012ba54bdc3058ba17249771f","receiptsRoot":"0x31a4a1c53003df7f84438f41f286e63a023d3a77f96b2dcd61424349c45d9c97","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2bb","stateRoot":"0xc1269a682b68764d1925cd4bd5c805ec3dd4245fa78f13a734d30069259af72f","timestamp":"0x3f2","transactions":[{"blockHash":"0x1ae8fd7f57464c3ee9171a1df234849b49e07cc57979aa563b10105dd9194555","blockNumber":"0x3c","blockTimestamp":"0x3f2","from":"0xc000000000000000000000000000000000000000","gas":"0x2f45285","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0xb7d0b6f4422356a6a50afca8758017db9117eb53fdcaaad946104665aa488b01","input":"0x5c19a95c000000000000000000000000c200000000000000000000000000000000000000","nonce":"0x10","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x0","value":"0x3e8","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"}],"transactionsRoot":"0x232fae869f7782ad9e6b3fcb713308fb5321aaa44577e86ad0f41f30cf478900","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xdf34597644b129f7dbcf04485fea8dc46f6ce5e817ebf9e10f1850c4f4f816a4","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3d","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x1ae8fd7f57464c3ee9171a1df234849b49e07cc57979aa563b10105dd9194555","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x95929dd797db9c416d36a00d6302490143e313045914e4b921d8c0ff9bfa6246","timestamp":"0x3fe","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x3fc808db3557d56cd8c4dabdecb07b5dfe791b769daea6d1c20381a839670355","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xdf34597644b129f7dbcf04485fea8dc46f6ce5e817ebf9e10f1850c4f4f816a4","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x7116fb44579d7c96d73afd2771b0a7b0e2bad3331f4e476ee0b70eac139393b6","timestamp":"0x40a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x64ad3b4d4846cb511355af347a668164116adb16ccc659106e591614a044a612","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x3f","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x3fc808db3557d56cd8c4dabdecb07b5dfe791b769daea6d1c20381a839670355","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xe488877383fbc163e07ed037a40b54195b8d80d2db23465159d1d987f7f60c8d","timestamp":"0x416","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xab558817f41976be7c48843f9d75ff50bab4f862ea11da773ea18b242ec39181","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x40","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x64ad3b4d4846cb511355af347a668164116adb16ccc659106e591614a044a612","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x1ffaec4764e980553b31252c481a628c19ebb5dfb8e36e320a1ce977aa00466a","timestamp":"0x422","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x2402d38d9d10ffba80e67c22c6e76407dd11a9de14c6ba87318308fdfacf0943","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x41","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xab558817f41976be7c48843f9d75ff50bab4f862ea11da773ea18b242ec39181","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xcc689d88900b2bc7e99586178b80a3a2d5d5605d245b745f6643f637d43f01e0","timestamp":"0x42e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x1e2938a75662de8a57076741bc611096704c5dd8dd3a823cfe427551cb20e92a","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x42","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x2402d38d9d10ffba80e67c22c6e76407dd11a9de14c6ba87318308fdfacf0943","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x1b7e5c5ae7c5a27416376d2dec744ca67abd884e2db290a4b551d6bedd51c983","timestamp":"0x43a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x91b83e105abed9e3049eca22237143315afb859392a239f3318f156e581316b0","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x43","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x1e2938a75662de8a57076741bc611096704c5dd8dd3a823cfe427551cb20e92a","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x517c8c9507105a64e4a08a6379118c870865c0f1bbac09173b9ca19a3a64879b","timestamp":"0x446","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xa46710aa8b51158d9f7d3a651b23f7aee586e33e09ff800ec4172223aeb828c2","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x44","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x91b83e105abed9e3049eca22237143315afb859392a239f3318f156e581316b0","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x2d4bfcb4e73a916bb12af2b6b04611304b9cd6c535e0a511e941bc083947eb43","timestamp":"0x452","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xcecdc741489f7c1d8f69feb8d6bb525fa41feb21851e0fa81d31964a503125ce","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x45","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xa46710aa8b51158d9f7d3a651b23f7aee586e33e09ff800ec4172223aeb828c2","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x8d18dc0d7a3560805ba6d68dcc4d3725615b3604b9545de45c779a71ec419dc7","timestamp":"0x45e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x081eea6b1fcd2f8c05ece80f98e4387cb2298b908f08343d3281720aec191d71","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x46","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xcecdc741489f7c1d8f69feb8d6bb525fa41feb21851e0fa81d31964a503125ce","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xa98779d4756e679004ffe0700bd11b2084ae958ea4f0808a7f31bf2ee55fea17","timestamp":"0x46a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0x401429c67e8a589d0dfa0e81ecd73df2617147b12779ede3db1e10716f0ffb61","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x47","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x081eea6b1fcd2f8c05ece80f98e4387cb2298b908f08343d3281720aec191d71","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x6addc344797a9bd213511672bc1ac37248cd04cf8a378b06613bca5d5df669ea","timestamp":"0x476","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xe035c15ceb7f20591fea4b278d3fbe4215cc5e29055cfc7692328ab37dc5fd64","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x48","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x401429c67e8a589d0dfa0e81ecd73df2617147b12779ede3db1e10716f0ffb61","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0x5c62303a7c1a4b487833efa96a9bd95f81ca2906a1a418b2d76a644de51656e6","timestamp":"0x482","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xa0475723f0de70498d58a53c0f7283f304eae866b86ff53df4e4da93c2f03a0c","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x49","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xe035c15ceb7f20591fea4b278d3fbe4215cc5e29055cfc7692328ab37dc5fd64","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xd3150d89c107d16830b1d9c6f143f4a69603e5cfb20d2c8d413bb56c17304ef0","timestamp":"0x48e","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x0","hash":"0xa8b96fa44f7cda08270386d2414f36307c816ab12e869218de93d298ba0c30c0","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4a","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xa0475723f0de70498d58a53c0f7283f304eae866b86ff53df4e4da93c2f03a0c","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x262","stateRoot":"0xdce968c18a07b697358b1234c4336e52b9040a979ff73dd4a9023a76b08edde0","timestamp":"0x49a","transactions":[],"transactionsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x79ba0368c2c6563a7d263695b583dcc6d1c25d4988daa0105804d38bdd987f2f","logs":[],"gasUsed":"0x552c","maxUsedGas":"0x552c","status":"0x1"},{"returnData":"0x558340736256a3a431f7340546850dfd1451171a5c990308f86c47e4f41aed1a","logs":[],"gasUsed":"0x552c","maxUsedGas":"0x552c","status":"0x1"},{"returnData":"0x29cc6f97784c864cbe29b3502934ad874f48ddc89580018f5a32e01652c88f0a","logs":[],"gasUsed":"0x552c","maxUsedGas":"0x552c","status":"0x1"},{"returnData":"0x9c4461c739c4b7a2850bafd38462047a2eb360a769ceafb77d7a3492ddec426c","logs":[],"gasUsed":"0x552c","maxUsedGas":"0x552c","status":"0x1"},{"returnData":"0xbde548af8553199b6c155a1c65539aecc4d5fe22dc9cdb0cbdb31a23bdcc6272","logs":[],"gasUsed":"0x552c","maxUsedGas":"0x552c","status":"0x1"},{"returnData":"0x18001f54d69705c7e84cf45b9abb6aa371ce440bb7fdad8021070661e0695912","logs":[],"gasUsed":"0x552c","maxUsedGas":"0x552c","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x552c","maxUsedGas":"0x552c","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5538","maxUsedGas":"0x5538","status":"0x1"},{"returnData":"0x0000000000000000000000000000000000000000000000000000000000000000","logs":[],"gasUsed":"0x5538","maxUsedGas":"0x5538","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x2fea4","hash":"0xaedf26d7883abe6d78231e94492bbb3891131f2d88f6c731e4f0717eb738b747","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4b","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xa8b96fa44f7cda08270386d2414f36307c816ab12e869218de93d298ba0c30c0","receiptsRoot":"0xd87afaf96c48fb5e94b4180bb2a6836506da41342fc3f436175dc02283bdc712","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x55b","stateRoot":"0x05f3051a4059006827960f3038d6a8fbb3ae6084ca25a54bf630d3dfdf0eb579","timestamp":"0x4a6","transactions":[{"blockHash":"0xaedf26d7883abe6d78231e94492bbb3891131f2d88f6c731e4f0717eb738b747","blockNumber":"0x4b","blockTimestamp":"0x4a6","from":"0xc000000000000000000000000000000000000000","gas":"0x2f3fa4b","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0x4a0901507cc3ea253c7fdb77757318ffc3aa2f269f3dfafe891af4f6d2425e15","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000001","nonce":"0x11","to":"0xc200000000000000000000000000000000000000","transactionIndex":"0x0","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0xaedf26d7883abe6d78231e94492bbb3891131f2d88f6c731e4f0717eb738b747","blockNumber":"0x4b","blockTimestamp":"0x4a6","from":"0xc000000000000000000000000000000000000000","gas":"0x2f3a51f","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0x94cf06f240cb01d4b58f0e349aca3e858bfd2073f5d50f8eaecbc3454987961a","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000002","nonce":"0x12","to":"0xc200000000000000000000000000000000000000","transactionIndex":"0x1","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0xaedf26d7883abe6d78231e94492bbb3891131f2d88f6c731e4f0717eb738b747","blockNumber":"0x4b","blockTimestamp":"0x4a6","from":"0xc000000000000000000000000000000000000000","gas":"0x2f34ff3","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0x981c520c191746d96d66a786a4093a6d67b7d85a5df31cddc86b7a530d9e3730","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000004","nonce":"0x13","to":"0xc200000000000000000000000000000000000000","transactionIndex":"0x2","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0xaedf26d7883abe6d78231e94492bbb3891131f2d88f6c731e4f0717eb738b747","blockNumber":"0x4b","blockTimestamp":"0x4a6","from":"0xc000000000000000000000000000000000000000","gas":"0x2f2fac7","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0x608fae81d356c3750c6fc533699a4a78ae2d91b384442e94ccbd588cfda12795","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000008","nonce":"0x14","to":"0xc200000000000000000000000000000000000000","transactionIndex":"0x3","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0xaedf26d7883abe6d78231e94492bbb3891131f2d88f6c731e4f0717eb738b747","blockNumber":"0x4b","blockTimestamp":"0x4a6","from":"0xc000000000000000000000000000000000000000","gas":"0x2f2a59b","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0x8ef5186aec392f3b847c669d35b67c49674424fceea62bb5014bd1dfbef6bbd4","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000016","nonce":"0x15","to":"0xc200000000000000000000000000000000000000","transactionIndex":"0x4","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0xaedf26d7883abe6d78231e94492bbb3891131f2d88f6c731e4f0717eb738b747","blockNumber":"0x4b","blockTimestamp":"0x4a6","from":"0xc000000000000000000000000000000000000000","gas":"0x2f2506f","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0x1e899de990a676b8f4285d971794bf4209a21a28383fb23fcfa5d1e0dce5aff8","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000032","nonce":"0x16","to":"0xc200000000000000000000000000000000000000","transactionIndex":"0x5","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0xaedf26d7883abe6d78231e94492bbb3891131f2d88f6c731e4f0717eb738b747","blockNumber":"0x4b","blockTimestamp":"0x4a6","from":"0xc000000000000000000000000000000000000000","gas":"0x2f1fb43","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0x788063835f19f7451c6fa59b6a9ecf922840a113a170926bd942ebdf26482e01","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000064","nonce":"0x17","to":"0xc200000000000000000000000000000000000000","transactionIndex":"0x6","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0xaedf26d7883abe6d78231e94492bbb3891131f2d88f6c731e4f0717eb738b747","blockNumber":"0x4b","blockTimestamp":"0x4a6","from":"0xc000000000000000000000000000000000000000","gas":"0x2f1a617","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0xbd9a976e2076816391816f808e84cd5e99a5b54a4e8a3fede528955c8ba265b5","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000128","nonce":"0x18","to":"0xc200000000000000000000000000000000000000","transactionIndex":"0x7","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0xaedf26d7883abe6d78231e94492bbb3891131f2d88f6c731e4f0717eb738b747","blockNumber":"0x4b","blockTimestamp":"0x4a6","from":"0xc000000000000000000000000000000000000000","gas":"0x2f150df","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0x9267174309f2bf535064ac08f4f93e1767e4f92a8458322010eb0950cd9b91c6","input":"0xee82ac5e0000000000000000000000000000000000000000000000000000000000000256","nonce":"0x19","to":"0xc200000000000000000000000000000000000000","transactionIndex":"0x8","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"}],"transactionsRoot":"0x9081f7d0a8588468bfc581572503c3dfe6794a67224c78beb1773005d7f64037","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000","logs":[{"address":"0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee","topics":["0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0x000000000000000000000000c000000000000000000000000000000000000000","0x000000000000000000000000c100000000000000000000000000000000000000"],"data":"0x00000000000000000000000000000000000000000000000000000000000003e8","blockNumber":"0x4c","transactionHash":"0x8e16b613b4cf042afae1afaefb08a91d4d83bcdab1966e2ff2c1476fee2c19f6","transactionIndex":"0x0","blockHash":"0x024266fdf79811c63c00db547fc9365c1021c8bd9e83b75fffc66ef895113b66","blockTimestamp":"0x4b2","logIndex":"0x0","removed":false}],"gasUsed":"0x583a","maxUsedGas":"0x583a","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x583a","hash":"0x024266fdf79811c63c00db547fc9365c1021c8bd9e83b75fffc66ef895113b66","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4c","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xaedf26d7883abe6d78231e94492bbb3891131f2d88f6c731e4f0717eb738b747","receiptsRoot":"0x31a4a1c53003df7f84438f41f286e63a023d3a77f96b2dcd61424349c45d9c97","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x2bb","stateRoot":"0xa4f8032a35a4644a9f4ffe0a2cf578f9e9e0c929fa5c826f21b500be0522edd3","timestamp":"0x4b2","transactions":[{"blockHash":"0x024266fdf79811c63c00db547fc9365c1021c8bd9e83b75fffc66ef895113b66","blockNumber":"0x4c","blockTimestamp":"0x4b2","from":"0xc000000000000000000000000000000000000000","gas":"0x2f0fba7","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0x8e16b613b4cf042afae1afaefb08a91d4d83bcdab1966e2ff2c1476fee2c19f6","input":"0x5c19a95c000000000000000000000000c200000000000000000000000000000000000000","nonce":"0x1a","to":"0xc100000000000000000000000000000000000000","transactionIndex":"0x0","value":"0x3e8","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"}],"transactionsRoot":"0x809462a48d8173bb83069f0febeefc6eed7970f0117d51388032a58affa31cf1","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x6038","maxUsedGas":"0x6038","status":"0x1"},{"returnData":"0x000000000000000000000000b11cad98ad3f8114e0b3a1f6e7228bc8424df48a","logs":[],"gasUsed":"0x644c","maxUsedGas":"0x644c","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0xc484","hash":"0xd0c5fd33e2d9e01d2104ecd458fdccd824e92c21e42517df31a90c2bc2439112","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4d","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0x024266fdf79811c63c00db547fc9365c1021c8bd9e83b75fffc66ef895113b66","receiptsRoot":"0xe7e5e1065fa5ff9117f0cb1c9dfcd1dbcfcc27d9c2bb0f28bdab3122a54fa411","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x3c8","stateRoot":"0xe63e34df4a04cf6dcc54370e801658ed0593ea910857b1efa096b9f199dababf","timestamp":"0x4be","transactions":[{"blockHash":"0xd0c5fd33e2d9e01d2104ecd458fdccd824e92c21e42517df31a90c2bc2439112","blockNumber":"0x4d","blockTimestamp":"0x4be","from":"0xc100000000000000000000000000000000000000","gas":"0x2f0a36d","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0xef4339abaf9be9d7504baa57679f107e1b05a0e39e5d32a7810d4885e14454d9","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000","nonce":"0x2","to":"0x0000000000000000000000000000000000000001","transactionIndex":"0x0","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0xd0c5fd33e2d9e01d2104ecd458fdccd824e92c21e42517df31a90c2bc2439112","blockNumber":"0x4d","blockTimestamp":"0x4be","from":"0xc100000000000000000000000000000000000000","gas":"0x2f04335","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0x241b9eecf0b43310ffe71171abc8332092776352698879f2acf6819f24c9f407","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9","nonce":"0x3","to":"0x0000000000000000000000000000000000000001","transactionIndex":"0x1","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"}],"transactionsRoot":"0x8c162537281b9a14a0890408516022080e6336d3928114291b95dcdf750fcd60","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"},{"baseFeePerGas":"0x0","blobGasUsed":"0x0","calls":[{"returnData":"0x","logs":[],"gasUsed":"0x6038","maxUsedGas":"0x6038","status":"0x1"},{"returnData":"0x000000000000000000000000b11cad98ad3f8114e0b3a1f6e7228bc8424df48a","logs":[],"gasUsed":"0x644c","maxUsedGas":"0x644c","status":"0x1"},{"returnData":"0x","logs":[],"gasUsed":"0x6266","maxUsedGas":"0x6266","status":"0x1"}],"difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x126ea","hash":"0x2439f272a07e6283cc8629d9a68f0b9c15f770f9b5fbd9b446b145bb82a2cb9d","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0xc200000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x4e","parentBeaconBlockRoot":"0x0000000000000000000000000000000000000000000000000000000000000000","parentHash":"0xd0c5fd33e2d9e01d2104ecd458fdccd824e92c21e42517df31a90c2bc2439112","receiptsRoot":"0xb0864511e526165945eaf5efb38cc8b2b705d55cf210fcb629e3e43b73715474","requestsHash":"0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x47a","stateRoot":"0xbf65a272c42abd238cacb311f374968bae35ccba7d2f83b5dbe4c9e8f1879e06","timestamp":"0x4ca","transactions":[{"blockHash":"0x2439f272a07e6283cc8629d9a68f0b9c15f770f9b5fbd9b446b145bb82a2cb9d","blockNumber":"0x4e","blockTimestamp":"0x4ca","from":"0xc100000000000000000000000000000000000000","gas":"0x2efdee9","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0x8cffcefa3b5b59ca8e7a7984aad6c903e7b8bfa641c30e1633f3407c47bc5094","input":"0x4554480000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007b45544800000000000000000000000000000000000000000000000000000000004554480000000000000000000000000000000000000000000000000000000000","nonce":"0x4","to":"0x0000000000000000000000000000000000123456","transactionIndex":"0x0","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0x2439f272a07e6283cc8629d9a68f0b9c15f770f9b5fbd9b446b145bb82a2cb9d","blockNumber":"0x4e","blockTimestamp":"0x4ca","from":"0xc100000000000000000000000000000000000000","gas":"0x2ef7eb1","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0x804c006d30183864672cbfd1195b0e0c813b1bcdf11ea4b5b67e0cafa9ecc9cf","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9","nonce":"0x5","to":"0x0000000000000000000000000000000000123456","transactionIndex":"0x1","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"},{"blockHash":"0x2439f272a07e6283cc8629d9a68f0b9c15f770f9b5fbd9b446b145bb82a2cb9d","blockNumber":"0x4e","blockTimestamp":"0x4ca","from":"0xc100000000000000000000000000000000000000","gas":"0x2ef1a65","gasPrice":"0x0","maxFeePerGas":"0x0","maxPriorityFeePerGas":"0x0","hash":"0xea5843904756a9a6eb1ab9174124b1affba4d522e52e6f1c3d43e42b061a174e","input":"0x1c8aff950685c2ed4bc3174f3472287b56d9517b9c948127319a09a7a36deac8000000000000000000000000000000000000000000000000000000000000001cb7cf302145348387b9e69fde82d8e634a0f8761e78da3bfa059efced97cbed0d2a66b69167cafe0ccfc726aec6ee393fea3cf0e4f3f9c394705e0f56d9bfe1c9","nonce":"0x6","to":"0x0000000000000000000000000000000000000001","transactionIndex":"0x2","value":"0x0","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x0","s":"0x0","yParity":"0x0"}],"transactionsRoot":"0xc3f74dba35bc91d16bf23077a7d68abfd4d5d77d4af5d399182222c96cf86980","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}]} diff --git a/tests/integration_tests/spec/eth_syncing/check-syncing.io b/tests/integration_tests/spec/eth_syncing/check-syncing.io deleted file mode 100644 index 3aba3c1eb7..0000000000 --- a/tests/integration_tests/spec/eth_syncing/check-syncing.io +++ /dev/null @@ -1,3 +0,0 @@ -// checks client syncing status ->> {"jsonrpc":"2.0","id":1,"method":"eth_syncing"} -<< {"jsonrpc":"2.0","id":1,"result":false} diff --git a/tests/integration_tests/spec/fixtures/execution_apis/accounts.json b/tests/integration_tests/spec/fixtures/execution_apis/accounts.json deleted file mode 100644 index c9666235a8..0000000000 --- a/tests/integration_tests/spec/fixtures/execution_apis/accounts.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "0x0c2c51a0990aee1d73c1228de158688341557508": { - "key": "0xbfcd0e032489319f4e5ca03e643b2025db624be6cf99cbfed90c4502e3754850" - }, - "0x14e46043e63d0e3cdcf2530519f4cfaf35058cb2": { - "key": "0x457075f6822ac29481154792f65c5f1ec335b4fea9ca20f3fea8fa1d78a12c68" - }, - "0x16c57edf7fa9d9525378b0b81bf8a3ced0620c1c": { - "key": "0x865898edcf43206d138c93f1bbd86311f4657b057658558888aa5ac4309626a6" - }, - "0x1f4924b14f34e24159387c0a4cdbaa32f3ddb0cf": { - "key": "0xee7f7875d826d7443ccc5c174e38b2c436095018774248a8074ee92d8914dcdb" - }, - "0x1f5bde34b4afc686f136c7a3cb6ec376f7357759": { - "key": "0x25e6ce8611cefb5cd338aeaa9292ed2139714668d123a4fb156cabb42051b5b7" - }, - "0x2d389075be5be9f2246ad654ce152cf05990b209": { - "key": "0x19168cd7767604b3d19b99dc3da1302b9ccb6ee9ad61660859e07acd4a2625dd" - }, - "0x3ae75c08b4c907eb63a8960c45b86e1e9ab6123c": { - "key": "0x71aa7d299c7607dabfc3d0e5213d612b5e4a97455b596c2f642daac43fa5eeaa" - }, - "0x4340ee1b812acb40a1eb561c019c327b243b92df": { - "key": "0x47f666f20e2175606355acec0ea1b37870c15e5797e962340da7ad7972a537e8" - }, - "0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df": { - "key": "0xa88293fefc623644969e2ce6919fb0dbd0fd64f640293b4bf7e1a81c97e7fc7f" - }, - "0x4dde844b71bcdf95512fb4dc94e84fb67b512ed8": { - "key": "0x6e1e16a9c15641c73bf6e237f9293ab1d4e7c12b9adf83cfc94bcf969670f72d" - }, - "0x5f552da00dfb4d3749d9e62dcee3c918855a86a0": { - "key": "0x41be4e00aac79f7ffbb3455053ec05e971645440d594c047cdcc56a3c7458bd6" - }, - "0x654aa64f5fbefb84c270ec74211b81ca8c44a72e": { - "key": "0xc825f31cd8792851e33a290b3d749e553983111fc1f36dfbbdb45f101973f6a9" - }, - "0x717f8aa2b982bee0e29f573d31df288663e1ce16": { - "key": "0x8d0faa04ae0f9bc3cd4c890aa025d5f40916f4729538b19471c0beefe11d9e19" - }, - "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f": { - "key": "0x4552dbe6ca4699322b5d923d0c9bcdd24644f5db8bf89a085b67c6c49b8a1b91" - }, - "0x83c7e323d189f18725ac510004fdc2941f8c4a78": { - "key": "0x34391cbbf06956bb506f45ec179cdd84df526aa364e27bbde65db9c15d866d00" - }, - "0x84e75c28348fb86acea1a93a39426d7d60f4cc46": { - "key": "0xf6a8f1603b8368f3ca373292b7310c53bec7b508aecacd442554ebc1c5d0c856" - }, - "0xc7b99a164efd027a93f147376cc7da7c67c6bbe0": { - "key": "0x8d56bcbcf2c1b7109e1396a28d7a0234e33544ade74ea32c460ce4a443b239b1" - }, - "0xd803681e487e6ac18053afc5a6cd813c86ec3e4d": { - "key": "0xfc39d1c9ddbba176d806ebb42d7460189fe56ca163ad3eb6143bfc6beb6f6f72" - }, - "0xe7d13f7aa2a838d24c59b40186a0aca1e21cffcc": { - "key": "0x9ee3fd550664b246ad7cdba07162dd25530a3b1d51476dd1d85bbc29f0592684" - }, - "0xeda8645ba6948855e3b3cd596bbb07596d59c603": { - "key": "0x14cdde09d1640eb8c3cda063891b0453073f57719583381ff78811efa6d4199f" - } -} \ No newline at end of file diff --git a/tests/integration_tests/spec/fixtures/execution_apis/chain.rlp b/tests/integration_tests/spec/fixtures/execution_apis/chain.rlp deleted file mode 100644 index 2b393a8987d2e1390ea6c2f86b166ed128f90840..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54615 zcmeFa2|QHa8$Ui{C$jHiEFoF4?-~1^ER`i&*6frBG1erNgrsmqvQ)|vO0ttewz89` zBxE02{O`;dOZnte{l2f?@AdtE&*wAeJm)#jJ?GrpdEV#!+≩iWG@7lG45^D7U5 zXY;xT&pf{SOx#MQvNxh#$oGgkJL0xQC0h)z>xJ%zfqHYl-0&iYhc7yq+No5TFVOV1C6^g7g#?Y^uBq}i8WZlxrIE3fQCY4j1Y(t zIV&3Oh=QlGe zh`7~f7V8x#jg|Tl*Ug3~qn%b%-^{F6CQ&ku73(ZBz#eh-&BY~RuVIGlg`KWdY!Qcv z-t1{$(PSZoihSN9{}#Y+-%IcWAkU?Bss8Lc6>;{(@^>M=(a=0gbDR$`+HSZUzWL0sk8^jB z59Ho(Ag!V)WMeJ^n2TK&&nqm)+`so?lI=Nn8I?=1E4`d={?Qn#0+L57GDtsM@N{bc z1md1DY7!7Dn1L1C%nEJ=fmy*2`c_bAi~)KzSVQ5#6jnQq9JGc)tl;3vNcZvP|I~G= zH-$PVR;UJ26cMlUnXl^wi#0LT$x!AcQGm7m!_+gjxrp-${4_C7d?*=vaX*CaxV;<~ zvODT>2<3dm5^f3_r5@orR@EJrIm0axUliI`*IH$+8QB9+7~{2{?@tU8`a_he9J08o zz-4*gJbhL~()PlIu6klJgo~m6&i4fcdS{x`fY&6q?{{>xDG6l}d%)Wl_6-|a9=I>) zzdw(VrldBDg9Wfmpw6ADICAUiwNI~~B^(hZO-*d5vmTWR9zaA$-c$BRqZGy3zYRuO zts~$N1O)Xz1OkVEuDq5=)}+k>99_l1Th*ew!GWP`FbKND0ega@6)0E7ND!<&TEAt6 z>M~|S3zP^8uIMpf5U@&t9)W0s)jx`070P?4hE%gUrN&a4oX1*q$eJ@__*Z| zh+E3o#rMO~1HA&4W@^ntL19IF1axm=Z52i1&Pt0YSMLK^`YN()l95SS{WrNLb!Qw; zs#*i)H(Cdj9WM3T?tRZ9GkrRh60R$fNksP@EkN2t#x*&?79siJ+v`8+v^CDvT#(bh2uO_^v9v%Rl0tXC)gLc@Ow%0Z4jB2hi`g zKO^_l9M^#1=(#!NT!ie|%5r$G<)aY#Hxoz~0`P<)fVeYF^vaS-a}|w-RD4B>FCRI4 zJ9xp75RNv)GX!g2ch;9Z?6=1)fN|NvV2%U^?Om z9ODyL^`bb_6uaiMIDd=XH{k1zkrN2FHt=K9FB_gaZUqmVDu-QUI&_7oDlB zbT8Kp*V4>Xzz*-VUOIi^Zdw#Q^vW4goYC2eCHzAu2R#%DKXL4EdWP_#7`|FK**6+} zdZwe-aEXvE>LYVZ6HGvYeyCE!Q(BFV437RRtRru2(zjc_T{YnjoQa$ibS>60%$`3FD;g<}>n z0xUH!A~uJi1UR^U*AwUf7{5cQV5n?s_gY>4>y5Z5Tlne+EHIvg?hCAKOyGEMbbZZ* zHnhTF8!B6hh%J2dhhbolH3tVz2j!r+7zf33pl1Co2h~OT5&hZjzzo38&OLX&siBow zH6eQF)T7IMaZ1kphXe8Mh94x&S~^<;Fl2^Po(iyy&J}0|K8;WCmQWo`-V0~w-up7E z*4DLS9O+5?Tj0O~@HD4+?k#Kel$d^z484|-#9qn}puDK^&8py#&)#a6BtVj;jBJd; zQdhojygzEk@EOOG_;a0aJtjh&aHK*wXm=xzlKe9`K)Yjjn#*H|;zytKybPe~^%d5? zhPY&R`BBE@sDvK48bDPkcq-d*&NmG&+=*7@yeWH;gYT#ulGQzb$G2x^Bea)rh?a2h zfz$t)-EPa(vOx(P{=i1h{NhmNN~r3)*b1bZnZ^+FHJ7^;&|^YHZ*29`5C*QE! zAy_Xv9zSJg<7j={4d(4;<6;Nf2W+_9TZ)lb?GnBr3Rl}q^^L|8Ob9RP&b~Sq`!ytq zn(RR9jW};Hreu~^PsywSO;Sc^NdKvr?|2RjhjlY_2RW9Y>4Ap{g;l;OzSzq-xHYcE zr^H;06anQ)Iz>U?}DX9q27rUK(VvlIjh=Po@QnG(MFW))Spr6_-Pr(?Uduq|kA zYp{(gZ8w4chW2%eg5doLRfU1=PH`PoG2!H%7w%Vmbs}`i_Y@r5BX;+!o<@H|JOX;j zRAh+Gpy3k9ABK|$jxEM>J(T?@;v=>w)p{ax%mFE1VLwuz{7$mD=R8vm(9%fZ)gSK6 z-1J2L=p}NGml7$9M=g9*9|<^h-_Kty9n4St3|i{kbz_t zfl&Xe9-<35Hf+87u;|6!5X(WRu8m zp(+?o?)**0=rV-M?)>`EQa&`CdPH7$kT=5SO*0*8 zo2W$|zjW3}=ltWY1MmEgrRTXd+IvUqN61Las>sM7uXF-}hg|W+4NThuB=pQyOg){# z8N9XkA3Mi{yiq-PD8#533@4pXv}d*y&Rb(g(PI6Sv^Mmv{3P!8W7X8~t!WS08IOmF3gouQJ}LWF z$Xp?sX;hb}8Lo4Zkr=~HK<%l4K&^Xs=kE(Uy6#%6Y7(4Et=AcBQ&N^S|FHMAVvrfx z1VA%bIbG!o4K<}mZMzqG>t)zw!VAkEm!v}d8JbT!cz2^5bako1c(LmlUBb~hHtqu} z;5uG)+trp;&qJWA2vo7=mT1*a<`^v|U%d~sQMEyaVPya{Ea;$^k+DvN8hLdt>niLa z5S*=am{wH3aEu6cfk`L_C0Gk5<$lXSk0FDp{){J_Wf*-d^MnEb#B4ic$)WAyyfu?; z(AzWN!IkfbB_WNkYTv=6`vfJJ0HXM2-|$b7Q%xMla17qBJR4r=dn$gm{#DogCBG`@ zRdS>+^>1Os>d2`8jR=*QL2hA=3N@3e^oM)R1o)bbYMeakds#$RcwaVH0mqH{DH$$4 zpQ!rARY((1=27i5;!3zgVIYGa5nSVP7KXH;`6sAY8)Wgd*X?E>?vm`X6NF;cv#Kw> zck#q?rY|(M&P0(FQoR7&d}KZ1qJt8x%4{+h?c>HIo)=$lke1ae>KWwLX@QfkvZ4Rb z7Pz_w{;}AW>}+fBPg~$W4*B2Lu)YN%=~DzUSjsD%v<^iiY*chQ;_{ ziEgP|gDo2|g&pBw$3EvtRP_O0(+U(JCduwJ)6V9;&)$yx_$b<8SLd ziCzjnU?le3z!I@R-d=>GO+f70m|z<#e<8>G;@Ba^)RJQH`wG;@~VobH)0$VHO z3EE$ghd{yenoBZzY$)=uhCc~ykHp;{Pn{bRxlHV;>)*l%O@6JmlmBkc@SB ztmjVKYQNc-6a{^Q=K^h)M`I9CD{irGsBe+WDkvQaLfX@zIfUgQ0f6j_uB2x7JAvl6 z<i@BLFC3ZJgcDJ?FYeC5+@%V2N)@Z*X*H<7&MkJE9WBJ!W^gT(=$|YAvpM##eVT zB`i|r(A&(|UeCPKCym>mCNfLa>E8a(iVUXz%bnyw=3}bsLoO*7PJLCTDH~T~AaKh{ zdN6qOmY1@W?Bkg8fLz97UH)vPj@tuchp4_xAN$5P_Th{GKIA?H^#wTckY|PU;_vD}CrB z!Qpa?jubAcKMXwa7SB+8;JbgUPt)j?NOj`ziyV9%OhGOn!KYsiOp%9$Y98^4eomC!D)> z@7?U1vl`=2H&9hS;RwNb!*RtP~)SP0?}IFdGNQO zwhZaZ@Mom*KzSVX^o8D(xQA@7mrH%JgaeX9-f>C#eB!n?6g4IFm6jKDcCrQ@bKjDgw#e7_y$rBTUYV%pOLRT zakE$E(O70LEnpPYnMv}7Hm>4^(A=Bd@%bJ)q4-Q9qfg(wjd!`Ge|r>pg6UT~iO+H4 zlDVk2>>G9x061ot-WmdaRe;&2@LL-)^nK@{Qkw0S&F~$0?P168`~(ZEZXa*XD?Z~V7TfjX=(upGd;IH_p2 zhw3-C);|1R)u5d{JZJ4qnkw6mWCsVxTnNzx&WtlPXesb!9QrC1lqOGC{rZVH?(VPW zjkM}2sns))hM@DJNd^qNt~ZoxI<&CrW1ux+)dpLxRzdfNt%_SY~uLHy-BcGBH2uFD&wn0Z^`g6^=J4|Px;xhBgC8~(0U@Bk{IBfz=u9S z{2uWX;J5$Dq~o!Hr7yl8#&$^X51)Hr#BGJUBeC7c!Or#>u@BOQbsPKufRjgz_N-`^ zF4>#IDbzSsKSdV`J+azFL25aeY28w!b_S5ErOg}j>G%-V#e3(3B5x7nmu9->d+5ve zs!uf96ID2_GNu2}_K02hba1f>$V^3!+% zk3N>)_!uhLJ<#Gn1rX0&z8jF!E;>H-?6xr=#17C^8VKp1^2z#q`-1y0ySs z=DknL=W$|!t-)3|kwVD!P*@KE!O9$&d_nA|I;#Z?L2~Hj~O|ee7qI+GTYq@&H z?erLZA$*&qfY^K?(760hfChoU(bhkJ8EkVG|GtKS)?WGyJQ{VlKs zgHpC%Q3(PRn^H5i$*?cE)6h5_-Y zQEolacIZ;B(r8vue+BK~LtJvHDfE zq=!^;Ye6XhWRU{`PFL{0r>Bp?_q1xe_O{L1y{`AF5J=1QF6#H=09cbB002H^Q0a?{!iqqK{6pH1zNo>OEUR=%ZO#dlH=kRSEKXRjA#T%=|AX z{Xgs#|L3|}Co>4!pP*J8*lwV8sKo@O-|IenkrdCIQK2g+jST8&EE+kf?AE079_nax zb~64X-5&;}Ej4ZpL97EE-14-dGmM2ILi&QI-EjqB=bkY6$Q>5Y1Wx(K1TuMZ2KJHX zG{xBR+GL0eCJM-@=pO2z^@%SO7zXn6ljJ^*8INal`6Y@rA7!`ihJ?aU7^)6OWm_aTim+lHI>IrBf_=lVhG?8dtk>|cA|{UA z^o?EAP-uHJ)kRstV;~z2fUO^k2gk~&c0BayU``3E$8?0Qt%d-8GxI!@dy{bru>sob@~Y!G>Z>sLET z`Pbc41%lK)8+MXZ!1u*vuTdiS<)ehnWuD&2k3uf(Y+$m&EzzrGv6ove-wjAxN1aFz zRW6^oc(<>ZWB>kRf%L zgBx}dVtW2Bs+a6q;}Ioa`A&@Jv?kkMHn?y>G@G2`&;y0%CP0w?6>gcwq93R$Q}*~1 zToUmxTp-$;LK@E9eXVEt=38xSP-^o~bM}%`(R&-tN|&*Um@eGvk5>oU+N*Zd*g7?O zRyYB#WVy6koRNMr9<5hd@k9i^PkYp`HBTZuX0G|TulS2Qf@X!E-#c-NKYX_k!0I7g-Kp(ccr9rr;NJBmJod*jX3JVZ6vdF88K?PQ zlL6Y27bs2=SSBh(^g`Lq(v!hZI^w8mg{#Gzliu` zuba-(C+>tE3!&-A2W+1k9G|MGn0gVS)pxQWfR4+VJd>&V)-HdV1LYD=J{2H+dHxJP zE_1e5pPfFa_%vb9Kr5XnkUpQUmY<~-xDqMF94G(a5fB)8=78RT+ZLTO!&45|So`ah z^UcbxUPueAYG@2@jMGBe@NR=20Pu}*P*Ur1#!_OrzsfQoR%P?jKar6x#m>Bu+NThQ zN(a!rH)tj@Ui=9D^2%+oS+&C=bcO=^yy%DFUp*S~;^Qx_GNu2}_K005|5R=pb8c&} z?qUBl#(%vY6^UTBM}+TBOi2RR?)=x866$LyNI)k}QuW|)*&<0NZT>xzlBBv1v(r<` zII{Z+N#<(b-Y)_slu}rH)fMI*bQ;5UGKHK@q)%p8loYI={W_WVq@~<vUC51vaClEy_;@JaZoUESFQ8>4k>&`*9$5vGz4EfcacdAMk-!<4~DIm7H5S!ZJ z=-LLHMb%+wB_`Vf4mY&^vxtJ>81VBCaQx2){+kwXDO8ZH1*O3uzlFA7RJ!L^Tq50s zvrjQYXJiAH0D!0S`-?LAt%_uxznb1nBCGpE0^fNCsLJy1dP{wN;qp9y7h^4C(5IrJ zBHY|Irj_fkSC_z7jIO#y^UA%<_LH5BNP9jsm)QF2R%L%Q?v4 zy??otFx{TqsW6Kx@YSc&^JV`(1c&?twvxbh zlUfH`+{Y-e{buU7*Uptok;pA6WFS>qROm@g5zpNQdG$*Kq9Y%xOt>GC!?3)iGjxA&~o*Pgb4c+rFpIwyqtw&Yf!;gTGV`0Q@6xbqAXA4JVKPAK} za)RL;iX`G8z-(heU@9mOgrWNY?Kguh0*12Lz%a2RfybZ@!=Nz&GYhczA;C~}bm)u% z+w}y}UD#^vhvz4h>qZy}oI7eDI99)LelSoOiUWo0TnkHsqkju*!MK$FPk3c25FNM$UQXqa>HJd3OLrP zh5KD$Zc*!<+0&p;iGTNECI9QJv9vv;o)$vPU;BV#EL!;!`Q&@J@9m8{IR(7-7qGv? zdj3-62bhXGy*$@Rq`eS&F9~~plvnIhiBof0wv4or>lv%L7iw#9X)1v4OiA{1!ca+* zB(QBIv`#7)Z{O7U18;C+zkTV5oICyn@U))#^p>Y8Y4(k+)QVcxO<2~$o}unMFFzU= zg-^t`%3xgTg7RMCejK07w2Is_`~~fv z6Ba%-iFet2A6-b=U#L3FI(s<=aW3S7<8K0Yo-dLd>IH_I!cM>IpqTDjsrTc>8?9nG7vJ8>Tr$O#8TT1?K?D zg?ubR4O-MbHj`5k*2x_7k7pZmYkg5a2qoT3XCMgdGG8r;_Whv1RAE@}+t3O+%C8ay z2o+nfCD__AFuZj?NB6bfM1%zZ4YW13238O##ZTRW3UtG!DXmw)n_pOmMtLv!T3i~O z@LS#s2B!P|l1(%=XX~pi7)?@|XdIu@`(&E*4nAg*uPs2<#Nu^pX#Ot1XZwu8T=kAE z&d#}E!k$bWT;-mpxoMEVN<34j2=v5r!mU0q>)vHWV{(ofIc_5qZP zV?zawl28>*L+`k(0I=`NMt-;6oDJ&i;mCqIaYcFMI@>^{DMjVuQkpr0NRT!n+X6^n z079!qH~!7n3)$0WJu(e?E(~4}Eux)n2*0UW^356m4(}I_nzbEzB{}UFJ*b3Kw!W#~ z;ZR!~8WfYJcB;d6VwEiYhc-ym;`vqDHtyWkV4G;PhTzL&9KT9&QC_CWEDT$6Oj`-3FU z2edu7a_&1_?}!sue$wPuD6F)kqvo(R+}zEC z{Q=nQd^M0;SVhj6HJEf#mUepOYffI>tqRlQk&C#muP{oVxUE$HC|F!-G3RWSUDDHW z>uY&=;Vu5PbN7lhyayKn3hiYvf^F6U0(+kSs)VDhHj)ug0YfW)RVZ0ou|bxKd=6)~B=UqB;+2zjub=agQmw zw#kM?_fXo+B(H+)wtVJ)k?F=Y{r{AV0$U89K?DOofvq&K-DKCn789AqAI6vAUaHBI zXBN2g#qw6Pm;{c$7k92!VB;%GJv^cde;AoQW8AGCZu+WUEF?$#qS)eMC5L3l=g3=^ zY#QFSz1DQ50}6+EF73L#xa{-p+|e2S{*G*8Bi(LpKd+>Y);KTQOfA5%*X?s6;SjXq z!}Y45DNP#uP>*X9$BQS#-f_}|O-|2k09*L_Nv|Rn5d^XN4LYz1x=IXT5C}WU63Zsn z`62}zfok{xY`H+bih~CO8xY_JlX$Vhwk3Sk0=5peM0gvI!WiIT21TG+FdCEuCe$o{ zn9w@@qb*R8DS~o6GR^rdumvMii9aKjP)CMbX8c|pcMn4Y;;c@qws-?XRukkwfDF6k zqkNegBb2$=9sLJQkTYEohS{;L6!pap$_yvxe;A0K0v`LG4$wsjllocrES8 zjdt#v0wYtYU+pDF#SST{PM6hf*h|32EX{Iv7z+5@U&eY1TP0nzc(Qx&m@vTR4tMA(%awV1c1)GM6Ee` zDz8sTWL_V;&Ra0Oy1RJPxY@gRB2Iyw>5Us;LahFL|B?CJphC|aOCPVIcFTywcZpMb zm?wEIX0#FxfRU*yDl)w&9<6QV`Ye%bXT7umyDlW)>Y1L84`z8}4t=$1wAd#K>dm)k8S-|P8L6W@8!Vup1YqJBwMZ0!qSQo%~2-1sh-+fn}Nd6IEec`g= zJ=VKCUK@9`sgU1Z!hxX)r zr=UYsl&fGJd$Z$!+VzI@zVIMeZ^V|UHWViOzGKSxNlik{_cKXj3qrTq@w#*!|{U)4EFnRXA zfDc@6>OhsquH0vz4Ez9|gQKA}D{>j}6D+%o1%_T{)i_EAy?OB{=8-dHi(#J~(pMIo z0vq_&#eercv$c`0O<5xE&M@SL?sC+XY<|sbrg67yc;|grC{_916w1Ov0AF6n&J_R3 zd5Pk0-JcOzFop-wRJ-pqw|v#YXFZd^HG;H}0|A66a*NlRtqnpa#i4f!eqT=OW#8Uw z=RX_z2q+zYCH|>xfaAu{%;VQb0H2o=!oZ6(&CsxHaD5dS8{ZSjoOjbnb%EQ!l~1UCcf9Ib1GZqn4a}7Vef>03kE7 zB5yrhL+0Nd?4#3<$N8Yyr{O-Xd-`qOv(9+s*XF<^@dyjM>QGGm;mOe8qumMJEwnicDh6LLn|BV=fIampT_?up~I2K$C71XPt>79$g z<-diuU}!4;D>|Xz9i3X&??AADPNV{!xCtptjGuV+)*QJ}g~Y{9jlyGz?!gb}PaTX0nEgi7 zvo6t=mY>SdI}?|)Akog3KdZ}TvcCk1 z2euI>cbyj%DhEz8T9y4_Y^uuq!b7fJRfr5Gd|+=(^Z0%Gfg$_QaVVpElR{X|MiJL?wYD{}_DF~aDu|0aM9N}e_CPo`{Hp}5Q zZ;$i-Z0}B^ zMA|+qZMe~%<#bP@w$a%;x^$M*9184>x7i<@v}YuXho|GD`dyYbE;&Y7mXr3`AK$oK zB_stm6Qy5mCUNq5?}zWQYcB)=_L}9#9Q_N8= z_8dT?*O$+&+k)alCy`&9-ZwKo3q~0F`2**R;65;bj2wcp(qS9mcr;JHIpzr|r5v zL&AE=Kwb6??XEOmliG7iP0l82TXQ9SK-ER?#KW{}7laj~qPuI;GX@e&=iHYRAKYun zLx%7JJDFZ&ISlV`s7}83hW?J;$4Wm#K3!MgTn9O?Os|SaU!c}*uf^dU{!tRA5^gGc zKUemXsmgnuv+uC()4LbT-!*{p-mRSh>zV7+2egBOiym|Z7+8Q_ga8XLty^H~sJIe) z^wxc2>{dN(!;iI5dKk75RRS9-aFmSB{%Oh>sM$Cj%rw9peg6vqgX}|ff=*}+NGi6egm$`bw`deL>IsVASX&4%*%1` zuKKmMvjAFBt(~cvK-qBt#9Ko$-6z{D2E@jdu&J`K0V~7N!bZFU6)?2&-(}EWn8o~} z?cX%P{>cc$TR7c%Y})r*cni`A^}GU$GMqH2FK!0E^rjI45QNbYAD|JZC*H5w{V7&MhDG>W!F?9rdsi9?4ke_&T0+`u zpy`BwRE&4I+1L!1(<`H9TK>-_G5N%6u_*u?Y~5q0aXE)Ru|wsCo?-n_{3{C|p)tJq zIHEdCZ*SMI&azybl+byG3zC6GgikCB#N>Lqh0_NZ<9Z~a`_%ZPv zjRw=bydq-y-=E5_qV2YX=6|v2KdtZo>v|O0Vh9Z)xbJ7Q{jIkjp}*1lWK<(B+>r6Q z3#}=Oong|an$GVWeK&eZpA;~0K6!D>>rZ3T3#D)%dk#7^#Zvx|Hx$PWmvtgn0f_=Lfn&Q$7~QvjP6@r1yYK&OR; z-X#9MhCX*%S{E*o$x&ux%$tkU?o3#;MRPq6C*kOS8x-onP!a-_ttZ%;xGt^zKot8N z1_wfcShIs5U=XmkHN{$#h=-DJ;9#~X!8g^w3I+OQx}X65(3Il`>_$x!OyIOv(`xS+ zPK)8X*rxR%)h_UP3vj$I-r|DW<4>j!3|EN1k7(IP>}Io}CYQYw^#q)zP~x@|5`0k$aQ?GW(o#T4viS3;g%tbJJ0a zEmwYhq)@@CT1)B2nb}sAjy$3BtIecm_-6f5@bu<)7Sz13a35FHZokedWKi2h&gcB0 zG(o<@vjz`e9LMZYT{j?9HsbQM(;~&`@nI6bItS*j3izRcD)<=%4kmC%^XN*Xy)Jq) zp{orX49e~{F!a4&!i-FBetC?PWoiV2g(*(%LZ%4k}lYYAi?pDDX4z#n&_?&Ifmw+x2H zeEl+N(L>eT5IAv4fn>>hcL^6?jQq}r44?1(q4&nx@mTQkTfc!0&?Ygaeyffp@0fSqB7!y#9 zjWJO#%?2N-ViOD{pdDqkUvvW=N{u!`fC3y3m9M9Df5hkzU=ag@KvXc*-^k(Up%K^) z!9La!4g?=9qr8`4)q6jA27mq?@5SLL>3||z&ysreCtF1BKk%!SzEk=@K-6B5XDHf) zG((zf`B#pRO2FC#|3LuaDGsQ=N#uKEBjz*f^FW_Eq56BM6%JR~{rYp7)0k3d~ zLj=#f?WD{Kg9>j|i8B=Gh&?O4U${~Q6ksaLb5RnbY8*3iCRcl%{w3{`$jTf=Olxfu zt=a5BYFB{U`L)UNVRx2xCKz=GpH_Ez!|2xo(s~QNgkv;HZ_h%Iz6bvV00AKR;gyqg z=l2K>DJ+fn-*d;|w7%V5eplLDj9&`{!Qm5bIW@6fT>xqa% zmnqc{&Fjbg)<_%uZ2_=CvKt4NjX>$B^tD|sb~%paFO_$v@dV&2w9Z<0+~>OiC?m2Q z{1_X)Xft@4MIH}{xZnF|9B-QPB;}4)Di+@9D)9bQISM0Qhs%w>k){@F z7k_YasHz1S{82-1$c#M7}u%UeF&zZTWHF&NW9xWo z`BJM8^Ys-s77x~7b^iLmi_YU$ue?$ans=DHK0w-B&s4|hEmVzYq)IvRWq)DK zeTZoBHEu0`^W?h)L0N#mL=gppXr%@C2y38Km#%-OZyIOQP)B<5tNcQF%l2$6M*PEi zM1cC$eRS2)w={%fw3q_xkE@oj)$(tPU&m7zOj_Nue=*b#lS5geFoF?-5zs->;N{=J z2xtNFgu$0b^wm{OJy^?i4b@S`Nc)Io7d zBS11Q?Ypw(Eu2TgP4~NtT!jdtCcZMrJXlJ$XcsAg*3KjC4bgu4%Xi6wKg0~WGl483 zj|%3c|MXb5t9#(QYT@Gh6gvSGMwSB^$=-mckQp8kf22`pv|^BGcc$IY*gH**)=5I# zL2j>X_%-rP0BH29^OPOpJU<}WE%Da?=(eLS)KNZVzigRdhOpgEwUIM4-%~l5!%E+N z+0k)8Xb1tEIWa>$+*c1R|I8c9H>S|3iY#S)$}@z=$jS7ftNwi`aLR+up(Am2zx4;7 z&$D~zto@2!D^RE7Sg8(t$f-tB%dLiJ|Dk>T7mE+wwC(+_Z4I{Z+3hCq-_VY_2ZGtx z5y8tphiJd^+BMvkCFl~coP1Vi=A6lcZ-(AX4osJ6Gr!-Ijcq5e@mnf(8D!GT`$LjP z^C(NCDXij%ZHZR&u0`Y}ruSZCo(^KeL5#8X@zXm9f!KSOmA%>)t+d4(_=wDTscZ)i zNHjtH9G+xf3YoA5pME4xMjCR?<%Hcc8ufdo+L&OvFZ#QtWAhO}FGKNBS9}z9F+jmk zYGc9>G88O=kcWbB@K>skFgPS~qY+A8gZCdB*6NrCiU>5@g0E>&{bCXZb#c%=p@O^3 zD7>MzN)k76#nmogV7b9?Rr{|B^y9+{CJcb%JtYi*;{6taw`}4=htRmX_1F7BK6JZh zH1R3}+mi1NUwdRTA)JsR&Yb?$ z(biiMu$rY4$7c_6@KfkEsy5}&xk{J*dcS}+HNKs}d&U>XrI5Zy{)CdH0`JP&CN3++ z*`zKoMZ~ecEhX^bX`+&T@si1*?E&SDaA!dBV=fXIaXbB;-_yR_>e4F#I^Xj@_MZ%z zJvhJU{egE3X=A)CC9`RlB4n3k7QVxBp3x;@=d9l=_0m`=F@wF;l%fw@r56FdA-^|* ze7E^>ZmCh0*9%*z@4IlAob>TfKi|U%SyDQjiX{T+CFpm+wVmE$A-Q%B)#p;Wj%CNe z=Q0B!w+J9l+KZ31mpzzy2sF!`uauVDJH6P1SfSDdMly=-zk5LC^zzhm>79jx=FMAE zGXGC{Pow>cBR#)Vh9(-F`1oS_r2)6k@bWn8-l?zGI;??$iAS=-Wn(5PK9h!N(QkBQ zODcP>NRc=sjJlWIJi5mcc%b8?adK>b?@09ZR%@Tq@fOmI&Yk%-UGa}!oq5ySD}?pv zO{*W{94L22Y|{U#f;t9{Hdu32j5!QbphLV>@sEmMQ!;FqFtqSn-VMTg1#=i)U;sQ6 z`W_wv-T50H9VVO92wB46De1;RzQTq%CQy|6R|JOj!@@v|=B2#9CNR`bIO7(L56Qkg zxss8sdUVjjZMGZ#&PyJ(K>;cWR;FeIpv1~CWpLrB{|$PD8071;xtABk^3B;~{H2_- z(}i_-&jQL^=U>}6o2!skMlogY>m)NwfS&tGo?vfpV@Cdczx;HG2M*E|dupbbQ$zi= z+pXW10m9Z(yYO8HTksc#DNEJf=^_2HpvtK=2t|j%AV%uoxLcp z@v9#Gp)C{#7s7(sJ8*Xlgg_a7XYUXbs5r8Oqf+7yMY>?&?r0dOHAdm<)_0sie8m|g zsdjfI)^t%a;a2`4;&gw+1V{p9U+0d78ay*B^KAKH5PYsh}zt1-N7v z+9gZ`L^dB8Fya3+ZW|U(+_f$w${_`ekl~iA*Y9s=cJq_OgCm5QS5sfyGi04~ zxtu`Glabm>c(>}DO;YE1A3Y$b@6n{!qNmXXgz`6Q@Ue@ycw*oKi*$CY#i^z04msS4 zCEQjNmYn3?VP`Ji&wE4d=!j4P#S;WOpZY538{0>dZ%i-81uR3{Oo2b5nm%1=)@CxP*{S8dM5~&ejt!26#|v5 zHLTJ*6hXx#P=PuKrLY1&aCCf!(!jva>Tz6X5%Z`3BW}!b);b5ZG}smxR>1ZI)?>i# z5hy+QG!UHh&uM*HTQwuV17JVJpKwr%!jfI9STZ6U0_FG}ED^Xrh+KlcKn7Taf#T91 z{rc(fs{~=9GHuhoJqHE@?%PLy37+MsSMc4@&E8tW9SZ*hm^NoJwcm*i9Mpw-oP|#< z2BjB|o>e>Wtp4Co*MTEFct{6p%;>-T1rz{$NH4coWTL2$GT!;A;NlE5zcP!uYkSY> zfDG9>la6Ky;MCH0;=vl8!Y5gJ3UQ2ADcD$og0)QSz0=C}cz^Uv-h=cxwtAWoz?M%x zaH1z6*-nZ)GTV%ROf2qS;+sY~*`NnTVM-USBdbQBQzgPMuQszO zST5qze%-Z4f&dUODM$jmF$amSqGLn5gDgI$xGga zv5dvyuqPfKll>2i=QSVNN)stuDWV)+1Y=8iluzqAGz|q%?u>?BdT4mFcdo6l+F8-q zENg&2Gg#J^ujn)I^pQogKDB~X)1o~@n3i+j@vlVkTpDl1KkiOuyXla7bL-f$X_8C0 zyHzcx{Mn;yKMCY5Pm+1=pu4Td8}#}8=2dPl0?(pYtKNMkTj1Iu%04>D(ua55{Wj$C z;XKOW?1tPF<#NDIW~S<9!$o$LE|I}|P@)SLQuCU2PLYI=Cq;>p-bU8`%n!g-zMc^4 z;x8m@Cn!Z*kpMA!y-RgC#r^|u<#yiq>Qx*@jY{~e#^ z#mmB9!r|T&4%vo*T7qBf)*qO}Z$`^^3;gwNT_$GfASs>x>e&J_qi*}=f`Ap_)q9{0@6 z{U$WZ7rB-~#qpVaU#*Z_`0V`I1yBt-CKjpslmX~v^EJPtYR1pSlHBJMyN}z~6Rwky z_-+&Pv4?JVEhFfsP9_?D_WkQ?$r-)EZ(1tXSSImxiuaMC)0H}r@M6TXj>*>7I~~t8 zfUJ>FD=JT~c76gOs@LxHW&hb=2f7&w8HciZJ%@l?R{KIgp;9}fT0VG>FG7TZnWzo8vxLvqp1C(qvA~iJ?9Iu;+NhoLXy3uJ3@;2F7lpvAUf!)Hgodk-aq7o zlSA|??``6=sMJj*i-9xqE;kh9kcsrx`Y-UyS$3K-0)pAeE_*H%#t#*@+FM7gY zC^r0bN5V02?Us9|yQlzMpVyq->?`MvW#7`Br|vu6m6!k8m}oAV!1%7D=213Wa7n;W z|E{PEi}$5B8uFw*L#0=BPpf?gf9W&>Z7Fv99^P{`W1)j<6wBkYz3>cRa3&W71P&`%pAerNySB+@Hhf(~uE zf#(1X1Jxxcm}S%CdY~sZtY{(?K%&!|BQo26zXcr=J(EJ%HwlN8vjHEe$96sUjHal_ zEpl<$U!uKq?xwa)I^d9Z(;?5Glx(3ZL2ESH5*PPr$EbCRwWngGgp|~_@?m&&3j_l~?E=K!w2*otL-IzXgA-=-ZOHJ= z)?y_s!*8U6;_8=$3jiVw@8iKjmwB@IBv~rB|8}Nbs{$9xT9Y1r9hHuJOed6d%-c_ z7_K?(7qV76F*1g+(x!^Ql%$|bnklq`R`u@(23Jzlw}E~H=m(n;d{b?c@1UMLqSCs< zqN^};zHPRx*)MqFk0|oPU_ax+CIgh8!&Z6XAZZ8`{yToodO!Te67(t3$2klXlYc=D zi?~9`ACy{7Z3>EVLTUsQFNZVxeGwG4VCMC^ep>ZY#J$BcNp!?d12atC0@~3A<}0VF z*-CF7-@CvqrK`3KzU#&vx0=HT&mj1aFCo&&1wAkdRJOirwf63d#oR89g59d$x~f|^ zMG^cF7v+;n&eSkO(}dKd4`z>u1DXs-$%uX8J({qm(~zrQAMr`aWI$&mZqCBj)BH^i&!QHEZOxG}!eO?}Pd{OnBl zEd;PP&BZ$V``qiW&t5cx!$(>qGIu%lT&Asdx;8cye$lTR5UCM1s(R@ChRKHg0N42P z(F?B7!1yjtk+iAHm87aiU#=3k|Ilu|X|-)p*_NMeYp{(MZ!zY7oeCB0VRmbfz`=he zaKG_-Zq(LMyo9HP0(RFxy}4KRj@)w6CDzBt4r)G;=ew}$fRVx-=Eu4A-`FqxA%U}X zE05|@KC8
4e;l99tUI!}GbF>G0sE@1!Zy{ojcJxIx?n%0WUGS$WM~o4WcFUF4t7 za}5i4+c>7n$t;rM1575i*jq`I**TAuSr2$kQOJL@cu0^PKlC}1mXUyZW@(!xf%ta| z0FE)k6n_Tn+Ya;tuy2Fbo4dnIY_o2y1}+H%`|3?S)B^&o-vM@}{>+Lc9Mw%>vRfFa ztwcfX*1vB8!(@$HcI~=FhdT#6nHj5IAOFz&_IX{KoUikFZI=sxdu>0UOSg|eFz7w4 z*kMhA!t8631*SUEJ9b0Ik1jmnACS5pwJA(?hoVRP#jcX5!B;t5wpahJQTCzFZi@NW zXYxewhw|>=n$t}_c)~l${O;*3|A#@Xl(lwH09uKw6=PPw7ZVr)1^ROGkjg3#g5G=% zc%MM>MZJOc0$}HRuDyI#yV#P@Y+qFPjZahqN1pAS6;+hT5Par%F)e%(8TP=O8tP)& zX=UnJmVXJW^7wR;ojJHMTIIGNNQMzW6%Bn}{8wgSUR!n}-&;%~IwV)VOw^MZNpL*; z`gJL82oTQ5O8=NM>Xm>$CZbTM9*~?@Ijuc-sOjA6FNs;C3a63bo~sw|&z}&a0v%WD zgYn2;Teb}W`%BV2!f75<5%lpX7=@CGeC-JBlmHa9LzgHGCiWE^YdNH9eX*&#>l33y zfAiDvcL~cg$vuqNCj{x2uAF!#sPI-k?UX)W5;sLA-jfBor}z8AY>#&=<=e*oA(+%P zi4ztxd4C<)Wq7E5nf+N=%wtbc|IX7@EO+BWzg*b~=(K9ulFMXwzBl)r=hb^iD5}`? ze0Z?YY1xkGJ?9IakAP*$ct4E?2W4+%EU#O+dbVPa2msesp?@lJ^7sRn322;Qw$?iTaHI0+fib9jqInn^7iPrVaB(feFVdn2gAWK#hI}Oz0zm+|W-5 zyuv`y{STfH06^en$21{5oe2F1Ri{?`HmUQpCi$OtbmHA%JbvbxJ5}`m*WGo;Q~AYz z_acPMG8(Rx5i%kYF0x5vE0GxyWzTDb?3Gf+V~^|+LRMC?XGW5lGE#9h^n31giGHeY z_4@tuJ9y4HpU-)obDrb*ywCe{&NBc}5$mo@={O%44V0^O_<>=8QKmY+>Pvg;`_a8^ zZ_Zvsn%>x`{Wnh0v3}x;xiS6e$;TbAGJl+1N%wu8}voZ zIL!0YwMl+(;9&3KZ5bokn^ltvoql+3c@NUT7IT_ET_MPtYbmIGM2nu?+ajoeDd$8F zch;mVS=xKeKEgMpIgmW2>6N0h(#;QloxMf`h&|-cgCBu#803Z=mNk2zZf3+HQH6kU+Km&kW{&_m_Q%3S=n;>Gz5Rrc8jUZp1tR!^S(htqL$XGi zG8cO`R|u+SUnZO|3=)Z3x1)%{)8dx)my4C)Vv;d4b-A1~7H)AKe2d!i+Bh*x-cnu?zzm}47t^(^VZ`$x?6q@!aTD)jK zE6R;OuXq(#Wk#=9@b)tunR10cAP5__x~qj?X8+-6KL1b zjo7sGUlm5p@E{m5o*(M&Grd2tY07&|XMS8Eu=fF_Qok6kZ?n0WUx2(){^#MEy`zQw zPy@xC7ClL6o=LgEQ=Tuvqt6cTXEc`{JAZwkErJEDt*}X9x9hK%W`P zuy%j#7&uzTG2MB|GaF|yuH&L2)z<5(8AOp>#Z-fH>w)WxPsj&5KwQ^9Kw4OJGUU2a z-br^U5Br(;T5zFLs=LaKjA%{I`Vdc^6{|3+Wn+-jDz`qL;!wyk%P+L`j5XY z@EfrBT?76<=s~c6Zx8^`!PNWT4(1BeT7!HB3~pXOI(A$!;9G~?OLhyE z`1|}FmUFkF9^CzwSNWv(PSIa-LOR@btfPgz>lYs6G_onk3{?aQq+4~~B=j+B6dmkk z)&K}-kmFxt1>T(Q?~LMj!I^>O1$!tW)b(C>g+(j9&Te+r=1WLYLfXZVLq4$Ph;UK^aIv~I;>Q&%y@aJcN6xABoE?O9-F<1};)5hR| zULG*}lfi?WAolr>%L7gjA5c7m!r0xv(q01rY!sgr1kU#uyIIQ-KRT=QRQoL<-y#Dy z3672Ro?Nvo5(RsJPU&R4a*eb-^^_kCz7$0QF!k^=@SYrnaC`u02;49%oY@O?do1=#^{< zQT?eX4hw*LUp1WNG|!AYzjHlVA{~-)uSM3~c|B?wO0ABRG zjNXFH!B-qu7)XSSdqRq(qKL8aMdp~Ugq@?jlL0vJ=HjIztAgmhxIBoQ^Ozd1d=&UJ zvXv=)NRIabYjznF;W;N-aUfvF2+b<+q7ZZ(%am&A8OlH=)Wcr%o|1y z<)QR~T>ldzCu!rjvIgZrI=K0ON%LROLOgC!8N>PI5fqidxI+MNS;aNipC`ALd_u8S z6sA_(Ew!E&CKVdYaG5FdzRjz907)@@zMf@kBLqvyX1x1Vv8*hG` zp`y;WsGQ=DPCEILP`~2shq5&CK6;;Huihq`y6#vT@c7;NCJEbC%tSek{xfx>EHg`# z5_qH6tDYwI5!?Bkokc0}Z89~&YUcc5>}ljl1W+tLw2%(0Gh1DJMcF-9!nrTyj_$0p zXT;_LvK)7+`EWM5+OP>1}DOgf~tRs8iay{1c9D26!9lHWL}@^sd7tFtL`$E zH}1;Qc=>{0`abX)P&nb6-VWU-%h!>t@lbHJx9ILV&4_}R-@@EP8qf;FmA&{z?NDxi zFsnDryeK5;2$$qkIweh48S}f>I?8E}+*W75WFBZ(z} zj#2xfzv#H3z|+oai1;88dRff2#OroyffX?6XFBPNq+$$AK~mC z`SvWkA;>{Pv8> z(UPh%8z|Ch>)gCH&h6(Y1^Sk(k)t%iSXttk4BpQ4PQ2aWgm?S3kB{!xPTX$=Q?^k6 zE*(@e{>1oAGL~!Wh(d_-oSJCaj1F3 zQ4dpxSOy%2i&D;0>Bl6$AbCnG$+LL?L+YmUD=BXU+DS|Hj+QNq93mqMv0<5~6pZkD zmY78I73t>bgK5VfGampD?J_@|=%!aUz#{nMt%^>{I62qsRg*P!k2m3lO#pc)K&44Y z@X1a`-eC42@~D#i?0sjo(YH|2y;5UUoy}doJm5?;um(K@=qW;nn7q~!9YuduouMlPoRb9Fz^f@s*>1KNI^&cQCutjSYb}kmp9aQOY&{6N$0{N zd8O8ltw9XIi}a=sShx+GsMh+!4|xE9_%wN<+`_)OF2A;@_V8g|o{&$HhR$_uFT(@O zZI3Hd14i@=#f{x5ds@hO$~9+Y1?$5y-beTdgg_qJgv%G~%|x1c`fgMY#Si$^*F0`W z=TeWFwyxD89;QYHwsla)u*Afr!$+(qq|LGE9c=*nzV$duKO4lri{s|b1)*PUw z*DK$*AIpbRUJ8#wI(qtHPV}c!)fyf~ZE#uxxozAm0Z6{!ok-oSZ<^wdJiK(-uQpMY z(eR>lR|D1+QHXEndsMR%pYTNZA+Fq5e0qWA=M=_xP;jnce@sAj!$2)J$mXdP1GRb(hHI6 zpYOO%*y>2irV|E0BG;b^jrp3Fp8TLHW&RL|4Qt&qE8M0e8%EDpj65hrK_(UFTXmr9 zX!l^a3#_^X=#*7zn9qVwo%hwq!ge;k(JUy!srcqeL*9~t%Apv~BG5!(KfjVuZufr= z2spYd6m{i)53ujajnsC#`ce0bJZAL&MG2JZhr#|grO|2xE5>IKlJ$aw{fUY0ja7U3 z+u67^Xf)Eo)87XyJdPSRi8xe%n7s>!Z`3jbk87EEi>uq=Z>@Cz05!Adz|`3JFXeiA zdeYtu7p`00R8ejAy~j}9?0R$_j~p<{^T$VxBc%5(X zgs7H1hkSp++Vd8=-d|9W_=Zq~pQAnci;VyDj;vTQiNMSvwEnJIf175ZAk{N!sktr%()`9sr`On>`Nc)_! zlh_49e%G6B-94I^P59V=h%lu^oPr{;^Mo1V{nyi$&?){EHUZ#N_>- zT!W@c=s%SQ3`i|VE&^$846t=zplTkHma=rtSGN34vzXBtPm5r_K090bAuiE$NK2*b z=7a~v=yBjX%pD4WVe*?XnkvBH80l7oKrx7I(v9SH!4KR8Yl~NaDNKNGCP>jK7>2lP zi8s|d;%!uCyBv*>2$Tel`9r0@7lxv;8v((F0k1d7UXXi#0$v32wDN#>B(s(d=d~+% zXZ-Y+^$Ugt#A)xHdE(ul?IL7*?LqP9HHh<0{vQPK0e4hD0ohM{Y6MUlTF&q(^;wL! zpds0tSv*pj=!CXmmye9;#x7^fO2@?k`JlLgfhreuBX6A;5nI)#*AK_Mle zI_6%*jW%kyFt?(>SvlAhW5SOrE+b|H^7;k2C*RY8)G7qijz6YW3Bb*(btH=iq^tA~ zW@uM+vZ*(X-DiDR04=SQfZZxF_Rh)*d#J9Cw8~Ow^zzy%%6`{oX0TnfqKSY zTCS2n@biL4f}!~i(I5QS1{T~7&NRjkF;FX*w-MfLOnU<)Ub`?!+C@T0kzS-J)K}(E zn$NxuGHK4Xzc#8(_bnd+c}!O{KcxQ0PfvfjD$E;}U^ zrGtA-a;~<39!%KAN&nJ=0RYyxIJZ7Ob?(J4m7z@ug_K?PSnZ*5Pi7>wy!txv6FC7^ zWk{FoC+ssUZh4F6%WF9pJJ;S7^c~8!=|5kU#uNpbfm?1js-m&^7-YxVNU49axm3i=o=e{;WBYEFBtwMJYny(npvH2wvaV;>?^+yBnOInwx2## z54%LygSF`3U=4(@J5<@n_n1hY(9F^B67|X-rZtM{I%C?M@@@t1;9WRC)IG`4IG8ZN z_WEqXLX6dn$?_SzG*OKk6?rlY6$b=gZW4=K%^G#*8#?@eINuBJRKRyD4EtXCpHg9) zsD;2BW&>#c>6qx95y!T9MY(?hPk3~X?0*YS2n4`^NT_rd3U7X(K}^Z>DexNeWBC#S zhb1`X zIet7=gM1`#5c?@(dEMt&?syFd;OZePE!1%_*G(E?ddL52%rr}!bG}gDHMxv$*oUy? zC;NsLP;vtLdVEfg3?ogSdVzbswv-9B<=KNZbN?8o9)Yn($$<4JpbIAlO*n8 zJtnVpwUQJlvMO|~9V73)b;=JWP^~1P>Ap@q4gng7AM~}Hu68JMF)BeWf7XLhe>r>CeSk@mRO%WTCPhd^&ZyxN4YO*L#YfsPU2HVh62r)M`mR)7-kXao$ys}LwB2?7>H zg{=~BFteiy36y#xAUH52%m`fhDf<(Y+jBal4)9E0C|afEQ}4^cQo-YF+|NHG??(LD z#-ZMv((eJxX8#5Wv$NvU@pD|s8s?}C(rxsQ7{W~%EY@0>YUkqzn6QXU!8hN6{|ap6 z*DV%y2jT-Bzy7CChaJRV{|tA4F>&UfjgxFCBb$8`uxrt+wwO9G!K{>*uD!xhx%B#A z;}V~qb=H4mVE__Ao-AsmSDWV-Wlbqd3-SY z^N-@KDPCLZKF!kMbQay0;$ddcnyTIbI(>IBXZ<4rw`q<_D%jY`67am#?Gv%9S7wy$4P0hG@>8!-)7b;KC>5IX% z<1d`P<6&~Dszdq$L08xP18>_taeXlP?hN+L0m>wn7p2HsHUR6eyJpa$4Y@~f$LxBu z;d83eMYSxAW42mDb`$Ta%C$kK4~o0%D^rZt_HeI3^#O&rn~je4rxQU;G zOY6xoYOTgLy?Pb-J|O)s@n(fOqM|%=Ou~&W>Tq*|zyOE%;=H!knd??bv?SDG%e+8? zcs<`Y`RGJ90my1U>m1A558BRTc zb&(|G4PwNn9Rba!^-~-p1EQ)`@oKlN_T`==!I~Fe2^n!bYB4NbpDMYA-HdecyypW} zXzUF+#EU>A>k|uNBlL;&v4r%o-V5y4C(yjae@R`J`;zJKK#=AE$=~{Zt_BV z1vWK}70+-ZafYkph<@2;NL~@EN#rL2KR<2&-XnT%y<=R(0_UPZGRv{iO79O|>B~)W zJmj(^B-31;W&JqFo-HK24?#D?t0;fhTkjEw8l)l8V6%9X7IK}@Mf)_3n$;1z0Om6q zhjFT3A|SxqtGNZGcytF(O_0q0USv^#W5owrcZtr!J1T%jwLhN556S|(Ud)iFZMT*|555jD&ka)7P$!`D~!L_-~Z!X{@9teO*fxHb?aTu*NG zdF)TA_#&Kn!z74NZ;87U$W4SK@hF`llO{>bz-9@QVG!fk>vhxh!oEwcVZ@988{x8? zDu3c0eimQ2=<}0f-Zzu@jjn5i!M@&RqqwrKWhdj0$8^|F*ZVAlBkhdy>Jt8W7@U=* z+j}IvP}R?8@!R2pe69WFE$)xmCoVYMdD_ZqC`pI_@Rb8)v#(VP;VL>rO@BLkAo)>i zXSBlk-cGR 0: - imported_aphoton_supply += balance - bank_balances.append( - { - "address": _eth_to_bech32(eth_addr), - "coins": [{"denom": DENOM, "amount": str(balance)}], - } - ) - - evm_accounts.append( - { - "address": eth_addr, - "code": code, - "storage": _storage_items(account.get("storage")), - } - ) - - output = { - "source": { - "genesis": "genesis.json", - "headstate": "headstate.json", - "chain": "chain.rlp", - "note": ( - "Ethermint can import this head EVM state at genesis, but it " - "cannot replay geth chain.rlp blocks without a dedicated importer." - ), - }, - "auth_accounts": auth_accounts, - "bank_balances": bank_balances, - "bank_supply": [ - { - "denom": DENOM, - "amount": str( - INIT_VALIDATOR_COUNT * INIT_VALIDATOR_APHOTON_BALANCE - + imported_aphoton_supply - ), - }, - { - "denom": "stake", - "amount": str(INIT_VALIDATOR_COUNT * INIT_VALIDATOR_STAKE_BALANCE), - }, - ], - "evm_accounts": evm_accounts, - "chain_config": _chain_config(geth_genesis), - } - (base / "ethermint_genesis_overlay.json").write_text( - json.dumps(output, indent=2, sort_keys=True) + "\n" - ) - - -if __name__ == "__main__": - main() diff --git a/tests/integration_tests/spec/fixtures/execution_apis/genesis.json b/tests/integration_tests/spec/fixtures/execution_apis/genesis.json deleted file mode 100644 index 0c29edcb25..0000000000 --- a/tests/integration_tests/spec/fixtures/execution_apis/genesis.json +++ /dev/null @@ -1,141 +0,0 @@ -{ - "config": { - "chainId": 3503995874084926, - "homesteadBlock": 0, - "eip150Block": 3, - "eip155Block": 6, - "eip158Block": 6, - "byzantiumBlock": 9, - "constantinopleBlock": 12, - "petersburgBlock": 15, - "istanbulBlock": 18, - "muirGlacierBlock": 21, - "berlinBlock": 24, - "londonBlock": 27, - "arrowGlacierBlock": 30, - "grayGlacierBlock": 33, - "mergeNetsplitBlock": 36, - "shanghaiTime": 390, - "cancunTime": 420, - "pragueTime": 450, - "terminalTotalDifficulty": 4732736, - "depositContractAddress": "0x0000000000000000000000000000000000000000", - "ethash": {}, - "blobSchedule": { - "cancun": { - "target": 3, - "max": 6, - "baseFeeUpdateFraction": 3338477 - }, - "prague": { - "target": 6, - "max": 9, - "baseFeeUpdateFraction": 5007716 - } - } - }, - "nonce": "0x0", - "timestamp": "0x0", - "extraData": "0x68697665636861696e", - "gasLimit": "0x23f3e20", - "difficulty": "0x20000", - "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "coinbase": "0x0000000000000000000000000000000000000000", - "alloc": { - "00000961ef480eb55e80d19ad83579a64c007002": { - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460cb5760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146101f457600182026001905f5b5f82111560685781019083028483029004916001019190604d565b909390049250505036603814608857366101f457346101f4575f5260205ff35b34106101f457600154600101600155600354806003026004013381556001015f35815560010160203590553360601b5f5260385f601437604c5fa0600101600355005b6003546002548082038060101160df575060105b5f5b8181146101835782810160030260040181604c02815460601b8152601401816001015481526020019060020154807fffffffffffffffffffffffffffffffff00000000000000000000000000000000168252906010019060401c908160381c81600701538160301c81600601538160281c81600501538160201c81600401538160181c81600301538160101c81600201538160081c81600101535360010160e1565b910180921461019557906002556101a0565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14156101cd57505f5b6001546002828201116101e25750505f6101e8565b01600290035b5f555f600155604c025ff35b5f5ffd", - "balance": "0x1" - }, - "0000bbddc7ce488642fb579f8b00f3a590007251": { - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460d35760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461019a57600182026001905f5b5f82111560685781019083028483029004916001019190604d565b9093900492505050366060146088573661019a573461019a575f5260205ff35b341061019a57600154600101600155600354806004026004013381556001015f358155600101602035815560010160403590553360601b5f5260605f60143760745fa0600101600355005b6003546002548082038060021160e7575060025b5f5b8181146101295782810160040260040181607402815460601b815260140181600101548152602001816002015481526020019060030154905260010160e9565b910180921461013b5790600255610146565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141561017357505f5b6001546001828201116101885750505f61018e565b01600190035b5f555f6001556074025ff35b5f5ffd", - "balance": "0x1" - }, - "0000f90827f1c53a10cb7a02335b175320002935": { - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604657602036036042575f35600143038111604257611fff81430311604257611fff9006545f5260205ff35b5f5ffd5b5f35611fff60014303065500", - "balance": "0x1" - }, - "000f3df6d732807ef1319fb7b8bb8522d0beac02": { - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", - "balance": "0x2a" - }, - "0c2c51a0990aee1d73c1228de158688341557508": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "14e46043e63d0e3cdcf2530519f4cfaf35058cb2": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "16c57edf7fa9d9525378b0b81bf8a3ced0620c1c": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "1f4924b14f34e24159387c0a4cdbaa32f3ddb0cf": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "1f5bde34b4afc686f136c7a3cb6ec376f7357759": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "2d389075be5be9f2246ad654ce152cf05990b209": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "3ae75c08b4c907eb63a8960c45b86e1e9ab6123c": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "4340ee1b812acb40a1eb561c019c327b243b92df": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "4a0f1452281bcec5bd90c3dce6162a5995bfe9df": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "4dde844b71bcdf95512fb4dc94e84fb67b512ed8": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "5f552da00dfb4d3749d9e62dcee3c918855a86a0": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "654aa64f5fbefb84c270ec74211b81ca8c44a72e": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "717f8aa2b982bee0e29f573d31df288663e1ce16": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "7435ed30a8b4aeb0877cef0c6e8cffe834eb865f": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "7dcd17433742f4c0ca53122ab541d0ba67fc27df": { - "code": "0x3680600080376000206000548082558060010160005560005263656d697460206000a2", - "balance": "0x0" - }, - "83c7e323d189f18725ac510004fdc2941f8c4a78": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "84e75c28348fb86acea1a93a39426d7d60f4cc46": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "8bebc8ba651aee624937e7d897853ac30c95a067": { - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000002": "0x0000000000000000000000000000000000000000000000000000000000000002", - "0x0000000000000000000000000000000000000000000000000000000000000003": "0x0000000000000000000000000000000000000000000000000000000000000003" - }, - "balance": "0x1", - "nonce": "0x1" - }, - "c7b99a164efd027a93f147376cc7da7c67c6bbe0": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "d803681e487e6ac18053afc5a6cd813c86ec3e4d": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "e7d13f7aa2a838d24c59b40186a0aca1e21cffcc": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - }, - "eda8645ba6948855e3b3cd596bbb07596d59c603": { - "balance": "0xc097ce7bc90715b34b9f1000000000" - } - }, - "number": "0x0", - "gasUsed": "0x0", - "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", - "baseFeePerGas": null, - "excessBlobGas": null, - "blobGasUsed": null -} \ No newline at end of file diff --git a/tests/integration_tests/spec/fixtures/execution_apis/headfcu.json b/tests/integration_tests/spec/fixtures/execution_apis/headfcu.json deleted file mode 100644 index 2b8f7e7082..0000000000 --- a/tests/integration_tests/spec/fixtures/execution_apis/headfcu.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "jsonrpc": "2.0", - "id": "fcu45", - "method": "engine_forkchoiceUpdatedV3", - "params": [ - { - "headBlockHash": "0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2", - "safeBlockHash": "0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2", - "finalizedBlockHash": "0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2" - }, - null - ] -} \ No newline at end of file diff --git a/tests/integration_tests/spec/fixtures/execution_apis/headstate.json b/tests/integration_tests/spec/fixtures/execution_apis/headstate.json deleted file mode 100644 index d7df4aaee4..0000000000 --- a/tests/integration_tests/spec/fixtures/execution_apis/headstate.json +++ /dev/null @@ -1,1039 +0,0 @@ -{ - "root": "f61892bbb9a9df427d1f941dc8c536d72c41efed598244726ea21a0f183ff232", - "accounts": { - "0x0000000000000000000000000000000000000000": { - "balance": "144125000000010215144", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x0000000000000000000000000000000000000000", - "key": "0x5380c7b7ae81a58eb98d9c78de4a1fd7fd9535fc953ed2be602daaa41767312a" - }, - "0x00000961Ef480Eb55e80D19ad83579A64c007002": { - "balance": "1000000001", - "nonce": 0, - "root": "0x0ed2d94007a0eecee7c27c531d1249a18f6c48fe86c6d6e87c50b6943a5f015a", - "codeHash": "0x0345a365d2f4c5975b9f1599abe0a2ee76b7a3a731bc68781bd04c84e4858f50", - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460cb5760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff146101f457600182026001905f5b5f82111560685781019083028483029004916001019190604d565b909390049250505036603814608857366101f457346101f4575f5260205ff35b34106101f457600154600101600155600354806003026004013381556001015f35815560010160203590553360601b5f5260385f601437604c5fa0600101600355005b6003546002548082038060101160df575060105b5f5b8181146101835782810160030260040181604c02815460601b8152601401816001015481526020019060020154807fffffffffffffffffffffffffffffffff00000000000000000000000000000000168252906010019060401c908160381c81600701538160301c81600601538160281c81600501538160201c81600401538160181c81600301538160101c81600201538160081c81600101535360010160e1565b910180921461019557906002556101a0565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff14156101cd57505f5b6001546002828201116101e25750505f6101e8565b01600290035b5f555f600155604c025ff35b5f5ffd", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000004": "7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "0x0000000000000000000000000000000000000000000000000000000000000005": "b917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c", - "0x0000000000000000000000000000000000000000000000000000000000000006": "7f7cc50c9f72a3cb84be88144cde91250000000000000d800000000000000000" - }, - "address": "0x00000961ef480eb55e80d19ad83579a64c007002", - "key": "0xdf86c581c7d7b44eecbb92fd9e5867945ec1acdc0ea5bbabda21d17dddf06473" - }, - "0x0000BBdDc7CE488642fb579F8B00f3a590007251": { - "balance": "1", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0x78c6cb5202685228bbcbfb992b1c4e116c7ec5ef11e25b8e92716cfc628ddd60", - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe1460d35760115f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1461019a57600182026001905f5b5f82111560685781019083028483029004916001019190604d565b9093900492505050366060146088573661019a573461019a575f5260205ff35b341061019a57600154600101600155600354806004026004013381556001015f358155600101602035815560010160403590553360601b5f5260605f60143760745fa0600101600355005b6003546002548082038060021160e7575060025b5f5b8181146101295782810160040260040181607402815460601b815260140181600101548152602001816002015481526020019060030154905260010160e9565b910180921461013b5790600255610146565b90505f6002555f6003555b5f54807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff141561017357505f5b6001546001828201116101885750505f61018e565b01600190035b5f555f6001556074025ff35b5f5ffd", - "address": "0x0000bbddc7ce488642fb579f8b00f3a590007251", - "key": "0x0d6aea581b220579a2b99819299dd32c7c28a420018ecb0bde93af007ad89a31" - }, - "0x0000F90827F1C53a10cb7A02335B175320002935": { - "balance": "1", - "nonce": 0, - "root": "0x66164e427c21c263149e8e6074ed0b34fac71c812a6f1c437d438029551a2977", - "codeHash": "0x6e49e66782037c0555897870e29fa5e552daf4719552131a0abce779daec0a5d", - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604657602036036042575f35600143038111604257611fff81430311604257611fff9006545f5260205ff35b5f5ffd5b5f35611fff60014303065500", - "storage": { - "0x000000000000000000000000000000000000000000000000000000000000002c": "4b9d85c6787612e87e0659e11a347d415040465e492358f79cc7e2e293f38aa7" - }, - "address": "0x0000f90827f1c53a10cb7a02335b175320002935", - "key": "0x6c9d57be05dd69371c4dd2e871bce6e9f4124236825bb612ee18a45e5675be51" - }, - "0x000F3df6D732807Ef1319fB7B8bB8522d0Beac02": { - "balance": "42", - "nonce": 0, - "root": "0xa7d9c22f383b2fc2fb8db92c324f5906c4d999e9e639eb5beae4ce08e85be195", - "codeHash": "0xf57acd40259872606d76197ef052f3d35588dadf919ee1f0e3cb9b62d3f4b02c", - "code": "0x3373fffffffffffffffffffffffffffffffffffffffe14604d57602036146024575f5ffd5b5f35801560495762001fff810690815414603c575f5ffd5b62001fff01545f5260205ff35b5f5ffd5b62001fff42064281555f359062001fff015500", - "storage": { - "0x00000000000000000000000000000000000000000000000000000000000001a4": "01a4", - "0x00000000000000000000000000000000000000000000000000000000000001ae": "01ae", - "0x00000000000000000000000000000000000000000000000000000000000001b8": "01b8", - "0x00000000000000000000000000000000000000000000000000000000000001c2": "01c2", - "0x00000000000000000000000000000000000000000000000000000000000021a3": "83472eda6eb475906aeeb7f09e757ba9f6663b9f6a5bf8611d6306f677f67ebd", - "0x00000000000000000000000000000000000000000000000000000000000021ad": "2c809fbc7e3991c8ab560d1431fa8b6f25be4ab50977f0294dfeca9677866b6e", - "0x00000000000000000000000000000000000000000000000000000000000021b7": "756e335a8778f6aadb2cc18c5bc68892da05a4d8b458eee5ce3335a024000c67", - "0x00000000000000000000000000000000000000000000000000000000000021c1": "4b118bd31ed2c4eeb81dc9e3919e9989994333fe36f147c2930f12c53f0d3c78" - }, - "address": "0x000f3df6d732807ef1319fb7b8bb8522d0beac02", - "key": "0x37d65eaa92c6bc4c13a5ec45527f0c18ea8932588728769ec7aecfe6d9f32e42" - }, - "0x04361123c6CBFc38F6Ee7B0202ecEFdaE36efEB4": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x04361123c6cbfc38f6ee7b0202ecefdae36efeb4", - "key": "0x3960cb77ee8ce76e0a84773c1d222795fba838aa28edcca2045779467ef3fa27" - }, - "0x04B85539570FB9501f65453DBFad410a467BeCDD": { - "balance": "0", - "nonce": 1, - "root": "0xf8f4ccb01824f447885742bd7fbc7505e7f1d0252fba74fe7068be964e8a35ee", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000006": "06", - "0x0000000000000000000000000000000000000000000000000000000000000007": "07", - "0x0000000000000000000000000000000000000000000000000000000000000008": "08" - }, - "address": "0x04b85539570fb9501f65453dbfad410a467becdd", - "key": "0xd84f7711be2f8eca69c742153230995afb483855b7c555b08da330139cdb9579" - }, - "0x050C9c302E904c7786b69cAA9DD5B27A6e571b72": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x050c9c302e904c7786b69caa9dd5b27a6e571b72", - "key": "0xc3ac56e9e7f2f2c2c089e966d1b83414951586c3afeb86300531dfa350e38929" - }, - "0x0c2c51a0990AeE1d73C1228de158688341557508": { - "balance": "1000000000000000000000000000000000001", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x0c2c51a0990aee1d73c1228de158688341557508", - "key": "0x28f25652ec67d8df6a2e33730e5d0983443e3f759792a0128c06756e8eb6c37f" - }, - "0x0eD465f2D38113203793802EaFcFe2a302F5141F": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xa0beac0b7fe18462854e5a271e13c5e67ed378319ee17efca15caf2625aa95bb", - "code": "0xd0a75bf7ea87fba36ff8a17b4519c45fb727609e6c9161b106680b25b3e2705f23bf72df16f8335be9a3eddfb5ef1c739b12847d13a384ec83f578699d38eb89bd814762a7e35d5c162a7570d14baa68bd622cabb1ad83d40dd70f8a88aa67c0d56a60595ebefebed7f22dcee6c2acc61b06cf8c68e84c88677840365d1ff92b140aabff1a85df08546c9a350c79ae18341bde4a2cef5d2fd460885c0128ce26f907e7e6656fa73566b18c1215272fe9fca2c55c552e62c923e21e000ac4b4e60b94fa1b86997cc1f1148bfbe25b674e8cefc7cc6f976aa8d7c7966bd4cca34774b6357e277c778e8ad9a2761a935d45336ec91439b9e1b117eda2efdfe38fad", - "address": "0x0ed465f2d38113203793802eafcfe2a302f5141f", - "key": "0xcae77150ac0c4c8a134fd8b7c02b6e053e99a44f91db924f3033dff62033de25" - }, - "0x0eE3aB1371c93E7c0c281cC0c2107cDebc8B1930": { - "balance": "0", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0x7ee785a86efed9c83a8caeb5665b7a1fc4ec3fb9204fef8bd60152994e522e84", - "code": "0x6000356142ff54501515603b577f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b7f08c379a0000000000000000000000000000000000000000000000000000000006000526020600452600a6024527f75736572206572726f7200000000000000000000000000000000000000000000604452604e6000fd", - "address": "0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930", - "key": "0x9afc282e9868fb95921af24218a3612a16ad8e7329530b5be184a6507bbddecc" - }, - "0x14e46043e63D0E3cdcf2530519f4cFAf35058Cb2": { - "balance": "1000000000000000000000000000000000001", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x14e46043e63d0e3cdcf2530519f4cfaf35058cb2", - "key": "0x9feaf0bd45df0fbf327c964c243b2fbc2f0a3cb48fedfeea1ae87ac1e66bc02f" - }, - "0x16c57eDF7Fa9D9525378B0b81Bf8A3cEd0620C1c": { - "balance": "1000000000000000000000000000000000004", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x16c57edf7fa9d9525378b0b81bf8a3ced0620c1c", - "key": "0xda81833ff053aff243d305449775c3fb1bd7f62c4a3c95dc9fb91b85e032faee" - }, - "0x17b917F9D79d922b33E41582984712e32b3AD366": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0x7f1db68ea3e3f640a9bd4297e1d43e641c02396265b9c85fcb35d70d08f196ad", - "code": "0xcdbf706faff1444e72b0106ae4486b0256043747c99858ded580d001655540f5af2afaf35ad6da1368c28c91ba52a84b6fc26e5aa0d9b26dc4fa0373e4d12c305859c04fd0363b95e824b76bab6d064bf500fe171eea5114a198e11ac4dfbbf0bb7ea1d025e27e153f156855239b4b128e9da3a64a6f0a0270f89209895881424c55bec45be59a99d441ccb7880f9b68f316b687ab5ac77efc4386a807007768f0566fba57f394cfd00b7b328d5cff9d096b0b4609f559321788bcbb79ff612ce0f48684da2738819afc60049d8a627ffa250d5e1c7f8a7fedb1ce999915baf64f137b25557674fba3a2aa0e89b823e64184395781dd7e4b464a41a0168ddc1b", - "address": "0x17b917f9d79d922b33e41582984712e32b3ad366", - "key": "0x13cfc46f6bdb7a1c30448d41880d061c3b8d36c55a29f1c0c8d95a8e882b8c25" - }, - "0x17e7EedCe4Ac02ef114a7eD9fE6E2F33Feba1667": { - "balance": "0", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0x975f732458c1f6c2dd22b866b031cc509c6d4f788b1f020e351c1cdba48dacca", - "code": "0x366002146022577177726f6e672d63616c6c6461746173697a656000526012600efd5b60003560f01c61ff01146047576d77726f6e672d63616c6c64617461600052600e6012fd5b61ffee6000526002601ef3", - "address": "0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667", - "key": "0x69bf6d72df9e6b88306eb4e4624996e919f0433ba63520aa9a1d3f9888e09b1f" - }, - "0x196d4a4c50EB47562596429fDeCB4e3ac6b2a5fD": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x196d4a4c50eb47562596429fdecb4e3ac6b2a5fd", - "key": "0x4e258aa445a0e2a8704cbc57bbe32b859a502cd6f99190162236300fabd86c4a" - }, - "0x1F4924B14F34e24159387C0A4CdBaa32f3DDb0cF": { - "balance": "1000000000000000000000000000000000003", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x1f4924b14f34e24159387c0a4cdbaa32f3ddb0cf", - "key": "0x7963685967117ffb6fd019663dc9e782ebb1234a38501bffc2eb5380f8dc303b" - }, - "0x1F5BDe34B4afC686f136c7a3CB6EC376F7357759": { - "balance": "1000000000000000000000000000000000003", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x1f5bde34b4afc686f136c7a3cb6ec376f7357759", - "key": "0xc3791fc487a84f3731eb5a8129a7e26f357089971657813b48a821f5582514b3" - }, - "0x1Fb8b19357311703Ca43Ac95F7E39ebC34E63562": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0x7b76fd0cf8228fde8763ecb37bd55533e6f34d0765bc664cbaeb532bde21da74", - "code": "0x49bfe3c65dd9f3794050d39474bec15417a1630abed1727c133877e89823c14f4d08cb3ffa33592f3b5eeb877647984f4070d1d2997d57c9aea4c3e34ddd6e8e6db3ef05809c347508073838d040f85e724aad0387cbd203710480231a932b90a6d60d4ff1c38ae572157a43d1b8579039e4b4cc96e22c75c07379751785fe51da151e1f1eb9b837d3da35d08f1188bdcb6e944aa00ae0cc2fa12060555d939b3b07644517d2f667e1f84d4fb6c23df68138cb298509f38ac23f8d4d0fa756f45e937d8de2b1d79ef5899c0a1ebfee4eedbc3831eac2997cba4a23e108c27c5661042a91e6bf866457bba3c0e1666b25163b3849470db2bebc37920294f5c189", - "address": "0x1fb8b19357311703ca43ac95f7e39ebc34e63562", - "key": "0xe9a9ee3831f2c7aae36af85f853a507f3e652ce57ce9a8c27c098ad124dc7809" - }, - "0x2604439A795970DE2047e339293a450C0565f625": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xe819dd809aa49da85a97413de04c2b462f07ed225d4e4092e329f28fa83a10a5", - "code": "0xd54e89dee95b843939c00dce8c49063df67efe61a3c8ec818ccaee72d7b7f5a39062a4b4dbb38897d7030e75266746773c25296ddcc4429a1573d7e14899dc4a59120eb83699c466c74218988aa3115ae72e537ee35dc8cc4c4abd122c83ad0a6e80044b428a86ddb5f7277680f16ac528219bbc3f477f367a023fd1680fef05f8f9fbe49577efd32b3647a88078df070961ceaa913763423b34eeb65953041b20b4ded72103adf3888643381b049681544c9cf7421ba3a953a980da85628e3fdd7ec01608ed5275687dc63da54ce13618050234d84b4d1fdcdd3b21f79ac5b9a0180b01d5c6c892f34e348721f16e168c551e0a5dac26b1bd68253fcef49b1f", - "address": "0x2604439a795970de2047e339293a450c0565f625", - "key": "0x8678559b30b321b0f0420a4a3e8cecfde90c6e56766b78c1723062c93c1f041f" - }, - "0x2D389075BE5be9F2246Ad654cE152cF05990b209": { - "balance": "1000000000000000000000000000000000002", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x2d389075be5be9f2246ad654ce152cf05990b209", - "key": "0xa9233a729f0468c9c309c48b82934c99ba1fd18447947b3bc0621adb7a5fc643" - }, - "0x2EB6dB4E06119Ab31A3aCf4F406CCBaA85E39C66": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xd5daa3aec1f142e2b2059b675d676ccb42129d27d96f8e901df2dac6104b38e2", - "code": "0xf548adfdedfd2f8b2416994318306c690dadb026395430e32e9a141187933c8602d9f8353bca53bc9b195aa186ab6d98b49a9120c00257ee2c7d860c26f864ea7352bc45c8aa6995480780fe15a07c4daa795263b5e7a9d04d9ed979c93ca85e57023ef7fe58b878582140ea36f22723905ad724896eaf74090fba76c229bd2269bc8c08a6b955aec2072ca430bac7123bc3539264a736d1a23621b0f0c62f3166eeecffab615cf4c69d47d3aa51576e95b697767264fa754ea36f4e363ea19359149054a4189e9e52234a041160d0a984f6bcb43e7a9da69cfb168d147633650425d4cac564eade3739b18cff91bb2bc855f9c26bed98f6e089d895e00c3d5f", - "address": "0x2eb6db4e06119ab31a3acf4f406ccbaa85e39c66", - "key": "0xaeaf19d38b69be4fb41cc89e4888708daa6b9b1c3f519fa28fe9a0da70cd8697" - }, - "0x2F01C1c8c735a9a1b89898d3f14BBf61C91bf0fD": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xfacd3090376f835f996263e63b973e8f9cb6fdf5edb63662501dc8dfe4c33c7f", - "code": "0x50a82f9cbcdfaca82fe46b4a494d325ee6dc33d1fa55b218ab142e6cc2c8a58b41cb80f82badddd72e38fda86a7cbba38fafd9735ef98c7795abbbaf2b1495624a5bded210bb862fae2c0d18b9d29bf7f88b08a75dd1594b1369abc7881e3fe18a8166be5f30abeb6c91ee2f07eeb0b2eb14b4d59534d10a1c143964bd6179199bbf2ad10217b6212df1939350a047a69b6887b770020d3fa8c328c0653ee987872ac8b0ab547ba6ba6686d487265a409b97d09cf043f98287b4b34e7bc04a71b72a5233413dd9985e70abb239a7ba917e489fbf2ece87f523c6e26971cc821fd2883cc7ca79e6788a6966eff1ace0b629a1cf53002057694248b4aad1495d04", - "address": "0x2f01c1c8c735a9a1b89898d3f14bbf61c91bf0fd", - "key": "0xd2f394b4549b085fb9b9a8b313a874ea660808a4323ab2598ee15ddd1eb7e897" - }, - "0x2aaC4746638aE1457010747a5B0FD2380a388F4f": { - "balance": "0", - "nonce": 1, - "root": "0xbe8ec2d17b60d9f97cea6c173b3dbd770087f5a6e60d19a298b95394c21f0518", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000012": "12", - "0x0000000000000000000000000000000000000000000000000000000000000013": "13", - "0x0000000000000000000000000000000000000000000000000000000000000014": "14" - }, - "address": "0x2aac4746638ae1457010747a5b0fd2380a388f4f", - "key": "0x96c43ef9dce3410b78df97be69e7ccef8ed40d6e5bfe6582ea4cd7d577aa4569" - }, - "0x2b6D216387cc86BF46FA7202C36C4f40BF1d7A22": { - "balance": "0", - "nonce": 1, - "root": "0xcc8cf1d0585448d9dcc17e0fb69b5da1e824d553481ddb6521ca7f7404d7b810", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x000000000000000000000000000000000000000000000000000000000000001d": "1d", - "0x000000000000000000000000000000000000000000000000000000000000001e": "1e", - "0x000000000000000000000000000000000000000000000000000000000000001f": "1f" - }, - "address": "0x2b6d216387cc86bf46fa7202c36c4f40bf1d7a22", - "key": "0x3e442de3aafac6a255389001775f311d0fead71621ec597e7ea7f91bcba73e49" - }, - "0x2c1287779024c3a2F0924b54816D79b7e378907d": { - "balance": "0", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xe17883cd7e9721414f209408a0a0e1fe27bd1a9e0f0e7b72fd8077450d1e4068", - "code": "0xada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7dcc69885fda6bcc1a4ace058b4a62bf5e179ea78fd58a1ccd71c22cc9b688792fe90b7bceb6e7df5418fb78d8ee546e97c83a08bbccc01a0644d599ccd2a7c2e0a15bc60c955c405d20d9149c709e2460f1c2d9a497496a7f46004d1772c3054cabd6e7cb50984ff9c2f3e18a2660c3353dadf4e3291deeb275dae2cd1e44fe051471eb6eb2c5e789fc3de43f8ce62938c7d1836ec861730447e2ada8fd81017b3e5fec24aa4dc4e5aee2e025e51e1392c72a2500577559fae9665c6d52bd6a31b39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b828", - "address": "0x2c1287779024c3a2f0924b54816d79b7e378907d", - "key": "0x09d6e6745d272389182a510994e2b54d14b731fac96b9c9ef434bc1924315371" - }, - "0x312e8FCA5aC7DfC591031831BfF6fEDE6eCF12A8": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0x0330691457edbb3446935682a141fb3f23f9e1fed9cfe4c0645393f690552510", - "code": "0x7ca5987043ac53676c6e30f77ff1a34e98a5fae86b27e5d0cf74ac1711b8a8db86b3fa87ee245373978e0d2d334dbde866c9b8b039036b87c5eb2fd89bcb6babeb5d92aa5b18af35c2d0c0d14a538792cf1a66aa06ab9dae49d32446e9063ca1a8f2d96126c6d0ad63adabaef7bf5cf47f163fb0c218a473d28f62312d197bcfa5022b2bfd144bf9103d80168549b5df7c72ab60bd51bf71a02a08d844853b4a03145c75015e7a856ecd94c41432ef3cb669d6360af23433588937fefdfac825248457bacb20e239ae314d8db91c0f270e453c28ee138c84f97aea6cfcf9a499c6af84bcd7a912c26772dce2b27a335c9acc50e9113bac42fd0b48deecc0f30c", - "address": "0x312e8fca5ac7dfc591031831bff6fede6ecf12a8", - "key": "0x64bfba8a4688bdee41c4b998e101567b8b56fea53d30ab85393f2d5b70c5da90" - }, - "0x3C48a562A0361236F28a17AAC65B9130a0316B71": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x3c48a562a0361236f28a17aac65b9130a0316b71", - "key": "0x8ff8a4884137e983c0298ad24228193292b5f523869dc16eeb916cae8b09239c" - }, - "0x3aE75c08b4c907EB63a8960c45B86E1e9ab6123c": { - "balance": "1000000000000000000000000100000000002", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x3ae75c08b4c907eb63a8960c45b86e1e9ab6123c", - "key": "0x878040f46b1b4a065e6b82abd35421eb69eededc0c9598b82e3587ae47c8a651" - }, - "0x3fBa9AE304c21d19f50c23dB133073f4f9665FC1": { - "balance": "0", - "nonce": 1, - "root": "0x5304c926e1198f1d2b39c62c8618a6df840338e6256c16314bc94d1c9c09810a", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000022": "22", - "0x0000000000000000000000000000000000000000000000000000000000000023": "23", - "0x0000000000000000000000000000000000000000000000000000000000000024": "24" - }, - "address": "0x3fba9ae304c21d19f50c23db133073f4f9665fc1", - "key": "0x0b564e4a0203cbcec8301709a7449e2e7371910778df64c89f48507390f2d129" - }, - "0x4055CAe5c7d838cda10D40f9d07106C7f5f3be1c": { - "balance": "0", - "nonce": 0, - "root": "0xe22af78ee9815b318712241c4adc80063a8598446701dfc8ea0e3631baaf79e8", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000002": "02", - "0x0000000000000000000000000000000000000000000000000000000000000003": "03", - "0x0000000000000000000000000000000000000000000000000000000000000004": "04" - }, - "address": "0x4055cae5c7d838cda10d40f9d07106c7f5f3be1c", - "key": "0x6b9ff41fb13fc66c4e1c4f85d59c52608698715472b7cce609bdbf75976a438b" - }, - "0x428aA61279929d936cDEDedB7AD759ADc9ab1A56": { - "balance": "0", - "nonce": 1, - "root": "0xfbff66b2db89023f18f432097a9f54cb69741089b0b7000478f284cb8ce56161", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000009": "09", - "0x000000000000000000000000000000000000000000000000000000000000000a": "0a", - "0x000000000000000000000000000000000000000000000000000000000000000b": "0b" - }, - "address": "0x428aa61279929d936cdededb7ad759adc9ab1a56", - "key": "0xced399fbcd771b3b242dd13b5c110526254e224b0fb8a72ad882ef9d3d1fe865" - }, - "0x4340Ee1b812ACB40a1eb561C019c327b243b92Df": { - "balance": "1000000000000000000000000000000000003", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x4340ee1b812acb40a1eb561c019c327b243b92df", - "key": "0xa13bfef92e05edee891599aa5e447ff2baa1708d9a6473a04ef66ab94f2a11e4" - }, - "0x461A33c430f4bBFB300A1E89DF103965d72dC968": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x461a33c430f4bbfb300a1e89df103965d72dc968", - "key": "0xb1521e8613668de7221293dc02aa6876eea0885348137404f045e293aa2a7353" - }, - "0x46bFe8155134dcD7bB9baDEf1B2EF25AE86435C8": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xdc443b3e953eaa80fc5b5ae5ed28a3771bb30b13eed51dcc72ca2b3ee6f12441", - "code": "0x1cb7ce0668e72b96f704af9e1445a9dc6f6ac599eec355bfcfe4d3befbb001be40165e7164257b249280bf839a50283d248062ed7b0e6d8820cb6c506bfcf7d3c0c7c7c9a2a6655862feea3cc7ff13629582293fcfe0e1094efb20897bb02a656a2b6bffaca788160f671fa62d34758b717f75a90ad5a468757c50d61f33c4437f6fa3f34639ea1891363ca773619dbd5f652d7ab50411111dde2f57e3ae13add1ccbf1f9f869f51cd81e6f099f905636b057f682c706fe990614b1120516928ee4750d043edce57577a49a1f0c4b389e3b8c38c27dc693bc6b7154c07280771f2e2385bc2a5be32198cd1e425186910eb1a233b2b2a22be149cee4dc72d0162", - "address": "0x46bfe8155134dcd7bb9badef1b2ef25ae86435c8", - "key": "0x59f49281260efa7511a50c95aebc610a48a19aeaa54f041e1373b81b698989d3" - }, - "0x4D5c47Ec15eF6Af7C08121a523818bc249cED1D7": { - "balance": "0", - "nonce": 0, - "root": "0x3acb80dd5656a2a14e33dde2484f5fcb75bb8a1ddbf25f3f77e67e4905d5701c", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000003": "03", - "0x0000000000000000000000000000000000000000000000000000000000000004": "04", - "0x0000000000000000000000000000000000000000000000000000000000000005": "05" - }, - "address": "0x4d5c47ec15ef6af7c08121a523818bc249ced1d7", - "key": "0x8be0e0604af8e66052a9366308040b5ed10295a17f0f767d0f0f4271c712f722" - }, - "0x4FFFb6FbD0372228CB5E4D1f033a29f30CB668C8": { - "balance": "0", - "nonce": 1, - "root": "0x1d5b0045e4bbf5ac05684b7f97ad373b57bfa9fc07e8c214c28624f7ce9a47a5", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x000000000000000000000000000000000000000000000000000000000000002a": "2a", - "0x000000000000000000000000000000000000000000000000000000000000002b": "2b", - "0x000000000000000000000000000000000000000000000000000000000000002c": "2c" - }, - "address": "0x4fffb6fbd0372228cb5e4d1f033a29f30cb668c8", - "key": "0xf19ee923ed66b7b9264c2644aa20e5268a251b4914ca81b1dffee96ecb074cb1" - }, - "0x4a0f1452281bCec5bd90c3dce6162a5995bfe9df": { - "balance": "1000000000000000000000000000000000001", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x4a0f1452281bcec5bd90c3dce6162a5995bfe9df", - "key": "0x5c1d92594d6377fe6423257781b382f94dffcde4fadbf571aa328f6eb18f8fcd" - }, - "0x4bC336BBcE2f241Ab658214f44AaB1CBE4cb8335": { - "balance": "0", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xbe1fa08bc91e8829cee159efe23236d54f009cb119f2685588cb4d78945236ea", - "code": "0x52d75039926638d3c558b2bdefb945d5be8dae29dedd1c313212a4d472d9fde5edc95719e9a3b28dd8e80877cb5880a9be7de1a13fc8b05e7999683b6b567643ee60d0579bcffd98e668647d59fec1ff86a7fb340ce572e844f234ae73a6918f83ec6a1f0257b830b5e016457c9cf1435391bf56cc98f369a58a54fe937724651a1e6821cde7d0159c0d293177871e09677b4e42307c7db3ba94f8648a5a050f3eec716f11ba9e820c81ca75eb978ffb45831ef8b7a53e5e422c26008e1ca6d5c5069e24aaadb2addc3e52e868fcf3f4f8acf5a87e24300992fd4540c2a87eedb805995a7ec585a251200611a61d179cfd7fb105e1ab17dc415a7336783786f7", - "address": "0x4bc336bbce2f241ab658214f44aab1cbe4cb8335", - "key": "0x529525da9c1b4df0a5955af20ceb21ba6c11431a6d8a48dabdd0edb19b5ff5e6" - }, - "0x4ddE844b71bcdf95512Fb4Dc94e84FB67b512eD8": { - "balance": "1000000000000000000000000000000000000", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x4dde844b71bcdf95512fb4dc94e84fb67b512ed8", - "key": "0x5602444769b5fd1ddfca48e3c38f2ecad326fe2433f22b90f6566a38496bd426" - }, - "0x517d8fBF706E6b73E0025e65Ee711A55593f7C40": { - "balance": "0", - "nonce": 1, - "root": "0xfb003b3fa872d81e27dfc518a7c5259266de596921a134eb126566d89af2897c", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000008": "08", - "0x0000000000000000000000000000000000000000000000000000000000000009": "09", - "0x000000000000000000000000000000000000000000000000000000000000000a": "0a" - }, - "address": "0x517d8fbf706e6b73e0025e65ee711a55593f7c40", - "key": "0x2cb839672fcfe776432d72e63be7927df5c6a6e995ea096c38015303f4a0f474" - }, - "0x56270eCCd88BcD5aD8d2B08F82D96CD8DaCe4Eb3": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x56270eccd88bcd5ad8d2b08f82d96cd8dace4eb3", - "key": "0xcd6b3739d4dbce17dafc156790f2a3936eb75ce95e9bba039dd76661f40ea309" - }, - "0x56d3F289b889e65C4268A1B56B3dA2D3860D0aFB": { - "balance": "0", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc8bbb625e512247b6736502f772491730811b3714bf5daf16ae52b17bd6c9ad4", - "code": "0x101e368776582e57ab3d116ffe2517c0a585cd5b23174b01e275c2d8329c3d837dfe757ecd65cbd7922a9c0161e935dd7fdbcc0e999689c7d31633896b1fc60b88601476d11616a71c5be67555bd1dff4b1cbf21533d2669b768b61518cfe1c3cbc4e5fb02c3d1de23a9f1e014b4d2ee5aeaea9505df5e855c9210bf472495af2e174c10e159ea99b867ce3205125c24a42d128804e4070ed6fcc8cc98166aa0a9bc9a3a348c357ba16b37005d7e6b3236198c0e939f4af8c5f19b8deeb8ebc075f96ab15d697e93042dc45b5c896c4b27e89bb6eaf39475c5c371cb2513f7d23be6fd20d5acfde5b873b48692cd31f4d3c7e8ee8a813af4696af8859e5ca6c6", - "address": "0x56d3f289b889e65c4268a1b56b3da2d3860d0afb", - "key": "0xdc9ea08bdea052acab7c990edbb85551f2af3e1f1a236356ab345ac5bcc84562" - }, - "0x58f8fe237b593C19546e1e758a2544561d04bfe0": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0x35e6505af3b8e9a18eefffd4dafa37f401469b1932fa2011ce72a78ea72721ab", - "code": "0x36156009575f355f555b305f525f5460205260405ff3", - "address": "0x58f8fe237b593c19546e1e758a2544561d04bfe0", - "key": "0xedabf9f506b5170888ca458df9dab111fa2c708b88cc706659db520718be9d60" - }, - "0x5E5F35d83E5485AA1006F6Ca478eC7507d0efad4": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x5e5f35d83e5485aa1006f6ca478ec7507d0efad4", - "key": "0x53ed76a58ca2fe13ebac69b866c007878047e8c418866ece50f947ddafc36321" - }, - "0x5f552da00dFB4d3749D9e62dCeE3c918855A86A0": { - "balance": "1000000000000000000000000000000000002", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x5f552da00dfb4d3749d9e62dcee3c918855a86a0", - "key": "0xd52564daf6d32a6ae29470732726859261f5a7409b4858101bd233ed5cc2f662" - }, - "0x61774970e93c00A3E206a26c64707D3E33F89972": { - "balance": "0", - "nonce": 1, - "root": "0xeaefde34ef2da2ed24018edde58b05a50793b513e03b8aaeb547373485b459d9", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x000000000000000000000000000000000000000000000000000000000000001a": "1a", - "0x000000000000000000000000000000000000000000000000000000000000001b": "1b", - "0x000000000000000000000000000000000000000000000000000000000000001c": "1c" - }, - "address": "0x61774970e93c00a3e206a26c64707d3e33f89972", - "key": "0x07b49045c401bcc408f983d91a199c908cdf0d646049b5b83629a70b0117e295" - }, - "0x650469386D2761deB58bFa1766f728e3fB00f8b6": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xbdba3d541af01b6f98ad7e18612584383bb4bcbb43b534dd359e7cded92841f5", - "code": "0xed3d8ee28c5f40179e0b53bf87b486c0b1a6ccfb36f03b3c762c723793e06631ddd2ed02835f51d041d738f145bf914e284838547c9bcc952ea4f9de82c9f0932cc0eb4b3ec5bf92d601b8938793073ef9a83f91d7e5985435824ae87524336a68fc0e82119a780903c8e97d959a36d433d1e401ad7b7a461ff2087e524d54a8f6eb4279aa452568dd287204244d7e29d7ca1bc7a01440f08342bf2599f4b9b6ce1f324a8a5d5daa4a6b2281780ab321637fd4089413dd89c573bbf705027cb92d88733daa8d83575c1c435b1a4140007e667f8dfbe2e5678ffec947a513e5cd8ea1380f2e06c430dc5770b5e760f421089091ba950352306420da23cb1b40ef", - "address": "0x650469386d2761deb58bfa1766f728e3fb00f8b6", - "key": "0xf8b537ad8ec370ed6def89311fb0ec4c60586960a93fb08f4ec01cca798e84d4" - }, - "0x654aa64f5FbEFb84c270eC74211B81cA8C44A72e": { - "balance": "1000000000000000000000000000000000002", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x654aa64f5fbefb84c270ec74211b81ca8c44a72e", - "key": "0x00aa781aff39a8284ef43790e3a511b2caa50803613c5096bc782e8de08fa4c5" - }, - "0x66378D2eDcc2176820E951F080dD6e9e15A0E695": { - "balance": "0", - "nonce": 1, - "root": "0xf569fb7de20ae6d29d6f5d92852484b9d3a3a930031c6fc455bb0b41465453e6", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x000000000000000000000000000000000000000000000000000000000000000b": "0b", - "0x000000000000000000000000000000000000000000000000000000000000000c": "0c", - "0x000000000000000000000000000000000000000000000000000000000000000d": "0d" - }, - "address": "0x66378d2edcc2176820e951f080dd6e9e15a0e695", - "key": "0xa02c8b02efb52fad3056fc96029467937c38c96d922250f6d2c0f77b923c85aa" - }, - "0x6b8d75Cce1B9C7c2B1f2B4B89C78E9ae990A8583": { - "balance": "0", - "nonce": 1, - "root": "0x4f446329b5ee3d13d4f6b5e5f210ddc2d90fedba384b950e36a1d19af95c5cb1", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x000000000000000000000000000000000000000000000000000000000000000f": "0f", - "0x0000000000000000000000000000000000000000000000000000000000000010": "10", - "0x0000000000000000000000000000000000000000000000000000000000000011": "11" - }, - "address": "0x6b8d75cce1b9c7c2b1f2b4b89c78e9ae990a8583", - "key": "0xddba857d802fcfc8d112fa9b8f08e49b5770526f03ebb36ff72d21efef0a40ab" - }, - "0x717f8AA2b982BeE0e29f573D31Df288663e1Ce16": { - "balance": "1000000000000000000000000100000000004", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x717f8aa2b982bee0e29f573d31df288663e1ce16", - "key": "0xc3c8e2dc64e67baa83b844263fe31bfe24de17bb72bfed790ab345b97b007816" - }, - "0x73d9ac3a52Ee75fbC62384C4F516eA9fc3E45873": { - "balance": "0", - "nonce": 1, - "root": "0xd8d478365c2dd43220eab798a1fdf01a2e41ed0c4b7ce1a6a649dc4b12f97259", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x000000000000000000000000000000000000000000000000000000000000001f": "1f", - "0x0000000000000000000000000000000000000000000000000000000000000020": "20", - "0x0000000000000000000000000000000000000000000000000000000000000021": "21" - }, - "address": "0x73d9ac3a52ee75fbc62384c4f516ea9fc3e45873", - "key": "0xffc13d23ebe16b3a6fa528798996a2f4944b806a1fcd3aba90f278c8ddba22c1" - }, - "0x7435ed30A8b4AEb0877CEf0c6E8cFFe834eb865f": { - "balance": "999999999999999999998543992229197993", - "nonce": 160, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "key": "0x4363d332a0d4df8582a84932729892387c623fe1ec42e2cfcbe85c183ed98e0e" - }, - "0x788AdF954fc28A524008ea1f2d0E87aE8893AFdC": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x788adf954fc28a524008ea1f2d0e87ae8893afdc", - "key": "0x903f24b3d3d45bc50c082b2e71c7339c7060f633f868db2065ef611885abe37e" - }, - "0x7A19252e8C9b457Eb07f52D0dDBe16820B5b7830": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x7a19252e8c9b457eb07f52d0ddbe16820b5b7830", - "key": "0xab7bdc41a80ae9c8fcb9426ba716d8d47e523f94ffb4b9823512d259c9eca8cd" - }, - "0x7Dcd17433742F4c0Ca53122aB541D0Ba67fC27Df": { - "balance": "86", - "nonce": 0, - "root": "0xde3dbb656325fb05cd75718441171cba6371529f1761f6649dd29b97557e0585", - "codeHash": "0xa3216dd3ef46a63d518ef54e482cecac68a077f70fca0e5fb900be63f41d54a2", - "code": "0x3680600080376000206000548082558060010160005560005263656d697460206000a2", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "2a", - "0x0588df43087493fd84fa37ef37152cacefd4db3823315da90e65dd785434ff14": "02", - "0x0921e35d2dc9980c8ba6910f8f63ab4b0cc99b9b50423dbb4dcb3bed4939c5f5": "04", - "0x09d9f86815d3c33738fdcb1e2e78d8a32c9ead8e6d7992be1021673b36b31224": "06", - "0x114f9c62146afca150122ee4c5deb50c9de990a7275432861c14d4ae1800e5cc": "14", - "0x11f0a8ac2adda075c95bbf6be534e3254dafa759f62cbcf0e91bc6f0335e70aa": "28", - "0x13bd2394f758553be374ffa4a9455cdf5e6ef3d905acd02746df2d12361e1ace": "12", - "0x14b868a14536eb5ed455a63ff5037a50756bb70d9511540bbf25b0db03e6f837": "1f", - "0x151f1ee0a0f1a9b5a877d3a636ec0c207783c0cf4e05456e089d95a16f639e19": "1d", - "0x203ec2df3f1265eb1de22e81d3ed84177def807020e48493c24ce1007f2a93b4": "20", - "0x21bbff00787734951aff123713555d0a15eaba3a4c39633725c8d8a545a67957": "07", - "0x2224f95f0540d6fc56a7f268f44c9dade1bd8dfcd3d215b60895caf4526718cd": "15", - "0x2277e46024c337a51b8c6f946b6fd3fafaf181581eb4a4ef0bf3a23386c51e79": "10", - "0x238cff2c5ab93ccabc36fcef28ba416a93c63285b780c9d4eed1d70e6889c818": "17", - "0x2acfc92a1cc51397c95e434631e449d83a81de91964ed735a8c8b71b35e1a626": "1c", - "0x3569f740e521d8bb11c5b72660dc96272ad66bfd811ed918c3a9e02acd4ade8f": "03", - "0x35f96bc70aa62a539fa99d9153b0f8aaa4594abf70cc8a8d9018e04e39a17982": "24", - "0x415feb809041baabc4d9246223e40f1083963cbe1ef6dedb8b153e49d02ee7ce": "18", - "0x4238ace0bf7e66fd40fea01bdf43f4f30423f48432efd0da3af5fcb17a977fd4": "01", - "0x4fca474bfe29257cd2fc6aaa8526de59f97fdeccadf40d415477daaa16a301b2": "13", - "0x6e0bc683683d9e3e3bbc53a431650e46e47d14fe9f221b84b9e3fb0bd44e2fe0": "11", - "0x744c318a28d9b402c1242775b83757deeb909600f2fa8f053755f265c350f934": "23", - "0x792137c50df83e6f36851ebbc895474f11838e869cebf9d91399708bf3f285a5": "19", - "0x87c8bde84cde385e1d4d2340dfde5fa4897632946b0a38bcad1cccb5aed28995": "0e", - "0x89c17d9392b73a55738ba19aae192f2f9c5612dc8bd803ca23b9c2fb9c309e56": "26", - "0x95104e47e1982aba633477f377b1511396c3fe83600224bcb0c78949be705b33": "0f", - "0x9843536982cd35f7b0f71a3eb2a09cd0d2768d835a76d5a7166069c14149bb13": "0c", - "0x9c3f428ba9b81a870adf7fb021492ee3b4044473f92a8e0802703e0800d2b571": "22", - "0xa2fc47b981f101be956700b8cca7a48311b8f39cf8271b966693c3c5e7484a81": "08", - "0xa41cb4f2ab2731a8889754ae1a340c666cb8107b497b922073df80a9b255e31b": "0d", - "0xb2cd144783c0f138a1420529b82c0ea1b65b006f9a35587d8013c71b7d2a1c6a": "0a", - "0xb6772510f5d77daf3205e0afac035d16eeb1bd28ee1be6bfa57bb67fd111c565": "1a", - "0xb8d28e7b703baf999848ecbba44026cb6479b3f0466037bcf2221ffc3f8549f9": "05", - "0xbc345f673739a3d6c95cace43a530d85e2774e73ee8837955398ac7c7b069a31": "16", - "0xc11c7bbe1b7743472b444bc11c51b1aceff1b8e207c9d46d2c3dd24e9184d8f4": "21", - "0xc6efde6bbc44a930b209a39f844f0a5b69a2720057fc34e2df4e1f89b04a55bb": "25", - "0xc9a2fb36f38496f49a549275ba41a4a00ef97e4ca82512a3bdd22770ceba848a": "1b", - "0xcad398eccd12aa694ba255d69defbf78fd51d2acec863d3ad859a64ca3bbc6b7": "0b", - "0xe40f7e90d366e95b58a24b13aabb5b70789398ec79b08d0952bc0f19d27218e1": "27", - "0xe64bc02a00a08574b11865f3eaf12440003ee8ec5f2df18d045c49a2a45c6d52": "09", - "0xe8481f0a1ea7b2528784efff1d1b33cbd66ac97ebe2ae35c7997cacb2863430b": "29", - "0xfa5fbc362eb74618d5c6dcb512ffb45d5dea367c27ee5122f29907d36b8b9515": "1e" - }, - "address": "0x7dcd17433742f4c0ca53122ab541d0ba67fc27df", - "key": "0xbf1f52c702c40589735c4b038bd94e04268a58c35afad63bb16c071d62d2e23d" - }, - "0x7fd02A3bB5D5926d4981eFBF63b66DE2a7b1aA63": { - "balance": "0", - "nonce": 1, - "root": "0x24111a061419edc3afa83e8824963922dbe7a7d78f5bde939d03f470a0054dcc", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x000000000000000000000000000000000000000000000000000000000000000c": "0c", - "0x000000000000000000000000000000000000000000000000000000000000000d": "0d", - "0x000000000000000000000000000000000000000000000000000000000000000e": "0e" - }, - "address": "0x7fd02a3bb5d5926d4981efbf63b66de2a7b1aa63", - "key": "0xfc3d2e27841c0913d10aa11fc4af4793bf376efe3d90ce8360aa392d0ecefa24" - }, - "0x8074971C7D405bA1e70af34f5AF7D564ddc495dF": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x8074971c7d405ba1e70af34f5af7d564ddc495df", - "key": "0x0e0e4646090b881949ec9991e48dec768ccd1980896aefd0d51fd56fd5689790" - }, - "0x8120ff763f8283e574FC767702056b57Fcc89003": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x8120ff763f8283e574fc767702056b57fcc89003", - "key": "0x48e291f8a256ab15da8401c8cae555d5417a992dff3848926fa5b71655740059" - }, - "0x81d180be8008f56e16d78fb20f40d8b4bf023960": { - "balance": "0", - "nonce": 1, - "root": "0x7f93bf2678903cac2d6725ae5fece3baa1e21cb1e8aa843948f9d5021b20b1c9", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000015": "15", - "0x0000000000000000000000000000000000000000000000000000000000000016": "16", - "0x0000000000000000000000000000000000000000000000000000000000000017": "17" - }, - "address": "0x81d180be8008f56e16d78fb20f40d8b4bf023960", - "key": "0x8c0337db9b5538441a43e1453a2b67368be33c0be8c3e700fdf718842b1349d9" - }, - "0x83C7e323d189f18725ac510004fdC2941F8C4A78": { - "balance": "1000000000000000000000000000000000002", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x83c7e323d189f18725ac510004fdc2941f8c4a78", - "key": "0xb17ea61d092bd5d77edd9d5214e9483607689cdcc35a30f7ea49071b3be88c64" - }, - "0x847F88846C35337CbF57E37ffC18316A99Ac2F14": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0x52e6a4c40e455905724bc00edd73e34072c5e97a169368bb447d72be6989bc13", - "code": "0x2bfb33747d039531bb279f93c386332ae05e0c10b395017fd2d93fe9fc4c6e23e03615811ae25b894de73e643038c13c37f602dc1e17ff1a02e5854893f3bd5e2c3ae7faa961c1022fc62c6e28aa6a8ca294093f03d2e3388f637423816a5ca5181ec19a0f957384e4ecbe9410e516ad0fe8cc3e53caac5ffc50eb11e64bf488cee00ef6983e77a7e1db3b46722f66f35b443eda730735f8d62ca455b3aed108f741ec76f1fe7f69472258a1aadfdfa26e2ebd1eab0ccf01974a49e36fb53ba4bcf8f20af2ea5452ef730fc21b76c654aa112eeb6bd50a8af28b1e5d63c16cd7d9ba031fdb7d71bd061083980d5807d26bb2fade193f918e92821956bfdda35a", - "address": "0x847f88846c35337cbf57e37ffc18316a99ac2f14", - "key": "0xbea55c1dc9f4a9fb50cbedc70448a4e162792b9502bb28b936c7e0a2fd7fe41d" - }, - "0x84E75c28348fB86AceA1A93a39426d7D60f4CC46": { - "balance": "1000000000000000000000000000000000002", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x84e75c28348fb86acea1a93a39426d7d60f4cc46", - "key": "0x5162f18d40405c59ef279ad71d87fbec2bbfedc57139d56986fbf47daf8bcbf2" - }, - "0x870d4A1AF4E4f80bc8c6a7f4Cf7484F77bE117C9": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0x59adfad51ac35f1983440f3da676e7f89fa00d680b6e144a976fbf80feca8f17", - "code": "0x3e9abaca0aad9ede81f4474766c846d8539f70688e1c8f521bbe1597874e3dc42a32391a76c35a36352b711f9152c0d0a340cd686850c8ef25fbb11c71b89e7bd3604db978f6137b0d18816b77b2ce810487a3af08a922e0b184963be5f3adfc9dcb9783ba5cd0b54745f65f4f918525e461e91888c334e5342cb380ac558d535c6b02db8b672415ffad906d7ccee10bd53dbad7d0b29e2bc0e50c93d5f31093a18b128af1c8fc61ff46f02d146e54546f34d340574cf2cef6a753cba6b6701d4da38fc8e544afc56a4c2a17752b8ddb67d8e23ac4583c9029d2e2d1dbe6c9883ed157e83ab1bb1f6b7b3760b3368106283d4e15d1f1b08e20d06576445a9994", - "address": "0x870d4a1af4e4f80bc8c6a7f4cf7484f77be117c9", - "key": "0x5ca23f91fefb93f286e7e245a0fe4d7018dfbfc71d39f9d80ff6ae95a304165f" - }, - "0x871DcE18bf93E1b1D3B2F80FD2b7C009A6B7e204": { - "balance": "0", - "nonce": 1, - "root": "0x51a22b2bdb39a11558ad762378d7c122370e3831b26df96459bf53abb845f82a", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000018": "18", - "0x0000000000000000000000000000000000000000000000000000000000000019": "19", - "0x000000000000000000000000000000000000000000000000000000000000001a": "1a" - }, - "address": "0x871dce18bf93e1b1d3b2f80fd2b7c009a6b7e204", - "key": "0xff70e9e050b02392d2b698a01bde84b39702a028cabbe4bbe88ff5964b186d65" - }, - "0x882e7e5d12617C267a72948e716f231Fa79e6d51": { - "balance": "0", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x882e7e5d12617c267a72948e716f231fa79e6d51", - "key": "0xd2501ae11a14bf0c2283a24b7e77c846c00a63e71908c6a5e1caff201bad0762" - }, - "0x8BEbc8Ba651AEE624937E7d897853AC30C95a067": { - "balance": "1", - "nonce": 1, - "root": "0xbe3d75a1729be157e79c3b77f00206db4d54e3ea14375a015451c88ec067c790", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000001": "01", - "0x0000000000000000000000000000000000000000000000000000000000000002": "02", - "0x0000000000000000000000000000000000000000000000000000000000000003": "03" - }, - "address": "0x8bebc8ba651aee624937e7d897853ac30c95a067", - "key": "0x445cb5c1278fdce2f9cbdb681bdd76c52f8e50e41dbd9e220242a69ba99ac099" - }, - "0x8C71c88762EcaF1C5f0C06fDFEC6D1C86ee62174": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x8c71c88762ecaf1c5f0c06fdfec6d1c86ee62174", - "key": "0x272de2ea3ace35fa88acd34a8f7c9c0c236439eafc0509f2a6d66d1dda7225d0" - }, - "0x8D94c7e33c4ca49562F258A133De8F177D818A9D": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0x132557381e40d0126be4ace93b4614551675d5e3753c6c60b25ca052fc8880bf", - "code": "0xfaaf1897615a4d5824a81780f33dd422a304cae5e7b14f0f9215d1a3deeea9e2f3acc69a9031f5037951ce1c99fcf7752f2d0ceae99c0b9690d37b7553f5f03f1d6259cceddee50e33c0ede37bb2e8136cec47688223681b2fb690d3fce7a3d910f5232ee9f6343d8bf0b7c9043a31ee616d8f028dcf3d2e9033ff8e0ce0ef0f724ad3d24f57aae4bebead5383879105ce62b9d5fa67d4343ae412b59bd7971d4d86b00d2ea4cfb01847b7956081673f71c56ef4a250d3ffa5902b0df4fc97061db7b1394727b4ec83580f945ddf3bdf76fcb71f6c6109779c749ee7ec003004fce7dc5bb3cbbc540cf9457d032a1a1aae0059624b6dd6eecb9d2c06cd32c09c", - "address": "0x8d94c7e33c4ca49562f258a133de8f177d818a9d", - "key": "0xc2847bbcee6d2e247f094871ddb1e40da11ffffd395f441fac495a75040719c0" - }, - "0x9025d2F24A1a23CB2B093823e52e1f90DAC60a95": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x9025d2f24a1a23cb2b093823e52e1f90dac60a95", - "key": "0x6e9e5296c3f88a6ee0f51246dc1237dec2b78db9938cd04f404f44bc0b70a479" - }, - "0x93216E4a663E3A680A0FE006285935F47caa5738": { - "balance": "0", - "nonce": 1, - "root": "0x47a64380e3ea367bd6cfe7262630ae6474f9e0a506a2e1331bbab5cb7df83230", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000027": "27", - "0x0000000000000000000000000000000000000000000000000000000000000028": "28", - "0x0000000000000000000000000000000000000000000000000000000000000029": "29" - }, - "address": "0x93216e4a663e3a680a0fe006285935f47caa5738", - "key": "0x4c5038feb95f6ec5d7f882308ee48d7f51cd0f31fde9cfabc5f8a781ac6671df" - }, - "0x9344b07175800259691961298cA11c824e65032d": { - "balance": "0", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0x8e0388ecf64cfa76b3a6af159f77451519a7f9bb862e4cce24175c791fdcb0df", - "code": "0x60004381526020014681526020014181526020014881526020014481526020013281526020013481526020016000f3", - "address": "0x9344b07175800259691961298ca11c824e65032d", - "key": "0x2e6fe1362b3e388184fd7bf08e99e74170b26361624ffd1c5f646da7067b58b6" - }, - "0x9539d142fbbdEa1A80522fEdfA5A8619b4fa1861": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x9539d142fbbdea1a80522fedfa5a8619b4fa1861", - "key": "0x9a57b0a587fc060d23e9d43445f3f75c10c91121e850e44ef1fd11e47afd5ba7" - }, - "0x9b3cf956056937Dfb6F9E3dc02e3979A4E421c0A": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0x9b3cf956056937dfb6f9e3dc02e3979a4e421c0a", - "key": "0xb1b2c1c59637202bb0e0d21255e44e0df719fe990be05f213b1b813e3d8179d7" - }, - "0xA6a54695341F038ad15e9e32f1096f5201236512": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0x43753c2e670cc48b2137a5538ca949ec1a39c9639387461dd84f6d5e6416646c", - "code": "0x324fdf7bfe7bd2828491073f0b7868a9a19ee3eff384c2805040be3e426447f574a5fbcb419ab7dbacbb2c92a4e163730f0da5c72b911deecf4f05a6b327d0a4f85cc6ffc513dc6cf7d199ef87b7a63cf9defe62251c1c247cd12f1eec7bff298a8dc4e5242ea8b1ab1d60606dae757e6c2cca9f92a2cced9f72c19960bcb4584ad5a04d53b5856f318545bb721f67d3f6d0a5a999f25eec7e20eaeb4c47b933c0a4a8be475dfebc377ebef2d7c4ff47656f572a08dd92b81017efcdba0febe1ca4d0c6c94a9477136dd41a99cc19ecbe441c8f6609efe7c6fa65be007a47323f1f3e9c34634a546b3672c043f73844d83d55591bbe61b8e7e3a72bca1a812bf", - "address": "0xa6a54695341f038ad15e9e32f1096f5201236512", - "key": "0xa87387b50b481431c6ccdb9ae99a54d4dcdd4a3eff75d7b17b4818f7bbfc21e9" - }, - "0xA788CA96A910bAC854f95B794776c1AD847DcDD5": { - "balance": "0", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0xa788ca96a910bac854f95b794776c1ad847dcdd5", - "key": "0x765167a6eef9a12a7a2b6dee68a442a4534642a80faf799517cbe3b3dbac7faa" - }, - "0xAB9025D4a9F93c65cD4Fe978D38526860aF0aa62": { - "balance": "0", - "nonce": 1, - "root": "0x3a58b3b4acd2202678051b86feb0dfbd2e7820878f2ef6b4baa7a1872fa785b1", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000024": "24", - "0x0000000000000000000000000000000000000000000000000000000000000025": "25", - "0x0000000000000000000000000000000000000000000000000000000000000026": "26" - }, - "address": "0xab9025d4a9f93c65cd4fe978d38526860af0aa62", - "key": "0x17350c7adae7f08d7bbb8befcc97234462831638443cd6dfea186cbf5a08b7c7" - }, - "0xAcEac762fF518b4cf93a6EEbBc55987e7b79b2cE": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0x6b48000f6019b583ca362b0dc6bb651649385624e568bd3588ccc7135cb7462b", - "code": "0x870253054e3d98b71abec8fff9ebf8a15d167f15909091a800d4acaab9266d2bdc686ec4a0ff239c70e7c7c36e8f853eced3bc8618f48d2b816da2a74311237eacd8ef244210bb6898e73c48bf820ed8ecc857a3bab8d79c10e4fa92b1e9ca65f2c49132ed1cee2a7e75bde50d332a2f81f1d01e5456d8a19d1df09bd561dbd2beb3bad75134cb432e5707980e3245c52c5998a1125ee30f2f0dbf3925b1e551eddb6698d7c569ff62ff64f1f1492bf14a54594835ba0faac91f84b4f5d814604ced6d0d36392b04cc5d8761b1327b3bbba6e1089c77f60a9a9ca18e05e4f00eb7c49cceb9f85950584035457a41ebbd8cf93b9b612733ad25aa9731ac43aad6", - "address": "0xaceac762ff518b4cf93a6eebbc55987e7b79b2ce", - "key": "0x1960414a11f8896c7fc4243aba7ed8179b0bc6979b7c25da7557b17f5dee7bf7" - }, - "0xBDda53a9729794D60e7555A0A9066b3aBCFc15a1": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0xbdda53a9729794d60e7555a0a9066b3abcfc15a1", - "key": "0x8b016cf0507d02b670f348014bfbbac4ddc6c327f162ad478a4d4658a11ed051" - }, - "0xBFeA86423C99AD2Bf0E04Bf48f132eF15afbfFcA": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0xbfea86423c99ad2bf0e04bf48f132ef15afbffca", - "key": "0x8fbe75b43640d6ad7867fdbc62ba143fbf5804c70eb7d391dd6d67b8c761408c" - }, - "0xBd079b0337A29cCCD2EC95b395Ef5c01E992b6a5": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0xbd079b0337a29cccd2ec95b395ef5c01e992b6a5", - "key": "0xf0877d51b7712e08f2a3c96cddf50ff61b8b90f80b8b9817ea613a8a157b0c45" - }, - "0xC7B99a164Efd027a93f147376Cc7DA7C67c6bbE0": { - "balance": "1000000000000000000000000000000000000", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0xc7b99a164efd027a93f147376cc7da7c67c6bbe0", - "key": "0x8e11480987056c309d7064ebbd887f086d815353cdbaadb796891ed25f8dcf61" - }, - "0xCaE62C8E777eA0541A55B5Af15D59eECc71cE2ac": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0xcae62c8e777ea0541a55b5af15d59eecc71ce2ac", - "key": "0x3f6c9bea2a94e47b2694dda7576291a475e5e70977c0a71fedf363ea2cb652e9" - }, - "0xD1FFA9fF507492844818d0d91Bf35B93a7c95E4a": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xeb9f0d90519cedf8075daecb209855346f51be13ca2c463e0949c10d15cbfeb9", - "code": "0x20b8703968a1421b7417fbc8615cbe909dc21c5d6ab0d6fd4579bae332adc9376f153c7bec1b961778a44c5a2c99b1e110e89aa94705c74c316b7331a3d8406543b5581607f3794931937dc64797d2130b6bf8bdfd272fb8ea0df3fe46d9c410b79c508b45d95db38395ed273cca5afa4bcb8f1225ec7e9c849430db27d6f0fe1a6a7f21c46330bc6f6a1e986d3ef56bc7833cc3006bfde177cce9f142837659fde35737db706c16fba5e9f098619e9536256befd6f412f408865e7267b38573c40cabba85bacae2b367d452524fc3c64d193b81d8e5f9a9b5e87d78b45816eaedddd91313f7c989bdc231bc624ea9908f2340b23ff878dfbd27a2cf1c3ec99f", - "address": "0xd1ffa9ff507492844818d0d91bf35b93a7c95e4a", - "key": "0x4885a02db06138818497f56f6ef6f9611b1fe93d81f6d4a03dd83ee80a119ed6" - }, - "0xE3A8b633a20D3Bc82CFD6d6cB315dD9784b3EA41": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0xe3a8b633a20d3bc82cfd6d6cb315dd9784b3ea41", - "key": "0xa3f8196fd37c836d7a5bfcdd9807147e8d74957f5125bed4c6fe6da4e348dcad" - }, - "0xE75DB02929f3D5d7c28ecDb064ecE929602c06BD": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0xe75db02929f3d5d7c28ecdb064ece929602c06bd", - "key": "0x600a7a5f41a67f6f759dcb664198f1c5d9b657fb51a870ce9e234e686dff008e" - }, - "0xE7D6C630bD79f8CBb837221AED4538Ea6B23FbE6": { - "balance": "0", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0xe7d6c630bd79f8cbb837221aed4538ea6b23fbe6", - "key": "0x1189e6016e8e221cc4fc4f2ac243e8829959de8b935313559ace4a1207d9bf11" - }, - "0xE7d13f7Aa2A838D24c59b40186a0aCa1e21CffCC": { - "balance": "1000000000000000000000000000000000000", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0xe7d13f7aa2a838d24c59b40186a0aca1e21cffcc", - "key": "0xec3e92967d10ac66eff64a5697258b8acf87e661962b2938a0edcd78788f360d" - }, - "0xEC3eE750E2748aE2cBAE35E469185E4824824E1F": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xbba5ad022ed220f608e1364d2b13eab65fe4d8fa4fe179d1417af69239860587", - "code": "0x020abee21eef15c21bc31a406c2b8ac3afc5df94a4b02b38abb286f4334e6c5b755311b9e2cee471a91b161ccc5deed933d844b5af2b885543cc3c04eb640983328b8e687a0a963892a735f0237cb763bbbbf8ba0c1dfe2c221debb32c4bbd8947d4745e02b343689a5e7ac121d2a352b7a15c10328a8759fd7d4cf0999002bb4a597304b2df0a7a7b428b3c24c35ba6373aabebf9972387f5610f74a01b21bd8b32256db898364c465749decac34aee435952ffe1739257aa5b0235e266d9c56fac4587033fa036e2426ad0134940d3a683633cc2b2b7862f39195344f163d1fdb0fc5c292af6bc7c9afb28ca8e0549b4de965653a829548475c76a1d5c400c", - "address": "0xec3ee750e2748ae2cbae35e469185e4824824e1f", - "key": "0xbb841424e9b3ab772d99521cc155b53eab8c4d915d030f21d790ec2cb8d8e7d4" - }, - "0xF28E98DD61d8c712A49a49e189837D8888271158": { - "balance": "0", - "nonce": 1, - "root": "0x2b0942197e6bff98655d041e4e9babc448114630c762b51efd50a4b20f30441c", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x000000000000000000000000000000000000000000000000000000000000000e": "0e", - "0x000000000000000000000000000000000000000000000000000000000000000f": "0f", - "0x0000000000000000000000000000000000000000000000000000000000000010": "10" - }, - "address": "0xf28e98dd61d8c712a49a49e189837d8888271158", - "key": "0x2a975bb8885dd321fb0d12b073fc5b9c7833242f2241f8df7dc9b5fe4f68f6bd" - }, - "0xF5347043ae5FCA9412ca2C72aEE17A1D3Ba37691": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0xf5347043ae5fca9412ca2c72aee17a1d3ba37691", - "key": "0xa5541b637a896d30688a80b7affda987d9597aac7ccd9799c15999a1d7d094e2" - }, - "0xF7EAaDCf76fFcF006A86dEb2f17d0b8fe0B211a8": { - "balance": "0", - "nonce": 0, - "root": "0x491b2cfba976b2e78bd9be3bc15c9964927205fc34c9954a4d61bbe8170ba533", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000005": "05", - "0x0000000000000000000000000000000000000000000000000000000000000006": "06", - "0x0000000000000000000000000000000000000000000000000000000000000007": "07" - }, - "address": "0xf7eaadcf76ffcf006a86deb2f17d0b8fe0b211a8", - "key": "0x1dff76635b74ddba16bba3054cc568eed2571ea6becaabd0592b980463f157e2" - }, - "0xF89374e8646084BE4525B8Da2E64aF316b570458": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0x70509cee324b25aa0213b0fec58f04bf17c986b83b2b7d9a6b93eb032b6be40c", - "code": "0xb44b86596a635358e7aa60b17d32860c3f1efe2d3e53fb82c0bb23213b9c4be32b00120b81607971383f6f5676c1551d6bb27be3f263689fd3630e1a5be14018fa3bcae139a60d3922021a29633a6c8687b9ba7e920e2516b2cfd8f5fd3e0e51370c8c7c6215b209793aa720f65163fbeecd5f5114008532ba0649ee2340540287e655ef16e4075af30c6a90c2b439f7dcd2d83a606dafadaee10cffaf918132b8657d180a4d2444fb942e94a4266075e5a1b59d96d88e88cf308d6927f00ff27d35cc2b0520994422695eb24e3bf4f74e9cba2704cae72ecd9ec54409a56afb3b7c8b1df7c71af88cda2092b2bbd35702a3b48a00f02a41bbad24edc78296dc", - "address": "0xf89374e8646084be4525b8da2e64af316b570458", - "key": "0x8a501498b71c00ef30dfb420ca71d286546a057bb13d56eb0e175c0e42c2f3a6" - }, - "0xa12B147dD542518f44f821a4d436066C64932b0d": { - "balance": "0", - "nonce": 1, - "root": "0x39e1a47c1acbf66554501ccd7eb3a54c42f09cbd36beb9d5a77aea3685ff1fa3", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000017": "17", - "0x0000000000000000000000000000000000000000000000000000000000000018": "18", - "0x0000000000000000000000000000000000000000000000000000000000000019": "19" - }, - "address": "0xa12b147dd542518f44f821a4d436066c64932b0d", - "key": "0xae88076d02b19c4d09cb13fca14303687417b632444f3e30fc4880c225867be3" - }, - "0xaD9Dad8a45e691B45a09e2CE5a88594A08f4744A": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0x5abe908136acf3d84e45f47de4278c792c1ca777124f6019823f683f372f9922", - "code": "0x62103cf3131c85df57aad364d21cba02556d3092d6cb54c298c2e7726a7870bd8f331abe73332f95a25873e8b430885974c0409691f89d643119a11623a7924a59dd4b18488d12f51eda69757a0ed42a2010c14b564330cc74a06895e60c077bc69056f16cbaa3c616b828e333ab7d3a32310765507f8f58359e99ebb7a885f3c59312466997bb42aaaf719ece141047820e6b34531e1670dc1852a453648f0f069400f22b28c6c362558d92f66163cec5671cba50b61abd2eecfcd0eaeac518697b2bd7bb2984c4e0dc14c79c987d37818484a62958b9c45a0e8b962f20650f55c5b153ab560fcde54a63b18c7f53d75501706907cef8767fbded79ab9997c7", - "address": "0xad9dad8a45e691b45a09e2ce5a88594a08f4744a", - "key": "0x90c9be68ba7502086f74ff43be0a2f2dff9baa9073fbccf73690addc0d93ee20" - }, - "0xb911ABEEaD298d03C21c6C5fF397Cd80EB375D73": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xcf734bbcae7360fafca05158ce89b752a699f9d98a33235446ea113f1edd04cf", - "code": "0x52774d722ab93275a0199da6072cca5400bf7f03bf064dd4a2b1af238c418d494e788733fe0bff9af5f3e3a353367490c603293e53707fe7e4e0071b9ed497d644f9494ddace41673149b1ce2120e2a8dc5880bba93ff68e6b6c883c57a0c69594f2575c7592b1dfd5a8846a17482da7b0e38fb10c93880d74916c5f167924641bb30a1647f6f6723cb3a88838ce0319afabe51263fc466f2f669a7a24ad88c6dcae836ed36bf3d20474cfcca00229d5b3b00239a2a956d8ca4bf29e25a7143ceda6feebfb4ffb7de2d0dc45a13b92dc953c2ed6ee96fa7fe8179e7c4266747fe0187fe5ac48a8a39472250620f415014331c778dcb200418004c2f11134f4b7", - "address": "0xb911abeead298d03c21c6c5ff397cd80eb375d73", - "key": "0x873429def7829ff8227e4ef554591291907892fc8f3a1a0667dada3dc2a3eb84" - }, - "0xc8aF91C25CcEf6303abA6b35389C32344C8846b1": { - "balance": "0", - "nonce": 1, - "root": "0x0fd8e99b1b4ab4eb8c6c2218221ae6978cc67433341ed8a1ad6185d34fa82c61", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000014": "14", - "0x0000000000000000000000000000000000000000000000000000000000000015": "15", - "0x0000000000000000000000000000000000000000000000000000000000000016": "16" - }, - "address": "0xc8af91c25ccef6303aba6b35389c32344c8846b1", - "key": "0x80c81c55c3ae6c05094c394ac0a30c6d4251e5b4df001347a3fbd502729690a9" - }, - "0xd803681E487E6AC18053aFc5a6cD813c86Ec3E4D": { - "balance": "1000000000000000000000000100000000001", - "nonce": 0, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "address": "0xd803681e487e6ac18053afc5a6cd813c86ec3e4d", - "key": "0xe5302e42ca6111d3515cbbb2225265077da41d997f069a6c492fa3fcb0fdf284" - }, - "0xeBf37AF41B6d7913Aed3b9Cc650D1E8f58A3d785": { - "balance": "0", - "nonce": 1, - "root": "0x324c7f8ff4769d4c0d030616408dc7eb99c331a03a531e6c50f4368b00b59935", - "codeHash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000011": "11", - "0x0000000000000000000000000000000000000000000000000000000000000012": "12", - "0x0000000000000000000000000000000000000000000000000000000000000013": "13" - }, - "address": "0xebf37af41b6d7913aed3b9cc650d1e8f58a3d785", - "key": "0x209b102e507b8dfc6acfe2cf55f4133b9209357af679a6d507e6ee87112bfe10" - }, - "0xedA8645bA6948855E3B3cD596bbB07596d59c603": { - "balance": "1000000000000000000000000000000000005", - "nonce": 1, - "root": "0xdd43fc82ac338ab2ee3c6203da0c8f16e893e6c37720b37ce8676f0e7c68bb05", - "codeHash": "0x60f3c5b5570c669aa8e05259debd36b34ece48e9d00dfa8786da19f95cc6614f", - "code": "0xef010058f8fe237b593c19546e1e758a2544561d04bfe0", - "storage": { - "0x0000000000000000000000000000000000000000000000000000000000000000": "696e766f6b656400000000000000000000000000000000000000000000000000" - }, - "address": "0xeda8645ba6948855e3b3cd596bbb07596d59c603", - "key": "0xabd8afe9fbf5eaa36c506d7c8a2d48a35d013472f8182816be9c833be35e50da" - }, - "0xf068AE4089A66C79Afe47D6E513F718838D8f73F": { - "balance": "0", - "nonce": 1, - "root": "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421", - "codeHash": "0x38e0aa88c386479a946efa989a1b57f89baf9adb61e4b6fd9c0f7f7f744c2678", - "code": "0x7536f03fc5db63ca945db399fd3b92bff9b5879a5c0d7d84d2973ef5c841ea0612bd632ff333b55931f9f8bda8b4ed27e86687f88c95871969d72474fb428c140353061a88c0592f32d7468be32ff6e5e91e49a3ea3ffb3c4fbe417c36501ba2f60b7f6a315ec68a6ac240e69dca53652b38627f709a2caa217d9e18af4d7a6066b61daf77b854ca6ba000a8d4b340eafcdb71b6583753b4af89fceb54988fff58f00e8ecc6f5419941dd0bafec65a4cc188d31713fb1fe224257460930df8aff130046d53bc87538ab17e4752ba5f5082985eecc06ccb932c5a55e8242dd5026695255c0c22b4090576b0ff35e852eba3dd4afabff28976da48e1280061728d", - "address": "0xf068ae4089a66c79afe47d6e513f718838d8f73f", - "key": "0x37310559ceaade42e45b3e3f05925aadca9e60aeeb9dd60d824875d9e9e71e26" - } - } -} \ No newline at end of file diff --git a/tests/integration_tests/spec/fixtures/execution_apis/txinfo.json b/tests/integration_tests/spec/fixtures/execution_apis/txinfo.json deleted file mode 100644 index ad8edbe73a..0000000000 --- a/tests/integration_tests/spec/fixtures/execution_apis/txinfo.json +++ /dev/null @@ -1,745 +0,0 @@ -{ - "deploy-callenv": { - "contract": "0x9344b07175800259691961298ca11c824e65032d", - "block": "0x1" - }, - "deploy-callme": { - "contract": "0x17e7eedce4ac02ef114a7ed9fe6e2f33feba1667", - "block": "0x1" - }, - "deploy-callrevert": { - "contract": "0x0ee3ab1371c93e7c0c281cc0c2107cdebc8b1930", - "block": "0x1" - }, - "randomcode": null, - "randomlogs": null, - "randomstorage": null, - "tx-eip7702": { - "account": "0xeda8645ba6948855e3b3cd596bbb07596d59c603", - "proxyAddr": "0x58f8fe237b593c19546e1e758a2544561d04bfe0", - "authorizeTx": "0x16f6724ad864e7664c367893cae3e176d362bea3a47495cec3b246555a7228da" - }, - "tx-emit-eip1559": [ - { - "txhash": "0xc7dba25cdd5aee6ff7d27fe5422a4179f5913c664c3339c8e0440bd1c9cd8de9", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x1b", - "indexInBlock": 0, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x13bd2394f758553be374ffa4a9455cdf5e6ef3d905acd02746df2d12361e1ace" - }, - { - "txhash": "0x711f9a45929229020ea51ac9603dfbd16920c08aaf3b9ca182981b76a4022040", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x1c", - "indexInBlock": 1, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x114f9c62146afca150122ee4c5deb50c9de990a7275432861c14d4ae1800e5cc" - }, - { - "txhash": "0x6703d8536f08d5a0adf5160a8746867e100fb45da3e724a14fad5c565260bbee", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x1e", - "indexInBlock": 2, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x238cff2c5ab93ccabc36fcef28ba416a93c63285b780c9d4eed1d70e6889c818" - }, - { - "txhash": "0xfdda254dd3b2b35a5132ac8c046a24889d57ffe37613db707b10e8bc5a9c67c1", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x21", - "indexInBlock": 1, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0xb6772510f5d77daf3205e0afac035d16eeb1bd28ee1be6bfa57bb67fd111c565" - }, - { - "txhash": "0x1a65f720a63ed7282daf218a924f1ba3b6ac40b5db25161078146dbd22d5e17d", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x23", - "indexInBlock": 2, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x151f1ee0a0f1a9b5a877d3a636ec0c207783c0cf4e05456e089d95a16f639e19" - }, - { - "txhash": "0xc97d14e668517fe59ae7ddf52481383ff3c374f406850c849c9bfdb47e4c4a90", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x26", - "indexInBlock": 0, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x203ec2df3f1265eb1de22e81d3ed84177def807020e48493c24ce1007f2a93b4" - }, - { - "txhash": "0xe59f37b9b7e8889c8230282f1350c0e04001232fcf675fc141cdabcb877b9595", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x28", - "indexInBlock": 3, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x744c318a28d9b402c1242775b83757deeb909600f2fa8f053755f265c350f934" - }, - { - "txhash": "0x1cd1a6af8134b83c935b1b9545438eaf03ec38aab1fb910a6cab3e99c0c54c72", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x2b", - "indexInBlock": 2, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0xe40f7e90d366e95b58a24b13aabb5b70789398ec79b08d0952bc0f19d27218e1" - } - ], - "tx-emit-eip2930": [ - { - "txhash": "0xd82374da698cfacbf4bb58d7ab8444621517e2137c08b859c66e50e8927c7af6", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x18", - "indexInBlock": 0, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x95104e47e1982aba633477f377b1511396c3fe83600224bcb0c78949be705b33" - }, - { - "txhash": "0x7589e20825bf5abf22d6eaebd3c3650875fe9d2b2cb202d6c36aeb543292f1e0", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x19", - "indexInBlock": 2, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x6e0bc683683d9e3e3bbc53a431650e46e47d14fe9f221b84b9e3fb0bd44e2fe0" - }, - { - "txhash": "0xf804c0984af03a8fb0948a95bef19996d7cafdb098891ff65f126795b597064a", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x1b", - "indexInBlock": 2, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x4fca474bfe29257cd2fc6aaa8526de59f97fdeccadf40d415477daaa16a301b2" - }, - { - "txhash": "0x56a892dcb5bba51be7dab94271a482aa6bc97eb3196a69c50f53747fa1d55782", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x1e", - "indexInBlock": 0, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0xbc345f673739a3d6c95cace43a530d85e2774e73ee8837955398ac7c7b069a31" - }, - { - "txhash": "0xdae77d0c63b270442595803f1b36cce3f5f5518f7448ef2e69488eadd2b453ee", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x20", - "indexInBlock": 2, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x792137c50df83e6f36851ebbc895474f11838e869cebf9d91399708bf3f285a5" - }, - { - "txhash": "0x00f36dbd8e7be4dffdaf16137d090527cef6eecb2333440002f7a1ab969c46a2", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x23", - "indexInBlock": 0, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x2acfc92a1cc51397c95e434631e449d83a81de91964ed735a8c8b71b35e1a626" - }, - { - "txhash": "0x1b18bc003b033990a6015c3b677657a9b5c212cf5cb7593694b6bbe134d880cc", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x25", - "indexInBlock": 2, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x14b868a14536eb5ed455a63ff5037a50756bb70d9511540bbf25b0db03e6f837" - }, - { - "txhash": "0xf9c5bcace6ccc1fda50a53762d0402e90a86b4567382464ea83a4187a0d973e8", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x28", - "indexInBlock": 1, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x9c3f428ba9b81a870adf7fb021492ee3b4044473f92a8e0802703e0800d2b571" - }, - { - "txhash": "0x51b0074bfb7b5e76ef0fc45d3815f3413bde865ea034f861293e222d7c27f7c4", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x2b", - "indexInBlock": 0, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x89c17d9392b73a55738ba19aae192f2f9c5612dc8bd803ca23b9c2fb9c309e56" - }, - { - "txhash": "0x195a09414344f56e7a202d1493b258b2394b9b93811ce4ee96212a7d34ffb04f", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x2d", - "indexInBlock": 4, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0xe8481f0a1ea7b2528784efff1d1b33cbd66ac97ebe2ae35c7997cacb2863430b" - } - ], - "tx-emit-eip4844": [ - { - "txhash": "0x6bcea0da8e703d3283c8f1124377a63023290cd188de3274d12441e15dc14794", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x2a", - "indexInBlock": 0, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x35f96bc70aa62a539fa99d9153b0f8aaa4594abf70cc8a8d9018e04e39a17982" - }, - { - "txhash": "0x43728b63161cfb3d8e8f9657f30aa16e3b63ff6da28a21dea2b33274e47d91cc", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x2c", - "indexInBlock": 0, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x11f0a8ac2adda075c95bbf6be534e3254dafa759f62cbcf0e91bc6f0335e70aa" - } - ], - "tx-emit-legacy": [ - { - "txhash": "0x5bc704d4eb4ce7fe319705d2f888516961426a177f2799c9f934b5df7466dd33", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x2", - "indexInBlock": 2, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0xf4da19d6c17928e683661a52829cf391d3dc26d581152b81ce595a1207944f09" - }, - { - "txhash": "0xf047c5133c96c405a79d01038b4ccf8208c03e296dd9f6bea083727c9513f805", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x4", - "indexInBlock": 0, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x4238ace0bf7e66fd40fea01bdf43f4f30423f48432efd0da3af5fcb17a977fd4" - }, - { - "txhash": "0x7a20de135c7e44a656e6349d8300647db24d297044836228adba1dfbb6d82879", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x5", - "indexInBlock": 2, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x0588df43087493fd84fa37ef37152cacefd4db3823315da90e65dd785434ff14" - }, - { - "txhash": "0xc66b6772df11c3ccd1e7628deaf393f92504ee6af7c8ebdfe512f97625c273c1", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x7", - "indexInBlock": 0, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x3569f740e521d8bb11c5b72660dc96272ad66bfd811ed918c3a9e02acd4ade8f" - }, - { - "txhash": "0x3209722a85c6e41124af84ae3701e9d15b7f4a078a348e57487e7353d93ec866", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x8", - "indexInBlock": 2, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x0921e35d2dc9980c8ba6910f8f63ab4b0cc99b9b50423dbb4dcb3bed4939c5f5" - }, - { - "txhash": "0xe6ef5a376c9a5ecbe9e2688fe226e60686f9bb6a39b5f5a5e48d16f2b14d4a4d", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0xa", - "indexInBlock": 0, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0xb8d28e7b703baf999848ecbba44026cb6479b3f0466037bcf2221ffc3f8549f9" - }, - { - "txhash": "0xf6b68a1c86b679be74e116f8b25e9dae5add5102ad4b9137e3ff30fa3913f9cb", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0xb", - "indexInBlock": 2, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x09d9f86815d3c33738fdcb1e2e78d8a32c9ead8e6d7992be1021673b36b31224" - }, - { - "txhash": "0x5a5df9c4900a7c786a744417a5046cb88f30e24be88b4b06f1c6c5a81f6b2462", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0xd", - "indexInBlock": 0, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x21bbff00787734951aff123713555d0a15eaba3a4c39633725c8d8a545a67957" - }, - { - "txhash": "0x41d4560ba5284c1067db63b96c02a3d83244a57b1d6823dfdd8007ff6c727482", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0xe", - "indexInBlock": 2, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0xa2fc47b981f101be956700b8cca7a48311b8f39cf8271b966693c3c5e7484a81" - }, - { - "txhash": "0x749d83b5180b88fbc4bb611481548ea9ab3e8c3847ccdd4fb0fa55912f68b6e6", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x10", - "indexInBlock": 0, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0xe64bc02a00a08574b11865f3eaf12440003ee8ec5f2df18d045c49a2a45c6d52" - }, - { - "txhash": "0x33d59ce6ecd0b821bcfabc993e83b3b618022800590393ba5c6466ac145f41b6", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x11", - "indexInBlock": 2, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0xb2cd144783c0f138a1420529b82c0ea1b65b006f9a35587d8013c71b7d2a1c6a" - }, - { - "txhash": "0xe25609ce501a2e7d7fe6b4ccdf645803dbd4658539f54b36b1cceee8aa360b24", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x13", - "indexInBlock": 0, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0xcad398eccd12aa694ba255d69defbf78fd51d2acec863d3ad859a64ca3bbc6b7" - }, - { - "txhash": "0xfa11605de57c955136db1f1b6f5c2c0d7ad9947e48268a26b1fe5c1c47068fb1", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x14", - "indexInBlock": 2, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x9843536982cd35f7b0f71a3eb2a09cd0d2768d835a76d5a7166069c14149bb13" - }, - { - "txhash": "0x964a43005bae499cacf00bb1aff53e679e1d2f9ce1b8698b8f834d09f45cd672", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x16", - "indexInBlock": 0, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0xa41cb4f2ab2731a8889754ae1a340c666cb8107b497b922073df80a9b255e31b" - }, - { - "txhash": "0xd54584e9fac7e2dc1351d33100f0cfcb23e14dc710f798d1c7ea521f377cd272", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x17", - "indexInBlock": 2, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x87c8bde84cde385e1d4d2340dfde5fa4897632946b0a38bcad1cccb5aed28995" - }, - { - "txhash": "0x323fe75033ae712f34e82c5007ba4f536198955ca3f18ea38063e6c2b1672308", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x19", - "indexInBlock": 0, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x2277e46024c337a51b8c6f946b6fd3fafaf181581eb4a4ef0bf3a23386c51e79" - }, - { - "txhash": "0x38f48c6e25bd286e1150dc75db1d3cf0eccc1cbc56ad99438f5e8e0446d4a4b8", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x1d", - "indexInBlock": 2, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x2224f95f0540d6fc56a7f268f44c9dade1bd8dfcd3d215b60895caf4526718cd" - }, - { - "txhash": "0x6a5b6737246f9ca5cb8ac76bd1449fdabdad315f5f9f4e846a82a4c99c433cce", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x20", - "indexInBlock": 0, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0x415feb809041baabc4d9246223e40f1083963cbe1ef6dedb8b153e49d02ee7ce" - }, - { - "txhash": "0xdf5b04b81e56d206383cebe57e47f40c9c4d135ac92d4c5695e15b3fd7188520", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x22", - "indexInBlock": 2, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0xc9a2fb36f38496f49a549275ba41a4a00ef97e4ca82512a3bdd22770ceba848a" - }, - { - "txhash": "0x67a420f24fa8ee518cbbb83024508d3393ce83d4ed41d1dc5205c45621b8356e", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x25", - "indexInBlock": 0, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0xfa5fbc362eb74618d5c6dcb512ffb45d5dea367c27ee5122f29907d36b8b9515" - }, - { - "txhash": "0xb8d49ba18112a81983371e9e43378e9593f17163fd46d3c1cedeecf3c38b972a", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x27", - "indexInBlock": 2, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0xc11c7bbe1b7743472b444bc11c51b1aceff1b8e207c9d46d2c3dd24e9184d8f4" - }, - { - "txhash": "0xeab876a89925871050e77b5308413b0aea26e51cee250bba53adef60c9fa9a64", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x2a", - "indexInBlock": 2, - "logtopic0": "0x00000000000000000000000000000000000000000000000000000000656d6974", - "logtopic1": "0xc6efde6bbc44a930b209a39f844f0a5b69a2720057fc34e2df4e1f89b04a55bb" - } - ], - "tx-request-eip7002": { - "txhash": "0x3d3d02e1bdc39a6eab20f7b44ed299ca61eb1d642806bfa07e3a7ee8edd700e5", - "block": "0x2d" - }, - "tx-transfer-eip1559": [ - { - "txhash": "0xee7a54703e4bb9cea154b8c14dd9a3233af9120f76730abf21af6f1e1620fc41", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x1b", - "indexInBlock": 1 - }, - { - "txhash": "0x1d0d00f4854cba7a0924748793da2a4afcf3adebc8a6586bca725ecab56cc6cc", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x1c", - "indexInBlock": 2 - }, - { - "txhash": "0xceded6da67ef6c135c0ea8e2a1b63195f70f767bd58e0e1dfd91d10437a8ec7c", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x1f", - "indexInBlock": 0 - }, - { - "txhash": "0x0deef60326a18c1d09295df25146d390c2d796d9a9e9c13923d2995139068f47", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x21", - "indexInBlock": 2 - }, - { - "txhash": "0x66e36fd24946b76e66ed41d0ea03871bd2bdaf1fd6ae375b4cd71515ef5abaae", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x24", - "indexInBlock": 0 - }, - { - "txhash": "0xfe675f72ed5bdd686882c818ca0ef3eb6d62d51c7dc9fcc28e036a733fe41730", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x26", - "indexInBlock": 1 - }, - { - "txhash": "0xae582a9da9dce8bcc78e0eaf7d3d67459739924ef65f70eb31f6551d59081169", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x29", - "indexInBlock": 0 - }, - { - "txhash": "0x6d54555c18ac55fb39592454ae8602c2d7d9185416a60eb58b3f5f3fd89f0e7b", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x2b", - "indexInBlock": 3 - } - ], - "tx-transfer-eip2930": [ - { - "txhash": "0x93fc7b57f2ea0d22cc186dd91ef6625b1ab26ba947e8052500cab4f31acd210e", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x18", - "indexInBlock": 1 - }, - { - "txhash": "0x5ec88593541d67c4ed879faf29f3758b262066d00cfb33adb910c7c4aed34b0e", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x1a", - "indexInBlock": 0 - }, - { - "txhash": "0x7eb55ae162e0297519a6e6247af6bb5f0f6e220a1da4d00c46207689f89468f0", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x1c", - "indexInBlock": 0 - }, - { - "txhash": "0x9303f8886732250a2c7f74a061a4b7e8269cbeb016b2f11427f57d580f6eb2cf", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x1e", - "indexInBlock": 1 - }, - { - "txhash": "0x3d81e6b28f61bc080a6ecdfd99f43dcecba805cca4579a75f24f84cfdb856c21", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x21", - "indexInBlock": 0 - }, - { - "txhash": "0x1d01227f057e212d11016e36c2b6f8f675133d3f7ff895336d51cd4bf6c4d3f0", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x23", - "indexInBlock": 1 - }, - { - "txhash": "0x7c5b5aafd9a423d62babfeff8a7de40033058ca08dcc8ceebfa706edef9d1252", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x25", - "indexInBlock": 3 - }, - { - "txhash": "0x199e59feac813dfee4d2c44c21e25cf91103115f97e60f658aae1b40d391d18a", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x28", - "indexInBlock": 2 - }, - { - "txhash": "0x86ce3d4800e683bdad9eb1860a4caff91b2ccd230f61a3f01180b062659eb9fc", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x2b", - "indexInBlock": 1 - }, - { - "txhash": "0xdf66bea01c5cf47b48ec11453822d751a5daaf1d16959772c2196c5ab8cf8438", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x2d", - "indexInBlock": 5 - } - ], - "tx-transfer-legacy": [ - { - "txhash": "0x0d6999c0e9e4bec347945593e97bdcdf7c25be08ca1a1efdc520dbe75be985f3", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x2", - "indexInBlock": 3 - }, - { - "txhash": "0xdcfa416de8748fdf71bd8c6d563da0e8026cfdcce9ae5e63544fb49d76b5eae8", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x4", - "indexInBlock": 1 - }, - { - "txhash": "0x43d2af00293a75d08b24642c1bde6fd4ca1a9854874ef0caa2f026ef6f86a5db", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x5", - "indexInBlock": 3 - }, - { - "txhash": "0x83f4c78458c8f4bb119fab92718a208d89e051b90ca7f3d7182d7b6e37aafc46", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x7", - "indexInBlock": 1 - }, - { - "txhash": "0x87143e79f04cd15ebf308690d5bfe19e7b70754ac5456b19a118cba9eb3b4a5e", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x8", - "indexInBlock": 3 - }, - { - "txhash": "0x854f4a2cd70ffe3dc7ec4013469c295b1d972e43f51de1682bdd78ccf4c73530", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0xa", - "indexInBlock": 1 - }, - { - "txhash": "0xa24f3cae0606ee961a001176f7f32a517d271350b30b37944509fd2dfcba6ca1", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0xb", - "indexInBlock": 3 - }, - { - "txhash": "0x63606395409f39f4a8e31de9e6e8ff510417c95def81b381ed47355e9d8ade17", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0xd", - "indexInBlock": 1 - }, - { - "txhash": "0x7cb3d154585fd334cc326574c8fe65d5d985e24c3fe33db5113a704967f18ec7", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0xe", - "indexInBlock": 3 - }, - { - "txhash": "0x5b9644aa7b63cfb193ae65c2f4b3962c39bd5f9f9bf7f570a1e3c40ad2b1704b", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x10", - "indexInBlock": 1 - }, - { - "txhash": "0xfb9af8e161e331889467e43f2d4e1cb7e0c4c06f7338befc52850764c9f15e0c", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x11", - "indexInBlock": 3 - }, - { - "txhash": "0x23cf1da26bc3489f4ab94336f94483d8802c4a544b8d3af1d50546bc28faacef", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x13", - "indexInBlock": 1 - }, - { - "txhash": "0x1997a926eac2fcc0469a746c7b2aa877769fa0951b1bda58e71c33416badccfc", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x14", - "indexInBlock": 3 - }, - { - "txhash": "0x9109b572e913b3dbc532c0640da1b417b9a2d6aca851663421c44cad0c6704aa", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x16", - "indexInBlock": 1 - }, - { - "txhash": "0x3047bfd6dbff007782ac301cf762b08a3d8d26d668c9cd508737e45cf283113a", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x17", - "indexInBlock": 3 - }, - { - "txhash": "0xb32dabe3a993102215f19a21e638ef708123137c5c8fc59017765b292c05e4f3", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x19", - "indexInBlock": 1 - }, - { - "txhash": "0xed6a3b2239f303f5251e2cd68e8f8a326fe50fe6fd0b25ccb9141278734048b0", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x1d", - "indexInBlock": 3 - }, - { - "txhash": "0x207e6ca3f4854f067752374731ba4d03a94a47f6c522f1706b6da8294f9aeb6a", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x20", - "indexInBlock": 1 - }, - { - "txhash": "0x3f8637c1a9480328861c3f16810481b195008554745d46ce17f2a940748f1da6", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x22", - "indexInBlock": 3 - }, - { - "txhash": "0x3aeb1302c4e52e8909776494a19a6db02156a32518880dd35a57a011c7971e04", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x25", - "indexInBlock": 1 - }, - { - "txhash": "0x1cc909a6e876cd04d24dbefeef9bd5563d4b71dbdf89725e82f0f7a542b66425", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x28", - "indexInBlock": 0 - }, - { - "txhash": "0x652a99ca41abd4b63a191bd05a6fc185926256fec07fe491cce1f9b558c41c80", - "sender": "0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f", - "block": "0x2a", - "indexInBlock": 3 - } - ], - "uncles": { - "10": { - "hashes": [ - "0x27d4fda915e2c46e76e580dac7303d9da1ecce31a6f3294f7636d1f179734461" - ] - }, - "12": { - "hashes": [ - "0x58cdaef8ec981110f3b4641b6ffb4c1b3d86bb8283b9af012a6ef34cfa261fdf" - ] - }, - "13": { - "hashes": [ - "0x4f80827f5b1d2cc7c48aa41bcef09359755188c04c71a62116976517504deaca" - ] - }, - "15": { - "hashes": [ - "0x22d388726ec75f140988d92eb96b48af6f7fbe26c6b5804fda7b5022671b97da" - ] - }, - "16": { - "hashes": [ - "0x36d2de35826d5e21970b5e20af7d7a84e0a610a7f1b868eeb11114667c46dba6" - ] - }, - "18": { - "hashes": [ - "0x6f33cdfeb83adf13c0e3178d244a759ab0450f3e379f300a3ee4ea820d34112e" - ] - }, - "19": { - "hashes": [ - "0xf9e1b5387a03e4e1f7bdbd38021b7d7aa0ffcbd170731a4a23519a9dd4ad9552" - ] - }, - "21": { - "hashes": [ - "0x2c6446c6f6dbb989678f583fb1e85667585f72a72508f0c42be6bafeea17cfc2" - ] - }, - "22": { - "hashes": [ - "0x82b86a46b0844b7b073a5b2fae461e7d1b3adb16b536988d91eca494dccd18bc" - ] - }, - "25": { - "hashes": [ - "0x7664c872189480f57495257762582df2d0ff60ebd1ea08f549b90a53d65bcdca" - ] - }, - "27": { - "hashes": [ - "0x65050466ad5543c351de427fd18f22e3fb993eaac0f1ae540a4aa5f75e5a876a" - ] - }, - "3": { - "hashes": [ - "0xad97d5e099618ca637fd66d5c25188e509a59e43b89598d251a9fcf21c8127d8" - ] - }, - "30": { - "hashes": [ - "0xb767adb46ba871d689f606739695dfb71e878209ebed6d1c3f337c032f4fc1f4" - ] - }, - "32": { - "hashes": [ - "0x5e23a8917824c83e5033fd01278440e6673cecc4fbf4f21684e7a98caf5301b3" - ] - }, - "35": { - "hashes": [ - "0xa2a0d293cd1d3b5061da148fe7ffecb35f7e63462aded020843435f609485b18" - ] - }, - "4": { - "hashes": [ - "0xf54f13c03c5265b4231d2d914e59b963a5d85786a0a273aaa4bc67b905c37c35" - ] - }, - "6": { - "hashes": [ - "0x749419cef73d249a540a8b39df47519e883a99ae21dcdbff140009b0b42b1c2b" - ] - }, - "7": { - "hashes": [ - "0xe6372983dcfa13f94cb867b1dde3ca33c20cc65bf8efb74ec3c0185b832d7f8b" - ] - }, - "9": { - "hashes": [ - "0x2be08e89f4ffbf0e0fe300b4273070e49aef17be865a8d735641d982b2f85080" - ] - } - }, - "withdrawals": { - "39": { - "withdrawals": [ - { - "index": "0x0", - "validatorIndex": "0x5", - "address": "0x3ae75c08b4c907eb63a8960c45b86e1e9ab6123c", - "amount": "0x64" - } - ] - }, - "41": { - "withdrawals": [ - { - "index": "0x1", - "validatorIndex": "0x5", - "address": "0x717f8aa2b982bee0e29f573d31df288663e1ce16", - "amount": "0x64" - } - ] - }, - "44": { - "withdrawals": [ - { - "index": "0x2", - "validatorIndex": "0x5", - "address": "0xd803681e487e6ac18053afc5a6cd813c86ec3e4d", - "amount": "0x64" - } - ] - } - } -} \ No newline at end of file diff --git a/tests/integration_tests/spec/net_version/get-network-id.io b/tests/integration_tests/spec/net_version/get-network-id.io deleted file mode 100644 index 03cab5e8b4..0000000000 --- a/tests/integration_tests/spec/net_version/get-network-id.io +++ /dev/null @@ -1,3 +0,0 @@ -// Calls net_version to retrieve the network ID, which is expected to be equal to the chainID of the test chain. ->> {"jsonrpc":"2.0","id":1,"method":"net_version"} -<< {"jsonrpc":"2.0","id":1,"result":"3503995874084926"} diff --git a/tests/integration_tests/spec/testing_buildBlockV1/build-block-empty-transactions.io b/tests/integration_tests/spec/testing_buildBlockV1/build-block-empty-transactions.io deleted file mode 100644 index 2b9440ff65..0000000000 --- a/tests/integration_tests/spec/testing_buildBlockV1/build-block-empty-transactions.io +++ /dev/null @@ -1,3 +0,0 @@ -// builds a block with empty transactions array using testing_buildBlockV1 ->> {"jsonrpc":"2.0","id":1,"method":"testing_buildBlockV1","params":["0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2",{"parentBeaconBlockRoot":"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884365149a42212e8822","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","suggestedFeeRecipient":"0x0000000000000000000000000000000000000000","timestamp":"0x1ce","withdrawals":[]},[],"0x"]} -<< {"jsonrpc":"2.0","id":1,"result":{"executionPayload":{"parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","feeRecipient":"0x0000000000000000000000000000000000000000","stateRoot":"0x4c6709fca84ff2bcca8609b4a54cb96fc1c001862d450d334088cd5694cad374","receiptsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x2e","gasLimit":"0x47d5ca2","gasUsed":"0x0","timestamp":"0x1ce","extraData":"0x","baseFeePerGas":"0x4c9114a","blockHash":"0xecee39e282b9b747d47ec1008045bada7a5d41a50eec65a99c5df549cea75943","transactions":[],"withdrawals":[],"blobGasUsed":"0x0","excessBlobGas":"0x0"},"blockValue":"0x0","blobsBundle":{"commitments":[],"proofs":[],"blobs":[]},"executionRequests":[],"shouldOverrideBuilder":false}} diff --git a/tests/integration_tests/spec/testing_buildBlockV1/build-block-from-mempool.io b/tests/integration_tests/spec/testing_buildBlockV1/build-block-from-mempool.io deleted file mode 100644 index 9b2e59df5d..0000000000 --- a/tests/integration_tests/spec/testing_buildBlockV1/build-block-from-mempool.io +++ /dev/null @@ -1,6 +0,0 @@ -// builds a block from mempool using testing_buildBlockV1 with null transactions parameter -// speconly: client response is only checked for schema validity. ->> {"jsonrpc":"2.0","id":1,"method":"eth_sendRawTransaction","params":["0x02f871870c72dd9d5e883e808201f48405763f58825208947dcd17433742f4c0ca53122ab541d0ba67fc27df8203e880c080a02ff0582cbfd9034c5fa5081d8e87689fca126ef89e764ed75b9377a5abc17174a03f88569a957315fa1204dcc026fcc50cef44c6268642990b8f05b226d8f60a40"]} -<< {"jsonrpc":"2.0","id":1,"result":"0x5acd356e2e5dcd345a43e8a714c0bba3138856c25ac0f9cec51f4ae6aad77c4d"} ->> {"jsonrpc":"2.0","id":2,"method":"testing_buildBlockV1","params":["0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2",{"parentBeaconBlockRoot":"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884365149a42212e8822","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","suggestedFeeRecipient":"0x0000000000000000000000000000000000000000","timestamp":"0x1ce","withdrawals":[]},null,"0x"]} -<< {"jsonrpc":"2.0","id":2,"result":{"executionPayload":{"parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","feeRecipient":"0x0000000000000000000000000000000000000000","stateRoot":"0xa7beaf59a423fb7680f35959f2e7ea87fa449d97ea4d8d09dbe1d62afefec1a7","receiptsRoot":"0x3f39aa82f0c4d04316b65874dcf09cc6a7bb49b48d0415a1b002ec2ee34ab921","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x2e","gasLimit":"0x47d5ca2","gasUsed":"0x5258","timestamp":"0x1ce","extraData":"0x","baseFeePerGas":"0x4c9114a","blockHash":"0x667613a8e6ef9c0bc99d4bff3818136ee25d89f3ab97acde3255bf17be522d9f","transactions":["0xf86c808405763d658261a894aa000000000000000000000000000000000000000a8255448718e5bb3abd109fa0c8e3b4a0087357bd49d80a0ac24daf0c91191e71086c1e355fc62cfab2218873a074f4636f740fa4d1697b6e736e5982b700be2c8b63031a24fa531ae4814b3af8"],"withdrawals":[],"blobGasUsed":"0x0","excessBlobGas":"0x0"},"blockValue":"0x37b3a7cf48","blobsBundle":{"commitments":[],"proofs":[],"blobs":[]},"executionRequests":[],"shouldOverrideBuilder":false}} diff --git a/tests/integration_tests/spec/testing_buildBlockV1/build-block-invalid-transaction.io b/tests/integration_tests/spec/testing_buildBlockV1/build-block-invalid-transaction.io deleted file mode 100644 index 5db3ca53a4..0000000000 --- a/tests/integration_tests/spec/testing_buildBlockV1/build-block-invalid-transaction.io +++ /dev/null @@ -1,5 +0,0 @@ -// calls testing_buildBlockV1 with an unapplicable transaction (wrong nonce); client MUST return an error and not modify the chain ->> {"jsonrpc":"2.0","id":1,"method":"testing_buildBlockV1","params":["0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2",{"parentBeaconBlockRoot":"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884365149a42212e8822","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","suggestedFeeRecipient":"0x0000000000000000000000000000000000000000","timestamp":"0x1ce","withdrawals":[]},["0x02f873870c72dd9d5e883e8203e78201f48405763f58825208947dcd17433742f4c0ca53122ab541d0ba67fc27df8203e880c001a08a40061919da0626abab410a2c741747eafb5332fc807b6cda6ce03a8d052aa6a0297cd8770678d9a09282412608e8f8bfa63e80f565c49720ffc7716b36989009"],"0x"]} -<< {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"nonce too high: address 0x16c57eDF7Fa9D9525378B0b81Bf8A3cEd0620C1c, tx: 999 state: 0"}} ->> {"jsonrpc":"2.0","id":2,"method":"eth_getBlockByNumber","params":["latest",true]} -<< {"jsonrpc":"2.0","id":2,"result":{"baseFeePerGas":"0x5763d64","blobGasUsed":"0x0","difficulty":"0x0","excessBlobGas":"0x0","extraData":"0x","gasLimit":"0x47e7c40","gasUsed":"0x54a92","hash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","logsBloom":"0x00000000008000000000000000000040000000000000000000000000800000000000000008000000000000000000000000000000000000000000000000000000000000000000000000004000000000020200000000000000000000000000002000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000009000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","miner":"0x0000000000000000000000000000000000000000","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000","number":"0x2d","parentBeaconBlockRoot":"0x4b118bd31ed2c4eeb81dc9e3919e9989994333fe36f147c2930f12c53f0d3c78","parentHash":"0x4b9d85c6787612e87e0659e11a347d415040465e492358f79cc7e2e293f38aa7","receiptsRoot":"0x2c86b2791cdd088d3c3e9d6225f71724d3e8c67bdd13cd6208831058cee1043f","requestsHash":"0x57cac3e52cdcd73e52bd9e54956e0eae370f00ed41f68edc78266bdb46c3a543","sha3Uncles":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","size":"0x633","stateRoot":"0xf61892bbb9a9df427d1f941dc8c536d72c41efed598244726ea21a0f183ff232","timestamp":"0x1c2","transactions":[{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11c32","gasPrice":"0x5763d65","hash":"0x2fbbd036996c7487316c92b9e5798edb98fd57f32a6c1075e904a734821e1cd2","input":"0x600d380380600d6000396000f336156009575f355f555b305f525f5460205260405ff3","nonce":"0x9a","to":null,"transactionIndex":"0x0","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0x551fe45ccebb0318196e31dbc60da87c43dc60b8fb01afb3286693fa09878730","s":"0x40d33e9afecfe1516b045d61a3272bddbc83f482a7f2c749311248b50fe62e81"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0xb3b0","gasPrice":"0x5763d65","maxFeePerGas":"0x5763d65","maxPriorityFeePerGas":"0x1","hash":"0x16f6724ad864e7664c367893cae3e176d362bea3a47495cec3b246555a7228da","input":"0x","nonce":"0x9b","to":"0x0000000000000000000000000000000000000000","transactionIndex":"0x1","value":"0x0","type":"0x4","accessList":[],"chainId":"0xc72dd9d5e883e","authorizationList":[{"chainId":"0xc72dd9d5e883e","address":"0x58f8fe237b593c19546e1e758a2544561d04bfe0","nonce":"0x0","yParity":"0x1","r":"0xec6caeb1b7071f1b3ae36aeaa7bf0eaecb8e006e83b3e50d792870ea95af4c59","s":"0x1d1225f76d6faac3d904c0635193e83d3867c101b2e6f6c9bb7b1fdeeed923ab"}],"v":"0x1","r":"0x8ae3402e4f63751c895532b94aee0f7b6b8ff5d0b0a689f6d63b3dbd19d69059","s":"0x2e63e4d140b0d282d56289b34f3df82cbcb2f3aa385f5438a423584fe0c2b467","yParity":"0x1"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x11170","gasPrice":"0x5763d65","hash":"0xddf234c5f149d2d1a4d01276d42e38a6234bfa7b987c49ba889b028b429aac8f","input":"0x696e766f6b6564","nonce":"0x9c","to":"0xeda8645ba6948855e3b3cd596bbb07596d59c603","transactionIndex":"0x2","value":"0x0","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd10a0","r":"0xfea7e18c82a1270f142572533bc2e6e33d6d41a3f1303403dd0a90dd7a4f35d","s":"0x4a4ab6c5bb4c31c3a5f8991ae45bad2303c45923404571f7b4c66adbd03b7936"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x249f0","gasPrice":"0x5763d65","maxFeePerGas":"0x5763d65","maxPriorityFeePerGas":"0x2","hash":"0x3d3d02e1bdc39a6eab20f7b44ed299ca61eb1d642806bfa07e3a7ee8edd700e5","input":"0xb917cfdc0d25b72d55cf94db328e1629b7f4fde2c30cdacf873b664416f76a0c7f7cc50c9f72a3cb84be88144cde91250000000000000d80","nonce":"0x9d","to":"0x00000961ef480eb55e80d19ad83579a64c007002","transactionIndex":"0x3","value":"0x3b9aca00","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0x5f8b300cf80f7fb7e511460fa1a803278b47223f2c0a82857c5c0e5f7c900d23","s":"0x290bf2495235a106352786403ed937df8385a2356472569020fd952913690ec9","yParity":"0x1"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x186a0","gasPrice":"0x5763d65","hash":"0x195a09414344f56e7a202d1493b258b2394b9b93811ce4ee96212a7d34ffb04f","input":"0x6b3b937565afc29f656d6974","nonce":"0x9e","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":"0x4","value":"0x2","type":"0x1","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0xe8481f0a1ea7b2528784efff1d1b33cbd66ac97ebe2ae35c7997cacb2863430b"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x84f8b48ac6fbf39054c7794e6ff4e16a3bacbd0964b53d4d03ff668e7eda365","s":"0x2e4e86f2f5fbb8dad4ee8907eee4488f70c75bb646522b5197c4dcdc29ea31bf","yParity":"0x0"},{"blockHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","blockNumber":"0x2d","blockTimestamp":"0x1c2","from":"0x7435ed30a8b4aeb0877cef0c6e8cffe834eb865f","gas":"0x5208","gasPrice":"0x5763d65","hash":"0xdf66bea01c5cf47b48ec11453822d751a5daaf1d16959772c2196c5ab8cf8438","input":"0x","nonce":"0x9f","to":"0x4340ee1b812acb40a1eb561c019c327b243b92df","transactionIndex":"0x5","value":"0x1","type":"0x1","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0xec839e20a6f8ff0fb1043022e5816454191436ba7f6607bf6efe6517fdd1e2dd","s":"0x7903b3dd48963c0404f99807fd89cde2b66091c32178f66920120cb10981019","yParity":"0x1"}],"transactionsRoot":"0xc541c333ff4a96a17d3601f7d628ea27ecf4597a11077e5d9d1c4dbed6c7f401","uncles":[],"withdrawals":[],"withdrawalsRoot":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421"}} diff --git a/tests/integration_tests/spec/testing_buildBlockV1/build-block-with-transactions.io b/tests/integration_tests/spec/testing_buildBlockV1/build-block-with-transactions.io deleted file mode 100644 index 2c0c6969d0..0000000000 --- a/tests/integration_tests/spec/testing_buildBlockV1/build-block-with-transactions.io +++ /dev/null @@ -1,3 +0,0 @@ -// builds a block with specified transactions using testing_buildBlockV1 ->> {"jsonrpc":"2.0","id":1,"method":"testing_buildBlockV1","params":["0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2",{"parentBeaconBlockRoot":"0xcf8e0d4e9587369b2301d0790347320302cc0943d5a1884365149a42212e8822","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","suggestedFeeRecipient":"0x0000000000000000000000000000000000000000","timestamp":"0x1ce","withdrawals":[]},["0x02f871870c72dd9d5e883e808201f48405763f58825208947dcd17433742f4c0ca53122ab541d0ba67fc27df8203e880c001a047f09855c4460b5e1377f2198e39e12916ece285a1a68f723057fe9e67763cd6a069c5013dba8cd32bdbb44edd13c0e526977e8216c41151f1907f30ae86a7aa35"],"0x746573745f6e616d65"]} -<< {"jsonrpc":"2.0","id":1,"result":{"executionPayload":{"parentHash":"0xe27a3e81bd7cfe2aec2cc9e832c73a17c93e7efcf659cf4b39883b96c48708c2","feeRecipient":"0x0000000000000000000000000000000000000000","stateRoot":"0x2c243683bdfcc19841050bf034b5f6292bfe611e9aeda2400f0eecec500d9503","receiptsRoot":"0x005fb2a0d0c8a6f3490f9594e6458703eea515262f1b69a1103492b61e8d0ee2","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","prevRandao":"0x0000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x2e","gasLimit":"0x47d5ca2","gasUsed":"0x5208","timestamp":"0x1ce","extraData":"0x746573745f6e616d65","baseFeePerGas":"0x4c9114a","blockHash":"0x21f0e258619857b40ce7a84b96a2eed40472fcbee078bf67dd29332b02a564c9","transactions":["0x02f871870c72dd9d5e883e808201f48405763f58825208947dcd17433742f4c0ca53122ab541d0ba67fc27df8203e880c001a047f09855c4460b5e1377f2198e39e12916ece285a1a68f723057fe9e67763cd6a069c5013dba8cd32bdbb44edd13c0e526977e8216c41151f1907f30ae86a7aa35"],"withdrawals":[],"blobGasUsed":"0x0","excessBlobGas":"0x0"},"blockValue":"0xa037a0","blobsBundle":{"commitments":[],"proofs":[],"blobs":[]},"executionRequests":[],"shouldOverrideBuilder":false}} diff --git a/tests/integration_tests/spec/txpool_content/get-content.io b/tests/integration_tests/spec/txpool_content/get-content.io deleted file mode 100644 index 8daf687963..0000000000 --- a/tests/integration_tests/spec/txpool_content/get-content.io +++ /dev/null @@ -1,4 +0,0 @@ -// retrieves the transaction pool content -// speconly: client response is only checked for schema validity. ->> {"jsonrpc":"2.0","id":1,"method":"txpool_content"} -<< {"jsonrpc":"2.0","id":1,"result":{"pending":{"0x0c2c51a0990AeE1d73C1228de158688341557508":{"0":{"blockHash":null,"blockNumber":null,"blockTimestamp":null,"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0x61a8","gasPrice":"0x5763d65","hash":"0x66734e85ef096167acb887cf445946a1ed57b90b66ffe38af87e11294febbfa9","input":"0x5544","nonce":"0x0","to":"0xaa00000000000000000000000000000000000000","transactionIndex":null,"value":"0xa","type":"0x0","chainId":"0xc72dd9d5e883e","v":"0x18e5bb3abd109f","r":"0xc8e3b4a0087357bd49d80a0ac24daf0c91191e71086c1e355fc62cfab2218873","s":"0x74f4636f740fa4d1697b6e736e5982b700be2c8b63031a24fa531ae4814b3af8"},"1":{"blockHash":null,"blockNumber":null,"blockTimestamp":null,"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0xea60","gasPrice":"0x5763f58","maxFeePerGas":"0x5763f58","maxPriorityFeePerGas":"0x1f4","hash":"0xfa245384e9eb7d6a4a40f3bf4bf70f1f44929d8bfcdf75762ce1a015389449e3","input":"0x3d602d80600a3d3981f3363d3d373d3d3d363d734d11c446473105a02b5c1ab9ebe9b03f33902a295af43d82803e903d91602b57fd5bf3","nonce":"0x1","to":null,"transactionIndex":null,"value":"0x2a","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x1","r":"0xfe6d380224a516b802717755d2f640163e81bae64a4ab5adbcf741267f20ad66","s":"0x15d9ceb9fecb47b342be00782b2485f42ab53715006d208897cc969d7c05ab67","yParity":"0x1"},"2":{"blockHash":null,"blockNumber":null,"blockTimestamp":null,"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0x15f90","gasPrice":"0x5763f58","hash":"0xd07a55a00aeb93c7825d1ca42238abdc3bc225de097ee1b8b2a4a9240ae55f9c","input":"0x010203","nonce":"0x2","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":null,"value":"0x0","type":"0x1","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x0100000000000000000000000000000000000000000000000000000000000000"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0xf9dc42e8bab0a70132fb8399cf03cf38e1c12cc47f736d19e6e7728356d97db3","s":"0x53daf342acd24da15073f5dac02bec0501a0716165984aab2df9694882b91fac","yParity":"0x0"},"3":{"blockHash":null,"blockNumber":null,"blockTimestamp":null,"from":"0x0c2c51a0990aee1d73c1228de158688341557508","gas":"0x13880","gasPrice":"0x5763f58","maxFeePerGas":"0x5763f58","maxPriorityFeePerGas":"0x1f4","hash":"0x0baf604666cbc4d04263bbc98c048000451b8c188d93ec87ca5a86b044fd956c","input":"0x01020304","nonce":"0x3","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":null,"value":"0x0","type":"0x2","accessList":[{"address":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","storageKeys":["0x0000000000000000000000000000000000000000000000000000000000000000","0x0100000000000000000000000000000000000000000000000000000000000000"]}],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0xe56d869d8b32f767582fdcb03d1d9d3bcc47f3c7ae08984feafdcd57f2f205f5","s":"0x74134e4bf0fb11ff606b47259aff0d01bf7cb9ec68cb179b62576b9dd6631cf0","yParity":"0x0"}},"0x14e46043e63D0E3cdcf2530519f4cFAf35058Cb2":{"0":{"blockHash":null,"blockNumber":null,"blockTimestamp":null,"from":"0x14e46043e63d0e3cdcf2530519f4cfaf35058cb2","gas":"0x5208","gasPrice":"0x5763f58","maxFeePerGas":"0x5763f58","maxPriorityFeePerGas":"0x1f4","hash":"0x5acd356e2e5dcd345a43e8a714c0bba3138856c25ac0f9cec51f4ae6aad77c4d","input":"0x","nonce":"0x0","to":"0x7dcd17433742f4c0ca53122ab541d0ba67fc27df","transactionIndex":null,"value":"0x3e8","type":"0x2","accessList":[],"chainId":"0xc72dd9d5e883e","v":"0x0","r":"0x2ff0582cbfd9034c5fa5081d8e87689fca126ef89e764ed75b9377a5abc17174","s":"0x3f88569a957315fa1204dcc026fcc50cef44c6268642990b8f05b226d8f60a40","yParity":"0x0"}}},"queued":{}}} diff --git a/tests/integration_tests/spec/txpool_contentFrom/get-content-from-address.io b/tests/integration_tests/spec/txpool_contentFrom/get-content-from-address.io deleted file mode 100644 index c37abe3397..0000000000 --- a/tests/integration_tests/spec/txpool_contentFrom/get-content-from-address.io +++ /dev/null @@ -1,4 +0,0 @@ -// retrieves pending transactions from a specific address -// speconly: client response is only checked for schema validity. ->> {"jsonrpc":"2.0","id":1,"method":"txpool_contentFrom","params":["0x0000000000000000000000000000000000000000"]} -<< {"jsonrpc":"2.0","id":1,"result":{"pending":{},"queued":{}}} diff --git a/tests/integration_tests/spec/txpool_status/get-status.io b/tests/integration_tests/spec/txpool_status/get-status.io deleted file mode 100644 index a07867f310..0000000000 --- a/tests/integration_tests/spec/txpool_status/get-status.io +++ /dev/null @@ -1,4 +0,0 @@ -// retrieves the transaction pool status -// speconly: client response is only checked for schema validity. ->> {"jsonrpc":"2.0","id":1,"method":"txpool_status"} -<< {"jsonrpc":"2.0","id":1,"result":{"pending":"0x6","queued":"0x0"}} From 7bfb50fa0fc70b7c35b8779691b676e3c8e0b773 Mon Sep 17 00:00:00 2001 From: Xinyu Date: Wed, 24 Jun 2026 16:56:59 +0800 Subject: [PATCH 19/32] feat: eth_baseFee --- rpc/namespaces/ethereum/eth/api.go | 14 ++++++++++++++ rpc/types/block.go | 6 +----- x/evm/keeper/grpc_query.go | 1 + x/evm/types/tracer.go | 1 + 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/rpc/namespaces/ethereum/eth/api.go b/rpc/namespaces/ethereum/eth/api.go index db093ae74f..2d2572a45b 100644 --- a/rpc/namespaces/ethereum/eth/api.go +++ b/rpc/namespaces/ethereum/eth/api.go @@ -18,6 +18,7 @@ package eth import ( "context" "encoding/json" + "math/big" "github.com/ethereum/go-ethereum/signer/core/apitypes" @@ -360,6 +361,19 @@ func (e *PublicAPI) MaxPriorityFeePerGas() (*hexutil.Big, error) { return (*hexutil.Big)(tipcap), nil } +// BaseFee returns the base fee of the next block in wei. +func (e *PublicAPI) BaseFee() (*hexutil.Big, error) { + e.logger.Debug("eth_baseFee") + head, err := e.backend.CurrentHeader() + if err != nil { + return nil, err + } + if head.BaseFee == nil { + return (*hexutil.Big)(new(big.Int)), nil + } + return (*hexutil.Big)(head.BaseFee), nil +} + // ChainId is the EIP-155 replay-protection chain id for the current ethereum chain config. func (e *PublicAPI) ChainId() (*hexutil.Big, error) { //nolint e.logger.Debug("eth_chainId") diff --git a/rpc/types/block.go b/rpc/types/block.go index e5d1be3d9e..6af65f086b 100644 --- a/rpc/types/block.go +++ b/rpc/types/block.go @@ -18,12 +18,10 @@ package types import ( "context" "encoding/json" - "errors" "fmt" "math/big" "strings" - "github.com/spf13/cast" "google.golang.org/grpc/metadata" "github.com/ethereum/go-ethereum/common" @@ -97,9 +95,7 @@ func (bn *BlockNumber) UnmarshalJSON(data []byte) error { } blckNum, err := hexutil.DecodeUint64(input) - if errors.Is(err, hexutil.ErrMissingPrefix) { - blckNum = cast.ToUint64(input) - } else if err != nil { + if err != nil { return err } b, err := ethermint.SafeInt64(blckNum) diff --git a/x/evm/keeper/grpc_query.go b/x/evm/keeper/grpc_query.go index cb4129bdd8..eba86e387d 100644 --- a/x/evm/keeper/grpc_query.go +++ b/x/evm/keeper/grpc_query.go @@ -623,6 +623,7 @@ func (k Keeper) TraceBlock(c context.Context, req *types.QueryTraceBlockRequest) result := types.TxTraceResult{} ethTx := tx.AsTransaction() cfg.TxConfig.TxHash = ethTx.Hash() + result.TxHash = ethTx.Hash() cfg.TxConfig.TxIndex, err = ethermint.SafeUint(i) if err != nil { return nil, err diff --git a/x/evm/types/tracer.go b/x/evm/types/tracer.go index 237052360b..bad4814771 100644 --- a/x/evm/types/tracer.go +++ b/x/evm/types/tracer.go @@ -67,6 +67,7 @@ func NewTracer(tracer string, msg core.Message, cfg *params.ChainConfig, height // TxTraceResult is the result of a single transaction trace during a block trace. type TxTraceResult struct { + TxHash common.Hash `json:"txHash"` // Transaction hash Result interface{} `json:"result,omitempty"` // Trace results produced by the tracer Error string `json:"error,omitempty"` // Trace failure produced by the tracer } From a886a07d9c57fae4ee7eaed47fce3a006199f25b Mon Sep 17 00:00:00 2001 From: Xinyu Date: Thu, 25 Jun 2026 14:40:33 +0800 Subject: [PATCH 20/32] fix: tests --- x/evm/keeper/grpc_query_test.go | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/x/evm/keeper/grpc_query_test.go b/x/evm/keeper/grpc_query_test.go index b66de34c23..c6e2de56a9 100644 --- a/x/evm/keeper/grpc_query_test.go +++ b/x/evm/keeper/grpc_query_test.go @@ -1163,7 +1163,7 @@ func (suite *GRPCServerTestSuiteSuite) TestTraceBlock() { traceConfig = nil }, expPass: true, - traceResponse: `[{"result":{"gas":34828,"failed":false,"returnValue":"0x0000000000000000000000000000000000000000000000000000000000000001","structLogs":[{"pc":0,"op":"`, + traceResponse: `[{"txHash":"%s","result":{"gas":34828,"failed":false,"returnValue":"0x0000000000000000000000000000000000000000000000000000000000000001","structLogs":[{"pc":0,"op":"`, }, { msg: "filtered trace", @@ -1175,7 +1175,7 @@ func (suite *GRPCServerTestSuiteSuite) TestTraceBlock() { } }, expPass: true, - traceResponse: `[{"result":{"gas":34828,"failed":false,"returnValue":"0x0000000000000000000000000000000000000000000000000000000000000001","structLogs":[{"pc":0,"op":"`, + traceResponse: `[{"txHash":"%s","result":{"gas":34828,"failed":false,"returnValue":"0x0000000000000000000000000000000000000000000000000000000000000001","structLogs":[{"pc":0,"op":"`, }, { msg: "javascript tracer", @@ -1185,7 +1185,7 @@ func (suite *GRPCServerTestSuiteSuite) TestTraceBlock() { } }, expPass: true, - traceResponse: "[{\"result\":[]}]", + traceResponse: `[{"txHash":"%s","result":[]}]`, }, { msg: "default trace with enableFeemarket and filtered return", @@ -1197,7 +1197,7 @@ func (suite *GRPCServerTestSuiteSuite) TestTraceBlock() { } }, expPass: true, - traceResponse: `[{"result":{"gas":34828,"failed":false,"returnValue":"0x0000000000000000000000000000000000000000000000000000000000000001","structLogs":[{"pc":0,"op":"`, + traceResponse: `[{"txHash":"%s","result":{"gas":34828,"failed":false,"returnValue":"0x0000000000000000000000000000000000000000000000000000000000000001","structLogs":[{"pc":0,"op":"`, enableFeemarket: true, }, { @@ -1208,7 +1208,7 @@ func (suite *GRPCServerTestSuiteSuite) TestTraceBlock() { } }, expPass: true, - traceResponse: `[{"result":[]}]`, + traceResponse: `[{"txHash":"%s","result":[]}]`, enableFeemarket: true, }, { @@ -1230,7 +1230,7 @@ func (suite *GRPCServerTestSuiteSuite) TestTraceBlock() { txs = append([]*types.MsgEthereumTx{}, firstTx, secondTx) }, expPass: true, - traceResponse: `[{"result":{"gas":34828,"failed":false,"returnValue":"0x0000000000000000000000000000000000000000000000000000000000000001","structLogs":[{"pc":0,"op":"`, + traceResponse: `[{"txHash":"%s","result":{"gas":34828,"failed":false,"returnValue":"0x0000000000000000000000000000000000000000000000000000000000000001","structLogs":[{"pc":0,"op":"`, enableFeemarket: false, }, { @@ -1256,7 +1256,7 @@ func (suite *GRPCServerTestSuiteSuite) TestTraceBlock() { } }, expPass: true, - traceResponse: "invalid_tracer is not defined", + traceResponse: `[{"txHash":"%s","error":"rpc error: code = Internal desc = ReferenceError: invalid_tracer is not defined`, }, { msg: "invalid chain id", @@ -1266,7 +1266,7 @@ func (suite *GRPCServerTestSuiteSuite) TestTraceBlock() { chainID = &tmp }, expPass: true, - traceResponse: "invalid chain id for signer", + traceResponse: `[{"txHash":"%s","error":"rpc error: code = Internal desc = invalid chain id for signer`, }, } @@ -1298,9 +1298,10 @@ func (suite *GRPCServerTestSuiteSuite) TestTraceBlock() { res, err := suite.EvmQueryClient.TraceBlock(suite.Ctx, &traceReq) if tc.expPass { suite.Require().NoError(err) + tc.traceResponse = fmt.Sprintf(tc.traceResponse, txs[0].AsTransaction().Hash().Hex()) // if data is to big, slice the result if len(res.Data) > 150 { - suite.Require().Equal(tc.traceResponse, string(res.Data[:150])) + suite.Require().Equal(tc.traceResponse[:150], string(res.Data[:150])) } else { suite.Require().Contains(string(res.Data), tc.traceResponse) } From f24589cd967ceca459a91660b49fd5e9f662f519 Mon Sep 17 00:00:00 2001 From: Xinyu Date: Thu, 25 Jun 2026 15:16:13 +0800 Subject: [PATCH 21/32] doc: --- tests/integration_tests/spec/README.md | 26 ++++++++++++++----- .../spec/_execution_apis_sync.py | 3 +-- .../spec/test_rpc_spec_schema.py | 21 --------------- 3 files changed, 20 insertions(+), 30 deletions(-) diff --git a/tests/integration_tests/spec/README.md b/tests/integration_tests/spec/README.md index 7e54d4e629..d2f222e0f2 100644 --- a/tests/integration_tests/spec/README.md +++ b/tests/integration_tests/spec/README.md @@ -1,9 +1,21 @@ -# execution-apis +Schema-level test for Ethermint JSON-RPC against execution-apis fixtures. -The specs are copied from the [ethereum/execution-apis](https://github.com/ethereum/execution-apis/tree/main/tests) repository. +Each `.io` fixture file in the sub-directories of this `spec/` folder encodes one +request/response pair from the ethereum/execution-apis test suite. This test +replays every fixture against a live Ethermint node and checks that the schema +of the response (key set + JSON value types) matches — without requiring exact +values, because many fields (block hash, gas price, …) are chain-specific. -Before the RPC schema tests are collected, `spec/conftest.py` syncs the local -`.io` fixtures and execution-apis chain fixture files from upstream. Set -`EXECUTION_APIS_REF` to test against a specific branch, tag, or commit. Set -`EXECUTION_APIS_SYNC=0` to skip the network sync and use fixtures already -generated in the local working tree. +Running the test + +```sh +nix-shell ./tests/integration_tests/shell.nix --run \ + "pytest -vv --basetemp=/tmp/eth -s -k test_rpc_spec_schema \ + --session-timeout=6000 --timeout=6000" +``` + +Reading the report after running the test + +```sh +/tmp/eth/ethermintcurrent/rpc_schema_report.md +``` diff --git a/tests/integration_tests/spec/_execution_apis_sync.py b/tests/integration_tests/spec/_execution_apis_sync.py index 492233924f..a508054e2c 100644 --- a/tests/integration_tests/spec/_execution_apis_sync.py +++ b/tests/integration_tests/spec/_execution_apis_sync.py @@ -242,11 +242,10 @@ def sync_execution_apis(): if _env_disabled(os.environ.get("EXECUTION_APIS_SYNC", "1")): return "execution-apis sync disabled by EXECUTION_APIS_SYNC" - ref = os.environ.get("EXECUTION_APIS_REF", DEFAULT_EXECUTION_APIS_REF) with tempfile.TemporaryDirectory(prefix="execution-apis-") as tmp: tmp_path = Path(tmp) archive_path = tmp_path / "execution-apis.zip" - archive_url = _download_archive(ref, archive_path) + archive_url = _download_archive(DEFAULT_EXECUTION_APIS_REF, archive_path) upstream_root = _extract_archive(archive_path, tmp_path / "src") source_tests_dir = upstream_root / "tests" diff --git a/tests/integration_tests/spec/test_rpc_spec_schema.py b/tests/integration_tests/spec/test_rpc_spec_schema.py index ec534dfdec..7461438e99 100644 --- a/tests/integration_tests/spec/test_rpc_spec_schema.py +++ b/tests/integration_tests/spec/test_rpc_spec_schema.py @@ -1,24 +1,3 @@ -"""Schema-level test for Ethermint JSON-RPC against execution-apis fixtures. - -Each `.io` fixture file in the sub-directories of this `spec/` folder encodes one -request/response pair from the ethereum/execution-apis test suite. This test -replays every fixture against a live Ethermint node and checks that the schema -of the response (key set + JSON value types) matches — without requiring exact -values, because many fields (block hash, gas price, …) are chain-specific. - -Running the test ----------------- -nix-shell ./tests/integration_tests/shell.nix --run \ - "pytest -vv --basetemp=/tmp/eth -s -k test_rpc_spec_schema \ - --session-timeout=6000 --timeout=6000" - -Reading the report ------------------- -After the run a Markdown report is written to: - - /tmp/eth/ethermintcurrent/rpc_schema_report.md -""" - import json import sys from pathlib import Path From d2dba6f85aec3b6c9578441a47be0af8ca9aa53b Mon Sep 17 00:00:00 2001 From: Xinyu Date: Thu, 25 Jun 2026 15:16:29 +0800 Subject: [PATCH 22/32] test: rm unused specs --- .../spec/_rpc_spec_common.py | 181 ++++++++ .../spec/_schema_constants.py | 2 +- .../spec/_schema_normalize.py | 2 +- .../integration_tests/spec/_schema_report.py | 2 +- .../integration_tests/spec/_schema_rewrite.py | 2 +- tests/integration_tests/spec/test_rpc_spec.py | 414 ------------------ .../spec/test_rpc_spec_schema.py | 2 +- tests/integration_tests/spec/test_simulate.py | 2 +- 8 files changed, 187 insertions(+), 420 deletions(-) create mode 100644 tests/integration_tests/spec/_rpc_spec_common.py delete mode 100644 tests/integration_tests/spec/test_rpc_spec.py diff --git a/tests/integration_tests/spec/_rpc_spec_common.py b/tests/integration_tests/spec/_rpc_spec_common.py new file mode 100644 index 0000000000..178b75fc2b --- /dev/null +++ b/tests/integration_tests/spec/_rpc_spec_common.py @@ -0,0 +1,181 @@ +import json +import urllib.error +import urllib.request +from copy import deepcopy +from pathlib import Path + +SPEC_ROOT = Path(__file__).parent +REQUEST_SCHEMA_ERROR_CODES = {-32600, -32602, -32700} +CATEGORY_TITLES = { + "correct": "correct implemented", + "not_implemented": "not implemented", + "request_schema_wrong": "implemented, but request schema is wrong", + "response_schema_wrong": "implemented, but response schema is wrong", + "value_wrong": "implemented, but value is wrong", + "mixed_wrong": "implemented, but multiple categories are wrong", +} + + +def _collect_spec_files(): + return sorted( + path.relative_to(SPEC_ROOT).with_suffix("").as_posix() + for path in SPEC_ROOT.glob("*/*.io") + ) + + +SPEC_FILES = _collect_spec_files() +ETH_SIMULATE_FUTURE_BLOCK_SPEC = ( + "eth_simulateV1/ethSimulate-empty-with-block-num-set-plus1" +) +ETH_SIMULATE_FUTURE_BLOCK_NUMBER = "0x111" + + +class RpcSpecResult: + def __init__(self, spec_name, method, category, reason): + self.spec_name = spec_name + self.method = method + self.category = category + self.reason = reason + + +def _send_rpc(endpoint, request_body): + req = urllib.request.Request( + endpoint, + data=request_body.encode(), + headers={"Content-Type": "application/json"}, + ) + try: + with urllib.request.urlopen(req, timeout=30) as resp: + return json.loads(resp.read().decode()) + except urllib.error.HTTPError as err: + body = err.read().decode() + try: + return json.loads(body) + except json.JSONDecodeError: + return { + "jsonrpc": "2.0", + "id": None, + "error": { + "code": err.code, + "message": body, + }, + } + + +def _rewrite_request_for_ethermint_runtime_fixture(spec_name, request): + if spec_name != ETH_SIMULATE_FUTURE_BLOCK_SPEC: + return request, None + + rewritten = deepcopy(request) + params = rewritten.get("params") + if isinstance(params, list) and len(params) >= 2: + params[1] = ETH_SIMULATE_FUTURE_BLOCK_NUMBER + return ( + rewritten, + "request block number rewritten to an Ethermint future block", + ) + return request, None + + +def _response_kind(response): + if "result" in response: + return "result" + if "error" in response: + return "error" + return "unknown" + + +def _is_not_implemented(response): + error = response.get("error") or {} + message = str(error.get("message", "")).lower() + return error.get("code") == -32601 or ( + "method" in message + and ( + "not found" in message + or "does not exist" in message + or "not available" in message + or "unsupported" in message + ) + ) + + +def _is_request_schema_error(response): + error = response.get("error") or {} + message = str(error.get("message", "")).lower() + return error.get("code") in REQUEST_SCHEMA_ERROR_CODES or any( + marker in message + for marker in [ + "invalid argument", + "invalid input", + "invalid params", + "missing", + "cannot unmarshal", + "required", + "too many arguments", + "argument count", + ] + ) + + +def _same_schema(expected, actual): + if isinstance(expected, dict) and isinstance(actual, dict): + if set(expected) != set(actual): + return False + return all(_same_schema(expected[key], actual[key]) for key in expected) + if isinstance(expected, list) and isinstance(actual, list): + if not expected or not actual: + return True + return all(_same_schema(exp, act) for exp, act in zip(expected, actual)) + if _is_json_number(expected) and _is_json_number(actual): + return True + return type(expected) is type(actual) + + +def _is_json_number(value): + return type(value) in (int, float) + + +def _first_schema_mismatch(expected, actual, path="$"): + if isinstance(expected, dict) and isinstance(actual, dict): + expected_keys = set(expected) + actual_keys = set(actual) + missing = sorted(expected_keys - actual_keys) + extra = sorted(actual_keys - expected_keys) + if missing: + return f"{path}: missing keys {missing}" + if extra: + return f"{path}: extra keys {extra}" + for key in sorted(expected_keys): + mismatch = _first_schema_mismatch( + expected[key], actual[key], f"{path}.{key}" + ) + if mismatch: + return mismatch + return None + if isinstance(expected, list) and isinstance(actual, list): + if not expected or not actual: + return None + for index, (exp, act) in enumerate(zip(expected, actual)): + mismatch = _first_schema_mismatch(exp, act, f"{path}[{index}]") + if mismatch: + return mismatch + return None + if _is_json_number(expected) and _is_json_number(actual): + return None + if type(expected) is not type(actual): + return ( + f"{path}: expected {type(expected).__name__}, " + f"got {type(actual).__name__}" + ) + return None + + +def _format_json(value, limit=1200, indent=None): + text = json.dumps(value, sort_keys=True, indent=indent) + if limit is None or len(text) <= limit: + return text + return f"{text[:limit]}... " + + +def _markdown_json(value): + return _format_json(value, limit=None, indent=2) diff --git a/tests/integration_tests/spec/_schema_constants.py b/tests/integration_tests/spec/_schema_constants.py index d4dfb20e04..703907c255 100644 --- a/tests/integration_tests/spec/_schema_constants.py +++ b/tests/integration_tests/spec/_schema_constants.py @@ -1,4 +1,4 @@ -from test_rpc_spec import CATEGORY_TITLES +from _rpc_spec_common import CATEGORY_TITLES REPORT_FILENAME = "rpc_schema_report.md" SCHEMA_CATEGORY_TITLES = { diff --git a/tests/integration_tests/spec/_schema_normalize.py b/tests/integration_tests/spec/_schema_normalize.py index a8aeedfd1e..9d17146aab 100644 --- a/tests/integration_tests/spec/_schema_normalize.py +++ b/tests/integration_tests/spec/_schema_normalize.py @@ -15,7 +15,7 @@ MODERN_BLOCK_FIELDS, RELAXED_BLOCK_TRANSACTION_SCHEMA_EXCEPTIONS, ) -from test_rpc_spec import ( +from _rpc_spec_common import ( RpcSpecResult, _first_schema_mismatch, _is_not_implemented, diff --git a/tests/integration_tests/spec/_schema_report.py b/tests/integration_tests/spec/_schema_report.py index 1c902d69f0..8399fd886f 100644 --- a/tests/integration_tests/spec/_schema_report.py +++ b/tests/integration_tests/spec/_schema_report.py @@ -7,7 +7,7 @@ UNIMPLEMENTED_RPC_METHODS, ) from _schema_normalize import _format_schema_differences -from test_rpc_spec import _markdown_json +from _rpc_spec_common import _markdown_json class RpcSpecSchemaSummary: diff --git a/tests/integration_tests/spec/_schema_rewrite.py b/tests/integration_tests/spec/_schema_rewrite.py index ebfe748aa8..3837229a5f 100644 --- a/tests/integration_tests/spec/_schema_rewrite.py +++ b/tests/integration_tests/spec/_schema_rewrite.py @@ -9,7 +9,7 @@ TRANSACTION_BY_HASH_LOCAL_TX_KEYS, TRANSACTION_RECEIPT_LOCAL_TX_KEYS, ) -from test_rpc_spec import _rewrite_request_for_ethermint_runtime_fixture +from _rpc_spec_common import _rewrite_request_for_ethermint_runtime_fixture def _has_non_null_result(expected): diff --git a/tests/integration_tests/spec/test_rpc_spec.py b/tests/integration_tests/spec/test_rpc_spec.py deleted file mode 100644 index 40eac28293..0000000000 --- a/tests/integration_tests/spec/test_rpc_spec.py +++ /dev/null @@ -1,414 +0,0 @@ -import json -import urllib.error -import urllib.request -from collections import defaultdict -from copy import deepcopy -from pathlib import Path - -import pytest - -SPEC_ROOT = Path(__file__).parent -REQUEST_SCHEMA_ERROR_CODES = {-32600, -32602, -32700} -CATEGORY_TITLES = { - "correct": "correct implemented", - "not_implemented": "not implemented", - "request_schema_wrong": "implemented, but request schema is wrong", - "response_schema_wrong": "implemented, but response schema is wrong", - "value_wrong": "implemented, but value is wrong", - "mixed_wrong": "implemented, but multiple categories are wrong", -} - - -def _collect_spec_files(): - return sorted( - path.relative_to(SPEC_ROOT).with_suffix("").as_posix() - for path in SPEC_ROOT.glob("*/*.io") - ) - - -SPEC_FILES = _collect_spec_files() -ETH_SIMULATE_FUTURE_BLOCK_SPEC = ( - "eth_simulateV1/ethSimulate-empty-with-block-num-set-plus1" -) -ETH_SIMULATE_FUTURE_BLOCK_NUMBER = "0x111" - - -class RpcSpecSummary: - def __init__(self): - self.correct = [] - self.not_implemented = [] - self.request_schema_wrong = [] - self.response_schema_wrong = [] - self.value_wrong = [] - - def add(self, result): - getattr(self, result.category).append(result) - - def format(self): - lines = ["", "ethermint RPC spec case summary"] - for attr in [ - "correct", - "not_implemented", - "request_schema_wrong", - "response_schema_wrong", - "value_wrong", - ]: - results = getattr(self, attr) - lines.append(f"- {CATEGORY_TITLES[attr]}: {len(results)}") - by_method = defaultdict(int) - examples = [] - for result in results: - by_method[result.method] += 1 - if len(examples) < 8: - examples.append(result) - if by_method: - method_counts = ", ".join( - f"{method}={count}" for method, count in sorted(by_method.items()) - ) - lines.append(f" methods: {method_counts}") - for result in examples: - lines.append(f" example: {result.spec_name}: {result.reason}") - if len(results) > len(examples): - lines.append(f" ... {len(results) - len(examples)} more") - lines.extend(self._format_method_summary()) - return "\n".join(lines) - - def _format_method_summary(self): - by_method = defaultdict(list) - for result in self._all_results(): - by_method[result.method].append(result) - - by_verdict = defaultdict(list) - for method, results in sorted(by_method.items()): - verdict = self._method_verdict(results) - by_verdict[verdict].append((method, results)) - - lines = ["", "ethermint RPC spec method summary (exclusive)"] - for verdict in [ - "correct", - "not_implemented", - "request_schema_wrong", - "response_schema_wrong", - "value_wrong", - "mixed_wrong", - ]: - methods = by_verdict.get(verdict, []) - lines.append(f"- {CATEGORY_TITLES[verdict]}: {len(methods)}") - for method, results in methods: - counts = defaultdict(int) - for result in results: - counts[result.category] += 1 - details = ", ".join( - f"{category}={counts[category]}" for category in sorted(counts) - ) - lines.append(f" {method}: {details}") - return lines - - def _all_results(self): - return ( - self.correct - + self.not_implemented - + self.request_schema_wrong - + self.response_schema_wrong - + self.value_wrong - ) - - @staticmethod - def _method_verdict(results): - categories = {result.category for result in results} - if categories == {"correct"}: - return "correct" - if categories == {"not_implemented"}: - return "not_implemented" - - wrong_categories = categories - {"correct"} - if len(wrong_categories) == 1: - return next(iter(wrong_categories)) - return "mixed_wrong" - - -class RpcSpecResult: - def __init__(self, spec_name, method, category, reason): - self.spec_name = spec_name - self.method = method - self.category = category - self.reason = reason - - -def _parse_spec_file(spec_name): - filepath = SPEC_ROOT / f"{spec_name}.io" - request_line = None - expected_line = None - comments = [] - with filepath.open() as f: - for line in f: - line = line.strip() - if line.startswith("//"): - comments.append(line[2:].strip()) - elif line.startswith(">> "): - request_line = line[3:] - elif line.startswith("<< "): - expected_line = line[3:] - return request_line, expected_line, comments - - -def _send_rpc(endpoint, request_body): - req = urllib.request.Request( - endpoint, - data=request_body.encode(), - headers={"Content-Type": "application/json"}, - ) - try: - with urllib.request.urlopen(req, timeout=30) as resp: - return json.loads(resp.read().decode()) - except urllib.error.HTTPError as err: - body = err.read().decode() - try: - return json.loads(body) - except json.JSONDecodeError: - return { - "jsonrpc": "2.0", - "id": None, - "error": { - "code": err.code, - "message": body, - }, - } - - -def _rewrite_request_for_ethermint_runtime_fixture(spec_name, request): - if spec_name != ETH_SIMULATE_FUTURE_BLOCK_SPEC: - return request, None - - rewritten = deepcopy(request) - params = rewritten.get("params") - if isinstance(params, list) and len(params) >= 2: - params[1] = ETH_SIMULATE_FUTURE_BLOCK_NUMBER - return ( - rewritten, - "request block number rewritten to an Ethermint future block", - ) - return request, None - - -def _response_kind(response): - if "result" in response: - return "result" - if "error" in response: - return "error" - return "unknown" - - -def _is_not_implemented(response): - error = response.get("error") or {} - message = str(error.get("message", "")).lower() - return error.get("code") == -32601 or ( - "method" in message - and ( - "not found" in message - or "does not exist" in message - or "not available" in message - or "unsupported" in message - ) - ) - - -def _is_request_schema_error(response): - error = response.get("error") or {} - message = str(error.get("message", "")).lower() - return error.get("code") in REQUEST_SCHEMA_ERROR_CODES or any( - marker in message - for marker in [ - "invalid argument", - "invalid input", - "invalid params", - "missing", - "cannot unmarshal", - "required", - "too many arguments", - "argument count", - ] - ) - - -def _same_schema(expected, actual): - if isinstance(expected, dict) and isinstance(actual, dict): - if set(expected) != set(actual): - return False - return all(_same_schema(expected[key], actual[key]) for key in expected) - if isinstance(expected, list) and isinstance(actual, list): - if not expected or not actual: - return True - return all(_same_schema(exp, act) for exp, act in zip(expected, actual)) - if _is_json_number(expected) and _is_json_number(actual): - return True - return type(expected) is type(actual) - - -def _is_json_number(value): - return type(value) in (int, float) - - -def _first_schema_mismatch(expected, actual, path="$"): - if isinstance(expected, dict) and isinstance(actual, dict): - expected_keys = set(expected) - actual_keys = set(actual) - missing = sorted(expected_keys - actual_keys) - extra = sorted(actual_keys - expected_keys) - if missing: - return f"{path}: missing keys {missing}" - if extra: - return f"{path}: extra keys {extra}" - for key in sorted(expected_keys): - mismatch = _first_schema_mismatch( - expected[key], actual[key], f"{path}.{key}" - ) - if mismatch: - return mismatch - return None - if isinstance(expected, list) and isinstance(actual, list): - if not expected or not actual: - return None - for index, (exp, act) in enumerate(zip(expected, actual)): - mismatch = _first_schema_mismatch(exp, act, f"{path}[{index}]") - if mismatch: - return mismatch - return None - if _is_json_number(expected) and _is_json_number(actual): - return None - if type(expected) is not type(actual): - return ( - f"{path}: expected {type(expected).__name__}, " - f"got {type(actual).__name__}" - ) - return None - - -def _first_value_mismatch(expected, actual, path="$"): - if expected == actual: - return None - if isinstance(expected, dict) and isinstance(actual, dict): - for key in sorted(expected): - mismatch = _first_value_mismatch( - expected[key], actual[key], f"{path}.{key}" - ) - if mismatch: - return mismatch - return None - if isinstance(expected, list) and isinstance(actual, list): - if len(expected) != len(actual): - return f"{path}: expected length {len(expected)}, got {len(actual)}" - for index, (exp, act) in enumerate(zip(expected, actual)): - mismatch = _first_value_mismatch(exp, act, f"{path}[{index}]") - if mismatch: - return mismatch - return None - return f"{path}: expected {expected!r}, got {actual!r}" - - -def _format_json(value, limit=1200, indent=None): - text = json.dumps(value, sort_keys=True, indent=indent) - if limit is None or len(text) <= limit: - return text - return f"{text[:limit]}... " - - -def _compact_json(value, limit=1200): - return _format_json(value, limit=limit) - - -def _markdown_json(value): - return _format_json(value, limit=None, indent=2) - - -def _classify(spec_name, request, expected, actual): - method = request.get("method", "") - if expected == actual: - return RpcSpecResult(spec_name, method, "correct", "strict match") - - if _is_not_implemented(actual): - return RpcSpecResult( - spec_name, - method, - "not_implemented", - actual.get("error", {}).get("message", "method not implemented"), - ) - - expected_kind = _response_kind(expected) - actual_kind = _response_kind(actual) - - if actual_kind == "error" and _is_request_schema_error(actual): - return RpcSpecResult( - spec_name, - method, - "request_schema_wrong", - f"expected {expected_kind}, got request validation error: " - f"{actual.get('error', {}).get('message')}", - ) - - if expected_kind == "error" and actual_kind == "result": - return RpcSpecResult( - spec_name, - method, - "request_schema_wrong", - "spec expects request rejection, ethermint accepted it", - ) - - if expected_kind != actual_kind: - return RpcSpecResult( - spec_name, - method, - "value_wrong", - f"expected {expected_kind} response, got {actual_kind}", - ) - - if not _same_schema(expected, actual): - return RpcSpecResult( - spec_name, - method, - "response_schema_wrong", - _first_schema_mismatch(expected, actual) or "schema differs", - ) - - return RpcSpecResult( - spec_name, - method, - "value_wrong", - _first_value_mismatch(expected, actual) or "values differ", - ) - - -@pytest.fixture(scope="module") -def rpc_spec_summary(): - summary = RpcSpecSummary() - yield summary - print(summary.format()) - - -@pytest.mark.parametrize("spec_name", SPEC_FILES) -def test_ethermint_rpc_matches_execution_api_spec( - rpc_endpoint, rpc_spec_summary, spec_name -): - request_body, expected_body, comments = _parse_spec_file(spec_name) - assert request_body, f"no request line (>> ...) in {spec_name}.io" - assert expected_body, f"no expected response line (<< ...) in {spec_name}.io" - - request = json.loads(request_body) - expected = json.loads(expected_body) - rpc_request, runtime_rewrite_note = _rewrite_request_for_ethermint_runtime_fixture( - spec_name, request - ) - if runtime_rewrite_note: - actual = _send_rpc(rpc_endpoint, json.dumps(rpc_request)) - else: - actual = _send_rpc(rpc_endpoint, request_body) - - result = _classify(spec_name, request, expected, actual) - rpc_spec_summary.add(result) - - context = comments[0] if comments else spec_name - assert result.category == "correct", ( - f"{spec_name}: {context}: {result.reason}\n" - f"expected: {_compact_json(expected)}\n" - f"actual: {_compact_json(actual)}" - ) diff --git a/tests/integration_tests/spec/test_rpc_spec_schema.py b/tests/integration_tests/spec/test_rpc_spec_schema.py index 7461438e99..c6e42b497f 100644 --- a/tests/integration_tests/spec/test_rpc_spec_schema.py +++ b/tests/integration_tests/spec/test_rpc_spec_schema.py @@ -17,8 +17,8 @@ _schema_mismatches, ) from _schema_rewrite import _format_case_context, _prepare_schema_request +from _rpc_spec_common import SPEC_FILES, _is_not_implemented, _send_rpc from eth_account import Account -from test_rpc_spec import SPEC_FILES, _is_not_implemented, _send_rpc from web3 import Web3 diff --git a/tests/integration_tests/spec/test_simulate.py b/tests/integration_tests/spec/test_simulate.py index d0abc3ce52..f9f332b593 100644 --- a/tests/integration_tests/spec/test_simulate.py +++ b/tests/integration_tests/spec/test_simulate.py @@ -4,7 +4,7 @@ import urllib.request import pytest -from test_rpc_spec import _rewrite_request_for_ethermint_runtime_fixture +from _rpc_spec_common import _rewrite_request_for_ethermint_runtime_fixture SPEC_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "eth_simulateV1") From bad6b630f6d3c3472bb424da437201ab80606ab9 Mon Sep 17 00:00:00 2001 From: Xinyu Date: Thu, 25 Jun 2026 16:14:00 +0800 Subject: [PATCH 23/32] doc: comments --- .../integration_tests/spec/_execution_apis_sync.py | 9 +++++++++ tests/integration_tests/spec/_rpc_spec_common.py | 12 ++++++++++++ tests/integration_tests/spec/_schema_constants.py | 5 +++++ tests/integration_tests/spec/_schema_normalize.py | 11 +++++++++++ tests/integration_tests/spec/_schema_report.py | 12 ++++++++++++ tests/integration_tests/spec/_schema_rewrite.py | 10 ++++++++++ tests/integration_tests/spec/conftest.py | 10 ++++++++++ .../integration_tests/spec/test_rpc_spec_schema.py | 13 +++++++++++++ tests/integration_tests/spec/test_simulate.py | 8 ++++++++ 9 files changed, 90 insertions(+) diff --git a/tests/integration_tests/spec/_execution_apis_sync.py b/tests/integration_tests/spec/_execution_apis_sync.py index a508054e2c..4fe1ed129b 100644 --- a/tests/integration_tests/spec/_execution_apis_sync.py +++ b/tests/integration_tests/spec/_execution_apis_sync.py @@ -1,3 +1,8 @@ +# Downloads the ethereum/execution-apis test suite from GitHub, extracts the +# .io fixture files into this directory, and regenerates the Ethermint genesis +# overlay (ethermint_genesis_overlay.json) that imports the geth head state so +# the local chain starts from the same account/storage snapshot as the fixtures. + import json import os import shutil @@ -56,6 +61,7 @@ def _download_archive(ref, archive_path): def _extract_archive(archive_path, extract_dir): with zipfile.ZipFile(archive_path) as archive: + # Reject absolute paths and .. traversals before extracting. for member in archive.infolist(): path = Path(member.filename) if path.is_absolute() or ".." in path.parts: @@ -98,6 +104,7 @@ def _copy_required_files(source_dir, target_dir, names): def _eth_to_bech32(addr): addr = addr.removeprefix("0x") + # bech32 encodes 5-bit groups; convertbits re-packs the raw 8-bit address bytes. data = bech32.convertbits(bytes.fromhex(addr), 8, 5) return bech32.bech32_encode(PREFIX, data) @@ -152,6 +159,8 @@ def _chain_config(geth_genesis): def _regenerate_ethermint_genesis_overlay(): + # Translates the upstream geth headstate into Cosmos SDK auth/bank/evm + # account structures so Ethermint can import the same state at genesis. geth_genesis = json_load(EXECUTION_APIS_FIXTURE_DIR / "genesis.json") headstate = json_load(EXECUTION_APIS_FIXTURE_DIR / "headstate.json")["accounts"] diff --git a/tests/integration_tests/spec/_rpc_spec_common.py b/tests/integration_tests/spec/_rpc_spec_common.py index 178b75fc2b..448b591560 100644 --- a/tests/integration_tests/spec/_rpc_spec_common.py +++ b/tests/integration_tests/spec/_rpc_spec_common.py @@ -1,3 +1,8 @@ +# Shared utilities for the RPC spec test suite: HTTP JSON-RPC transport, +# response classification helpers (not-implemented vs schema error vs match), +# structural JSON schema comparison, and fixture-level request patching used +# by both test_rpc_spec_schema.py and test_simulate.py. + import json import urllib.error import urllib.request @@ -63,6 +68,9 @@ def _send_rpc(endpoint, request_body): def _rewrite_request_for_ethermint_runtime_fixture(spec_name, request): + # One fixture requests a future block by absolute number that exceeds the + # upstream geth chain height. Rewrite it to a block number that Ethermint + # will also treat as a future (not-yet-produced) block. if spec_name != ETH_SIMULATE_FUTURE_BLOCK_SPEC: return request, None @@ -88,6 +96,8 @@ def _response_kind(response): def _is_not_implemented(response): error = response.get("error") or {} message = str(error.get("message", "")).lower() + # -32601 is the standard JSON-RPC "method not found" code; also catch + # implementation-specific messages that convey the same meaning. return error.get("code") == -32601 or ( "method" in message and ( @@ -118,6 +128,8 @@ def _is_request_schema_error(response): def _same_schema(expected, actual): + # Compares JSON structure (key sets and value types) without checking values. + # Two JSON numbers are always schema-compatible regardless of their actual value. if isinstance(expected, dict) and isinstance(actual, dict): if set(expected) != set(actual): return False diff --git a/tests/integration_tests/spec/_schema_constants.py b/tests/integration_tests/spec/_schema_constants.py index 703907c255..dc6f5ae5f4 100644 --- a/tests/integration_tests/spec/_schema_constants.py +++ b/tests/integration_tests/spec/_schema_constants.py @@ -1,3 +1,8 @@ +# Named constant sets that drive the schema test's allow-lists and exceptions. +# Controls which spec cases are excluded, which RPC methods are treated as +# not-yet-implemented, and which known Ethermint/Geth divergences are tolerated +# without failing the schema assertion. + from _rpc_spec_common import CATEGORY_TITLES REPORT_FILENAME = "rpc_schema_report.md" diff --git a/tests/integration_tests/spec/_schema_normalize.py b/tests/integration_tests/spec/_schema_normalize.py index 9d17146aab..a753965411 100644 --- a/tests/integration_tests/spec/_schema_normalize.py +++ b/tests/integration_tests/spec/_schema_normalize.py @@ -1,3 +1,10 @@ +# Normalizes expected and actual JSON-RPC response pairs before schema comparison. +# Each normalizer handles a known Ethermint deviation from the upstream Geth +# fixture (e.g., historical blocks always include Prague-era fields, legacy receipts +# use `status` instead of `root`, rewritten block/tx identifiers may have different +# transaction types). Normalization happens in-memory; the original responses are +# not modified. + from copy import deepcopy from _schema_constants import ( @@ -98,6 +105,8 @@ def _is_local_receipt_future_null_result_error(spec_name, expected, actual): def _drop_asymmetric_fields(expected, actual, fields): + # Remove a field only when it appears in exactly one side; if both sides have + # it the field still participates in the schema comparison. for field in fields: if field in expected and field in actual: continue @@ -304,6 +313,8 @@ def _normalize_schema_exceptions(spec_name, expected, actual): def _classify_schema(spec_name, request, expected, actual): + # Determines the outcome category for one .io fixture case by comparing the + # response kind (result vs error) and then the structural schema of both sides. method = request.get("method", "") if _is_not_implemented(actual): diff --git a/tests/integration_tests/spec/_schema_report.py b/tests/integration_tests/spec/_schema_report.py index 8399fd886f..17c20b8c54 100644 --- a/tests/integration_tests/spec/_schema_report.py +++ b/tests/integration_tests/spec/_schema_report.py @@ -1,3 +1,9 @@ +# Accumulates per-case RpcSpecResult objects and renders them into: +# - a concise console summary (format()) printed during the test run +# - a detailed Markdown report (report()) written to rpc_schema_report.md +# Also provides _schema_mismatches() and _expected_failure_drift() used by the +# test assertions to detect new failures or stale whitelist entries. + from collections import defaultdict from _schema_constants import ( @@ -334,6 +340,9 @@ def _all_results(self): @staticmethod def _method_verdict(results): + # A method is "mixed_wrong" when its cases fall into more than one wrong + # category (e.g., some cases have a wrong request schema and others a + # wrong response schema), which signals an inconsistent implementation. categories = {result.category for result in results} if categories == {"schema_correct"}: return "schema_correct" @@ -368,6 +377,9 @@ def _schema_mismatches(summary): def _expected_failure_drift(summary): + # Detects two types of staleness in the allow-lists: + # "unexpected" – a method now fails but is not listed → test gap + # "stale" – a method is listed but now passes → list needs pruning verdicts = summary.method_verdicts() expected_by_verdict = { "not_implemented": UNIMPLEMENTED_RPC_METHODS, diff --git a/tests/integration_tests/spec/_schema_rewrite.py b/tests/integration_tests/spec/_schema_rewrite.py index 3837229a5f..3f934280ae 100644 --- a/tests/integration_tests/spec/_schema_rewrite.py +++ b/tests/integration_tests/spec/_schema_rewrite.py @@ -1,3 +1,8 @@ +# Rewrites upstream Geth fixture request parameters to use identifiers that +# exist on the local Ethermint test chain. Block hashes, transaction hashes, +# and block numbers from the copied Geth fixture are replaced with live values +# supplied via the rpc_context fixture so each RPC call returns a real response. + from copy import deepcopy from _schema_constants import ( @@ -90,6 +95,8 @@ def _shift_block_override_values(block_state_calls, key, base_value): return False first_value = min(values) + # Shift each override so the smallest fixture value maps to base_value, + # preserving relative spacing between blocks in the simulate call. for block_state_call in block_state_calls: if not isinstance(block_state_call, dict): continue @@ -139,6 +146,9 @@ def _rewrite_eth_simulate_request_for_local_schema_fixture(request, expected, co first_result_number = _first_eth_simulate_result_quantity(expected, "number") leading_block_count = 0 if first_result_number is not None: + # The fixture may start the simulate window a few blocks after the + # first overridden block number. Preserve that gap so the request + # targets blocks that don't yet exist on the local chain. leading_block_count = max(0, min(number_values) - first_result_number) number_base = int(latest_block.number) + 1 + leading_block_count rewritten_any |= _shift_block_override_values( diff --git a/tests/integration_tests/spec/conftest.py b/tests/integration_tests/spec/conftest.py index 0cf9abd0f5..7f18c84fae 100644 --- a/tests/integration_tests/spec/conftest.py +++ b/tests/integration_tests/spec/conftest.py @@ -1,3 +1,9 @@ +# pytest fixtures shared by the schema spec tests. +# Starts a local Ethermint chain pre-loaded with the geth execution-apis head +# state, submits one transaction of every relevant type (legacy, access-list, +# dynamic-fee, blob, setcode), and exposes rpc_endpoint and rpc_context with +# the resulting block/tx hashes for use in request rewriting. + import json import os import shutil @@ -50,6 +56,7 @@ def _merge_bank_balances(genesis, overlay): by_address[imported["address"]] = imported continue + # Merge coin amounts for addresses that already exist in genesis. coins = {coin["denom"]: int(coin["amount"]) for coin in balance["coins"]} for coin in imported["coins"]: coins[coin["denom"]] = coins.get(coin["denom"], 0) + int(coin["amount"]) @@ -58,6 +65,7 @@ def _merge_bank_balances(genesis, overlay): for denom, amount in sorted(coins.items()) ] + # Recompute the bank supply from the merged balance list so it stays consistent. supply = {} for balance in balances: for coin in balance["coins"]: @@ -82,6 +90,8 @@ def _merge_evm_accounts(genesis, overlay): def _patch_genesis_with_execution_api_state(chain_home): + # Writes the merged genesis to every node config dir so all validators + # start from the same state that the .io fixtures were generated against. overlay = json.loads( (EXECUTION_API_FIXTURE_DIR / "ethermint_genesis_overlay.json").read_text() ) diff --git a/tests/integration_tests/spec/test_rpc_spec_schema.py b/tests/integration_tests/spec/test_rpc_spec_schema.py index c6e42b497f..b1aab45b76 100644 --- a/tests/integration_tests/spec/test_rpc_spec_schema.py +++ b/tests/integration_tests/spec/test_rpc_spec_schema.py @@ -1,3 +1,8 @@ +# Runs every .io fixture from the synced ethereum/execution-apis test suite +# against the local Ethermint chain and asserts that each JSON-RPC response +# matches the upstream specification schema (field names and value types). +# Writes a detailed Markdown schema report to rpc_schema_report.md after each run. + import json import sys from pathlib import Path @@ -23,6 +28,8 @@ def _parse_spec_interactions(spec_name): + # .io files contain one or more >> request / << response pairs; multi-step + # specs have a setup interaction followed by the actual test interaction. filepath = Path(__file__).parent / f"{spec_name}.io" request_line = None comments = [] @@ -328,6 +335,10 @@ def rpc_context(rpc_endpoint, ethermint): def _skip_followups_after_unimplemented_first_request( rpc_context, spec_name, interactions, comments ): + # Some .io fixtures have a setup call (e.g. eth_sendRawTransaction) whose + # result feeds into the main assertion. If the first call is for an + # unimplemented method, skip the dependent follow-up interactions instead of + # letting them fail for an unrelated reason. if len(interactions) < 2: return None @@ -362,6 +373,8 @@ def _run_spec_case(rpc_context, spec_name): if skipped_result is not None: return skipped_result + # For multi-step fixtures, the last interaction is the one being tested; + # earlier ones are just prerequisites (e.g., a transaction submission). request, expected, runtime_rewrite_note, rewritten = _prepare_schema_request( spec_name, interactions[-1][0], interactions[-1][1], rpc_context ) diff --git a/tests/integration_tests/spec/test_simulate.py b/tests/integration_tests/spec/test_simulate.py index f9f332b593..775fead813 100644 --- a/tests/integration_tests/spec/test_simulate.py +++ b/tests/integration_tests/spec/test_simulate.py @@ -1,3 +1,10 @@ +# Runs the eth_simulateV1 .io fixtures against the local Ethermint chain. +# Unlike the full schema test, comparison is structural: block count, call count, +# and per-call status codes must match the fixture, but field-level schema is not +# checked here. Timestamps in fixture requests are shifted to exceed the current +# chain's latest block timestamp because the fixtures were authored against geth +# with near-zero block timestamps. + import json import os import time @@ -124,6 +131,7 @@ def _adjust_timestamps(request_body, base_timestamp): if min_time > base_timestamp: return request_body + # +12 ensures at least one full slot of headroom above the current base. delta = base_timestamp - min_time + 12 for bsc in block_state_calls: From 7fc9eb9687b900007c4a3182c8d6d2cd321fae22 Mon Sep 17 00:00:00 2001 From: Xinyu Date: Thu, 25 Jun 2026 16:18:08 +0800 Subject: [PATCH 24/32] test: --- .../spec/_rpc_spec_common.py | 2 - .../integration_tests/spec/_schema_rewrite.py | 3 +- tests/integration_tests/spec/conftest.py | 8 ++-- .../spec/test_rpc_spec_schema.py | 11 ++--- tests/integration_tests/spec/test_simulate.py | 43 ++++--------------- 5 files changed, 19 insertions(+), 48 deletions(-) diff --git a/tests/integration_tests/spec/_rpc_spec_common.py b/tests/integration_tests/spec/_rpc_spec_common.py index 448b591560..794d5c920e 100644 --- a/tests/integration_tests/spec/_rpc_spec_common.py +++ b/tests/integration_tests/spec/_rpc_spec_common.py @@ -12,11 +12,9 @@ SPEC_ROOT = Path(__file__).parent REQUEST_SCHEMA_ERROR_CODES = {-32600, -32602, -32700} CATEGORY_TITLES = { - "correct": "correct implemented", "not_implemented": "not implemented", "request_schema_wrong": "implemented, but request schema is wrong", "response_schema_wrong": "implemented, but response schema is wrong", - "value_wrong": "implemented, but value is wrong", "mixed_wrong": "implemented, but multiple categories are wrong", } diff --git a/tests/integration_tests/spec/_schema_rewrite.py b/tests/integration_tests/spec/_schema_rewrite.py index 3f934280ae..47dac82b08 100644 --- a/tests/integration_tests/spec/_schema_rewrite.py +++ b/tests/integration_tests/spec/_schema_rewrite.py @@ -3,6 +3,7 @@ # and block numbers from the copied Geth fixture are replaced with live values # supplied via the rpc_context fixture so each RPC call returns a real response. +import json from copy import deepcopy from _schema_constants import ( @@ -283,8 +284,6 @@ def _rewrite_request_for_local_schema_fixture(spec_name, request, expected, cont def _prepare_schema_request(spec_name, request_body, expected_body, rpc_context): - import json - request = json.loads(request_body) expected = json.loads(expected_body) request, runtime_rewrite_note = _rewrite_request_for_ethermint_runtime_fixture( diff --git a/tests/integration_tests/spec/conftest.py b/tests/integration_tests/spec/conftest.py index 7f18c84fae..8b89ce167b 100644 --- a/tests/integration_tests/spec/conftest.py +++ b/tests/integration_tests/spec/conftest.py @@ -8,6 +8,7 @@ import os import shutil import signal +import socket import subprocess import time from pathlib import Path @@ -125,9 +126,9 @@ def __init__(self, base_dir): self.base_dir = base_dir @property - def w3_http_endpoint(self, i=0): + def w3_http_endpoint(self): config = json.loads((self.base_dir / "config.json").read_text()) - port = ports.evmrpc_port(config["validators"][i]["base_port"]) + port = ports.evmrpc_port(config["validators"][0]["base_port"]) return f"http://localhost:{port}" @property @@ -139,9 +140,6 @@ def w3(self): def _wait_for_port(port, host="127.0.0.1", timeout=40): - import socket - import time - start = time.time() while time.time() - start < timeout: try: diff --git a/tests/integration_tests/spec/test_rpc_spec_schema.py b/tests/integration_tests/spec/test_rpc_spec_schema.py index b1aab45b76..76c3f8f2a2 100644 --- a/tests/integration_tests/spec/test_rpc_spec_schema.py +++ b/tests/integration_tests/spec/test_rpc_spec_schema.py @@ -51,7 +51,8 @@ def _parse_spec_interactions(spec_name): def _eip1559_fees(w3): latest = w3.eth.get_block("latest") - base_fee = int(latest.get("baseFeePerGas") or w3.eth.gas_price) + base_fee_per_gas = latest.get("baseFeePerGas") + base_fee = int(base_fee_per_gas if base_fee_per_gas is not None else w3.eth.gas_price) max_priority_fee = 10000 max_fee = max(base_fee * 2 + max_priority_fee, int(w3.eth.gas_price) * 2) return max_fee, max_priority_fee @@ -319,14 +320,14 @@ def rpc_context(rpc_endpoint, ethermint): "w3": w3, "endpoint": rpc_endpoint, "report_path": ethermint.base_dir.parent / REPORT_FILENAME, - "block_hash": Web3.to_hex(receipt.blockHash), - "block_number": hex(receipt.blockNumber), + "block_hash": Web3.to_hex(legacy_receipt.blockHash), + "block_number": hex(legacy_receipt.blockNumber), "fixture_block_hashes": { "0x1": Web3.to_hex(block_one.hash), "0x4": Web3.to_hex(block_four.hash), }, - "future_block_number": hex(receipt.blockNumber + 1000), - "tx_hash": _tx_hash(receipt), + "future_block_number": hex(legacy_receipt.blockNumber + 1000), + "tx_hash": _tx_hash(legacy_receipt), "tx_hashes": tx_hashes, "send_raw_txs": send_raw_txs, } diff --git a/tests/integration_tests/spec/test_simulate.py b/tests/integration_tests/spec/test_simulate.py index 775fead813..bde7440582 100644 --- a/tests/integration_tests/spec/test_simulate.py +++ b/tests/integration_tests/spec/test_simulate.py @@ -6,30 +6,31 @@ # with near-zero block timestamps. import json -import os import time -import urllib.request +from pathlib import Path import pytest -from _rpc_spec_common import _rewrite_request_for_ethermint_runtime_fixture +from _rpc_spec_common import _rewrite_request_for_ethermint_runtime_fixture, _send_rpc -SPEC_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), "eth_simulateV1") +SPEC_DIR = Path(__file__).parent / "eth_simulateV1" def _collect_spec_files(): - if not os.path.isdir(SPEC_DIR): + if not SPEC_DIR.is_dir(): return [] - return sorted(f[:-3] for f in os.listdir(SPEC_DIR) if f.endswith(".io")) + return sorted(p.stem for p in SPEC_DIR.glob("*.io")) SPEC_FILES = _collect_spec_files() def _parse_spec_file(spec_name): - filepath = os.path.join(SPEC_DIR, spec_name + ".io") + # Return the last >> / << pair in the file; eth_simulateV1 fixtures are + # single-interaction but the overwrite loop handles multi-line files safely. + filepath = SPEC_DIR / (spec_name + ".io") request_line = None expected_line = None - with open(filepath) as f: + with filepath.open() as f: for line in f: line = line.strip() if line.startswith(">> "): @@ -39,16 +40,6 @@ def _parse_spec_file(spec_name): return request_line, expected_line -def _send_rpc(endpoint, request_body): - req = urllib.request.Request( - endpoint, - data=request_body.encode(), - headers={"Content-Type": "application/json"}, - ) - with urllib.request.urlopen(req, timeout=30) as resp: - return json.loads(resp.read().decode()) - - def _compare_results(expected, actual): """Structurally compare eth_simulateV1 responses. @@ -145,22 +136,6 @@ def _adjust_timestamps(request_body, base_timestamp): return json.dumps(req) -@pytest.fixture(scope="module") -def rpc_endpoint(ethermint): - """Wait for the chain to reach block 45, then return the JSON-RPC URL.""" - w3 = ethermint.w3 - for _ in range(480): - try: - if w3.eth.block_number >= 45: - break - except Exception: - pass - time.sleep(0.5) - else: - raise TimeoutError("ethermint did not reach block 45 within timeout") - return ethermint.w3_http_endpoint - - @pytest.fixture(scope="module") def base_timestamp(rpc_endpoint): """Cache the base block timestamp once per module.""" From ef4bec6bdb4788e2ef14e9e6486709a19b65bdab Mon Sep 17 00:00:00 2001 From: Xinyu Date: Thu, 25 Jun 2026 17:54:47 +0800 Subject: [PATCH 25/32] fix: lint --- .../integration_tests/spec/_schema_normalize.py | 16 ++++++++-------- tests/integration_tests/spec/_schema_report.py | 2 +- tests/integration_tests/spec/_schema_rewrite.py | 8 ++++++-- .../spec/test_rpc_spec_schema.py | 7 ++++--- tests/integration_tests/spec/test_simulate.py | 1 - 5 files changed, 19 insertions(+), 15 deletions(-) diff --git a/tests/integration_tests/spec/_schema_normalize.py b/tests/integration_tests/spec/_schema_normalize.py index a753965411..ff22f0e67a 100644 --- a/tests/integration_tests/spec/_schema_normalize.py +++ b/tests/integration_tests/spec/_schema_normalize.py @@ -7,6 +7,14 @@ from copy import deepcopy +from _rpc_spec_common import ( + RpcSpecResult, + _first_schema_mismatch, + _is_not_implemented, + _is_request_schema_error, + _response_kind, + _same_schema, +) from _schema_constants import ( ETH_SIMULATE_BLOCK_HARDFORK_FIELDS, ETH_SIMULATE_TRANSACTION_HARDFORK_FIELDS, @@ -22,14 +30,6 @@ MODERN_BLOCK_FIELDS, RELAXED_BLOCK_TRANSACTION_SCHEMA_EXCEPTIONS, ) -from _rpc_spec_common import ( - RpcSpecResult, - _first_schema_mismatch, - _is_not_implemented, - _is_request_schema_error, - _response_kind, - _same_schema, -) def _json_type_name(value): diff --git a/tests/integration_tests/spec/_schema_report.py b/tests/integration_tests/spec/_schema_report.py index 17c20b8c54..841a06aa08 100644 --- a/tests/integration_tests/spec/_schema_report.py +++ b/tests/integration_tests/spec/_schema_report.py @@ -6,6 +6,7 @@ from collections import defaultdict +from _rpc_spec_common import _markdown_json from _schema_constants import ( EXCLUDED_SCHEMA_SPEC_CASES, SCHEMA_CATEGORY_TITLES, @@ -13,7 +14,6 @@ UNIMPLEMENTED_RPC_METHODS, ) from _schema_normalize import _format_schema_differences -from _rpc_spec_common import _markdown_json class RpcSpecSchemaSummary: diff --git a/tests/integration_tests/spec/_schema_rewrite.py b/tests/integration_tests/spec/_schema_rewrite.py index 47dac82b08..461ff93a35 100644 --- a/tests/integration_tests/spec/_schema_rewrite.py +++ b/tests/integration_tests/spec/_schema_rewrite.py @@ -6,6 +6,7 @@ import json from copy import deepcopy +from _rpc_spec_common import _rewrite_request_for_ethermint_runtime_fixture from _schema_constants import ( ETH_SIMULATE_TIMESTAMP_HEADROOM, LOCAL_LOG_FUTURE_BLOCK_RANGE_EXCEPTIONS, @@ -15,7 +16,6 @@ TRANSACTION_BY_HASH_LOCAL_TX_KEYS, TRANSACTION_RECEIPT_LOCAL_TX_KEYS, ) -from _rpc_spec_common import _rewrite_request_for_ethermint_runtime_fixture def _has_non_null_result(expected): @@ -263,7 +263,11 @@ def _rewrite_request_for_local_schema_fixture(spec_name, request, expected, cont params[0] = context["send_raw_txs"][ SEND_RAW_TRANSACTION_LOCAL_TX_KEYS[spec_name] ] - elif method in {"debug_traceTransaction", "eth_getTransactionByHash", "eth_getTransactionReceipt"}: + elif method in { + "debug_traceTransaction", + "eth_getTransactionByHash", + "eth_getTransactionReceipt", + }: params[0] = context["tx_hash"] elif ( # The copied execution-api fixture uses a geth block hash. For the diff --git a/tests/integration_tests/spec/test_rpc_spec_schema.py b/tests/integration_tests/spec/test_rpc_spec_schema.py index 76c3f8f2a2..7a120bf0ae 100644 --- a/tests/integration_tests/spec/test_rpc_spec_schema.py +++ b/tests/integration_tests/spec/test_rpc_spec_schema.py @@ -8,6 +8,7 @@ from pathlib import Path import pytest +from _rpc_spec_common import SPEC_FILES, _is_not_implemented, _send_rpc from _schema_constants import ( BLOB_VERSIONED_HASH, EXCLUDED_SCHEMA_SPEC_CASES, @@ -22,7 +23,6 @@ _schema_mismatches, ) from _schema_rewrite import _format_case_context, _prepare_schema_request -from _rpc_spec_common import SPEC_FILES, _is_not_implemented, _send_rpc from eth_account import Account from web3 import Web3 @@ -52,7 +52,9 @@ def _parse_spec_interactions(spec_name): def _eip1559_fees(w3): latest = w3.eth.get_block("latest") base_fee_per_gas = latest.get("baseFeePerGas") - base_fee = int(base_fee_per_gas if base_fee_per_gas is not None else w3.eth.gas_price) + base_fee = int( + base_fee_per_gas if base_fee_per_gas is not None else w3.eth.gas_price + ) max_priority_fee = 10000 max_fee = max(base_fee * 2 + max_priority_fee, int(w3.eth.gas_price) * 2) return max_fee, max_priority_fee @@ -305,7 +307,6 @@ def rpc_context(rpc_endpoint, ethermint): w3, ADDRS["community"], send_raw_accounts, access_list ) - receipt = legacy_receipt tx_hashes = { "access_list": _tx_hash(access_list_receipt), "blob": _tx_hash(blob_receipt), diff --git a/tests/integration_tests/spec/test_simulate.py b/tests/integration_tests/spec/test_simulate.py index bde7440582..dbd3073d29 100644 --- a/tests/integration_tests/spec/test_simulate.py +++ b/tests/integration_tests/spec/test_simulate.py @@ -6,7 +6,6 @@ # with near-zero block timestamps. import json -import time from pathlib import Path import pytest From 0b230f56961c9c1de963fb2d161ccc068b8214f9 Mon Sep 17 00:00:00 2001 From: Xinyu Date: Fri, 26 Jun 2026 11:23:23 +0800 Subject: [PATCH 26/32] fix: review --- tests/integration_tests/spec/_schema_constants.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration_tests/spec/_schema_constants.py b/tests/integration_tests/spec/_schema_constants.py index dc6f5ae5f4..9a20114d15 100644 --- a/tests/integration_tests/spec/_schema_constants.py +++ b/tests/integration_tests/spec/_schema_constants.py @@ -161,7 +161,7 @@ LEGACY_CREATE_BYTECODE = ( "0x600d380380600d6000396000f360004381526020014681526020014181526020014" - "881526020014481526020013281526020013481526020016000f3" + + "881526020014481526020013281526020013481526020016000f3" ) BLOB_VERSIONED_HASH = ( "0x0100000000000000000000000000000000000000000000000000000000000000" From 5cbbfab581323ab72f9688525cd7901b95cf7dfc Mon Sep 17 00:00:00 2001 From: Xinyu Date: Fri, 26 Jun 2026 11:44:21 +0800 Subject: [PATCH 27/32] fix: gomod2nix --- gomod2nix.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gomod2nix.toml b/gomod2nix.toml index 4a6382b619..982402114a 100644 --- a/gomod2nix.toml +++ b/gomod2nix.toml @@ -482,8 +482,8 @@ schema = 3 version = "v1.3.1" hash = "sha256-65+A2HiVfS/GV9G+6/TkXXjzXhI/V98e6RlJWjxy+mg=" [mod."github.com/hashicorp/go-metrics"] - version = "v0.5.4" - hash = "sha256-WQGb38CuijG9YxHfqgKn1U655BmxLYhNXXdSw0MRiGc=" + version = "v0.6.0" + hash = "sha256-EJ6FZlQpPBQrPT0E2SNrKsqLu7APJPO/XVt9M/+FZp8=" [mod."github.com/hashicorp/go-plugin"] version = "v1.7.0" hash = "sha256-nPTlKEssbp3/uDRZ2kkdO8z5mbu3j417Bra4FpBceHk=" @@ -683,8 +683,8 @@ schema = 3 version = "v2.32.0" hash = "sha256-EHQbD61XSnuHx36LFDwp0OPnmefB7KyifgkfqoIJcEs=" [mod."github.com/onsi/gomega"] - version = "v1.40.0" - hash = "sha256-FbdhUXLOJrEmiUOJqkWr9TT0ci8pJQBhGtBmRCsvR7U=" + version = "v1.42.1" + hash = "sha256-VtQLikXkQ4mhZaT8SfEcVsaDodZIewo9WVNPJhiZf14=" [mod."github.com/pbnjay/memory"] version = "v0.0.0-20210728143218-7b4eea64cf58" hash = "sha256-QI+F1oPLOOtwNp8+m45OOoSfYFs3QVjGzE0rFdpF/IA=" From d5b6d86b59cd6601017e25fd2f818fc46d2ffebb Mon Sep 17 00:00:00 2001 From: Xinyu Date: Fri, 26 Jun 2026 16:34:12 +0800 Subject: [PATCH 28/32] test: rename spec into execution-api --- .gitignore | 4 ++-- tests/integration_tests/{spec => execution-api}/README.md | 0 .../{spec => execution-api}/_execution_apis_sync.py | 0 .../{spec => execution-api}/_rpc_spec_common.py | 0 .../{spec => execution-api}/_schema_constants.py | 0 .../{spec => execution-api}/_schema_normalize.py | 0 .../{spec => execution-api}/_schema_report.py | 0 .../{spec => execution-api}/_schema_rewrite.py | 0 tests/integration_tests/{spec => execution-api}/conftest.py | 0 .../{spec => execution-api}/test_rpc_spec_schema.py | 0 .../{spec => execution-api}/test_simulate.py | 0 11 files changed, 2 insertions(+), 2 deletions(-) rename tests/integration_tests/{spec => execution-api}/README.md (100%) rename tests/integration_tests/{spec => execution-api}/_execution_apis_sync.py (100%) rename tests/integration_tests/{spec => execution-api}/_rpc_spec_common.py (100%) rename tests/integration_tests/{spec => execution-api}/_schema_constants.py (100%) rename tests/integration_tests/{spec => execution-api}/_schema_normalize.py (100%) rename tests/integration_tests/{spec => execution-api}/_schema_report.py (100%) rename tests/integration_tests/{spec => execution-api}/_schema_rewrite.py (100%) rename tests/integration_tests/{spec => execution-api}/conftest.py (100%) rename tests/integration_tests/{spec => execution-api}/test_rpc_spec_schema.py (100%) rename tests/integration_tests/{spec => execution-api}/test_simulate.py (100%) diff --git a/.gitignore b/.gitignore index e020f0f251..c8b872faa6 100644 --- a/.gitignore +++ b/.gitignore @@ -52,8 +52,8 @@ tests/**/tmp/* yarn.lock # Generated execution-apis RPC schema fixtures -/tests/integration_tests/spec/*/*.io -/tests/integration_tests/spec/fixtures/execution_apis/ +/tests/integration_tests/execution-api/*/*.io +/tests/integration_tests/execution-api/fixtures/execution_apis/ # Vagrant .vagrant/ diff --git a/tests/integration_tests/spec/README.md b/tests/integration_tests/execution-api/README.md similarity index 100% rename from tests/integration_tests/spec/README.md rename to tests/integration_tests/execution-api/README.md diff --git a/tests/integration_tests/spec/_execution_apis_sync.py b/tests/integration_tests/execution-api/_execution_apis_sync.py similarity index 100% rename from tests/integration_tests/spec/_execution_apis_sync.py rename to tests/integration_tests/execution-api/_execution_apis_sync.py diff --git a/tests/integration_tests/spec/_rpc_spec_common.py b/tests/integration_tests/execution-api/_rpc_spec_common.py similarity index 100% rename from tests/integration_tests/spec/_rpc_spec_common.py rename to tests/integration_tests/execution-api/_rpc_spec_common.py diff --git a/tests/integration_tests/spec/_schema_constants.py b/tests/integration_tests/execution-api/_schema_constants.py similarity index 100% rename from tests/integration_tests/spec/_schema_constants.py rename to tests/integration_tests/execution-api/_schema_constants.py diff --git a/tests/integration_tests/spec/_schema_normalize.py b/tests/integration_tests/execution-api/_schema_normalize.py similarity index 100% rename from tests/integration_tests/spec/_schema_normalize.py rename to tests/integration_tests/execution-api/_schema_normalize.py diff --git a/tests/integration_tests/spec/_schema_report.py b/tests/integration_tests/execution-api/_schema_report.py similarity index 100% rename from tests/integration_tests/spec/_schema_report.py rename to tests/integration_tests/execution-api/_schema_report.py diff --git a/tests/integration_tests/spec/_schema_rewrite.py b/tests/integration_tests/execution-api/_schema_rewrite.py similarity index 100% rename from tests/integration_tests/spec/_schema_rewrite.py rename to tests/integration_tests/execution-api/_schema_rewrite.py diff --git a/tests/integration_tests/spec/conftest.py b/tests/integration_tests/execution-api/conftest.py similarity index 100% rename from tests/integration_tests/spec/conftest.py rename to tests/integration_tests/execution-api/conftest.py diff --git a/tests/integration_tests/spec/test_rpc_spec_schema.py b/tests/integration_tests/execution-api/test_rpc_spec_schema.py similarity index 100% rename from tests/integration_tests/spec/test_rpc_spec_schema.py rename to tests/integration_tests/execution-api/test_rpc_spec_schema.py diff --git a/tests/integration_tests/spec/test_simulate.py b/tests/integration_tests/execution-api/test_simulate.py similarity index 100% rename from tests/integration_tests/spec/test_simulate.py rename to tests/integration_tests/execution-api/test_simulate.py From 6d1d30cd88ff0395fce8ad0080122dbb351eefca Mon Sep 17 00:00:00 2001 From: Xinyu Date: Fri, 26 Jun 2026 16:35:45 +0800 Subject: [PATCH 29/32] test: rm simulate, already tested in schema tests --- .../execution-api/test_simulate.py | 162 ------------------ 1 file changed, 162 deletions(-) delete mode 100644 tests/integration_tests/execution-api/test_simulate.py diff --git a/tests/integration_tests/execution-api/test_simulate.py b/tests/integration_tests/execution-api/test_simulate.py deleted file mode 100644 index dbd3073d29..0000000000 --- a/tests/integration_tests/execution-api/test_simulate.py +++ /dev/null @@ -1,162 +0,0 @@ -# Runs the eth_simulateV1 .io fixtures against the local Ethermint chain. -# Unlike the full schema test, comparison is structural: block count, call count, -# and per-call status codes must match the fixture, but field-level schema is not -# checked here. Timestamps in fixture requests are shifted to exceed the current -# chain's latest block timestamp because the fixtures were authored against geth -# with near-zero block timestamps. - -import json -from pathlib import Path - -import pytest -from _rpc_spec_common import _rewrite_request_for_ethermint_runtime_fixture, _send_rpc - -SPEC_DIR = Path(__file__).parent / "eth_simulateV1" - - -def _collect_spec_files(): - if not SPEC_DIR.is_dir(): - return [] - return sorted(p.stem for p in SPEC_DIR.glob("*.io")) - - -SPEC_FILES = _collect_spec_files() - - -def _parse_spec_file(spec_name): - # Return the last >> / << pair in the file; eth_simulateV1 fixtures are - # single-interaction but the overwrite loop handles multi-line files safely. - filepath = SPEC_DIR / (spec_name + ".io") - request_line = None - expected_line = None - with filepath.open() as f: - for line in f: - line = line.strip() - if line.startswith(">> "): - request_line = line[3:] - elif line.startswith("<< "): - expected_line = line[3:] - return request_line, expected_line - - -def _compare_results(expected, actual): - """Structurally compare eth_simulateV1 responses. - - Returns None on match, or a human-readable mismatch description. - """ - exp_type = "result" if "result" in expected else "error" - act_type = "result" if "result" in actual else "error" - - if exp_type != act_type: - return f"expected {exp_type} response, got {act_type}" - - if exp_type == "result": - er = expected.get("result", []) - ar = actual.get("result", []) - if len(er) != len(ar): - return f"block count: expected={len(er)} got={len(ar)}" - - for i, (eb, ab) in enumerate(zip(er, ar)): - ec = eb.get("calls", []) - ac = ab.get("calls", []) - if len(ec) != len(ac): - return f"block[{i}] call count: expected={len(ec)} got={len(ac)}" - for j, (ecall, acall) in enumerate(zip(ec, ac)): - es = ecall.get("status", "") - as_ = acall.get("status", "") - if es != as_: - return f"block[{i}].call[{j}] status: expected={es} got={as_}" - return None - else: - ec = expected.get("error", {}).get("code", 0) - ac = actual.get("error", {}).get("code", 0) - if ec != ac: - return f"error code: expected={ec} got={ac}" - return None - - -def _get_base_timestamp(endpoint): - """Fetch the latest block's timestamp from the chain.""" - resp = _send_rpc( - endpoint, - json.dumps( - { - "jsonrpc": "2.0", - "id": 99, - "method": "eth_getBlockByNumber", - "params": ["latest", False], - } - ), - ) - return int(resp["result"]["timestamp"], 16) - - -def _adjust_timestamps(request_body, base_timestamp): - """Offset explicit blockOverrides.time values so they are above base_timestamp. - - Spec files were authored against geth whose blocks have very low - timestamps (~0-50). Ethermint uses real wall-clock timestamps. If - any explicit timestamp in the request is at or below the base block - timestamp, we shift ALL explicit timestamps upward by a constant - delta so that relative ordering between blocks is preserved while - the first timestamp exceeds the base. - """ - req = json.loads(request_body) - params = req.get("params", []) - if not params or not isinstance(params[0], dict): - return request_body - - block_state_calls = params[0].get("blockStateCalls", []) - explicit_times = [] - for bsc in block_state_calls: - bo = bsc.get("blockOverrides") or {} - t = bo.get("time") - if t is not None: - explicit_times.append(int(t, 16) if isinstance(t, str) else t) - - if not explicit_times: - return request_body - - min_time = min(explicit_times) - if min_time > base_timestamp: - return request_body - - # +12 ensures at least one full slot of headroom above the current base. - delta = base_timestamp - min_time + 12 - - for bsc in block_state_calls: - bo = bsc.get("blockOverrides") or {} - t = bo.get("time") - if t is not None: - old_val = int(t, 16) if isinstance(t, str) else t - bo["time"] = hex(old_val + delta) - bsc["blockOverrides"] = bo - - return json.dumps(req) - - -@pytest.fixture(scope="module") -def base_timestamp(rpc_endpoint): - """Cache the base block timestamp once per module.""" - return _get_base_timestamp(rpc_endpoint) - - -@pytest.mark.parametrize("spec_name", SPEC_FILES) -def test_eth_simulate_spec(rpc_endpoint, base_timestamp, spec_name): - request_body, expected_body = _parse_spec_file(spec_name) - assert request_body, f"no request line (>> ...) in {spec_name}.io" - assert expected_body, f"no expected response line (<< ...) in {spec_name}.io" - - expected = json.loads(expected_body) - - if "result" in expected: - request_body = _adjust_timestamps(request_body, base_timestamp) - request, runtime_rewrite_note = _rewrite_request_for_ethermint_runtime_fixture( - f"eth_simulateV1/{spec_name}", json.loads(request_body) - ) - if runtime_rewrite_note: - request_body = json.dumps(request) - actual = _send_rpc(rpc_endpoint, request_body) - - mismatch = _compare_results(expected, actual) - assert mismatch is None, f"{spec_name}: {mismatch}" From 2e78e9118a615ee5f476182f45e528c951699553 Mon Sep 17 00:00:00 2001 From: Xinyu Date: Mon, 29 Jun 2026 17:57:12 +0800 Subject: [PATCH 30/32] revert: changes in sub pr --- rpc/backend/account_info.go | 33 +--------------------- rpc/backend/account_info_test.go | 41 +-------------------------- rpc/namespaces/ethereum/eth/api.go | 14 ---------- rpc/types/block.go | 6 +++- x/evm/keeper/grpc_query.go | 18 ++++++------ x/evm/keeper/grpc_query_test.go | 45 ++++++------------------------ x/evm/types/tracer.go | 1 - 7 files changed, 24 insertions(+), 134 deletions(-) diff --git a/rpc/backend/account_info.go b/rpc/backend/account_info.go index d6353c2d8e..9ec3b89ad9 100644 --- a/rpc/backend/account_info.go +++ b/rpc/backend/account_info.go @@ -16,11 +16,7 @@ package backend import ( - "encoding/hex" - stderrors "errors" - "fmt" "math/big" - "strings" errorsmod "cosmossdk.io/errors" sdkmath "cosmossdk.io/math" @@ -137,13 +133,6 @@ func (b *Backend) GetProof(address common.Address, storageKeys []string, blockNr // GetStorageAt returns the contract storage at the given address, block number, and key. func (b *Backend) GetStorageAt(address common.Address, key string, blockNrOrHash rpctypes.BlockNumberOrHash) (hexutil.Bytes, error) { - storageKey, _, err := decodeStorageKey(key) - if err != nil { - return nil, &rpctypes.InvalidParamsError{ - Message: fmt.Sprintf("%v: %q", err, key), - } - } - blockNum, err := b.BlockNumberFromTendermint(blockNrOrHash) if err != nil { return nil, err @@ -151,7 +140,7 @@ func (b *Backend) GetStorageAt(address common.Address, key string, blockNrOrHash req := &evmtypes.QueryStorageRequest{ Address: address.String(), - Key: storageKey.Hex(), + Key: key, } res, err := b.queryClient.Storage(rpctypes.ContextWithHeight(blockNum.Int64()), req) @@ -163,26 +152,6 @@ func (b *Backend) GetStorageAt(address common.Address, key string, blockNrOrHash return value.Bytes(), nil } -// decodeStorageKey parses a hex-encoded 32-byte hash. -// For legacy compatibility reasons, we parse these keys leniently, -// with the 0x prefix being optional. -func decodeStorageKey(s string) (h common.Hash, inputLength int, err error) { - if strings.HasPrefix(s, "0x") || strings.HasPrefix(s, "0X") { - s = s[2:] - } - if (len(s) & 1) > 0 { - s = "0" + s - } - if len(s) > common.HashLength*2 { - return common.Hash{}, len(s) / 2, stderrors.New("storage key too long (want at most 32 bytes)") - } - b, err := hex.DecodeString(s) - if err != nil { - return common.Hash{}, 0, stderrors.New("invalid hex in storage key") - } - return common.BytesToHash(b), len(b), nil -} - // GetBalance returns the provided account's balance up to the provided block number. func (b *Backend) GetBalance(address common.Address, blockNrOrHash rpctypes.BlockNumberOrHash) (*hexutil.Big, error) { blockNum, err := b.BlockNumberFromTendermint(blockNrOrHash) diff --git a/rpc/backend/account_info_test.go b/rpc/backend/account_info_test.go index 395085b232..296b1dc201 100644 --- a/rpc/backend/account_info_test.go +++ b/rpc/backend/account_info_test.go @@ -191,29 +191,24 @@ func (suite *BackendTestSuite) TestGetStorageAt() { name string addr common.Address key string - queryKey string blockNrOrHash rpctypes.BlockNumberOrHash registerMock func(common.Address, string, string) expPass bool expStorage hexutil.Bytes - expErrCode int }{ { "fail - BlockHash and BlockNumber are both nil", tests.GenerateAddress(), "0x0", - "", rpctypes.BlockNumberOrHash{}, func(addr common.Address, key string, storage string) {}, false, nil, - 0, }, { "fail - query client errors on getting Storage", tests.GenerateAddress(), "0x0", - common.Hash{}.Hex(), rpctypes.BlockNumberOrHash{BlockNumber: &blockNr}, func(addr common.Address, key string, storage string) { queryClient := suite.backend.queryClient.QueryClient.(*mocks.EVMQueryClient) @@ -221,35 +216,11 @@ func (suite *BackendTestSuite) TestGetStorageAt() { }, false, nil, - 0, - }, - { - "fail - invalid storage key hex", - tests.GenerateAddress(), - "0xasdf", - "", - rpctypes.BlockNumberOrHash{BlockNumber: &blockNr}, - func(addr common.Address, key string, storage string) {}, - false, - nil, - rpctypes.ErrCodeInvalidParams, - }, - { - "fail - storage key too long", - tests.GenerateAddress(), - "0x00000000000000000000000000000000000000000000000000000000000000000", - "", - rpctypes.BlockNumberOrHash{BlockNumber: &blockNr}, - func(addr common.Address, key string, storage string) {}, - false, - nil, - rpctypes.ErrCodeInvalidParams, }, { "pass", tests.GenerateAddress(), "0x0", - common.Hash{}.Hex(), rpctypes.BlockNumberOrHash{BlockNumber: &blockNr}, func(addr common.Address, key string, storage string) { queryClient := suite.backend.queryClient.QueryClient.(*mocks.EVMQueryClient) @@ -257,17 +228,12 @@ func (suite *BackendTestSuite) TestGetStorageAt() { }, true, hexutil.Bytes{0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, - 0, }, } for _, tc := range testCases { suite.Run(fmt.Sprintf("Case %s", tc.name), func() { suite.SetupTest() - queryKey := tc.key - if tc.queryKey != "" { - queryKey = tc.queryKey - } - tc.registerMock(tc.addr, queryKey, tc.expStorage.String()) + tc.registerMock(tc.addr, tc.key, tc.expStorage.String()) storage, err := suite.backend.GetStorageAt(tc.addr, tc.key, tc.blockNrOrHash) if tc.expPass { @@ -275,11 +241,6 @@ func (suite *BackendTestSuite) TestGetStorageAt() { suite.Require().Equal(tc.expStorage, storage) } else { suite.Require().Error(err) - if tc.expErrCode != 0 { - rpcErr, ok := err.(interface{ ErrorCode() int }) - suite.Require().True(ok) - suite.Require().Equal(tc.expErrCode, rpcErr.ErrorCode()) - } } }) } diff --git a/rpc/namespaces/ethereum/eth/api.go b/rpc/namespaces/ethereum/eth/api.go index 2d2572a45b..db093ae74f 100644 --- a/rpc/namespaces/ethereum/eth/api.go +++ b/rpc/namespaces/ethereum/eth/api.go @@ -18,7 +18,6 @@ package eth import ( "context" "encoding/json" - "math/big" "github.com/ethereum/go-ethereum/signer/core/apitypes" @@ -361,19 +360,6 @@ func (e *PublicAPI) MaxPriorityFeePerGas() (*hexutil.Big, error) { return (*hexutil.Big)(tipcap), nil } -// BaseFee returns the base fee of the next block in wei. -func (e *PublicAPI) BaseFee() (*hexutil.Big, error) { - e.logger.Debug("eth_baseFee") - head, err := e.backend.CurrentHeader() - if err != nil { - return nil, err - } - if head.BaseFee == nil { - return (*hexutil.Big)(new(big.Int)), nil - } - return (*hexutil.Big)(head.BaseFee), nil -} - // ChainId is the EIP-155 replay-protection chain id for the current ethereum chain config. func (e *PublicAPI) ChainId() (*hexutil.Big, error) { //nolint e.logger.Debug("eth_chainId") diff --git a/rpc/types/block.go b/rpc/types/block.go index 6af65f086b..e5d1be3d9e 100644 --- a/rpc/types/block.go +++ b/rpc/types/block.go @@ -18,10 +18,12 @@ package types import ( "context" "encoding/json" + "errors" "fmt" "math/big" "strings" + "github.com/spf13/cast" "google.golang.org/grpc/metadata" "github.com/ethereum/go-ethereum/common" @@ -95,7 +97,9 @@ func (bn *BlockNumber) UnmarshalJSON(data []byte) error { } blckNum, err := hexutil.DecodeUint64(input) - if err != nil { + if errors.Is(err, hexutil.ErrMissingPrefix) { + blckNum = cast.ToUint64(input) + } else if err != nil { return err } b, err := ethermint.SafeInt64(blckNum) diff --git a/x/evm/keeper/grpc_query.go b/x/evm/keeper/grpc_query.go index eba86e387d..2df48c20d7 100644 --- a/x/evm/keeper/grpc_query.go +++ b/x/evm/keeper/grpc_query.go @@ -623,7 +623,6 @@ func (k Keeper) TraceBlock(c context.Context, req *types.QueryTraceBlockRequest) result := types.TxTraceResult{} ethTx := tx.AsTransaction() cfg.TxConfig.TxHash = ethTx.Hash() - result.TxHash = ethTx.Hash() cfg.TxConfig.TxIndex, err = ethermint.SafeUint(i) if err != nil { return nil, err @@ -1049,15 +1048,14 @@ func (k Keeper) getAccessListExcludes(ctx sdk.Context, args types.TransactionArg addressesToExclude[addr] = struct{}{} } - if len(args.AuthorizationList) > 0 { - if args.Gas == nil { - return nil, errors.New("gas must be set when using authorization list") - } - maxAuthorizations := uint64(*args.Gas) / ethparams.CallNewAccountGas - if uint64(len(args.AuthorizationList)) > maxAuthorizations { - k.Logger(ctx).Error("insufficient gas to process all authorizations", "maxAuthorizations", maxAuthorizations) - return nil, errors.New("insufficient gas to process all authorizations") - } + // check if enough gas was provided to cover all authorization lists + if args.Gas == nil { + return nil, errors.New("gas must be set when using authorization list") + } + maxAuthorizations := uint64(*args.Gas) / ethparams.CallNewAccountGas + if uint64(len(args.AuthorizationList)) > maxAuthorizations { + k.Logger(ctx).Error("insufficient gas to process all authorizations", "maxAuthorizations", maxAuthorizations) + return nil, errors.New("insufficient gas to process all authorizations") } for _, auth := range args.AuthorizationList { diff --git a/x/evm/keeper/grpc_query_test.go b/x/evm/keeper/grpc_query_test.go index c6e2de56a9..eaebd8bfa4 100644 --- a/x/evm/keeper/grpc_query_test.go +++ b/x/evm/keeper/grpc_query_test.go @@ -1163,7 +1163,7 @@ func (suite *GRPCServerTestSuiteSuite) TestTraceBlock() { traceConfig = nil }, expPass: true, - traceResponse: `[{"txHash":"%s","result":{"gas":34828,"failed":false,"returnValue":"0x0000000000000000000000000000000000000000000000000000000000000001","structLogs":[{"pc":0,"op":"`, + traceResponse: `[{"result":{"gas":34828,"failed":false,"returnValue":"0x0000000000000000000000000000000000000000000000000000000000000001","structLogs":[{"pc":0,"op":"`, }, { msg: "filtered trace", @@ -1175,7 +1175,7 @@ func (suite *GRPCServerTestSuiteSuite) TestTraceBlock() { } }, expPass: true, - traceResponse: `[{"txHash":"%s","result":{"gas":34828,"failed":false,"returnValue":"0x0000000000000000000000000000000000000000000000000000000000000001","structLogs":[{"pc":0,"op":"`, + traceResponse: `[{"result":{"gas":34828,"failed":false,"returnValue":"0x0000000000000000000000000000000000000000000000000000000000000001","structLogs":[{"pc":0,"op":"`, }, { msg: "javascript tracer", @@ -1185,7 +1185,7 @@ func (suite *GRPCServerTestSuiteSuite) TestTraceBlock() { } }, expPass: true, - traceResponse: `[{"txHash":"%s","result":[]}]`, + traceResponse: "[{\"result\":[]}]", }, { msg: "default trace with enableFeemarket and filtered return", @@ -1197,7 +1197,7 @@ func (suite *GRPCServerTestSuiteSuite) TestTraceBlock() { } }, expPass: true, - traceResponse: `[{"txHash":"%s","result":{"gas":34828,"failed":false,"returnValue":"0x0000000000000000000000000000000000000000000000000000000000000001","structLogs":[{"pc":0,"op":"`, + traceResponse: `[{"result":{"gas":34828,"failed":false,"returnValue":"0x0000000000000000000000000000000000000000000000000000000000000001","structLogs":[{"pc":0,"op":"`, enableFeemarket: true, }, { @@ -1208,7 +1208,7 @@ func (suite *GRPCServerTestSuiteSuite) TestTraceBlock() { } }, expPass: true, - traceResponse: `[{"txHash":"%s","result":[]}]`, + traceResponse: `[{"result":[]}]`, enableFeemarket: true, }, { @@ -1230,7 +1230,7 @@ func (suite *GRPCServerTestSuiteSuite) TestTraceBlock() { txs = append([]*types.MsgEthereumTx{}, firstTx, secondTx) }, expPass: true, - traceResponse: `[{"txHash":"%s","result":{"gas":34828,"failed":false,"returnValue":"0x0000000000000000000000000000000000000000000000000000000000000001","structLogs":[{"pc":0,"op":"`, + traceResponse: `[{"result":{"gas":34828,"failed":false,"returnValue":"0x0000000000000000000000000000000000000000000000000000000000000001","structLogs":[{"pc":0,"op":"`, enableFeemarket: false, }, { @@ -1256,7 +1256,7 @@ func (suite *GRPCServerTestSuiteSuite) TestTraceBlock() { } }, expPass: true, - traceResponse: `[{"txHash":"%s","error":"rpc error: code = Internal desc = ReferenceError: invalid_tracer is not defined`, + traceResponse: "invalid_tracer is not defined", }, { msg: "invalid chain id", @@ -1266,7 +1266,7 @@ func (suite *GRPCServerTestSuiteSuite) TestTraceBlock() { chainID = &tmp }, expPass: true, - traceResponse: `[{"txHash":"%s","error":"rpc error: code = Internal desc = invalid chain id for signer`, + traceResponse: "invalid chain id for signer", }, } @@ -1298,10 +1298,9 @@ func (suite *GRPCServerTestSuiteSuite) TestTraceBlock() { res, err := suite.EvmQueryClient.TraceBlock(suite.Ctx, &traceReq) if tc.expPass { suite.Require().NoError(err) - tc.traceResponse = fmt.Sprintf(tc.traceResponse, txs[0].AsTransaction().Hash().Hex()) // if data is to big, slice the result if len(res.Data) > 150 { - suite.Require().Equal(tc.traceResponse[:150], string(res.Data[:150])) + suite.Require().Equal(tc.traceResponse, string(res.Data[:150])) } else { suite.Require().Contains(string(res.Data), tc.traceResponse) } @@ -2815,32 +2814,6 @@ func (suite *GRPCServerTestSuiteSuite) TestCreateAccessList() { } } -func (suite *GRPCServerTestSuiteSuite) TestCreateAccessListWithoutGas() { - suite.App.EvmKeeper.SetBalance(suite.Ctx, suite.Address, *uint256.NewInt(1000000000000000000), types.DefaultEVMDenom) - - to := tests.GenerateAddress() - value := (*hexutil.Big)(big.NewInt(10)) - args, err := json.Marshal(&types.TransactionArgs{ - From: &suite.Address, - To: &to, - Value: value, - }) - suite.Require().NoError(err) - - res, err := suite.App.EvmKeeper.CreateAccessList(suite.Ctx, &types.EthCallRequest{ - Args: args, - GasCap: uint64(config.DefaultGasCap), - }) - suite.Require().NoError(err) - suite.Require().NotNil(res) - - var result types.AccessListResult - suite.Require().NoError(json.Unmarshal(res.Data, &result)) - suite.Require().Empty(result.AccessList) - suite.Require().NotZero(uint64(result.GasUsed)) - suite.Require().Empty(result.Error) -} - func (suite *GRPCServerTestSuiteSuite) TestCreateAccessList_VmError() { contractAddr := suite.deployTestContract(suite.Address) suite.Commit(suite.T()) diff --git a/x/evm/types/tracer.go b/x/evm/types/tracer.go index bad4814771..237052360b 100644 --- a/x/evm/types/tracer.go +++ b/x/evm/types/tracer.go @@ -67,7 +67,6 @@ func NewTracer(tracer string, msg core.Message, cfg *params.ChainConfig, height // TxTraceResult is the result of a single transaction trace during a block trace. type TxTraceResult struct { - TxHash common.Hash `json:"txHash"` // Transaction hash Result interface{} `json:"result,omitempty"` // Trace results produced by the tracer Error string `json:"error,omitempty"` // Trace failure produced by the tracer } From 445c7480ccaea42eb9fb675fc9173375aa3dba83 Mon Sep 17 00:00:00 2001 From: Xinyu Date: Mon, 29 Jun 2026 18:11:36 +0800 Subject: [PATCH 31/32] fix: review --- CHANGELOG.md | 1 + tests/integration_tests/execution-api/README.md | 12 ++++++------ .../execution-api/_execution_apis_sync.py | 3 ++- .../execution-api/_rpc_spec_common.py | 2 +- .../execution-api/_schema_report.py | 2 +- tests/integration_tests/execution-api/conftest.py | 1 + 6 files changed, 12 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index daa0a0c709..19407db0bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,6 +43,7 @@ Ref: https://keepachangelog.com/en/1.0.0/ ### Improvements +* (rpc) [#1010](https://github.com/crypto-org-chain/ethermint/pull/1010) test(rpc): validate JSON-RPC schema against ethereum/execution-apis fixtures. * (rpc) [#992](https://github.com/crypto-org-chain/ethermint/pull/992) test(rpc): improve test coverage for GetTransactionByBlock* methods. * (rpc) [#996](https://github.com/crypto-org-chain/ethermint/pull/996) refactor(rpc): fix type consistency in `buildReceiptDirect` and `GetTransactionByBlockHashAndIndex`. diff --git a/tests/integration_tests/execution-api/README.md b/tests/integration_tests/execution-api/README.md index d2f222e0f2..c5c2431b23 100644 --- a/tests/integration_tests/execution-api/README.md +++ b/tests/integration_tests/execution-api/README.md @@ -1,10 +1,10 @@ -Schema-level test for Ethermint JSON-RPC against execution-apis fixtures. +Schema-level test for Ethermint JSON-RPC against ethereum/execution-apis fixtures. -Each `.io` fixture file in the sub-directories of this `spec/` folder encodes one -request/response pair from the ethereum/execution-apis test suite. This test -replays every fixture against a live Ethermint node and checks that the schema -of the response (key set + JSON value types) matches — without requiring exact -values, because many fields (block hash, gas price, …) are chain-specific. +The pytest fixture syncs `.io` fixtures from ethereum/execution-apis before the +test run. The copied fixture directories and upstream geth chain files are +generated under this `execution-api/` directory and ignored by git. +By default the sync downloads the latest `main` archive from +`ethereum/execution-apis`. Running the test diff --git a/tests/integration_tests/execution-api/_execution_apis_sync.py b/tests/integration_tests/execution-api/_execution_apis_sync.py index 4fe1ed129b..0e466a65d0 100644 --- a/tests/integration_tests/execution-api/_execution_apis_sync.py +++ b/tests/integration_tests/execution-api/_execution_apis_sync.py @@ -251,10 +251,11 @@ def sync_execution_apis(): if _env_disabled(os.environ.get("EXECUTION_APIS_SYNC", "1")): return "execution-apis sync disabled by EXECUTION_APIS_SYNC" + ref = os.environ.get("EXECUTION_APIS_REF", DEFAULT_EXECUTION_APIS_REF) with tempfile.TemporaryDirectory(prefix="execution-apis-") as tmp: tmp_path = Path(tmp) archive_path = tmp_path / "execution-apis.zip" - archive_url = _download_archive(DEFAULT_EXECUTION_APIS_REF, archive_path) + archive_url = _download_archive(ref, archive_path) upstream_root = _extract_archive(archive_path, tmp_path / "src") source_tests_dir = upstream_root / "tests" diff --git a/tests/integration_tests/execution-api/_rpc_spec_common.py b/tests/integration_tests/execution-api/_rpc_spec_common.py index 794d5c920e..43ebebdaf0 100644 --- a/tests/integration_tests/execution-api/_rpc_spec_common.py +++ b/tests/integration_tests/execution-api/_rpc_spec_common.py @@ -1,7 +1,7 @@ # Shared utilities for the RPC spec test suite: HTTP JSON-RPC transport, # response classification helpers (not-implemented vs schema error vs match), # structural JSON schema comparison, and fixture-level request patching used -# by both test_rpc_spec_schema.py and test_simulate.py. +# by the execution-api schema tests. import json import urllib.error diff --git a/tests/integration_tests/execution-api/_schema_report.py b/tests/integration_tests/execution-api/_schema_report.py index 841a06aa08..81fe14b017 100644 --- a/tests/integration_tests/execution-api/_schema_report.py +++ b/tests/integration_tests/execution-api/_schema_report.py @@ -58,7 +58,7 @@ def report(self): lines = [ "# Ethermint RPC Schema Spec Report", "", - "Generated by `spec/test_rpc_spec_schema.py`.", + "Generated by `execution-api/test_rpc_spec_schema.py`.", "", ( "This report compares Ethermint JSON-RPC responses with the " diff --git a/tests/integration_tests/execution-api/conftest.py b/tests/integration_tests/execution-api/conftest.py index 8b89ce167b..80826cd93e 100644 --- a/tests/integration_tests/execution-api/conftest.py +++ b/tests/integration_tests/execution-api/conftest.py @@ -115,6 +115,7 @@ def _w3_wait_for_block(w3, target=1, timeout=240): if w3.eth.block_number >= target: return except Exception: + # The RPC endpoint can reject early requests while the node is booting. pass time.sleep(0.5) raise TimeoutError(f"chain did not reach block {target}") From a5d873fba8b0b07dc1baf3a468c972b5767a1d3a Mon Sep 17 00:00:00 2001 From: Xinyu Date: Thu, 2 Jul 2026 13:32:14 +0800 Subject: [PATCH 32/32] test: whitelist decimal block number request --- .../execution-api/_schema_constants.py | 6 ++ .../execution-api/_schema_report.py | 73 ++++++++++++++++++- 2 files changed, 78 insertions(+), 1 deletion(-) diff --git a/tests/integration_tests/execution-api/_schema_constants.py b/tests/integration_tests/execution-api/_schema_constants.py index 9a20114d15..20bc8749e2 100644 --- a/tests/integration_tests/execution-api/_schema_constants.py +++ b/tests/integration_tests/execution-api/_schema_constants.py @@ -40,6 +40,12 @@ "mixed_wrong": set(), } +DECIMAL_BLOCK_NUMBER_REQUEST_SCHEMA_EXCEPTIONS = { + # Ethermint accepts decimal block-number strings for traceBlockByNumber, + # while the upstream execution-apis fixture expects strict hex quantities. + "debug_traceBlockByNumber/trace-block-invalid-number", +} + ETHERMINT_MODERN_BLOCK_FIELD_SCHEMA_EXCEPTIONS = { # Genesis is a pre-fork block in the copied Geth fixture. Ethermint currently # returns Prague-era block fields for it, so ignore only those extra fields diff --git a/tests/integration_tests/execution-api/_schema_report.py b/tests/integration_tests/execution-api/_schema_report.py index 81fe14b017..f573ac29af 100644 --- a/tests/integration_tests/execution-api/_schema_report.py +++ b/tests/integration_tests/execution-api/_schema_report.py @@ -8,6 +8,7 @@ from _rpc_spec_common import _markdown_json from _schema_constants import ( + DECIMAL_BLOCK_NUMBER_REQUEST_SCHEMA_EXCEPTIONS, EXCLUDED_SCHEMA_SPEC_CASES, SCHEMA_CATEGORY_TITLES, SCHEMA_MISMATCH_WHITELIST, @@ -222,6 +223,23 @@ def _markdown_expected_failure_whitelist(self): ", ".join(f"`{method}`" for method in methods) or "-", ) ) + lines.extend( + [ + "", + "### Request Schema Case Whitelist", + "", + ( + "These exact fixture cases are known Ethermint/Geth request " + "validation differences. They stay visible in the detailed " + "mismatch report but do not fail the schema test." + ), + "", + ] + ) + lines.extend( + f"- `{spec_name}`" + for spec_name in sorted(DECIMAL_BLOCK_NUMBER_REQUEST_SCHEMA_EXCEPTIONS) + ) return lines def _markdown_details(self): @@ -368,11 +386,48 @@ def _format_method_set(methods): return ", ".join(f"`{method}`" for method in sorted(methods)) or "-" +def _is_decimal_block_number_request_schema_exception(result): + if result.spec_name not in DECIMAL_BLOCK_NUMBER_REQUEST_SCHEMA_EXCEPTIONS: + return False + + request = getattr(result, "request", {}) + params = request.get("params") + if not isinstance(params, list) or not params: + return False + + block_number = params[0] + return ( + isinstance(block_number, str) + and block_number.isascii() + and block_number.isdecimal() + ) + + +def _is_whitelisted_schema_mismatch(result): + return ( + result.category == "request_schema_wrong" + and _is_decimal_block_number_request_schema_exception(result) + ) + + +def _method_verdicts_excluding_whitelisted_mismatches(summary): + by_method = defaultdict(list) + for result in summary._all_results(): + if not _is_whitelisted_schema_mismatch(result): + by_method[result.method].append(result) + + return { + method: RpcSpecSchemaSummary._method_verdict(results) + for method, results in by_method.items() + } + + def _schema_mismatches(summary): mismatches = summary.request_schema_wrong + summary.response_schema_wrong return [ f"{result.spec_name} ({result.method}): {result.reason}" for result in mismatches + if not _is_whitelisted_schema_mismatch(result) ] @@ -380,7 +435,7 @@ def _expected_failure_drift(summary): # Detects two types of staleness in the allow-lists: # "unexpected" – a method now fails but is not listed → test gap # "stale" – a method is listed but now passes → list needs pruning - verdicts = summary.method_verdicts() + verdicts = _method_verdicts_excluding_whitelisted_mismatches(summary) expected_by_verdict = { "not_implemented": UNIMPLEMENTED_RPC_METHODS, **SCHEMA_MISMATCH_WHITELIST, @@ -424,4 +479,20 @@ def _expected_failure_drift(summary): _format_method_set(methods), ) ) + + observed_decimal_block_number_cases = { + result.spec_name + for result in summary.request_schema_wrong + if _is_decimal_block_number_request_schema_exception(result) + } + stale = ( + DECIMAL_BLOCK_NUMBER_REQUEST_SCHEMA_EXCEPTIONS + - observed_decimal_block_number_cases + ) + if stale: + drift.append( + "request schema case whitelist has stale cases: {}".format( + ", ".join(f"`{spec_name}`" for spec_name in sorted(stale)) + ) + ) return drift