Skip to content

docs: address the second round of EDF docs review - #995

Merged
TheDZhon merged 9 commits into
mainfrom
feature/stc-924-fix-edf-docs-after-review-2nd-part
Sep 15, 2026
Merged

TheDZhon merged 9 commits into
mainfrom
feature/stc-924-fix-edf-docs-after-review-2nd-part

Conversation

@chasingrainbows

@chasingrainbows chasingrainbows commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Summary

Follow-up to #962. Fixes the items from the post-merge review (#962 (review)) that should land before the LIP-37 vote, plus a few related pages that would be stale after the vote. The changed text is written for the state after LIP-37 is enacted, without "before / after the vote" wording.

Linear: STC-924.

Changes

EDF operator guide (docs/guides/edf/edf-operator-guide.md)

  • New "Minimum software versions" table: lido-oracle 8.1.0, lido-council-daemon 4.1.2, depositor-bot 5.7.0, validator-ejector 2.2.0.
  • 2.2: replaced the stale oracle log line with the 8.1.0 text and noted that the oracle keeps running in dry mode and re-checks the config every cycle.
  • 3.1 / 3.2: real council daemon behaviour - an empty DELEGATION_CONTRACT_ADDRESS passes startup validation on DSM v4; the check to look for is EDF preflight passed / EDF setup is not ready; on DSM v5 a daemon with a wrong config logs Guardian cycle processing error every cycle and signs nothing, a restart exits with code 1.
  • 1.4: alerts on execute() targets and non-zero msg.value need trace-level monitoring (no events); added polling of the delegate account code.
  • 2.1 / 3.1: funding the delegate EOA is marked as required.
  • 0.1: the 48 h cooldown is stated as the policy minimum.
  • Reference material: links to the new contract pages.

Custody policy (docs/guides/edf/key-custody-policy-for-edf-operators.md)

  • §3.6: MUST-level minimum cooldown of 48 hours (172800 s).
  • §4.5 / §4.6: the delegate MUST be a plain EOA with empty code and MUST never sign an EIP-7702 authorization.
  • §7: trace-level monitoring note and delegate code polling.

Validator ejector (docs/guides/validator-ejector-guide.md, docs/guides/curated-module/exits/tooling-setup.md, docs/guides/edf/edf-rotation-and-incidents.md)

  • ORACLE_ADDRESSES_ALLOWLIST must hold the oracle delegate EOAs, not the DelegationContracts returned by getMembers(); after a rotation keep the previous delegate for about 7 days (BLOCKS_PRELOAD 50000); validator-ejector 2.2.0 or newer is required.
  • The Etherscan links now point at the HashConsensus of the Validators Exit Bus Oracle (mainnet and Hoodi).

Contract reference (docs/contracts/)

  • New pages delegation-factory.md and delegation-contract.md, added to the sidebar after Deposit Security Module. Written from the sources in lidofinance/execution-delegation-framework. Deployed instances are marked as proposed.
  • deposit-security-module.md: added a proposed link to the DSM v5 deployed contract. The page content stays on v4 until the vote.

Other pages

  • Oracle operator manual, TL;DR step 9: deploy the DelegationContract and configure the daemon before proposing the address.
  • Deposit security manual: DSM v5 signed message (prefix, guardian, blockNumber, blockHash, depositRoot, stakingModuleId, nonce) and the direct call path for pause and unvet where the DelegationContract is the sender.
  • Protocol levers: the DSM address was a v3 one (0xfFA9...), replaced with the current v4 address and the proposed v5 one.
  • Tooling: council daemon 4.0.4 -> 4.1.2, depositor bot 5.6.0 -> 5.7.0, validator ejector 2.1.0 -> 2.2.0.

Not changed

  • Review item 11 (dedicated multisig rule vs. deployed seats) is left for a separate decision.
  • Review item 12: the vote script does revoke TOP_UP_ROLE from the old depositor bot EOA and grants it to the DelegationContract, so the deployed contracts page is correct as is.
  • Post-vote cleanup (proposed markers, DSM contract page for v5, HashConsensus note) will go in a separate PR after the vote.

Testing

npm run build passes with onBrokenLinks and onBrokenAnchors set to throw. Log strings were checked against lido-council-daemon 4.1.2 and lido-oracle 8.1.0 sources; the DSM address was checked on-chain; the new contract pages were checked against the EDF sources.

- ejector allowlist must hold delegate EOAs, old accounts stay ~7 days, only a build with execute() unwrapping works
- oracle manual: deploy DelegationContract and configure the daemon before the vote
- operator guide: real council daemon behaviour with an empty DELEGATION_CONTRACT_ADDRESS, oracle 8.1.0 log text, trace-level alerts and delegate code polling, minimum versions, funding required before the vote
- custody policy: minimum 48 h cooldown, delegate must be a plain EOA and never sign EIP-7702
- deposit security manual: DSM v5 signed message and the direct call path for pause and unvet
- protocol levers: fix the DSM address, add the proposed v5 one
- tooling: bump council daemon to 4.1.2 and depositor bot to 5.7.0
@chasingrainbows
chasingrainbows requested a review from a team as a code owner September 14, 2026 14:06
@chasingrainbows
chasingrainbows requested review from a team as code owners September 14, 2026 15:39

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Operational version guidance and several contract and monitoring descriptions remain contradictory or inaccurate.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Updates EDF documentation for LIP-37 deployment, operation, custody, rotation, and DSM v5 integration.

Changes:

  • Adds DelegationFactory and DelegationContract references.
  • Updates EDF operator procedures and minimum software versions.
  • Revises DSM, validator-ejector, and related operational guidance.
File summaries
File Description
sidebars.js Adds EDF contract pages.
docs/contracts/delegation-contract.md Documents DelegationContract behavior and API.
docs/contracts/delegation-factory.md Documents factory deployment API.
docs/contracts/deposit-security-module.md Updates reference for DSM v5.
docs/guides/curated-module/exits/tooling-setup.md Corrects oracle allowlist guidance.
docs/guides/deposit-security-manual.md Documents EDF guardian behavior.
docs/guides/edf/edf-operator-guide.md Updates setup, monitoring, and daemon guidance.
docs/guides/edf/edf-rotation-and-incidents.md Adds ejector rotation guidance.
docs/guides/edf/key-custody-policy-for-edf-operators.md Strengthens cooldown and delegate requirements.
docs/guides/oracle-operator-manual.md Adds EDF onboarding instructions.
docs/guides/protocol-levers.md Updates DSM role-holder addresses.
docs/guides/tooling.md Updates council daemon and depositor bot versions.
docs/guides/validator-ejector-guide.md Documents EDF-compatible allowlisting.
Review details

Suppressed comments (1)

docs/contracts/delegation-contract.md:76

  • This parameter can also contain the signature format accepted by an ERC-1271 contract delegate, not only an ECDSA signature. Keeping the ECDSA-only description here would still contradict the function's supported behavior after the prose above is corrected.
| `signature` | `bytes`   | ECDSA signature              |
  • Files reviewed: 13/13 changed files
  • Comments generated: 6
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docs/contracts/delegation-contract.md
Comment thread docs/contracts/delegation-factory.md Outdated
Comment thread docs/guides/edf/edf-operator-guide.md
Comment thread docs/guides/edf/key-custody-policy-for-edf-operators.md
Comment thread docs/guides/oracle-operator-manual.md
Comment thread docs/guides/validator-ejector-guide.md
chasingrainbows and others added 4 commits September 14, 2026 19:27
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…github.com:lidofinance/docs into feature/stc-924-fix-edf-docs-after-review-2nd-part
TheDZhon
TheDZhon previously approved these changes Sep 14, 2026

@TheDZhon TheDZhon left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 🎬

Comment thread docs/guides/protocol-levers.md Outdated
@TheDZhon
TheDZhon merged commit a2bcb2d into main Sep 15, 2026
1 check passed
@TheDZhon
TheDZhon deleted the feature/stc-924-fix-edf-docs-after-review-2nd-part branch September 15, 2026 10:29
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.

7 participants