ethereum / ethereum/execution-specs
Is `Transaction.expected_receipt` expected to be checked in `execute remote` mode?
- Dominant language
- Python
- Stars
- 1.2k
- Forks
- 505
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 116
Description
Some tests in EIP-7623 check the gas used in a transaction by querying the `gasUsed` in the transaction receipt. However, in `execute remote` mode, it looks like the transaction receipt is actually never fetched. Is this something not supported in `execute remote` mode?
We are including support for EIP-7623 in our EVM compatible chain. That's why we need to use `execute remote` mode. Before the actual inclusion of the EIP, we ran these tests expecting them to fail, but they unexpectedly pass.
### How to reproduce the error
For example, the `test_gas_consumption_below_data_floor` sets the `expected_receipt` to be checked in the `tx`.
https://github.com/ethereum/execution-specs/blob/047796612056c4eddb193fc5151e3507569f90fa/tests/prague/eip7623_increase_calldata_cost/test_execution_gas.py#L165
Running the test in `execute remote` mode passes as expected (started `anvil --balance 1000000` in another terminal)
`uv run execute remote --verbose --fork=Prague --rpc-endpoint=http://localhost:8545 --rpc-seed-key=$ANVIL_KEY --chain-id 31337 "tests/prague/eip7623_increase_calldata_cost/test_execution_gas.py::TestGasConsumptionBelowDataFloor::test_gas_consumption_below_data_floor[fork_Prague-state_test-exact_gas-type_2]"`
However, if we change the expected `TransactionReceipt.gas_used` to be an invalid value, _e.g._,
```python
tx.expected_receipt = TransactionReceipt(gas_used=0)
```
and run the same test as above, the test still passes.
Contributor guide
Assessment
This issue has not been assessed yet.