Skip to content

Fix duplicate notifyExit - #1321

Merged
0xfornax merged 2 commits into
masterfrom
fix-duplicate-notifyexit
Oct 29, 2026
Merged

0xfornax merged 2 commits into
masterfrom
fix-duplicate-notifyexit

Conversation

@thomaspanf

Copy link
Copy Markdown
Member

If a node's task loop fails to call notifyExit after a megapool validator exit (offline or automatic transactions disabled), the oDAO challenges the exit and places a lock on the validator for failing to call notifyExit in a timely manner.

When the task loop resumes, the defend-challenge-exit.go task calls notifyExit on the locked validator, then the notify-validator-exit task makes a second attempt at notifyExit. This validator was already notified, so the gas estimation fails and errors are logged.

2026/10/26 22:43:06 Checking for validators with an incorrect exit challenge ...
2026/10/26 22:43:06 The validator 10 was correctly challenged and needs an exit proof
2026/10/26 22:43:06 Crafting a validator proof.
2026/10/26 22:43:12 The beacon state proof has been successfully created.
2026/10/26 22:43:12 This transaction will use a max fee of 1.165628 Gwei, for a total of up to 0.000266 - 0.000399 ETH.
2026/10/26 22:43:12 Notifying that validator 10 is exiting.
2026/10/26 22:43:12 Transaction has been submitted with hash 0x2a27497394d4e5154e0d20e39617d9fed3c384baa1a9644c0e1afd43815fcad7.
2026/10/26 22:43:12 You may follow its progress by visiting:
2026/10/26 22:43:12 https://hoodi.etherscan.io/tx/0x2a27497394d4e5154e0d20e39617d9fed3c384baa1a9644c0e1afd43815fcad7

2026/10/26 22:43:12 Waiting for the transaction to be validated...
2026/10/26 22:43:13 Successfully responded to exit-challenge for validator 10.
2026/10/26 22:43:13 Checking for new rewards tree files to download...
2026/10/26 22:43:14 Checking for Protocol DAO proposal challenges to defend...
2026/10/26 22:43:15 Checking for Protocol DAO proposals to challenge...
2026/10/26 22:43:16 Checking for megapool validators to pre-stake...
2026/10/26 22:43:17 Checking for megapool validators to stake...
2026/10/26 22:43:18 Checking if there are megapool validators exiting...
2026/10/26 22:43:20 The validator id 10 needs an exit proof
2026/10/26 22:43:20 Crafting an exit proof.
2026/10/26 22:43:23 The validator exit proof has been successfully created.
2026/10/26 22:43:23 Could not estimate the gas required to notify exit on megapool validator 10: %!w(*fmt.wrapError=&{Error getting transaction gas info: could not estimate gas limit: error estimating gas needed: execution reverted: Already notified 0x2e98339281e0})
2026/10/26 22:43:23 Error creating exit proof for validator 10: %!w(*fmt.wrapError=&{Error getting transaction gas info: could not estimate gas limit: error estimating gas needed: execution reverted: Already notified 0x2e98339281e0})

@github-actions

Copy link
Copy Markdown

Coverage Report

@github-actions

Copy link
Copy Markdown

Merging this branch will not change overall coverage

Impacted Packages Coverage Δ 🤖
github.com/rocket-pool/smartnode/rocketpool/node 0.48% (ø)

Coverage by file

Changed files (no unit tests)

Changed File Coverage Δ Total Covered Missed 🤖
github.com/rocket-pool/smartnode/rocketpool/node/defend-challenge-exit.go 0.00% (ø) 3460 0 3460
github.com/rocket-pool/smartnode/rocketpool/node/notify-validator-exit.go 0.00% (ø) 3671 0 3671
github.com/rocket-pool/smartnode/rocketpool/node/prestake-megapool-validator.go 0.00% (ø) 2542 0 2542

Please note that the "Total", "Covered", and "Missed" counts above refer to code statements instead of lines of code. The value in brackets refers to the test coverage of that file in the old version of the code.

@0xfornax
0xfornax merged commit d53157b into master Oct 29, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants