Skip to content

Commit 820be7d

Browse files
authored
Exclude empty requests data in commitment (EIP-7685) (#1094)
Apply the [EIP-7685 update] included in [pectra-devnet-5]. [EIP-7685 update]: ethereum/EIPs#8989 [pectra-devnet-5]: https://notes.ethereum.org/@ethpandaops/pectra-devnet-5 This requires a fix in tests for calldata repricing logic according to ethereum/EIPs#9227
2 parents 3b9ed1e + 29b7e2d commit 820be7d

File tree

4 files changed

+15
-10
lines changed

4 files changed

+15
-10
lines changed

circle.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -378,11 +378,13 @@ jobs:
378378
- run:
379379
name: "Execution spec tests (develop, blockchain_tests)"
380380
# Tests for in-development EVM revision currently passing.
381-
# TODO: Just a single example that happens to work.
382381
working_directory: ~/spec-tests/fixtures/blockchain_tests
383382
command: >
384383
~/build/bin/evmone-blockchaintest
385-
prague/eip2537_bls_12_381_precompiles/bls12_precompiles_before_fork
384+
--gtest_filter='-*block_hashes.block_hashes_history'
385+
prague/eip2537_bls_12_381_precompiles
386+
prague/eip2935_historical_block_hashes_from_state
387+
prague/eip6110_deposits
386388
- collect_coverage_gcc
387389
- upload_coverage:
388390
flags: execution_spec_tests

test/integration/t8n/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,10 +146,10 @@ add_test(
146146
)
147147
string(
148148
JOIN ".*" EXPECTED_OUT
149-
# empty requests list of exactly 3 elements (withdrawals, deposits, consolidations)
150-
[=["requests": \[[^],]*"0x",[^],]*"0x",[^],]*"0x"[^,]*\]]=]
149+
# empty requests list
150+
[=["requests": \[\]]=]
151151
# requests hash should be present
152-
[=["requestsHash": "0x6036c41849da9c076ed79654d434017387a88fb833c2856b32e18218b3341c5f"]=]
152+
[=["requestsHash": "0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"]=]
153153
)
154154
set_tests_properties(
155155
${PREFIX}/${TEST_CASE}/out.json PROPERTIES

test/state/requests.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,8 @@ hash256 calculate_requests_hash(std::span<const Requests> block_requests_list)
2020

2121
for (const auto& requests : block_requests_list)
2222
{
23-
// TODO recent change in the spec, uncomment for devnet-5
24-
// if (requests.data.empty())
25-
// continue;
23+
if (requests.data().empty())
24+
continue; // Skip empty requests.
2625

2726
hash256 requests_hash;
2827
crypto::sha256(reinterpret_cast<std::byte*>(requests_hash.bytes),

test/t8n/t8n.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -255,8 +255,12 @@ int main(int argc, const char* argv[])
255255
{
256256
// EIP-7685: General purpose execution layer requests
257257
j_result["requests"] = json::json::array();
258-
for (size_t i = 0; i < requests.size(); ++i)
259-
j_result["requests"][i] = hex0x(requests[i].data());
258+
for (const auto& r : requests)
259+
{
260+
if (!r.data().empty())
261+
// Only report non-empty requests. Include the leading type byte.
262+
j_result["requests"].emplace_back(hex0x(r.raw_data));
263+
}
260264

261265
auto requests_hash = calculate_requests_hash(requests);
262266

0 commit comments

Comments
 (0)