-
Notifications
You must be signed in to change notification settings - Fork 436
bug: t8n doesn't return the expected receipts #1235
Copy link
Copy link
Open
Labels
A-spec-toolArea: Specification Tooling—Tools for the Ethereum specification (eg. `src/ethereum_spec_tools/*`)Area: Specification Tooling—Tools for the Ethereum specification (eg. `src/ethereum_spec_tools/*`)C-featCategory: an improvement or new featureCategory: an improvement or new featureE-easyExperience: easy, good for newcomersExperience: easy, good for newcomersP-low
Milestone
Description
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
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
A-spec-toolArea: Specification Tooling—Tools for the Ethereum specification (eg. `src/ethereum_spec_tools/*`)Area: Specification Tooling—Tools for the Ethereum specification (eg. `src/ethereum_spec_tools/*`)C-featCategory: an improvement or new featureCategory: an improvement or new featureE-easyExperience: easy, good for newcomersExperience: easy, good for newcomersP-low