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

Open
#1,620 1 comment 0 reactions 0 assignees View on GitHub
A-test-benchmark C-feat P-low stale
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

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.