Skip to content

Commit a2e5ef8

Browse files
authoredMar 19, 2025
EIP-6110 Deposit contract fix (#2800)
* Post testnet fixes * Fixing test
1 parent dc04b66 commit a2e5ef8

File tree

2 files changed

+6
-2
lines changed

2 files changed

+6
-2
lines changed
 

‎silkworm/core/types/eip_7685_requests.cpp

+4-1
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,11 @@ Bytes extract_deposit(const Bytes& data) {
5555
}
5656

5757
void FlatRequests::extract_deposits_from_logs(const std::vector<Log>& logs) {
58+
// See EIP-6110: Supply validator deposits on chain
59+
static constexpr evmc::bytes32 kDepositEventSignatureHash = 0x649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c5_bytes32;
5860
for (const auto& log : logs) {
59-
if (log.address == protocol::kDepositContractAddress) {
61+
const auto is_deposit_event = std::size(log.topics) > 0 && log.topics[0] == kDepositEventSignatureHash;
62+
if (log.address == protocol::kDepositContractAddress && is_deposit_event) {
6063
auto bytes = extract_deposit(log.data);
6164
requests_[magic_enum::enum_integer(FlatRequestType::kDepositRequest)] += bytes;
6265
}

‎silkworm/core/types/eip_7685_requests_test.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ TEST_CASE("EIP-7585 tests") {
3838
"0000000000000000000000000000000000000000000000000000000000")
3939
.value();
4040

41-
const std::vector logs = {Log{.address = protocol::kDepositContractAddress, .topics = {}, .data = encoded_event}};
41+
// Topics is a single-element vector containing hash of deposit event signature
42+
const std::vector logs = {Log{.address = protocol::kDepositContractAddress, .topics = {0x649bbc62d0e31342afea4e5cd82d4049e7e1ee912fc0889aa790803be39038c5_bytes32}, .data = encoded_event}};
4243

4344
FlatRequests requests;
4445
requests.extract_deposits_from_logs(logs);

0 commit comments

Comments
 (0)