ethereum / ethereum/execution-specs

Is `Transaction.expected_receipt` expected to be checked in `execute remote` mode?

Open
#1,680 3 comments 1 reaction 1 assignee Claimed by @marioevz View on GitHub
A-test-execute C-bug E-medium P-medium stale
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.