ethereum / ethereum/execution-specs
Using `uv run execute remote` with --engine-endpoint should not require `--rpc-seed-key` and should auto-fund EOA root via PayloadAttributes.withdrawals
- Dominant language
- Python
- Stars
- 1.2k
- Forks
- 505
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 116
Description
This idea originates from https://github.com/NethermindEth/gas-benchmarks/blob/2c20e132cc9358fbdfd602e5ec9ee1054b719da3/eest_stateful_generator.py#L393C26-L393C125
It uses a custom engine API endpoint, where if these extra params are passed (in this case: an address), a `engine_forkchoiceUpdated` is generated with a `withdrawals` field which will fund the desired account. We can re-use this here:
If `--rpc-seed-key` is provided, calculate the sender address. If it has insufficient funds, before running anything else, send a `forkchoiceUpdated` to the remote with the instructions to seed the relevant account. If it is not provided, now seed the EEST root account to fund the children accounts to proceed the tests.
I am not sure if this is desired or if this has any side effects, but: this allows EEST users to execute against any remote, even if the accounts are not funded. So we can take any state/snapshot, and use any account (even if not provided using the `--rpc-seed-key`) to run tests by pre-funding the accounts using the CL-driven withdrawals.
Contributor guide
Assessment
This issue has not been assessed yet.