Skip to content

bug: t8n doesn't return the expected receipts #1235

@danceratopz

Description

@danceratopz

Looks like 0abb3b6 in forks/prague broke test filling in EEST due to changes in transaction receipts. This means we can't fill tests with v1.17.0.

Hoping for a quick fix, I made a start in #1233. But it looks like many receipt fields are missing and the types are a bit trick; I think it's better you handle the change as you see fit.

With EEST main, you can reproduce the problem with a single test with:

uv run fill --fork Prague --output fixtures-prague --clean -m "not slow" tests/prague/eip6110_deposits/test_deposits.py::test_deposit[fork_Prague-blockchain_test-multiple_deposits_from_eoa_minimum_plus_one_minimum_minus_one] -v --pdb

Without #1233:

    output: TransitionToolOutput = TransitionToolOutput.model_validate(
E   pydantic_core._pydantic_core.ValidationError: 1 validation error for TransitionToolOutput
E   result.receipts
E     Input should be a valid list [type=list_type, input_value={'transactionHash': '0x58...00000000000000000000'}]}, input_type=dict]
E       For further information visit https://errors.pydantic.dev/2.10/v/list_type

With #1233:

    output: TransitionToolOutput = TransitionToolOutput.model_validate(
E   pydantic_core._pydantic_core.ValidationError: 6 validation errors for TransitionToolOutput
E   result.receipts.0.logs.0.blockNumber
E     Field required [type=missing, input_value={'address': '0x0000000021...0000000000000000000000'}, input_type=dict]
E       For further information visit https://errors.pydantic.dev/2.10/v/missing
E   result.receipts.0.logs.0.transactionHash
E     Field required [type=missing, input_value={'address': '0x0000000021...0000000000000000000000'}, input_type=dict]
E       For further information visit https://errors.pydantic.dev/2.10/v/missing
E   result.receipts.0.logs.0.transactionIndex
E     Field required [type=missing, input_value={'address': '0x0000000021...0000000000000000000000'}, input_type=dict]
E       For further information visit https://errors.pydantic.dev/2.10/v/missing
E   result.receipts.0.logs.0.blockHash
E     Field required [type=missing, input_value={'address': '0x0000000021...0000000000000000000000'}, input_type=dict]
E       For further information visit https://errors.pydantic.dev/2.10/v/missing
E   result.receipts.0.logs.0.logIndex
E     Field required [type=missing, input_value={'address': '0x0000000021...0000000000000000000000'}, input_type=dict]
E       For further information visit https://errors.pydantic.dev/2.10/v/missing
E   result.receipts.0.logs.0.removed
E     Field required [type=missing, input_value={'address': '0x0000000021...0000000000000000000000'}, input_type=dict]
E       For further information visit https://errors.pydantic.dev/2.10/v/missing

Here are the types that we expect in a TransactionReceipt, resp. TransactionLog:
https://github.com/ethereum/execution-spec-tests/blob/d9f5eabebb35b4f6a44e10f9163aa27e31125c52/src/ethereum_test_types/types.py#L560-L598

Metadata

Metadata

Assignees

Labels

A-spec-toolArea: Specification Tooling—Tools for the Ethereum specification (eg. `src/ethereum_spec_tools/*`)C-featCategory: an improvement or new featureE-easyExperience: easy, good for newcomersP-low

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions